summary refs log tree commit diff stats
path: root/doc/nimrodc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/nimrodc.txt')
-rwxr-xr-xdoc/nimrodc.txt26
1 files changed, 24 insertions, 2 deletions
diff --git a/doc/nimrodc.txt b/doc/nimrodc.txt
index d249d4860..08128521f 100755
--- a/doc/nimrodc.txt
+++ b/doc/nimrodc.txt
@@ -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