ClassPackage: exclToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 8.1
Unrevised from 8.0 to 8.1.
8.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-2009, Franz Inc. Oakland, CA., USA. All rights reserved.
Documentation for Allegro CL version 8.1. This page was not revised from the 8.0 page.
Created 2009.7.29.

Allegro CL version 8.1
Unrevised from 8.0 to 8.1.
8.0 version