documentation for the compilation cache
This commit is contained in:
parent
dce8d3d1ab
commit
a757a08ab7
4 changed files with 112 additions and 7 deletions
|
|
@ -76,6 +76,28 @@ Linux does not compile on Windows, for instance. The comment on top of the
|
|||
C file lists the OS, CPU and CC the file has been compiled for.
|
||||
|
||||
|
||||
Compilation cache
|
||||
=================
|
||||
|
||||
**Warning**: The compilation cache is still highly experimental!
|
||||
|
||||
The ``nimcache`` directory may also contain so called `rod`:idx:
|
||||
or `symbol files`:idx:. These files are pre-compiled modules that are used by
|
||||
the compiler to perform `incremental compilation`:idx:. This means that only
|
||||
modules that have changed since the last compilation (or the modules depending
|
||||
on them etc.) are re-compiled. However, per default no symbol files are
|
||||
generated; use the ``--symbolFiles:on`` command line switch to activate them.
|
||||
|
||||
Unfortunately due to technical reasons the ``--symbolFiles:on`` needs
|
||||
to *aggregate* some generated C code. This means that the resulting executable
|
||||
might contain some cruft even in when dead code elimination is turned on. So
|
||||
the final release build should be done with ``--symbolFiles:off``.
|
||||
|
||||
Due to the aggregation of C code it is also recommended that each project
|
||||
resists in its own directory so that the generated ``nimcache`` directory
|
||||
is not shared between different projects.
|
||||
|
||||
|
||||
Cross compilation
|
||||
=================
|
||||
|
||||
|
|
@ -315,7 +337,7 @@ ENDB. See the documentation of `endb <endb.html>`_ for further information.
|
|||
Volatile pragma
|
||||
---------------
|
||||
The `volatile`:idx: pragma is for variables only. It declares the variable as
|
||||
``volatile``, whatever that means in C/C++ (its semantics are not well defined
|
||||
``volatile``, whatever that means in C/C++ (its semantics are not well defined
|
||||
in C/C++).
|
||||
|
||||
**Note**: This pragma will not exist for the LLVM backend.
|
||||
|
|
@ -331,7 +353,7 @@ input management. To start Nimrod in interactive mode use the command
|
|||
``nimrod i``. To quit use the ``quit()`` command. To determine whether an input
|
||||
line is an incomplete statement to be continued these rules are used:
|
||||
|
||||
1. The line ends with ``[-+*/\\<>!\?\|%&$@~,;:=#^]\s*$`` (operator symbol
|
||||
1. The line ends with ``[-+*/\\<>!\?\|%&$@~,;:=#^]\s*$`` (operator symbol
|
||||
followed by optional whitespace).
|
||||
2. The line starts with a space (indentation).
|
||||
3. The line is within a triple quoted string literal. However, the detection
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue