- Apr 16, 2003
-
-
toy authored
ansi-tests.
-
gerd authored
The type system is now as fast as it were before. * src/code/type.lisp: Collect type-class and structure definitions at the beginning of the file to avoid compiler notes and get slot accessor inlining. (with-types-array, *ctype-arrays*): Removed. (simplify-unions): Rewritten simplify-union-types. (simplify-intersections): Rewritten simplify-intersection-types. (%type-union2): Removed, inlined in type-union2. (%type-intersection2): Removed, inlined in type-intersection2.
-
- Apr 15, 2003
-
-
gerd authored
* src/code/type.lisp (*ctype-arrays*): New variable. (with-types-array): New macro. (simplify-union-types, simplify-intersection-types): Use it, return lists. (%type-union, %type-intersection): Handle lists instead of vectors returned by the simplification functionts.
-
- Apr 14, 2003
-
-
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.
-
toy authored
operation and operands that signalled the floating-point exception so we can report it.
-
- Apr 13, 2003
-
-
gerd authored
Declaim inline.
-
emarsden authored
-
gerd authored
* src-types/code/error.lisp (condition-reader-function): Loop over actual initargs first because these determine how slots are initialized. (compute-effective-slots): Don't duplicate slots of the class whose effective slots are computed.
-
gerd authored
ALL-EXPORTED-CL-CLASS-NAMES-ARE-VALID. * src-types/code/unix.lisp (%directory): Struct renamed from directory, give it a :conc-name and :constructor for compatibility. * src-types/code/unix-glibc2.lisp: Likewise.
-
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.
-
- Apr 11, 2003
-
-
emarsden authored
that it's a valid subtype of character (then ignore it).
-
emarsden authored
- the :new-compiler and :hash-new features were announced as being deprecated in 18e; remove them and make code that depended on them enabled unconditionally. - if CMUCL is built with the :no-docstrings feature, docstrings are discarded while building. This is intended for embedded-type images.
-
pmai authored
-
- Apr 01, 2003
-
-
toy authored
to the sigcontext. o Enable reading the extra FP registers and the high 32-bits of the %g and %o registers for V8+ ABI. o Change MACHINE-TYPE and MACHINE-VERSION to say Ultrasparc instead of SPARCstation when compiled for :sparc-v9.
-
- Mar 31, 2003
-
-
gerd authored
* compiler/ir1tran.lisp (*current-function-names*): New variable. (find-lexically-apparent-function): Use lexenv-find-function. (ir1-convert): Likewise. (ir1-convert-lambda): Bind *current-function-names*. (do-macrolet-stuff): Likewise. (extract-flet-variables): Determine function name from (%cleanup-function): Use lexenv-find-function. * compiler/main.lisp (compile): Bind *current-function-names*. * compiler/macros.lisp (lexenv-find-function): New function. * code/fdefinition.lisp (flet, labels): Define function names. * pcl/walk.lisp (environment-function): Activate code for handling flet/labels function names.
-
- Mar 30, 2003
-
-
gerd authored
* pcl/braid.lisp (ensure-non-standard-class): Add optional parameter existing-class. (reinitialize-structure-class): New function. (toplevel): Push it on kernel::*defstruct-hooks*. * code/defstruct.lisp (*defstruct-hooks*): New variable. (%defstruct): Call these hooks. * tools/pclcom.lisp (find-package): Remove pcl::reinitialize-structure-class from kernel::*defstruct-hooks*.
-
- Mar 27, 2003
-
-
toy authored
stuff that was introduced to fix the conc-name inheritance bugs. We keep the #-bootstrap-conc-name stuff.
-
gerd authored
creating weak tables in #-gencgc. * lisp/gencgc.c (gc_assert): Ensure macro expansion is always a C statement. (struct hash_table): New struct. (HASH_TABLE_SIZE, EQ_HASH): New macros. (weak_hash_tables): New variable. (survives_gc, u32_vector, free_hash_entry, record_for_rehashing) (scav_hash_entries, scav_weak_entries, scan_weak_tables) (scav_hash_vector): New functions. (scav_vector): Removed. (scav_weak_pointer, trans_weak_pointer, scan_weak_pointers): Cleaned up. (gc_init_tables): Use scav_hash_vector instead of scav_vector. (garbage_collect_generation): Call scan_weak_tables. (everywhere): Add casts, change format strings, etc. to placate the compiler. * lisp/FreeBSD-os.h: Fix a function prototype.
-
- Mar 26, 2003
-
-
gerd authored
an error for most cases of null qualifiers. Improve DESCRIBE on generic functions. * pcl/env.lisp (method-specialized-lambda-list): New function. (describe-object): Use it, and use generic-function-lambda-list. * pcl/methods.lisp (generic-function-pretty-arglist) (method-pretty-arglist): Remove. * pcl/generic-functions.lisp (generic-function-pretty-arglist) (method-pretty-arglist): Remove. AMOP compliance fixes: Reintroduce class METAOBJECT, make GENERIC-FUNCTION a subclass of STANDARD-OBJECT, remove STD-OBJECT. This basically reverts a change of dtc from 1998. * code/describe.lisp (describe-instance): Check for standard-object, not pcl::std-object. * pcl/pkg.lisp ("PCL", "CLOS-MOP"): Export more stuff. * pcl/generic-functions.lisp: Remove some of the useless comments. * pcl/slots.lisp (slot-value-using-class, setf slot-value-using-class) (slot-boundp-using-class, slot-makunbound-using-class): Specialize on standard-object. * pcl/slots-boot.lisp (get-optimized-std-accessor-method-function): Remove an std-class-p case. * pcl/methods.lisp (update-std-or-str-methods): Use standard-object instead of std-object. (mec-all-classes-internal): Use *the-class-standard-object* instead of *the-class-std-object*. (class-test): Don't consider *the-class-std-object*. * pcl/low.lisp (pcl-instance-p) [deftransform]: Use standard-object instead of std-object. * pcl/init.lisp (update-instance-for-different-class) (update-instance-for-redefined-class): Specialize on standard-object instead of std-object. * pcl/dfun.lisp (accessor-values-internal, make-accessor-table) (make-accessor-table): Use *the-class-standard-object* instead of *the-class-std-object*. * pcl/defs.lisp (toplevel): Don't declare *the-class-std-object* special. (standard-object): Single superclass slot-object. (metaobject): New class. (std-object): Class removed. (specializer): Superclass metaobject. (definition-source-mixin, plist-mixin): Superclass standard-object, no metaclass. (documentation-mixin, dependent-update-mixin): No metaclass. (slot-definition, method, generic-function, method-combination): Superclass metaobject. * pcl/cache.lisp (raise-metatype): Don't consider std-class. * pcl/braid.lisp (bootstrap-meta-braid): Don't braid std-class. (bootstrap-initialize-class): Don't consider std-class.
-
gerd authored
-
- Mar 23, 2003
-
-
gerd authored
feature :stack-checking because it's not implemented for other systems/architectures yet. It is currently known to work on FreeBSD 4.8-RC/x86 and Debian 2.2.20/x86. * bootfiles/18e/boot3.lisp: New boot file, well, only a description of the boot procedure since no boot file is needed. * lisp/x86-validate.h (SIGNAL_STACK_START, SIGNAL_STACK_SIZE) [__FreeBSD__, __linux__]: New defines. (CONTROL_STACK_SIZE) {__FreeBSD__, __linux__]: Adjust for signal stack. * lisp/validate.c (validate) [RED_ZONE_HIT]: Call os_guard_control_stack. Some cleanup. * lisp/os.h (BOTH_ZONES, YELLOW_ZONE, RED_ZONE): New enums. Add function prototypes. * lisp/interrupt.c (interrupt_install_low_level_handler) [RED_ZONE_HIT]: Deliver protection violations on a dedicated signal stack. * lisp/os-common.c (os_stack_grows_down_1, os_stack_grows_down): New functions. (guard_zones, control_stack_zone, os_guard_control_stack) (os_control_stack_overflow) [RED_ZONE_HIT]: New functions. (os_control_stack_overflow) [!RED_ZONE_HIT]: Dummy function. * lisp/Linux-os.c (sigsegv_handler) [RED_ZONE_HIT]: Handle control stack overflows. * lisp/FreeBSD-os.c: General cleansing. (sigbus_handler) [RED_ZONE_HIT]: Handle control stack overflows. * lisp/FreeBSD-os.h (PROTECTION_VIOLATION_SIGNAL): New define. * lisp/Linux-os.h (PROTECTION_VIOLATION_SIGNAL): New define. * compiler/x86/system.lisp (lisp::%scrub-control-stack): Change defknown from sys:scrub-control-stack. (%scrub-control-stack): Rename VOP. * code/lispinit.lisp (os-guard-control-stack) [#+stack-checking]: Define alien os_guard_control_stack. (%scrub-control-stack) [#+x86]: New function. (scrub-control-stack) [#+x86]: Call %scrub-control-stack, call os-guard-control-stack if #+stack-checking. * code/interr.lisp (yellow-zone-hit, red-zone-hit) [#+stack-checking]: New functions. * code/error.lisp (stack-overflow) [#+stack-checking]: New condition. * compiler/generic/new-genesis.lisp (finish-symbols) [#+stack-checking]: Add symbols for control stack checking. * compiler/x86/parms.lisp (static-symbols): Likewise.
-
- 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.
-
pmai authored
-
- Mar 21, 2003
- Mar 19, 2003
- Mar 18, 2003
-
-
toy authored
bug cons-union-method-inaccurate.
-
- Mar 17, 2003
- Mar 10, 2003
-
-
gerd authored
Treat NIL as a symbol, to produce the same result as the DEFTRANSFORM for sxhash/symbol in c:generic/vm-tran.lisp.
-
- Mar 08, 2003
-
-
pmai authored
the layout of struct dirent64 returned from readdir64. Also added readdir64 to the list of stubs, in order to force usage of the same readdir64 definition at runtime as was used at compile-time.
-
- Mar 06, 2003
-
-
pmai authored
Attached is the full patch containing the addition of the ISTREAM-MEMORY-BARRIER VOP, the change to GENTRAP to use the bugchk opcode, and also a boot file to allow the patched sources to be compiled with an unpatched binary.
-
emarsden authored
This is to avoid ending up with the same initializer present twice, and also to give the initializer a clearer print-name.
-
- Mar 05, 2003
-
-
emarsden authored
(values nil t). This fixes a silly mistake in the recent LFS changes.
-
- Mar 04, 2003
- Mar 03, 2003