Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • emarsden's avatar
    fe5959bd
    Improve error checking of defmacro lambda-lists. Checking for compatible · fe5959bd
    emarsden authored
    number of arguments was being disabled in the presence of a dotted
    lambda-list or when a &rest keyword is present. Change this so that the
    test is only disabled for dotted lambda-lists. This modification fixes
    a number of bugs in source-transforms used by the compiler, since the
    macro lambda-list parsing code is used to determine whether a given
    source-transform can be applied to the form being compiled. When
    source-transforms were defined for functions with &rest parameters, the
    macro-lambda-list checking was not signalling an error when an inappropriate
    number of arguments were present in the form being compiled. This resulted
    in inappropriate use of the source-transform.
    
    This change reveals a problem in the gray-stream class definitions (now
    fixed).
    fe5959bd
    History
    Improve error checking of defmacro lambda-lists. Checking for compatible
    emarsden authored
    number of arguments was being disabled in the presence of a dotted
    lambda-list or when a &rest keyword is present. Change this so that the
    test is only disabled for dotted lambda-lists. This modification fixes
    a number of bugs in source-transforms used by the compiler, since the
    macro lambda-list parsing code is used to determine whether a given
    source-transform can be applied to the form being compiled. When
    source-transforms were defined for functions with &rest parameters, the
    macro-lambda-list checking was not signalling an error when an inappropriate
    number of arguments were present in the form being compiled. This resulted
    in inappropriate use of the source-transform.
    
    This change reveals a problem in the gray-stream class definitions (now
    fixed).