diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
---|---|---|
committer | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
commit | 84c2ad99582391005b5e873198b15e9e9eb4f78d (patch) | |
tree | caa8c2f2ec7e97fbb4977263c6817c9af5025cf4 /docs/ghci/ghci.tex | |
parent | 8ddb47cfcf5776e9a3c55fd37947c8a95e00fa12 (diff) | |
parent | e68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff) | |
download | haskell-wip/T13904.tar.gz |
update to current master againwip/T13904
Diffstat (limited to 'docs/ghci/ghci.tex')
-rw-r--r-- | docs/ghci/ghci.tex | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/docs/ghci/ghci.tex b/docs/ghci/ghci.tex index c4638a6719..e102cdadd9 100644 --- a/docs/ghci/ghci.tex +++ b/docs/ghci/ghci.tex @@ -122,7 +122,7 @@ visibility. Subsequent sections elaborate who can see what. is @compile@'s private cache of information about package modules. \item {\bf Persistent Linker State (PLS)} (owner: @link@) is - @link@'s private information concerning the the current + @link@'s private information concerning the current state of the (in-memory) executable image. \end{itemize} @@ -458,9 +458,9 @@ date. There are three parts to it: \item {\bf Package Symbol Table (PST)} @:: FiniteMap Module ModDetails@ - Adding an package interface to PIT doesn't make it directly usable + Adding a package interface to PIT doesn't make it directly usable to @compile@, because it first needs to be wired (renamed + - typechecked) into the sphagetti of the HST. On the other hand, + typechecked) into the spaghetti of the HST. On the other hand, most modules only use a few entities from any imported interface, so wiring-in the interface at PIT-entry time might be a big time waster. Also, wiring in an interface could mean reading other @@ -886,14 +886,14 @@ trees in the GHCI heap. References from other modules to these entities is direct -- when you have a @TyCon@ in your hand, you really have a pointer directly to the @TyCon@ structure in the defining module, rather than some kind of index into a global symbol table. So there -is a global symbol table, but it has a distributed (sphagetti-like?) +is a global symbol table, but it has a distributed (spaghetti-like?) nature. This gives fast and convenient access to tycon, class, instance, etc, information. But because there are no levels of indirection, there's a problem when we replace @M@ with an updated version of @M@. We then need to find all references to entities in the old @M@'s -sphagetti, and replace them with pointers to the new @M@'s sphagetti. +spaghetti, and replace them with pointers to the new @M@'s spaghetti. This problem motivates a large part of the design. |