shapiro@cse.buffalo.edu
May 8, 2001
Revised June 7, 2002
The main issue is that under OCL, predefined Lisp symbols used uppercase letters for their names, and the OCL readers automatically uppercased all non-escaped characters. ACL6, however, uses lowercase letters for the names of predefined symbols, and leaves non-escaped characters in the case in which they appear in the files. Note that all versions of Lisp leave characters within strings in the original case. Therefore, the basic approach is to use symbols instead of names, and to put symbols in lower- or mixed- case. That way, when ACL6 leaves the characters as is, that will be correct, and when OCL uppercases characters, that will be correct also.
(find-package :user)
is fine.
Use lower-case symbols instead of strings for packages or nicknames.
When exporting symbols from an :export
form within the
defpackage
form, use symbols in the keyword package, such as
(:export :foo)
, or, even better, use uninterned symbols, such
as (:export #:foo)
.
#+feature
and #-feature
the
feature
should be in lowercase. Note a
feature
is true, if it is a member of the list
*features*
.
The line
#+allegro (excl:set-case-mode :case-insensitive-upper)
Change lines such as
#+allegro (proclaim '(notinline LAST))
#+allegro (proclaim '(notinline last))
last
is the name of a predefined function.
Leave global variables, such as *NODES*
as is, but check
carefully for consistency in the source code.
If a function is defined with upper case or mixed case, leave it as
is, again checking for consistency.
Very important: Change all occurrences of T
to
t
and of NIL
to nil
.
The function (intern string package)
insists on a
string as its first argument. So instead of a form like (intern
"ATNIN" 'snepslog)
, use (intern (symbol-name :atnin)
:snepslog)
, or (intern (symbol-name '#:atnin)
:snepslog)
.
Compiler warnings are very helpful in finding uses of predefined function names in the wrong case, and inconsistent use of case in variables.
See also Franz's document section, Allegro CL Case Modes.