summary refs log tree commit diff stats
path: root/compiler/semtempl.nim
Commit message (Expand)AuthorAgeFilesLines
* code cleanup: remove newScopeForIf switchAndreas Rumpf2018-07-041-2/+1
* implements a --nep1:on switch to make the compiler enforce the naming convent...Andreas Rumpf2018-06-131-4/+4
* refactoring: remove idents.legacy global variable and pass the IdentCache aro...Andreas Rumpf2018-05-271-7/+7
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-2/+2
* more modules compile againAndreas Rumpf2018-05-121-37/+40
* Implement custom annotations (#6987)cooldome2018-01-091-1/+4
* first steps in adding template/macro calls to stack tracesAraq2017-12-211-2/+2
* minor breaking change: for loop bodies now get their own scopeAndreas Rumpf2017-11-051-0/+2
* remove old implementation of the roof operator; make tests green again; close...Andreas Rumpf2017-10-291-18/+0
* deprecated unary '<'Andreas Rumpf2017-10-291-4/+4
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-0/+2
* Remove expr/stmt (#5857)Arne Döring2017-07-251-2/+2
* fixes #5478Araq2017-03-061-4/+4
* make tests green againAndreas Rumpf2017-03-021-0/+4
* Merge branch 'devel' into faster-nimsuggestAndreas Rumpf2017-02-241-5/+7
|\
| * fixes #5417Andreas Rumpf2017-02-241-5/+7
* | big compiler refactoring; avoid globals for multi method dispatcher generationAndreas Rumpf2017-02-221-4/+4
|/
* fixes #5383Araq2017-02-161-1/+1
* Merge branch 'devel' into feature/3691Dominik Picheta2017-02-071-2/+9
|\
| * fixes #5285Andreas Rumpf2017-02-041-2/+9
* | Adds `except T as ident` handling in semtempl.Dominik Picheta2017-02-061-1/+7
|/
* template+emit supports volatileRead and volatileWrite opsAndreas Rumpf2017-01-231-1/+3
* Fixes #5225 (#5243)Lolo Iccl2017-01-181-1/+8
* remove unused stuffJacek Sieka2016-08-091-29/+0
* fixes #4353Andreas Rumpf2016-08-041-4/+6
* fixes #4555Andreas Rumpf2016-08-021-1/+1
* compiler almost free of deprecated expr/stmt namesAndreas Rumpf2016-07-301-1/+1
* stdlib and compiler don't use .immediate anymoreAndreas Rumpf2016-07-291-2/+6
* Merge branch 'devel' into new-llAndreas Rumpf2016-01-141-4/+1
|\
| * fixes #3498Adam Strzelecki2015-10-301-4/+1
* | first implementation of the new lambda-lifting pass; barely anything worksAndreas Rumpf2015-12-261-3/+1
|/
* fixes regression: NimForum compiles againAraq2015-09-211-24/+61
* Merge branch 'devel' into fix_bracket_exprAraq2015-09-121-0/+11
|\
| * fixes some regressionsAraq2015-09-121-0/+11
| * fixes #1528Araq2015-09-121-24/+1
* | first attempt to fix 'a[i]' handling in genericsAraq2015-09-121-0/+51
* | fixes #1528Araq2015-09-101-24/+1
|/
* fixes #2670Araq2015-08-081-4/+19
* minor refactoring for big fixes to comeAraq2015-07-241-3/+7
* fixes #1738Araq2015-07-221-1/+1
* don't store the scope for routinesAraq2015-04-041-1/+1
* fixes #2390Araq2015-03-231-53/+59
* fixes #2215Araq2015-02-251-1/+1
* Fix typosFederico Ceratto2015-02-151-1/+1
* Fix typosFederico Ceratto2015-02-151-2/+2
* nimsuggest improvementsAraq2015-01-301-3/+7
* fixes #1915Araq2015-01-121-3/+12
* Happy new year!Guillaume Gelin2015-01-061-1/+1
* fixes #940Araq2014-11-171-1/+2
* nimfix improvementsAraq2014-09-101-4/+2
44 45 46 47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88


            


                          




                                                                               
                                                                             
                                                                 

                                                                         
      


                                
             
 
                                                                            



                                                                            
                                                      
 
                                                                           
                                                                          
                        
 


                                                                   

            




                                                                            




                             

                                                                               

                                                                             




                       

                                                                       








                                                                               

                                          
 
                                       
 
                         

                         
                                                                                         
                 








                                                                             

             
Installation
============

Installation on Linux/UNIX
--------------------------

The GNU C Compiler is fully supported, other compilers may work. The C compiler
should be in your ``$PATH`` (most likely the case). Note that some few Linux
distributions do not ship with a GCC compiler preinstalled - then you have to
install it.

Install Nim by downloading the appropriate ``.tar.xz`` file and extracting it
to a directory of your choice. The Nim Compiler will stay in this
directory (unless you copy it somewhere else). The compiler does not need
write access to its directory, so copying the nim folder to ``/opt``
works.

Then run the following command::

  sh build.sh

Unlike other software, Nim does not distribute its files over the whole file
hierarchy. This has the advantage that you can deinstall it by just deleting
its folder. The disadvantage is that you have to add it to your ``PATH``
manually. An alternative is to create a symbolic link in ``/usr/bin``::

  [sudo] ln -s $your_install_dir/bin/nim  /usr/bin/nim

There are also ``install.sh`` and ``deinstall.sh`` scripts for distributing
the files over the UNIX hierarchy. However, updating your Nim installation
is more cumbersome then.

To complete the installation you should also build Nim's tools like
``nimsuggest``, ``nimble`` or ``nimgrep`` via::

  nim c koch
  koch tools

Note that these tools should also end up in your ``PATH`` so adding
``$your_install_dir/bin/nim`` to your ``PATH`` is preferred over the symlink
solution.


Installation on the Macintosh
-----------------------------

Only MacOS X is supported.
Since MacOS X is UNIX based too, it works like the installation on Linux.
However, for unknown reasons the symbolic link method does not work on MacOS X.
You need to install Apple's developer's tools for the GNU Compiler Collection
or clang.


Installation on Windows
-----------------------

Install Nim by downloading and unzipping the ``nim_$version.zip`` file.
Run ``finish.exe`` to detect and setup your MingW environment.

Currently, the following C compilers are supported under Windows:

- | Microsoft's Visual C++
  | http://msdn.microsoft.com/visualc
  | (You need the SDK too - but not the full one: Only
    the win32api header files and import libraries are essential.)
- | Gnu C Compiler (the mingw version; the cygwin version has not been tested!)
  | http://www.mingw.org/download.shtml
- | LLVM with Clang or GNU C/C++ frontend
  | http://llvm.org/releases/download.html

However, most testing is done with GCC.

Bootstrapping from GitHub
-------------------------

Take a look at the readme file on github `here <https://github.com/nim-lang/Nim#readme>`_
for instructions.


Installation of Nimble
----------------------

Nimble is Nim's package manager. For the source based installations where you
added Nim's ``bin`` directory to your ``$PATH`` the easiest way of installing
Nimble is via::

  nim c koch
  koch nimble