ClassPackage: exclToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 9.0
Unrevised from 8.2 to 9.0.
8.2 version

fasl-casemode-mismatch

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 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 #<process Initial Lisp Listener>
[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.


Copyright (c) 1998-2012, Franz Inc. Oakland, CA., USA. All rights reserved.
Documentation for Allegro CL version 9.0. This page was not revised from the 8.2 page.
Created 2012.5.30.

ToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 9.0
Unrevised from 8.2 to 9.0.
8.2 version