Skip to content
Snippets Groups Projects
  1. May 15, 2003
  2. May 14, 2003
  3. May 12, 2003
    • emarsden's avatar
      · 807d6f0f
      emarsden authored
      Add package locks. Bootfile boot8.lisp allows this to build without
      a cross-compile (or just select the CLOBBER-IT restart).
      
         - two extra PACKAGE-LOCK and PACKAGE-DEFINITION-LOCK slots added to
           the package structure. These can be modified using the
           EXT:PACKAGE-LOCK and EXT:PACKAGE-DEFINITION-LOCK accessors.
      
         - macro EXT:WITHOUT-PACKAGE-LOCKS that evaluates forms with all
           package locks disabled (this is done by binding the global
           variable CL::*ENABLE-PACKAGE-LOCKED-ERRORS*)
      
         - new PACKAGE-LOCKED-ERROR condition
      
         - in SETF-FDEFINITION-HOOK and in the DEFMACRO, DEFSTRUCT, DEFTYPE
           and DEFCLASS defining forms, check whether the definition would
           modify a package whose definition-lock is enabled, and signal a
           package-locked-error condition with restarts that allow you to
           unlock the package or ignore the lock
      
         - in EXPORT, UNEXPORT etc check whether the target package is
           guarded by a package-lock, and signal an error
      
         - disable package locks when loading a subsystem
      
         - disable package locks in certain areas of PCL and in the
           MAKE-LOAD-FORM support of the compiler, where code is generated
           inside system packages at runtime
      807d6f0f
  4. May 08, 2003
  5. May 01, 2003
  6. Apr 30, 2003
  7. Apr 29, 2003
    • emarsden's avatar
      · 4853a5a4
      emarsden authored
      Add missing return type declaration for DEFKNOWN form for %SET-FILL-POINTER.
      4853a5a4
    • gerd's avatar
      Fix for various ANSI test cases that fail when compiled because · bc84c059
      gerd authored
      	argument type checks are constant-folded away.
      
      	* src/compiler/ir1opt.lisp (constant-fold-call): In safe code,
      	don't constant-fold a call if one of its arguments requires
      	a type check.
      
      	* src/compiler/checkgen.lisp (probable-type-check-p): Return
      	true for :error type-checks if safety = 3.
      
      	Fix ENDP.* test failures when running tests compiled.  From SBCL,
      	basically.
      
      	* src/compiler/ir1opt.lisp (ir1-optimize, ir1-optimize-if):
      	Don't eliminate if-tests requiring type checks.
      
      	* src/compiler/checkgen.lisp (continuation-check-types):
      	Add parameter force-hairy.
      	(generate-type-checks): Call continuation-check-types with
      	force-hairy true for :error continuations in safe code.
      bc84c059
  8. Apr 27, 2003
  9. Apr 26, 2003
  10. Apr 25, 2003
    • toy's avatar
      · 414c3d96
      toy authored
      o Fix up the instruction printers for FRSTOR and FUCOM which used to conflict.
      o Clean up Lisp code a little.
      414c3d96
  11. Apr 24, 2003
    • gerd's avatar
      ANSI test fixes, interpreted code. · cac10792
      gerd authored
      	* src/compiler/ir1opt.lisp (recognize-known-call): Don't inline if
      	*converting-for-interpreter*.  This suppresses inlining when
      	generating IR1 for interpretation because no type-checking IR1 is
      	generated in this case, and the interpreter, internal-apply-loop
      	for instance, doesn't do type checks is some other way either.
      cac10792
  12. Apr 23, 2003
  13. Apr 22, 2003
    • gerd's avatar
      Fix ANSI test SPECIAL-OPERATOR.2. · d6beb116
      gerd authored
      	* src/compiler/ir1tran.lisp (declare) <ir1 translator>: Remove.
      	(ir1-convert): Signal an error for (declare ...).
      d6beb116
  14. Apr 21, 2003
  15. Apr 19, 2003
    • gerd's avatar
      Add destructuring support to &REST, &BODY, &WHOLE. Detected · 1ca1159c
      gerd authored
      	by Paul Dietz' ANSI tests.
      
      	* src/code/defmacro.lisp (parse-defmacro-lambda-list): Add
      	&parse-body, replacing &body (<body> <decls> <doc>).  Add
      	destructuring support to &rest, &body, &whole.
      
      	* src/code/eval.lisp (lambda-list-keywords): Add &parse-body.
      
      	* src/code/exports.lisp ("EXTENSIONS"): Export &parse-body.
      
      	* src/hemlock/table.lisp (do-words, with-folded-string):
      	* src/hemlock/macros.lisp (with-pop-up-display):
      	* src/compiler/macros.lisp (deftransform):
      	* src/compiler/ir1tran.lisp (symbol-macrolet, let, locally)
      	(let*, flet, labels) <ir1-translator>:
      	* src/code/package.lisp (do-symbols, do-external-symbols)
      	(do-all-symbols):
      	* src/code/macros.lisp (defun, prog, prog*, with-open-file)
      	(with-open-stream, with-input-from-string)
      	(with-output-to-string, do, do*):
      	* src/code/mach.lisp (gr-bind):
      	* src/code/extensions.lisp (do-anonymous, do-hash, defun-cached):
      	Use &parse-body instead of &body.
      1ca1159c
    • gerd's avatar
      Fix for LAMBDA.{27,28,29,50,32,33,34,35}, FLET.{57,58,59,60} · 6c329976
      gerd authored
      	test cases.
      
      	* src/compiler/locall.lisp (convert-more-call): Handle the
      	case of a null arglist.
      6c329976
  16. Apr 16, 2003
  17. Apr 15, 2003
  18. Apr 14, 2003
    • toy's avatar
      Allow the debugger to return a value from a function. Based on work · 9bf565fe
      toy authored
      posted to cmucl-imp by Fredrik Kuivinen and the implementation in
      SBCL.  A catch tag is wrapped around the function to which the
      debugger can throw to to return a new value.
      
      This is enabled only if debug is more important than both speed
      and space.
      9bf565fe
  19. Apr 13, 2003
    • gerd's avatar
      The SEQUENCE-COUNT type was previously used in c:fndb, but since · c1effa7a
      gerd authored
      	C::SEQUENCE-COUNT /= KERNEL::SEQUENCE-COUNT, it was an unknown
      	type.  Please read boot4.lisp.
      
      	* src/code/exports.lisp ("KERNEL"): Export sequence-count.
      
      	* src-types/bootfiles/18e/boot4.lisp: New file.
      
      
      	Make compute-effective-slot-definition AMOP compliant.
      	Patch from Kevin Rosenberg.
      
      	* src/pcl/std-class.lisp (compute-slots): Pass slot name
      	to compute-effective-slot-definition.
      	(compute-slots): Likewise.
      	(compute-effective-slot-definition): Add parameter slot-name.
      
      	* src/pcl/generic-functions.lisp (compute-effective-slot-definition):
      	Add second parameter slot-name.
      
      
      	Allow non-keyword keyword names in lambda lists.  This fixes test
      	cases STRUCTURE-BOA-TEST-15/[1-8], and FLET.30.
      
      	* src/compiler/node.lisp (arg-info): Accept non-keyword
      	keyword names.
      
      	* src/code/type.lisp (key-info): Likewise.
      
      
      	Fix type system bugs detected by Paul Dietz' test suite
      	This is to a large extent a port from SBCL.
      
      	* src/code/type.lisp: Mostly rewritten with code ported from
      	SBCL.
      
      	* src/compiler/typetran.lisp (ir1-transform-type-predicate):
      	Return nil if type is *empty-type*.
      	(source-transform-negation-typep)
      	(source-transform-intersection-typep): New functions.
      	(source-transform-array-typep): Handle unknown array element types.
      	(typep): Add handling of negation and intersection types.
      
      	* src/compiler/srctran.lisp (make-canonical-union-type):
      	Simplify, now that #'type-union is smarter.
      	(ir1-transform-<-helper): Give up on non-numeric, non-member
      	types.
      
      	* src/compiler/checkgen.lisp (type-test-cost): Add a case
      	for intersection-type.
      	(values-types-asserted): Don't use coerce-to-values, see
      	the comment there.
      
      	* src/compiler/array-tran.lisp (array-dimension): Accept
      	:maybe as array-type-complexp.
      
      	* src/code/pred.lisp (%%typep): Add handling of
      	negation-types and intersection-types.  Change cases of
      	hairy-types, union-types, and arrays with unknown element type.
      
      	* src/code/exports.lisp ("KERNEL"): Export negation-type,
      	negation-type-type, intersection-type, intersection-type-types.
      
      	* src/code/class.lisp (sealed-class-intersection):
      	Return one value.
      	(class :simple-intersection): Return one value, return nil in
      	the default case.
      	(class :complex-subtypep-arg2): New type method.
      c1effa7a
Loading