[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.