From 03a05ca456d5e79c0e66df161a5b43c7f7474110 Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 18 Oct 2018 12:04:48 +0200 Subject: intern.rst: minor formating improvements --- doc/intern.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'doc/intern.rst') diff --git a/doc/intern.rst b/doc/intern.rst index 1c20eeed7..0fa4fd7b6 100644 --- a/doc/intern.rst +++ b/doc/intern.rst @@ -16,9 +16,9 @@ Directory structure The Nim project's directory structure is: -============ ============================================== +============ =================================================== Path Purpose -============ ============================================== +============ =================================================== ``bin`` generated binary files ``build`` generated C code for the installation ``compiler`` the Nim compiler itself; note that this @@ -32,7 +32,7 @@ Path Purpose ``lib`` the Nim library ``web`` website of Nim; generated by ``nimweb`` from the ``*.txt`` and ``*.tmpl`` files -============ ============================================== +============ =================================================== 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 would restore large parts of the whole program. + Solution -~~~~~~~~  +~~~~~~~~ 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 @@ -517,6 +518,7 @@ Code generation for closures Code generation for closures is implemented by `lambda lifting`:idx:. + 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 backend somehow. We deal with this by modifying ``s.ast[paramPos]`` to contain the formal hidden parameter, but not ``s.typ``! - - -- cgit 1.4.1-2-gfad0