Skip to content
  1. Oct 27, 2012
    • Raymond Toy's avatar
      * src/compiler/byte-comp.lisp · b55fd57b
      Raymond Toy authored
         * Bump fasl version for release
       * src/bootfiles/20c/boot-20d.lisp
         * Boot file for building the release with a new fasl version.
      b55fd57b
  2. Nov 04, 2011
  3. Oct 22, 2011
  4. Sep 25, 2011
  5. Jul 31, 2010
    • rtoy's avatar
      Since it's about time, and while we're doing the cross-compile anyway, · 472cf0e6
      rtoy authored
      let's update the fasl version to 20b.
      
      To build this, use boot-2010-07-1-cross as the cross-compile script
      and -B src/bootfiles/20a/boot-2010-07-1.lisp for cross-build-world.sh.
      
      If there are any restarts, choose the clobber-it restart.
      
      bootfiles/20a/boot-20b.lisp:
      o Bootstrap the change to fasl version 20b.
      
      bootfiles/20a/boot-2010-07-1.lisp:
      o Load boot-20b.lisp.
      
      compiler/byte-comp.lisp:
      o Update byte-fasl-file-version to 20b.
      472cf0e6
  6. Apr 20, 2010
  7. Mar 19, 2010
  8. Sep 09, 2009
  9. Jun 11, 2009
  10. Mar 11, 2009
  11. Jan 30, 2008
  12. Nov 13, 2006
    • rtoy's avatar
      Update fasl file version to 19d for snapshots. · 79a39dbc
      rtoy authored
      compiler/byte-comp.lisp:
      o Update version
      
      bootfiles/19c/boot-19d.lisp:
      o Boot file for updating the fasl version.  Use this if building from
        a snapshot.  Or you can use a 19d build for this.
      79a39dbc
  13. Aug 30, 2005
    • rtoy's avatar
      Update to 19c fasl file version. · 725ba7ca
      rtoy authored
      bootfiles/boot-19c.lisp:
      o Bootfile for 19c.
      
      compiler/byte-comp.lisp:
      o Make the fasl file version #x19c
      
      tools/build.sh:
      o Update bootfile directory to 19b.
      
      Use boot-19c.lisp to bootstrap this change.
      725ba7ca
  14. May 17, 2005
  15. Oct 09, 2003
    • gerd's avatar
      (compile nil '(lambda (a c) · 423f4765
      gerd authored
      		(declare (notinline 1+))
      		(declare (optimize (speed 0)))
      		(declare (optimize (debug 0)))
      		(unwind-protect
      		    (block b5 (1+ (unwind-protect
      	                           (if a (return-from b5 -30179678) c)))))))
      	 => assertion failed (EQUAL (C::BYTE-BLOCK-INFO-START-STACK
      	                            EXTENSIONS:INFO)
      
      	* src/compiler/byte-comp.lisp (walk-block): #+nil an
      	assertion.  Reported by Paul Dietz.
      423f4765
    • gerd's avatar
      (funcall (compile nil · 2e460b97
      gerd authored
      	                  '(lambda (a b c)
      	                      (declare (optimize (speed 0) (debug 0)))
      	                        (logcount
      	                          (let ((v3 (if a (block b3 a) b)))
      	                          c))))
      	         46611128 -69 -133775)
      	=> segmentation violation
      
      	* src/compiler/byte-comp.lisp (output-branch): Always emit
      	conditional branches even if they go to the following instruction,
      	because conditional branches have the side effect of popping the
      	eval stack.  Reported by Paul Dietz.
      2e460b97
  16. Sep 26, 2003
  17. Sep 25, 2003
  18. Sep 04, 2003
  19. Sep 02, 2003
  20. Aug 25, 2003
    • gerd's avatar
      Dynamic-extent support for x86. Use boot16.lisp for · f3fe0b8d
      gerd authored
      	bootstrapping.
      
      	* src/bootfiles/18e/boot16.lisp: New file.
      
      	* src/docs/cmu-user/extensions.tex (Dynamic-Extent Declarations):
      	New section.
      
      	* src/compiler/x86/macros.lisp (dynamic-extent-allocation):
      	Rename from stack-allocation, save an instruction.
      	(allocation): Don't call trust-dynamic-extent-declaration-p.
      
      	* src/compiler/x86/alloc.lisp (%dynamic-extent-start)
      	(%dynamic-extent-end): New vops.
      	(list-or-list*): Add constant arg dynamic-extent.
      	(fixed-alloc): Likewise.
      
      	* src/compiler/generic/vm-ir2tran.lisp (do-fixed-alloc): Call
      	fixed-alloc with dynamic-extent arg.
      
      	* src/compiler/hppa/alloc.lisp (%dynamic-extent-start)
      	(%dynamic-extent-end): Add dummy vops.
      	* src/compiler/mips/alloc.lisp:
      	* src/compiler/ppc/alloc.lisp:
      	* src/compiler/alpha/alloc.lisp:
      	* src/compiler/rt/alloc.lisp: Likewise.
      
      	* src/compiler/seqtran.lisp (mapper-transform): Add dynamic-extent
      	declarations.
      
      	* src/compiler/node.lisp (continuation): Add slot
      	dynamic-extent.
      	(cleanup): Add :dynamic-extent to type of slot kind.
      
      	* src/compiler/knownfun.lisp (dynamic-extent-closure-safe):
      	New attribute.
      
      	* src/compiler/ir2tran.lisp (ir2-stack-allocate): New function.
      	(ir2-convert-closure): Handle dynamic-extent case differently.
      	(%dynamic-extent, %dynamic-extent-start, %dynamic-extent-end)
      	<ir2-convert>: New optimizers.
      	(list, list*): Handle dynamic-extent.
      
      	* src/compiler/ir1tran.lisp (*trust-dynamic-extent-declarations*)
      	(*dynamic-extent-trace*): New variables.
      	(trust-dynamic-extent-declaration-p): New function.
      	(process-dynamic-extent-declaration)
      	(dynamic-extent-allocation-p, dynamic-extent-closure-args)
      	(gen-%dynamic-extent, with-dynamic-extent): New functions/macros.
      	(ir1-convert-combination): Handle dynamic-extent closure args.
      	(ir1-convert-combination-args): Add arg dynamic-extent-args.
      	Set continuation-dynamic-extent for these args.
      	(process-dynamic-extent-declaration): Rewritten.
      	(ir1-convert-dynamic-extent-bindings): New function.
      	(ir1-convert-special-bindings): Call it.
      	(ir1-convert-lambda-body): Handle dynamic-extent rest lists.
      	(let): Handle dynamic-extent vars.
      	(let*): Call ir1-convert-dynamic-extent-bindings.
      
      	* src/compiler/globaldb.lisp (*trust-dynamic-extent-declarations*)
      	(trust-dynamic-extent-declaration-p): Remove.
      
      	* src/compiler/fndb.lisp: Add dynamic-extent-closure-safe
      	attribute to assorted functions.
      
      	* src/compiler/envanal.lisp (environment-analyze): Call
      	find-dynamic-extent-safe-closures.
      	(emit-cleanups): Handle :dynamic-extent cleanups.
      	(*suppress-dynamic-extent-closure-safe*): New variable.
      	(mark-dynamic-extent-safe-closures)
      	(find-dynamic-extent-safe-closures): New functions.
      
      	* src/compiler/byte-comp.lisp (compute-produces-and-consumes):
      	Treat :dynamic-extent like :tagbody cleanups.
      
      	* src/code/exports.lisp ("C"): Export ir2-stack-allocate,
      	%dynamic-extent, %dynamic-extent-start, %dynamic-extent-end.
      
      	* src/code/byte-interp.lisp (%dynamic-extent):
      	(%dynamic-extent-start, %dynamic-extent-end): New functions.
      	(toplevel): Enable block compilation.
      f3fe0b8d
  21. Jul 16, 2003
  22. May 26, 2003
    • gerd's avatar
      Fix code signaling type-errors which did not have :datum and/or · 98ee6882
      gerd authored
      	:expected-type, which lead to the conditions which were not
      	displayable because the corresponding condition slots are
      	not bound.
      
      	* src/code/seq.lisp (coerce):
      	* src/code/list.lisp (nreconc):
      	* src/code/interr.lisp (invalid-array-index-error):
      	* src/code/bignum.lisp (bignum-to-float):
      	* src/code/byte-interp.lisp (%byte-car, %byte-cdr): Fix
      	type-errors to include :datum and/or :expected-type.
      
      	Add &more handling to the byte-compiler and -interpreter.
      	Reported by Paul Werkowski on cmucl-imp.
      
      	* src/compiler/byte-comp.lisp (make-xep-for): Handle &more.
      
      	* src/code/byte-interp.lisp (hairy-byte-function): Change
      	type of rest-arg-p slot.
      	(invoke-xep): Handle &more.
      98ee6882
  23. Apr 11, 2003
    • emarsden's avatar
      · c1a797db
      emarsden authored
       The LAMBDA-ENVIRONMENT of a node is sometimes nil.
      c1a797db
  24. Feb 12, 2003
    • emarsden's avatar
      Update the fasl-file-version and byte-fasl-file-version to #x18e, in · 7a2c356d
      emarsden authored
      preparation for the 18e release. This change makes it necessary to
      intervene during the rebuild: when loading the FASL files, a
      continuable error related to fasl-file-version mismatch will be
      signalled. Say
      
         (setq cl::*skip-fasl-file-version-check* t)
      
      then select the CONTINUE restart, and the build should proceed without
      problems.
      7a2c356d
  25. Nov 14, 2002
    • toy's avatar
      Bug and solution from Eric Marsden: · c004aacc
      toy authored
      The function GENERATE-BYTE-CODE-FOR-REF is calling COMBINATION-ARGS on
      the return value of CONTINUATION-DEST. In the situation that I have
      run into, the return value is of type MV-COMBINATION instead of
      COMBINATION, so an error occurs.
      
      Changing the COMBINATION-ARGS to BASIC-COMBINATION-ARGS seems to fix
      the problem...
      c004aacc
  26. Mar 31, 2002
    • pw's avatar
      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
  27. Sep 26, 2000
  28. Jun 14, 2000
  29. Feb 25, 1999
  30. Jan 20, 1998
  31. Oct 31, 1994
  32. Mar 19, 1994
  33. Mar 07, 1994
  34. Feb 11, 1994
  35. Sep 01, 1993
  36. Aug 24, 1993
    • ram's avatar
      Stack analysis didn't really work in the presence of non-local exits. Two · 0168d754
      ram authored
      changes were needed:
        -- make NLX entry blocks look like successors of the
           corresponding entry block in life analysis.  This makes sure that any
           values live only at the NLX entry point are seen to be live at the place
           where the catcher is created.
        -- Push a :NLX-ENTRY marker on the stack when we are doing the simulation and
           we come to a place where we are going to recurse in the byte interpreter
           to create a catcher.  The marker protects values underneath it from being
           considered dead.  When we come to the corresponding breakup, we remove the
           marker.
      0168d754
  37. Aug 23, 1993
  38. Aug 20, 1993