On Sat, Nov 9, 2013 at 10:40 AM, Doug Evans <d...@sebabeach.org> wrote: >> As discussed on IRC, one possible issue is eq?-ness of SMOBs: one would >> usually expects pointer equality to be preserved at the Scheme level. > > Yeah. > That'll require gdb maintaining its own table(s) for each kind of smob > we want to intern.
Actually, to be more precise, it will require maintaining tables for *some* smobs we want to intern. For other smobs the cost of caching the SCM in the gdb object isn't onerous. [The object is marked as protected from GC until the gdb object is deleted.] Alas, for two of the more important smobs we'd want to eq?, I think, gdb symbols and types, we'll need separate tables. Minimizing space usage of their gdb structs is important (critical even), and only a small fraction of them will typically be used in Scheme. And we certainly don't want to pay that expense when Scheme isn't used.