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

incompatible-conformance-change-warning

This warning (a subclass of warning) is signaled when the compiler encounters code containing calls to functions named by the symbols cl:single-float, cl:double-float, or cl:simple-string. These functions are no longer defined. It was always improper to define functions not specified in the Common Lisp standard on symbols in the common-lisp package.

In addition to signaling this warning, the usual warning about a call to an undefined function will be signaled by the compiler. The new warning is intended to make clear why previously defined functions are now undefined. Note that this warning is not signaled when a call is actually made (rather than code containing such a call is compiled).

The warning will not occur if new functions have been defined. Defining such a function requires suppressing the package lock restriction, see Package locking and package definition locking and its subsections in packages.htm. The warning can also be suppressed in the usual way by the condition system (see, for example, handler-case and handler-bind).

Here is a trancript showing the warning being signaled:

cl-user(1): (shell "cat warn.cl")

(defun foo (x)
  (double-float x)
  (bar x))
0
cl-user(2): :cf warn
;;; Compiling file warn.cl
; While compiling foo:
Warning: Call to double-float was removed from Allegro CL for conformance to
         the ANSI spec.  Please use "(coerce ... 'double-float)" instead.  See
         also a description of the conformance issue for double-float in the
         Release Notes.
;;; Writing fasl file warn.fasl
;;; Fasl write complete
Warning: While compiling these undefined functions were referenced:
         bar from position 2 in warn.cl
         double-float from position 2 in warn.cl
cl-user(3): (setq excl::*break-on-warnings* t)
t
cl-user(4): :cf
;;; Compiling file warn.cl
Break: Call to double-float was removed from Allegro CL for conformance to the
       ANSI spec.  Please use "(coerce ... 'double-float)" instead.  See also
       a description of the conformance issue for double-float in the Release
       Notes.

Restart actions (select using :continue):
 0: return from break.
 1: retry the compilation of warn.cl
 2: continue compiling warn.cl but generate no output file
 3: Return to Top Level (an "abort" restart).
 4: Abort entirely from this (lisp) process.
[1c] cl-user(5): :up
Evaluation stack:

 ->(break "~a" #<incompatible-conformance-change-warning @ #x10b8a8b2>)
   (warn incompatible-conformance-change-warning :format-control ...)
   ((flet comp::qc-do-a-function-call comp::note-undefined-function)
      double-float)
   (comp::qc-do-a-function-call #<call double-float @ #x10b8a42a> nil ...)
   (comp::qc-compile #<call double-float @ #x10b8a42a> nil)

... more older frames ...
[1c] cl-user(6): 


Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
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