ClassPackage: exclToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version


This is the class of condition signaled when 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]

 (in-package :user)

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

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

[In ANSI Lisp]

CL-USER(1): (load "")
CL-USER(2): My-foo

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

[In Modern Lisp]

cl-user(1): (load "")
cl-user(2): My-foo

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 #<process Initial Lisp Listener>
[1] cl-user(4): :cont

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

cl-user(6): my-foo

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

Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version