intern.rst: minor formating improvements

This commit is contained in:
Araq 2018-10-18 12:04:48 +02:00
commit 03a05ca456

View file

@ -16,9 +16,9 @@ Directory structure
The Nim project's directory structure is: The Nim project's directory structure is:
============ ============================================== ============ ===================================================
Path Purpose Path Purpose
============ ============================================== ============ ===================================================
``bin`` generated binary files ``bin`` generated binary files
``build`` generated C code for the installation ``build`` generated C code for the installation
``compiler`` the Nim compiler itself; note that this ``compiler`` the Nim compiler itself; note that this
@ -32,7 +32,7 @@ Path Purpose
``lib`` the Nim library ``lib`` the Nim library
``web`` website of Nim; generated by ``nimweb`` ``web`` website of Nim; generated by ``nimweb``
from the ``*.txt`` and ``*.tmpl`` files from the ``*.txt`` and ``*.tmpl`` files
============ ============================================== ============ ===================================================
Bootstrapping the compiler Bootstrapping the compiler
@ -386,8 +386,9 @@ So now ``G.c`` MUST contain both ``P1`` and ``P2``, but we haven't even
loaded ``P1`` from the symbol file, nor do we want to because we then quickly loaded ``P1`` from the symbol file, nor do we want to because we then quickly
would restore large parts of the whole program. would restore large parts of the whole program.
Solution Solution
~~~~~~~~  ~~~~~~~~
The backend must have some logic so that if the currently processed module The backend must have some logic so that if the currently processed module
is from the compilation cache, the ``ast`` field is not accessed. Instead is from the compilation cache, the ``ast`` field is not accessed. Instead
@ -517,6 +518,7 @@ Code generation for closures
Code generation for closures is implemented by `lambda lifting`:idx:. Code generation for closures is implemented by `lambda lifting`:idx:.
Design Design
------ ------
@ -665,5 +667,3 @@ important the hidden formal param is ``void*`` and not something more
specialized. However the more specialized env type needs to passed to the specialized. However the more specialized env type needs to passed to the
backend somehow. We deal with this by modifying ``s.ast[paramPos]`` to contain backend somehow. We deal with this by modifying ``s.ast[paramPos]`` to contain
the formal hidden parameter, but not ``s.typ``! the formal hidden parameter, but not ``s.typ``!