Skip to content
Snippets Groups Projects
  1. May 22, 2007
  2. Jun 30, 2006
  3. Oct 12, 2004
  4. Aug 05, 2003
    • 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
  5. Jun 06, 2003
  6. Apr 26, 2003
    • gerd's avatar
      CLASS-04.[2345], CONDITION-27-READER-IS-GENERIC, compiled. Avoid · ce55ee05
      gerd authored
      	constant-folding tests for generic-functionness.  Fix intersection
      	of function types and generic-function.
      
      	* src/code/type.lisp (type-intersection2): Handle intersection
      	of FUNCTION-TYPEs with non-FUNCTION-TYPEs, like generic-function.
      
      	* src/compiler/typetran.lisp (ir1-transform-type-predicate)
      	(typep): Handle generic-function type tests differently.
      
      	* src/code/class.lisp (class) <:complex-subtypep-arg1>:
      	New type method for function = (function * *).
      ce55ee05
  7. 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
  8. Mar 26, 2003
  9. 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
  10. Nov 14, 2002
    • toy's avatar
      From Eric Marsden: · ef58fd80
      toy authored
      The attached patch contains mostly trivial changes, including a few
      spelling corrections, plus changes to the types of condition raised in
      various cases. The only significant change, I believe, is
      
        - MAKE-DISPATCH-MACRO-CHARACTER no longer raises an error if the
          character already was defined to be a macro character; it
          overrides the previous definition (as per a suggestion from Drew
          McDermott on cmucl-help, dated 2002-09-22).
      ef58fd80
  11. Nov 13, 2002
  12. Sep 19, 2002
  13. Jul 10, 2002
    • toy's avatar
      From Eric Marsden: · 6e9a215f
      toy authored
       * (pcl:class-precedence-list (find-class 'null)) should have symbol
         occurring before list, as per CLHS.
      
       * minor changes to certain error conditions: eg trying to set
         DEFAULT-DIRECTORY to a non-existent directory should raise a
         condition of type FILE-ERROR. (Some of these changes are from
         Alexey Dejneka, via SBCL).
      
       * cleanup of some Hemlock-related symbols that shouldn't be exported
         when :no-hemlock is defined.
      6e9a215f
  14. Dec 06, 2001
    • pmai's avatar
      o This fixes Bug#122135 from the Debian bug-tracking system: The setf · 59fe11e7
      pmai authored
        function for LISP:FIND-CLASS now accepts and ignores the optional
        errorp and environment arguments, as per ANSI.
      o It now also allows nil as the new-value, as per ANSI, and
        dissociates any defined class from the given name.  Note that this
        only works as expected if the user also does a setf of PCL::FIND-CLASS
        with NIL.  LISP:FIND-CLASS and PCL::FIND-CLASS need tighter
        integration.
      59fe11e7
  15. Aug 08, 2000
  16. Aug 07, 2000
  17. Aug 06, 2000
    • dtc's avatar
      o Add the new function order-layout-inherits to correctly order the · 9793164a
      dtc authored
        layouts within the layout-inherits vector. This ensures that
        the compiler can generate inline type tests for hierarchical classes.
      
      o Modify the definition of the stream class to be hierarchical.
      
      o Have the condition classes correctly order their layout-inherits
        so that the hierarchical condition class is placed at it specified depth.
      
      o Enhance the compiler instance typep transform to generate inline
        type tests for hierarchical classes, not just for structures.
      9793164a
  18. May 02, 2000
    • dtc's avatar
      Implement a specializing CONS class as per issue CONS-TYPE-SPECIFIER:ADD. · 764ec478
      dtc authored
      The new cons-type which maintains the specialised CAR and CDR types:
      
      o Typep recurses, checking the respective car and cdr specialisations;
        two cons-types are type= if both their car and cdr types are type=.
      
      o Subtypep recurses, applying subtypep to the respective car and
        cdr types. If both sub-tests return true then the cons test returns
        true with a win only when both sub-tests win. If either sub-test
        returns false then the cons tests returns false with a win if either
        of sub-tests win.
      
      o Type-intersection is applied to the respective car and cdr types,
        and wins if both win.
      
      o The type-union of two cons-types handles cases for which either the
        respective car or cdr types are type=, in which case type-union is
        applied to the other type. This avoid returning an overly general result.
      
      o Ctype-of a cons object simply returns (cons * *); and does not attempt
        to recurse.
      
      o The compiler recursively checks the specialised type of the cons-type,
        which allows it to also use this type information to derive the result
        type car and cdr. Inline code is currently only generated when
        natively compiling.
      764ec478
  19. Jan 10, 2000
  20. Jul 24, 1998
  21. May 04, 1998
    • dtc's avatar
      Gray streams support: · 6c21ff8a
      dtc authored
      * Rename the 'stream structure class to sys:lisp-stream.
      * Add a new none hierarchical 'stream built-in class which inherits
        from: instance, t.
      * Hack in the new stream class as a mixin for the structure base
        lisp-stream class which now inherits from: stream, structure-object,
        instance, t.
      * Add a new 'fundamental-stream standard-class which includes 'stream
        as a mixin, and add PCL hacks to allow this to be redefined after PCL is
        loaded to be (defclass fundamental-stream (standard-object stream) ...).
      * Add appropriate support to the base stream functions to dispatch to
        the Gray stream functions for the handling of fundamental-streams.
        Some of the lisp-streams encapsulating CLOS streams still need
        a little work.
      6c21ff8a
  22. Mar 21, 1998
  23. Nov 04, 1997
  24. Nov 01, 1997
    • dtc's avatar
      Improved support for (complex single-float) and (complex double-float) · 4c3b1bb6
      dtc authored
      types. Adds storage classes to the backend for these so they can be
      stored in registers or on the stack without consing; new primitive
      types etc. Also adds (simple-array (complex {single,double}-float))
      array types to avoid consing and speed vectors operations.  All
      these changes are conditional on the :complex-float feature. More work
      is needed to exploit these changes: improving the type dispatch in the
      various function; maybe compiler transforms or more VOPs to handle
      common functions inline.
      4c3b1bb6
  25. Apr 09, 1997
    • dtc's avatar
      New value for the :pure option of defstruct, :substructure. Purify · 3d400aaa
      dtc authored
      will place the instance in the static space but still move the
      substructure lists and arrays to the RO space. This is needed for
      compact-info environments which cache the last name in the instance
      which needs to be scavenged, but the hash arrays can still be placed
      in the RO space (the cache name was not being scavenge which could
      cause a false hit if very unlucky). Shall uses this new option in
      compiler/globaldb.lisp after people have had a chance to bootstrap in
      this new support.
      3d400aaa
  26. Apr 01, 1997
    • dtc's avatar
      Support for some specialised signed array types: (signed-byte 8), · d5d4504f
      dtc authored
      (signed-byte 16), (signed-byte 30), (signed-byte 32).  These patches
      include the general support and the x86 backend support; more to
      follow. The important changes are conditional on the :signed-array
      feature so shouldn't affect the source without this feature. This work
      has been driven by Raymond Toy.
      d5d4504f
  27. Oct 31, 1994
  28. Feb 11, 1994
  29. Feb 10, 1994
  30. Aug 30, 1993
  31. Aug 24, 1993
  32. Aug 22, 1993
  33. Jul 21, 1993
  34. Jul 20, 1993
  35. Jul 17, 1993
    • ram's avatar
      Changed MAKE-LAYOUT to initialize (or arrange to initialize) the · 3df796c7
      ram authored
      LAYOUT-HASH so that structure layouts get initialized, etc.
      Add DIRECT-SUPERCLASSES slot to BUILT-IN-CLASS and initialize it.
      Add FIND-CLASS-CELL, CLASS-CELL-CLASS and CLASS-CELL-NAME to support
      forward references to redefinable or undefined classes.
      INFO TYPE CLASS is now a CLASS-CELL or NIL, and the class is actually
      in the CLASS-CELL-CLASS.
      Added some missing elements in the class-precedence lists of float and
      number.
      3df796c7
  36. Jul 10, 1993
    • ram's avatar
      Add stuff to initialize the layout hash. Add standard-class and · f1adfe69
      ram authored
      random-pcl-class for representing objects whose real class is a PCL
      class.  Add class-pcl-class slot for tracking the PCL class of any class.
      Changed layout invalidating to set to :INVALID, not T, since PCL uses T
      to mean valid.
      f1adfe69
  37. May 19, 1993
  38. May 13, 1993
  39. Apr 04, 1993
Loading