README: update the state of requirements
[nit.git] / README.md
1 Nit is an expressive language with a script-like syntax, a friendly type-system and aims at elegance, simplicity and intuitiveness.
2
3 Nit has a simple straightforward style and can usually be picked up quickly, particularly by anyone who has programmed before.
4 While object-oriented, it allows procedural styles.
5
6 The Nit Compiler (nitc) produces efficient machine language binaries.
7
8 Some Nit features:
9
10  * Pure Object-Oriented.
11  * Multiple Inheritance.
12  * Realist typing policy.
13  * Light and clear syntax.
14
15
16 Requirements:
17
18  * gcc          http://gcc.gnu.org/ (or a compatible C compiler)
19  * pkg-config   http://www.freedesktop.org/wiki/Software/pkg-config/
20  * ccache       http://ccache.samba.org/        to improve recompilation
21  * libgc-dev    http://hboehm.info/gc/
22  * libunwind    http://nongnu.org/libunwind
23
24 Those are available in most Linux distributions
25
26     $ sudo apt-get install build-essential ccache libgc-dev libunwind-dev pkg-config
27
28 and on OS X using brew
29
30     $ brew install ccache bdw-gc libunwind-headers pkgconfig
31
32 or with MacPorts
33
34     $ sudo port install ccache boehmgc libunwind-headers pkgconfig
35
36 Important files and directories:
37
38  * benchmarks/  Script to bench the compilers
39  * bin/         The Nit tools
40  * c_src/       C code of nitc (needed to bootstrap)
41  * clib/        C code needed by nitc to compile programs
42  * contrib/     Various Nit programs (may or may not be useful)
43  * doc/         Documentation
44  * examples/    Program examples written in Nit
45  * lib/         Nit standard library
46  * LICENCE      License of the software
47  * Makefile     Bootstrap the Nit tools
48  * misc/        Some additional files for commons text editors and tools
49  * NOTICE.md    List of the authors
50  * README       This file
51  * share/       Common resources used by tools
52  * src/         The Nit tool sources (written in Nit)
53  * tests/       Non-regression test-suite
54
55
56 How to start:
57
58     $ make
59     $ bin/nitc examples/hello_world.nit
60     $ ./hello_world
61
62 You can source `misc/nit_env.sh` to setup your environment like PATH, MANPATH and bash completion.
63 To have your environment automatically configured at login, just source it with `install` as argument.
64
65     $ . misc/nit_env.sh install
66
67
68 More tools:
69
70 Additional tools can also be compiled but require more dependencies.
71
72  * graphviz     http://www.graphviz.org/        to enable graphs with the nitdoc tool
73  * libcurl      https://curl.haxx.se/libcurl/   for the nit package manager nitpm
74  * libevent     https://libevent.org/           for the nit documentation server nitweb
75  * libmongoc    http://mongoc.org/              also for nitweb
76
77     $ sudo apt-get install graphviz libcurl4-openssl-dev libevent-dev libmongoc-dev
78     $ make more
79
80
81 Contributing:
82
83 To contribute to Nit, please see [CONTRIBUTING](CONTRIBUTING.md).
84
85 The best way to ask the team for advice, submit bugs or request features, is through the use of Github issues, using the appropriate tag (`forum`, `feature-request`, `bug`).
86
87 Information, contacts and help:
88
89 * Website <http://www.nitlanguage.org>
90 * Issues <https://github.com/nitlang/nit/issues>
91 * Chatroom <https://gitter.im/nitlang/nit>