[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