X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/7e2cb69cbc7af40c54c0eeb88c2221e715a6a416..079abb952d624348616b3f86e5df54ed3a66f7d6:/HACKING diff --git a/HACKING b/HACKING index cfba946de..1c244e987 100644 --- a/HACKING +++ b/HACKING @@ -121,6 +121,9 @@ CVS log entries from that. Coding standards ===================================================== +- Before contributing larger amounts of code to Guile, please read the +documents in `guile-core/devel/policy' in the CVS source tree. + - As for any part of Project GNU, changes to Guile should follow the GNU coding standards. The standards are available via anonymous FTP from prep.ai.mit.edu, as /pub/gnu/standards/standards.texi and @@ -157,6 +160,32 @@ function properly on systems where they are missing. This usually entails adding a test to configure.in, and then adding #ifdefs to your code to disable it if the system's features are missing. +- The normal way of removing a function, macro or variable is to mark +it as "deprecated", keep it for a while, and remove it in a later +release. If a function or macro is marked as "deprecated" it +indicates that people shouldn't use it in new programs, and should try +to remove it in old. Make sure that an alternative exists unless it +is our purpose to remove functionality. Don't deprecate definitions +if it is unclear when they will be removed. (This is to ensure that a +valid way of implementing some functionality always exists.) + +When deprecating a definition, always following this procedure: + +1. Mark the definition using + +#if (SCM_DEBUG_DEPRECATED == 0) +... +#endif + +2. Write a comment at the definition explaining how a programmer +can manage without the deprecated definition. + +3. Add an entry that the definition has been deprecated in NEWS + +4. At the top of release, there is a list of releases with reminders +about what to do at each release. Add a reminder about the removal of +the deprecated defintion at the appropriate release. + - When you make a user-visible change (i.e. one that should be documented, and appear in NEWS, put an asterisk in column zero of the start of the ChangeLog entry, like so: