Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • pw's avatar
    9792d475
    From Eric Marsden: · 9792d475
    pw authored
      - change the FASL file format to store fasl-file version as uint32,
        rather than a single octet. This requires small changes to the
        FASL dumper and two FOP functions
      - change the FASL-FILE-FORMAT to #x18d for each of the backends
      - change the byte-code version number to #x18d
      - make the FASL file version checking errors continuable
      - add a variable CL::*SKIP-FASL-FILE-VERSION-CHECK* that avoids the
        version check
      - add a bootfile that bootstraps this change
    
    Loading an old FASL file results in the following behaviour:
    
    ,----
    | Error in function COMMON-LISP::CHECK-VERSION:
    |    #<Stream for file "/usr/local/lib/cmucl/lib/subsystems/defsystem-library.x86f">
    |    was compiled for fasl-file version 3E3F02, but this is version 18D
    | Restarts:
    |   0: [CONTINUE] Load #<Stream for file "/usr/local/lib/cmucl/lib/subsystems/defsystem-library.x86f"> anyway
    |   1:            Return NIL from load of #p"modules:defsystem-library".
    |   2:            Return NIL from load of "home:.cmucl-init".
    |   3: [ABORT   ] Skip remaining initializations.
    `----
    9792d475
    History
    From Eric Marsden:
    pw authored
      - change the FASL file format to store fasl-file version as uint32,
        rather than a single octet. This requires small changes to the
        FASL dumper and two FOP functions
      - change the FASL-FILE-FORMAT to #x18d for each of the backends
      - change the byte-code version number to #x18d
      - make the FASL file version checking errors continuable
      - add a variable CL::*SKIP-FASL-FILE-VERSION-CHECK* that avoids the
        version check
      - add a bootfile that bootstraps this change
    
    Loading an old FASL file results in the following behaviour:
    
    ,----
    | Error in function COMMON-LISP::CHECK-VERSION:
    |    #<Stream for file "/usr/local/lib/cmucl/lib/subsystems/defsystem-library.x86f">
    |    was compiled for fasl-file version 3E3F02, but this is version 18D
    | Restarts:
    |   0: [CONTINUE] Load #<Stream for file "/usr/local/lib/cmucl/lib/subsystems/defsystem-library.x86f"> anyway
    |   1:            Return NIL from load of #p"modules:defsystem-library".
    |   2:            Return NIL from load of "home:.cmucl-init".
    |   3: [ABORT   ] Skip remaining initializations.
    `----