Skip to content
Snippets Groups Projects
  1. Aug 05, 2003
    • toy's avatar
      Remove the x86 conditionalization of the dynamic-extent arg to · b359933a
      toy authored
      listify-rest-args.
      b359933a
    • gerd's avatar
      DYNAMIC-EXTENT rest args. Currently for x86 only. Speed must be · 88a53c80
      gerd authored
      	greater than safety for stack-allocation to actually happen, which
      	is what ACL defaults to.  Use boot15.lisp to bootstrap.
      
      	* src/bootfiles/18e/boot15.lisp: New file.
      
      	* src/compiler/node.lisp (leaf): Add slot dynamic-extent.
      
      	* src/compiler/x86/macros.lisp (load-size, inline-allocation)
      	(not-inline-allocation): Extract from function allocation.
      	(stack-allocation): New function.
      	(allocation): Add arg dynamic-extent.  Call stack-allocation
      	if dynamic-extent is true, and speed > safety.
      
      	* src/compiler/x86/call.lisp (listify-rest-args): Add
      	constant third arg, and pass it to allocation.
      
      	* src/code/class.lisp (find-layout): Put part in
      	#-bootstrap-dynamic-extent.
      
      	* src/compiler/ir1tran.lisp (process-dynamic-extent-declaration):
      	New function.
      	(*suppress-dynamic-extent-declaration*): New variable.
      	(process-1-declaration): Call process-dynamic-extent-declaration.
      	(convert-more-entry) [#+x86]: Call %listify-rest-args with
      	third arg dynamic-extent.
      
      	* src/compiler/eval-comp.lisp (%listify-rest-args) [#+x86]:
      	* src/compiler/fndb.lisp (%listify-rest-args) [#+x86]: Add
      	third arg for dynamic-extent.
      
      	Possibly temporary workaround for SBCL build problems caused by a
      	situation like
      
      	  (defvar *foo*)
      	  (declaim (type foo *foo*))
      	  (defstruct foo)
      	  (defun foo ()
      	    (let ((*foo* (some-unknown-function)))
      	       ...))
      
      	When a type check is being generated for the local binding of
      	*foo*, *foo*'s type in the info database is still an unknown-type.
      	The typep transform generates a call to %instance-typep, because
      	it knows that foo is an instance.  The deftransform for
      	%instance-typep does not run, so an actual call to %instance-typep
      	is being generated.  A function %instance-typep doesn't exist at
      	run time, though.
      
      	* src/compiler/ir1tran.lisp (find-free-variable): If the
      	variable's type is an unknown-type, reparse it, and change the
      	type in the info database.
      88a53c80
  2. Aug 02, 2003
    • gerd's avatar
      (deftype string-and-number () '(cons string (cons number null))) · 63c1a0fe
      gerd authored
      	(defun bug1 (x)
      	  (declare (type string-and-number x))
         	  (the number (car (reverse x))))
      
      	(bug1 (list "one" 1))
      	 => Type error 1 is not of type number.
      
      	Reported by Luke Gorrie on cmucl-imp.
      
      	* src/compiler/knownfun.lisp (result-type-first-arg/reverse)
      	(reversed-cons-type): New functions.
      
      	* src/compiler/fndb.lisp (nreverse, reverse): Use
      	result-type-first-arg/reverse.
      63c1a0fe
  3. Jul 30, 2003
  4. Jul 19, 2003
  5. Jul 16, 2003
  6. Jul 01, 2003
  7. Jun 06, 2003
  8. Apr 29, 2003
    • emarsden's avatar
      · 4853a5a4
      emarsden authored
      Add missing return type declaration for DEFKNOWN form for %SET-FILL-POINTER.
      4853a5a4
  9. Apr 27, 2003
  10. Apr 26, 2003
  11. Apr 23, 2003
  12. Mar 22, 2003
    • gerd's avatar
      * bootfiles/18e/boot[12].lisp: Bootstrap files for the lisp:class · a1e3ed93
      gerd authored
      = pcl:class part.  To get it booted from 18e, cross-compile using
      boot1.lisp as bootstrap.lisp in pmai's build scripts, then do a
      normal compile with boot2.lisp as bootstrap.lisp with the
      resulting Lisp.
      
      * code/byte-interp.lisp, code/defstruct.lisp, code/describe.lisp:
      * code/error.lisp, code/exports.lisp, code/hash-new.lisp:
      * code/hash.lisp, code/macros.lisp, code/misc.lisp:
      * code/package.lisp, code/pred.lisp, code/sharpm.lisp, code/type.lisp:
      * compiler/dump.lisp, compiler/fndb.lisp, compiler/globaldb.lisp:
      * compiler/proclaim.lisp, compiler/typetran.lisp, compiler/xref.lisp:
      * compiler/generic/primtype.lisp, compiler/generic/vm-type.lisp:
      Changes for to use kernel::class etc.
      
      * code/class.lisp (toplevel): Shadow class, built-in-class etc.
      (class): Give it conc-name %class-.
      (toplevel) [#+bootstrap-lisp-class=pcl-class]: Define old accessors.
      (everywhere): Use new class accessors.
      
      * compiler/generic/vm-fndb.lisp (%make-instance): Change from
      unsafe to flushable and movable.
      
      * code/ntrace.lisp (expand-trace, untrace): Changes for method
      tracing.
      
      * code/profile.lisp (profile, profile-all, unprofile): Method
      profiling.
      
      * pcl/*.text, pcl/bench.lisp, pcl/extensions.lisp:
      * pcl/fast-init.lisp, pcl/precom1.lisp, pcl/precom4.lisp:
      * pcl/structure-class.lisp, pcl/user-instances.lisp:
      Removed.
      
      * tools/pclcom.lisp: Changes for my PCL and lisp:class =
      pcl::class.
      a1e3ed93
  13. Mar 21, 2003
  14. Feb 28, 2003
  15. Feb 15, 2003
  16. Feb 14, 2003
  17. Feb 09, 2003
    • emarsden's avatar
      Tell the compiler that READ-DELIMITED-LIST always returns a list. · 2f2d7cca
      emarsden authored
      Compiling the following function generates an efficiency note; with
      the patch the note disappears.
      
        (defun foo ()
          (declare (optimize speed))
          (let* ((stream (make-string-input-stream "0 1 2 3)"))
                 (read (read-delimited-list #\) stream)))
            (find 2 read)))
      
      ; (find 2 read)
      ; Note: Unable to optimize due to type uncertainty:
      ; The second argument is a (or null vector cons), not a simple-base-string.
      
      Problem and fix from Tony Martinez via SBCL.
      2f2d7cca
  18. Jan 29, 2003
    • toy's avatar
      Entomotomy bug array-in-bounds-p-integer-args · da74e837
      toy authored
      Defknown was limiting the subscripts in be fixnums.  Change that to be
      integers.
      da74e837
    • toy's avatar
      Entomotomy bug defknowns-for-bit-array-operators-wrong: · a277c8ce
      toy authored
      Defknowns for bit-and and friends were disallowing an explicit
      optional arg of NIL.  Allow it.
      a277c8ce
    • toy's avatar
      From Gerd Moellmann: · 80fe23bf
      toy authored
      o Entomotomy bug optional-environment-arg-mistakes:
      
        Recognize the optional environment argument for typep, subtypep,
        upgraded-array-element-type, upgraded-complex-part-type, and various
        other functions that take an optional environment arg.  Currently,
        all we do with the environment is ignore it.
      
      o Entomotomy bug defknowns-for-bit-array-setters-wrong
      
        Defknowns for %bitset and %sbitset was only allowing vectors, not
        multidimensional arrays.
      80fe23bf
  19. Dec 29, 2002
    • pmai's avatar
      Entomotomy Bug: adjust-array-initial-contents-type-wrong · 6f8f17af
      pmai authored
      The :initial-contents argument to adjust-array isn't restricted to be a list,
      as the defknown entry erroneously claims.  This fix requires an L2 rebuild
      (or loading of the changed defknown prior to rebuilding), in order for the
      information to propagate properly.
      6f8f17af
  20. Nov 13, 2002
  21. Mar 07, 2002
  22. Feb 22, 2002
  23. Oct 16, 2001
  24. Jul 08, 2001
    • pw's avatar
      From Paul Foley: · c9918062
      pw authored
      	Implements READ- and WRITE-SEQUENCE on Gray streams, via
      	STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE, and provides a :class
      	keyword to OPEN which lets it return Gray streams classes wrapped
      	around lisp-streams.
      
      	Load exports.lisp before compiling with this set of changes.
      c9918062
  25. May 27, 2001
  26. Apr 12, 2001
    • pw's avatar
      From Ray Toy: · 9fbccc50
      pw authored
      Here is the patch that makes the propagate-float-type,
      propagate-fun-type, and constrain-float-type features the default.
      All old code is removed.
      
      If you recompile, you should probably remove these features, just to
      be sure (caught a few mistakes that way).
      9fbccc50
  27. Apr 10, 2001
    • pw's avatar
      From Ray Toy: · b9555b70
      pw authored
      ANSI CL says LOAD takes an :external-format keyword to specify the
      format of the file or stream being loaded.  CMUCL already had the
      :contents keyword that does this, but its default was nil instead of
      :default.
      
      The appended patch replaces :contents with :external-format.  This
      will break any code that uses :contents.
      b9555b70
  28. Mar 13, 2001
  29. Aug 24, 2000
  30. Jul 10, 2000
  31. Jul 09, 2000
    • dtc's avatar
      Correct the declared result types of a few functions: · 1f15f429
      dtc authored
      o Close does not return a stream, declare is as type t.
      o Disassemble does not return values, declare it as (values).
      o Inspect returns an object, declare it as type t.
      o Room does not return a value, declare it as (values).
      o Dribble does not return a value, declare it as (values).
      1f15f429
  32. Feb 25, 2000
    • dtc's avatar
      From Peter Van Eynde's branch: · fbea2049
      dtc authored
      o The to-readtable argument to copy-readtable may be nil in which case a
        new readtable is created.
      o Implement issue GET-MACRO-CHARACTER-READTABLE, the readtable argument
        of get-macro-character and get-dispatch-macro-character is a readtable
        designator and may be nil in which case it denotes the standard
        readtable.
      fbea2049
  33. Feb 02, 1999
  34. Jan 15, 1999
Loading