[cmucl-imp] unchangeable "ext-formats:uni-data.bin", error starting lisp

Raymond Toy toy.raymond at gmail.com
Wed Apr 13 06:32:26 CEST 2011


>>>>> "Madhu" == Madhu  <enometh at meer.net> writes:

    Madhu> When running Unicode CMUCL from the location where it is compiled,
    Madhu> it starts with an error saying it cannot find the unidata.bin file.
    Madhu> Usually one can set the search-list translations in ~/.cmucl-init.lisp,
    Madhu> but this error happens even before that, so the only locations CMUCL can
    Madhu> look for are the hardcoded locations.

    Madhu> How can one supress the error, or specify the location during startup,
    Madhu> so one can start `lisp -noinit' without throwing this error (when the
    Madhu> "unidata.bin" file is not where the packaged/installed CMUCL expects to
    Madhu> find it installed)

Ah, you're right.  I don't think it's currently possible, because
unidata.bin is used by reinit-char-attributes, which is on the
*after-save-initializations* list, which is run very early in the
startup, just before the locale is setup and before any (lisp) command
line arguments are processed.

I think calling reinit-char-attributes after the command line is
processed is generally too late, because the locale needs to be set
before then.

I think the only option would be to add a new command-line argument
that is processed by the C code before Lisp starts up.  Not sure what
this argument should be named or do, though.  Maybe -unidata-path to
specify the location of the unidata.bin file?  If not specified, the
default (hard-wired) path is used.

Would that work for you?  Or do you need also need a way to specify
that the error should be ignored?  (That would be kind of bad, I
think, because the user won't know that unicode is broken.)

Ray




More information about the cmucl-imp mailing list