Class | Package: excl | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| 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.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version