fasl-casemode-mismatch

Class

Package: excl

This is the class of condition signaled an attempt is made to load a file compiled in case-insensitive-upper (ansi) into a case-sensitive-lower (modern) mode image. The blocking is done to avoid multiple symbols (uppercase and lowercase) intended to be identical from being created. A restart allows users to load the file anyway if desired.

The following illustrates what can happen when the condition is ignored and a file is loaded:

[Source File x.cl]

 (in-package :user)

 (eval-when (load)
   (defparameter My-foo "compiled"))

 (eval-when (eval)
   (defparameter My-foo "interpreted"))


[In ANSI Lisp]

CL-USER(1): (load "x.cl")
T
CL-USER(2): My-foo
"interpreted"

CL-USER(3): (compile-file "x.cl")
CL-USER(4): (load "x.fasl")
T
CL-USER(5): My-foo
"compiled"

[In Modern Lisp]

cl-user(1): (load "x.cl")
t
cl-user(2): My-foo
"interpreted"

cl-user(3): (load "x.fasl")
Error: #p"[...]/x.fasl" was compiled in
       case-insensitive-upper mode.  Continuing to load this file may result
       in symbol-name mismatches.
 [condition type: fasl-casemode-mismatch]

Restart actions (select using :continue):
 0: Continue loading /air/cox/work/acl/src/cl/src/x.fasl
 1: retry the load of x.fasl
 2: skip loading x.fasl
 3: Return to Top Level (an "abort" restart)
 4: Abort #
[1] cl-user(4): :cont
t

cl-user(5): My-foo
"interpreted"        ;;; Occurs because fasl file drops case-sensitivity

cl-user(6): my-foo
"compiled"

See case.htm for general information on case in Allegro CL.

The documentation is described in introduction.htm and the index is in index.htm.

Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.

Created 2000.10.5.