commit: dump make-coding-system
Ben Wing
ben at xemacs.org
Thu Feb 25 02:29:37 EST 2010
On Tue, Feb 23, 2010 at 3:11 PM, Aidan Kehoe <kehoea at parhasard.net> wrote:
>
> Ar an tríú lá is fiche de mí Feabhra, scríobh Ben Wing:
>
> > lisp/ChangeLog addition:
> >
> > 2010-02-22 Ben Wing <ben at xemacs.org>
> >
> > * mule/make-coding-system.el:
> > * mule/make-coding-system.el (fixed-width-generate-helper):
> > * mule/make-coding-system.el (fixed-width-private-use-start): Removed.
> > * mule/make-coding-system.el (fixed-width-create-decode-encode-tables):
> > * coding.el:
> > * coding.el (decode-char): New.
> > * coding.el (featurep):
> > * coding.el (encode-char): New.
> > * dumped-lisp.el (preloaded-file-list):
> > Dump make-coding-system. Aidan's hack to avoid dumping this file
> > never really worked right -- with some configurations (not clear
> > exactly which ones)
>
> This happens when a core file, byte-compiled with non-Mule, is loaded at
> dump time from a Mule build, because the compiler macro in
> mule/make-coding-system,.el--in particular, this part of it:
>
> [...]
> (if (byte-compile-constp type)
> ;; This is not a fixed-width call; compile it to a form that 21.4
> ;; can also understand.
> `(funcall (or (and (fboundp 'make-coding-system-internal)
> 'make-coding-system-internal)
> 'make-coding-system)
> ,@(cdr form))
> [...]
>
> was not available on non-Mule. This is not something that ever bites normal
> users, just people developing, and the simple way around it is to add a
> compiler macro on non-Mule.
>
> > `make-coding-system.el' gets dumped anyway due to
> > calls to `make-coding-system' in unicode.el, with the result that
> > the documentation of functions in make-coding-system.el gets lost.
> >
> > Also needed to remove defvar fixed-width-private-use-start and
> > incorporate it inline, due to bootstrapping issues -- the call to
> > decode-char introduced a cross-dependency between unicode.el and
> > make-coding-system.el.
>
> You’re also added duplicate definitions for encode-char and decode-char;
> they’re now both in unicode.el and coding.el . And dropping the docstring
> for fixed-width-private-use-start was not a net positive! Though I admit we
> saw an issue with the decode-char call in byte-compiling the packages; it
> would have been better to have declared it like so in the first place:
>
> (defvar fixed-width-private-use-start ?\uE000 ...)
>
> I’d like to back out your change, add the compiler macro as above, and
> change the declaration of fixed-width-private-use-start. Do you object?
Go ahead. I never quite understood why I didn't run into the problem
always, but I see now that the compiler macro is making the calls to
make-coding-system disappear under Mule.
You might want to rewrite the doc string of
`make-coding-system-internal' so that when people see it in non-Mule
it makes a bit more sense -- currently they will check the doc of
`make-coding-system' and see "See `make-coding-system' ...".
ben
More information about the XEmacs-Patches
mailing list