[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Load hacque] [Uppercase filenames]
Works for me:
> (require "~/sys/homes/ram/Foo.t")
;Loading //leo/yale/ram/Foo.t into USER-ENV
...
> (require "~/sys/homes/ram/Foo.t")
;Already loaded //leo/yale/ram/Foo.t
#{Undefined-value 5 File already loaded}
> (require "~/sys/homes/ram/foo.t")
** Error: (OPEN '#[Filename () "~/sys/homes/ram" "foo" "t"] 'IN) failed
** Type (RET) or (RET filespec) to retry.
> (require "~/sys/homes/ram/Foo:bar.t")
;Loading //leo/yale/ram/Foo:bar.t into USER-ENV
...
> (require "~/sys/homes/ram/Foo:bar.t")
;Already loaded //leo/yale/ram/Foo:bar.t
#{Undefined-value 6 File already loaded}
The problem you and Seth are facing is that Aegis uses : characters in
filenames to denote capital letters (and also to quote leading dots). (This
is an Aegis bug.) I suspect either PORT-NAME or PORT-TRUENAME (or
EXPAND-FILENAME) uses an Aegis system call (such as NAME_$RESOLVE! or
IOS_$INQ_NAME or something), which screws up on files with colons or caps in
them.
Try tracing PORT-TRUENAME (called by EXPAND-FILENAME) and PORT-NAME to see if
they are converting your colons. (They are in T-IMPLEMENTATION-ENV). If so,
you can either (a) configure Aegis (and the DM) not to use : to quote
uppercase letters, leaving both : and uppercase letters as they are, or (b)
wrap something around PORT-TRUENAME that undoes the damage. One of the T
implementors should be able to help you with (b).
Send me mail if you need help with this.
-- Ashwin.