-
Notifications
You must be signed in to change notification settings - Fork 89
Hacking
All the project files are stored in the git repository, at https://github.com/rsdn/nemerle.
You should use entire sentences when writing commit logs. A sentence starts with a capital letter and ends with a full stop. Keep this in mind, as ChangeLog files in releases are automatically generated from commit logs, and should look consistent. Don't use past forms in commit logs. For example write "Add foobar to function baz." instead of "Added foobar to function baz." (which is a common practice).
Decision about the style is up to the maintainer of given module.
Don't use space before an opening paren in a function call and a type application. Use indentation style shown in the following example:
class Foo
{
Blah : Bar;
public Foo() : void
{
def x()
{
match (x)
{
| A => ()
| B =>
qux.some.long.expression (some, lengthy, args);
}
}
if(cond)
x()
else
2 * x()
// or
if (cond) x()
else 2 * x()
}
}
Set expand tabs option in your editor. ASCII 0x09 are not welcome in sources. Use 2 spaces per tab.
There are some tools you will probably find useful while helping us write all the software and documentation related to the project. We try to keep this list complete and up to date, but there still may be some pieces of software, that we forgot, as it seems natural for us to have it installed.
Please check the requirements page.
Sources included in SVN repository or in tarball release have all
necessary files to build the compiler. Most current bootstrap of compiler
and library is placed in boot/
directory.
When you change something in the compiler, the crucial thing to check that everything works fine is running:
make boot
command in the ncc/
directory. If compiler bootstrap itself
you should also run make test which checks our regression tests.
Note that you should avoid installing compiler, when changing sources annotated with the same version number. It is because in some cases .Net runtime loads libraries from the GAC / system directories rather from application directory. Assemblies with different version numbers do not influence bootstrap process, so you can play with SVN version having release version installed.
- LaTeX
- perl
- python 2.3 (or newer)
- PyXML
- perl
These are not prerequisites to do any task, but may be very helpful, and we ask you to use them, as they minimize the amount of mistakes.
- We suggest to scan documents with
ispell -d american -h file
or use your favorite development environment to do it for you.