source: project/wiki/chicken-hackers-guide @ 37557

Last change on this file since 37557 was 35390, checked in by svnwiki, 2 years ago

Anonymous wiki edit for IP [101.178.17.80]: Minor grammar fixes

  • Property svn:executable set to *
File size: 4.0 KB
Line 
1[[toc:]]
2[[tags: internal]]
3
4== CHICKEN hackers guide
5
6This document is intended to provide some guidance for those who want
7to work on the chicken compiler and core libraries.
8
9=== Getting the sources
10
11See the [[http://code.call-cc.org]] page for
12instructions about how to get the development version of CHICKEN.
13
14=== Building
15
16To build chicken, change into the source directory and follow the directions
17in the [[http://code.call-cc.org/cgi-bin/gitweb.cgi?p=chicken-core.git;a=blob_plain;f=README;hb=HEAD|README]] file.
18
19Some notes:
20
21* every invocation of make must include the full set of parameters ("PLATFORM=..." etc.)
22
23* if you change anything to makefiles or support scripts, make sure to
24  run {{make confclean}}, so that a new configuration
25  ({{chicken-config.h}}) is generated.
26
27* it is possible to compile chicken without a preinstalled chicken by
28  building the system from an official release tarball first. These
29  tarballs contain the precompiled C sources and don't need a
30  {{chicken}} executable. Once you have built a {{chicken}} program,
31  you can use it in subsequent build by passing
32  {{CHICKEN=<path-to-chicken-executable>}} to {{make}}.
33
34* run {{make check}} occasionally.
35
36* it is no problem to install different chicken versions all over the
37  filesystem, provided each installation uses a different setting for
38  the {{PREFIX}} parameter variable passed to {{make}}. Once
39  installed, the executables will pick up the correct libraries.
40
41=== Versions
42
43There are several versions that identify a particular chicken installation:
44
45* the "major version" (i.e. {{3}} in {{3.0.0}}) - this version identifies which set of eggs is available via {{chicken-install}}.
46
47* the "binary compatibility version" - the egg-repository for an installation is specific to that (eggs are installed in {{PREFIX/lib/chicken/<binaryversion>/}}), changing this version means all eggs have to be re-installed and are not binary compatible to previous chicken versions.
48
49* the official chicken version ({{3.0.0}} for example) - it is used in several places, use {{scripts/setversion -set <version>}} to update the version string in all files that need it.
50
51=== Releases
52
53Files added to the distribution tarball must be listed in the {{distribution/manifest}} file.
54You must add any files that are to distributed in that file.
55
56For information on the current CHICKEN release policy, please see [[release-policy]].
57
58=== Documentation
59
60The {{README}} should contain all required information to build the system, there is
61not a separate INSTALL file. Platform-specific information is kept at the end and
62should be reasonably up-to-date.
63
64All user-visible changes between releases should be noted down in the {{NEWS}}
65file, to make it easy to see things to look out for or new features to explore.
66
67The user's manual is kept in svnwiki format in {{manual/}}. The manual pages
68are a copy of the manual found at [[/man/4/The User's Manual|The User's Manual]]
69and should contain the complete documentation of everything implemented
70in this particular branch (or trunk) of the system you have checked out.
71Once a release is made, the changes from the {{manual/}} directory should
72be merged back into the wiki proper (the {{wiki/}} directory in the
73toplevel of the svn repository).
74
75Please add all contributors and bug reporters to the {{Acknowledgements}}
76file in the manual. We should make sure contributors get the respect they
77deserve, unless someone explicitly doesn't want to get mentioned there.
78
79=== Mailing lists
80
81The
82[[http://lists.nongnu.org/mailman/listinfo/chicken-hackers|chicken-hackers]]
83mailing list is the place to discuss implementation issues and
84subjects of hacking the core system.
85
86[[http://lists.nongnu.org/mailman/listinfo/chicken-users|chicken-users]]
87should be reserved for questions about CHICKEN in general and its
88extensions.
89
90Finally,
91[[http://lists.nongnu.org/mailman/listinfo/chicken-janitors|chicken-janitors]]
92collects daily maintenance information. Here automatic
93builds and post-commit egg uploads report problems or news to this list
94as well.
Note: See TracBrowser for help on using the repository browser.