Nim (formerly known as "Nimrod") is a compiled, garbage-collected systems programming language which has an excellent productivity/performance ratio. Nim's design focuses on efficiency, expressiveness, elegance (in the order of priority). http://nim-lang.org/
Find a file
Andreas Rumpf 3db13ba0e0 Merge pull request #2804 from yglukhov/minor-cosmetics
Minor cosmetic changes.
2015-05-26 21:12:13 +02:00
bin rewrote lambdalifting; fixes deeply nested closures 2014-06-26 15:58:41 +02:00
build Merge pull request #1075 from flaviut/inlinedocs 2014-04-09 22:56:18 +02:00
compiler Merge pull request #2804 from yglukhov/minor-cosmetics 2015-05-26 21:12:13 +02:00
config Add -ldl with clang cpp compilation 2015-05-10 22:20:03 +02:00
doc Fix introduced erroneous use of "canonical" back to original wording. Fix faulty description of proc params behavior. Remove 'null' return type in example. 2015-05-26 16:28:44 +02:00
examples Use declaredInScope instead of definedInScope 2015-02-18 01:57:10 +01:00
icons nimrod -> nim in some filenames 2015-02-14 19:00:11 +01:00
lib Merge pull request #2697 from lyro/devel 2015-05-26 16:10:30 +01:00
tests Fixes #2798 2015-05-26 16:00:48 +03:00
tinyc Fix typos 2015-02-15 16:20:32 +00:00
tools Use maximum compression level for XZ tarball 2015-05-26 13:51:22 +03:00
web Merge pull request #2732 from Perelandric/fix_miliseconds 2015-05-17 12:04:03 +02:00
.gitignore Get rid of git submodule 2015-05-26 14:16:22 +03:00
bootstrap.sh Get rid of git submodule 2015-05-26 14:16:22 +03:00
compiler.nimble Add compiler.nimble file. 2015-01-16 21:47:26 +00:00
contributors.txt Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
copying.txt fixes #2070 2015-02-10 20:19:48 +01:00
install.sh.template Add build scripts. 2014-12-11 23:36:42 -05:00
install.txt Revert "Documented faster way to bootstrap-build Nim" 2015-01-17 19:16:04 -05:00
koch.nim Remove outdated targz from niminst 2015-05-26 13:27:02 +03:00
koch.nim.cfg Rename *.nimrod.cfg to *.nim.cfg 2015-02-03 09:04:24 +01:00
readme.md no more prebuilt sources 2015-03-09 16:22:35 -05:00
readme.txt Merge branch 'devel' into bigbreak 2014-10-20 08:44:00 +02:00
start.bat Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
todo.txt development version is 0.11.1 2015-05-03 01:08:50 +02:00

Nim Compiler

This repo contains the Nim compiler, Nim's stdlib, tools and documentation.

Compiling

Compiling the Nim compiler is quite straightforward. Because the Nim compiler itself is written in the Nim programming language the C source of an older version of the compiler are needed to bootstrap the latest version. The C sources are available in a separate repo here.

The compiler currently supports the following platform and architecture combinations:

  • Windows (Windows XP or greater) - x86 and x86_64
  • Linux (most, if not all, distributions) - x86, x86_64, ppc64 and armv6l
  • Mac OS X 10.04 or higher - x86, x86_64 and ppc64

In reality a lot more are supported, however they are not tested regularly.

To build from source you will need:

  • gcc 3.x or later recommended. Other alternatives which may work are: clang, Visual C++, Intel's C++ compiler
  • git or wget

If you are on a fairly modern *nix system, the following steps should work:

$ git clone git://github.com/Araq/Nim.git
$ cd Nim
$ git clone --depth 1 git://github.com/nim-lang/csources
$ cd csources && sh build.sh
$ cd ..
$ bin/nim c koch
$ ./koch boot -d:release

koch install [dir] may then be used to install Nim, but lots of things don't work then so don't do that. Add it to your PATH instead. More koch related options are documented in doc/koch.txt.

The above steps can be performed on Windows in a similar fashion, the build.bat and build64.bat (for x86_64 systems) are provided to be used instead of build.sh.

Getting help

A forum is available if you have any questions, and you can also get help in the IRC channel on Freenode in #nim. If you ask questions on StackOverflow use the nim tag.

License

The compiler and the standard library are licensed under the MIT license, except for some modules where the documentation suggests otherwise. This means that you can use any license for your own programs developed with Nim, allowing you to create commercial applications.

Read copying.txt for more details.

Copyright (c) 2006-2015 Andreas Rumpf. All rights reserved.

Build Status

Build Waterfall

Linux Windows Mac
x86 linux-x86 windows-x86 mac-x86
x86_64 linux-x86_64 windows-x86_64 mac-x86_64
arm linux-armv5
linux-armv6
linux-armv7