- May 22, 2007
-
-
rtoy authored
think this was causing PCL to think that (complex double-double-float) was not a subtype of complex.
-
- Jun 30, 2006
-
-
rtoy authored
The merge is from the tag "double-double-irrat-end". The double-double branch is now obsolete. The code should build without double-double support (tested on sparc) as well as build with double-double support (tested also on sparc).
-
- Oct 12, 2004
-
-
rtoy authored
From a bug reported by Bruno Haible, cmucl-imp, 2004-10-12: (error 'undefined-condition-class)
-
- Aug 05, 2003
-
-
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.
-
- Jun 06, 2003
-
-
toy authored
functionality is still missing, but Lisp streams and Gray streams should behave unchanged.
-
- Apr 26, 2003
-
-
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 * *).
-
- Apr 13, 2003
-
-
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.
-
- Mar 26, 2003
-
-
gerd authored
-
- Mar 22, 2003
-
-
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.
-
- Nov 14, 2002
-
-
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).
-
- Nov 13, 2002
-
-
toy authored
Noted by Brian Spilsbury.
-
- Sep 19, 2002
-
-
pmai authored
by Brian Spilsbury.
-
- Jul 10, 2002
-
-
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.
-
- Dec 06, 2001
-
-
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.
-
- Aug 08, 2000
-
-
dtc authored
correctly calculate the CPL for the condition classes.
-
- Aug 07, 2000
-
-
dtc authored
-
- Aug 06, 2000
-
-
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.
-
- May 02, 2000
-
-
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.
-
- Jan 10, 2000
-
-
dtc authored
type, rather use a integer union type which is handled far better by the type system; from Raymond Toy.
-
- Jul 24, 1998
-
-
dtc authored
remove unnecessary conditionals.
-
- May 04, 1998
-
-
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.
-
- Mar 21, 1998
-
-
dtc authored
-
- Nov 04, 1997
-
-
dtc authored
-
- Nov 01, 1997
-
-
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.
-
- Apr 09, 1997
-
-
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.
-
- Apr 01, 1997
-
-
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.
-
- Oct 31, 1994
-
-
ram authored
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Feb 10, 1994
-
-
wlott authored
Fixed simple-string to list string in the inherits list.
-
- Aug 30, 1993
-
-
ram authored
Export MAKE-LAYOUT, MAKE-UNDEFINED-CLASS, INSURED-FIND-CLASS, REDEFINE-LAYOUT-WARNING. Change layout printer to print the proper name instead of the class. In (setf find-class), clobber the info type compiler-layout if set.
-
- Aug 24, 1993
-
-
ram authored
-
- Aug 22, 1993
-
-
wlott authored
to dylan array cleanup.
-
- Jul 21, 1993
-
-
ram authored
compiler will transform to a load-time fixup that won't have run yet in cold load. Instead, refer to a constant layout.
-
- Jul 20, 1993
-
-
ram authored
-
- Jul 17, 1993
-
-
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.
-
- Jul 10, 1993
-
-
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.
-
- May 19, 1993
-
-
wlott authored
-
- May 13, 1993
- Apr 04, 1993
-
-
wlott authored
-