[project @ 2003-09-10 14:45:24 by simonmar]
authorsimonmar <unknown>
Wed, 10 Sep 2003 14:45:25 +0000 (14:45 +0000)
committersimonmar <unknown>
Wed, 10 Sep 2003 14:45:25 +0000 (14:45 +0000)
commit868973ac573282c71d4b2661e2ffa418840168d7
tree9a4c9dfd30803482ed410a1c2b27f5ca01acf533
parent036454155c780378e4133d9f8d0e29e59ca785c2
[project @ 2003-09-10 14:45:24 by simonmar]
Quick hack to work around the dynamic exception crashes in GHCi.  The
problem is this: the Data.Typeable library (Data.Dymamic in previous
versions of GHC) maintains an internal cache mapping type names to
unique numbers, and this cache is used for fast comparisons on
TypeReps.  In GHCi, there are actually two versions of the
Data.Typeable library loaded: one linked to GHCi itself, and the other
dynamically loaded, so there are two copies of the hash tables.

The problem is that if we have a Dynamic value generated using one set
of hash tables, it will erroneously appear to be of a different type
when the other hash tables are used.

The hack I've instigated is to use the central RTS genSym (which
already exists) to generate the unique Ids, so that the two copies of
the dynamic library will be using distinct Ids, and Dynamics from one
will never be recognisable to the other.
ghc/rts/Linker.c