>>>> "JV" == Jan Vroonhof
<vroonhof(a)math.ethz.ch> writes:
JV> wmperry(a)aventail.com (William M. Perry) writes:
> I've got the ldap and gpm code in the latest CVS snapshot
usable. Do we
> want to make this a default for 21.2? Are there any other pieces that
> should be moved into modules as a proof-of-concept?
JV> Steve's postgress code I guess.
> For LDAP and GPM it was basically cp ../modules/xxx and a
makefile tweek.
> Other than that it worked out of the box.
JV> Does that also include an option where they still get linked into the
JV> core? Would it be possible to leave the source files in src (is also
JV> more convenient for grep'ping?)
> Someone mentioned a while ago that the portable dumper screwed
up
> modules... not quite sure I see why. In theory you shouldn't be dumping
> out any of those objects, but...
JV> More importantly is that Martin made the number of lrecord types a
JV> compile time constant. Of course that does not matter for modules that
JV> are basically lazy loaded parts of the core.
Oops....
I just noticed that Olivier got rid of last_lrecord_type_assigned (a C
variable), and replaced it with lrecord_type_count (a C compile-time
constant). Olivier, this was not my intent with the changes to use
compile-time constants for lisp object type identification.
The idea was that future code in a module could define a new lrecord
type dynamically, and increment last_lrecord_type_assigned. So it
actually makes sense for last_lrecord_type_assigned to be initialized
to lrecord_type_count and never subsequently modified in any code
shipped with XEmacs, and for various bits of code to use
last_lrecord_type_assigned instead of lrecord_type_count. Of course,
it doesn't make sense for modules to be loaded before being dumped, so
the dumper could use either symbol. However, it seems cleaner to use
last_lrecord_type_assigned. I suggest you resurrect
last_lrecord_type_assigned.
On the other hand, this will only become significant if some third
party wants a module that defines its own lisp object type, and in
practice this is unlikely to happen. Given that getting 21.2 out
should be our main goal, making this architectural change has no
urgency. However, at least a comment should be added to the
appropriate places in the code.
I leave the choice to Olivier.
Martin