Hi Sigbjorn,
| "primitive" decls don't appear to honour the module system
| at all - first primitive name that matches in the linked list of
| prim-tables is used.
| ...
| Having Hugs at least check for duplicates in registerPrims()
| would be preferable, as is, users of HDirect and GreenCard run
| the risk of accidentally&mysteriously losing here. (I'm surprised
| it hasn't come up before...or is this a known potential problem?)
I'm not aware of it coming up before, but your complaint seems
justified to me. The basic mechanisms date from a long time ago
when the only way to add primitives was to link them in when you
built the interpreter. So the kind of problem you ran into would
have generated an error at link time. With the move to dynamic
linking, there should have been some extra code to simulate the
effect of static linking (i.e., the duplicate check that you
describe), or, better, to provide a separate primitive table for
every module. I'm anxious about making either of these changes
now for fear that they might break something important in the
upcoming Hugs 98 release, but it's definitely something that
should be addressed in the version after that.
All the best,
Mark