- May 15, 2003
-
-
toy authored
by Helmut Eller) o Add support for 64-bit integers. (Returning 64-bit integers does not seem to work yet.)
-
- May 14, 2003
-
-
toy authored
-
toy authored
defreg), so we can disassemble code that uses these registers.
-
toy authored
will be honored when printing out the register names.
-
toy authored
code/alieneval.lisp: o Main callback support code/exports.lisp: o Export DEF-CALLBACK and CALLBACK. o Export CALLBACK-ACCESSOR-FORM and MAKE-CALLBACK-TRAMPOLINE o Reindent a few items. x86/c-call.lisp: o Helmut's MAKE-CALLBACK-TRAMPOLINE for x86. sparc/c-call.lisp: o MAKE-CALLBACK-TRAMPOLINE for sparc.
-
emarsden authored
- for PCL-generated lambdas, extract a name for IR1 lambda nodes from the method-name declaration. A better long-term solution would be to implement a NAMED-LAMBBA IR1 translator, as in SBCL.
-
- May 12, 2003
-
-
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
-
- May 08, 2003
-
-
gerd authored
or in null.
-
gerd authored
&rest nil means a fixed number of values.
-
gerd authored
fixes the problem that CMUCL generated RETURN-MULTIPLE without a good reason. * src/compiler/checkgen.lisp (values-types-asserted): Use coerce-to-values again. Add fixme comments and #+nil code for known problems; these aren't new problem, though. * src/code/type.lisp (coerce-to-values): Don't add &rest t, which is the business of THE. (values) <type translator>: Disallow &key and &allow-other-keys. * src/compiler/ir1tran.lisp (the) <IR1 translator>: Add &rest t where appropriate, or-in null type into required types, for missing values.
-
- May 01, 2003
-
-
gerd authored
return nil.
-
- Apr 30, 2003
-
-
gerd authored
for the case that more args are supplied than necessary.
-
gerd authored
* src/code/format.lisp (min/max-format-arguments-count) (min/max-format-args, min/max-conditional-args): New functions. * src/compiler/srctran.lisp (check-format-args): New function. (format): New transformer for simple-string format control and (<= speed space), checking number of args. (format) <transforms>: Use min/max-format-arguments-count. * src/code/package.lisp (unintern): Add missing args to format. * src/compiler/disassem.lisp (maybe-note-associated-storage-ref): Remove extraneous format arg.
-
toy authored
sparc v9.
-
gerd authored
an assertion.
-
- Apr 29, 2003
-
-
emarsden authored
Add missing return type declaration for DEFKNOWN form for %SET-FILL-POINTER.
-
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.
-
- Apr 27, 2003
-
-
toy authored
the non-ANSI feature of making -0 and +0 different in type-specifiers. Internal code still assumes this in various places, however. Since our type system is much smarter now than when this was written (and handles type unions and member types much better), perhaps we should clean this up?
-
toy authored
-
toy authored
-
gerd authored
source transforms so that they don't accept more than one index, for better error messages.
-
- Apr 26, 2003
-
-
gerd authored
because the last arg may not be a list.
-
gerd authored
which don't signal an error in safe code because such calls are flushed when the called function is FLUSHABLE and the value of the call is not used. * src/compiler/ir1opt.lisp (flush-dead-code): Suppress flushing of flushable known functions if safety = 3.
-
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 * *).
-
toy authored
-
toy authored
current *target-backend*. (Because I can never remember how to print the inst space.)
-
toy authored
o Update print-fp-reg so that *print-case* will print the FP register in the right case o Add special printers for all of the FP -sti instructions that store the result into the specified FP register. This makes the syntax match the Intel syntax. o Correct the instruction printer for the FUCOMI instruction. (I think it works, but FUCOMI isn't used anywhere.)
-
- Apr 25, 2003
-
-
toy authored
o Fix up the instruction printers for FRSTOR and FUCOM which used to conflict. o Clean up Lisp code a little.
-
- Apr 24, 2003
-
-
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.
-
- Apr 23, 2003
- Apr 22, 2003
-
-
gerd authored
* src/compiler/ir1tran.lisp (declare) <ir1 translator>: Remove. (ir1-convert): Signal an error for (declare ...).
-
- Apr 21, 2003
-
-
gerd authored
* src/compiler/ir1tran.lisp (multiple-value-call): Remove symbol from the asserted type of fun-cont, because, if fun is a symbol, %coerce-to-function gets called.
-
gerd authored
* src/compiler/seqtran.lisp (%setelt, elt) <deftransform, list>: Use only in unsafe code, because elt is supposed to signal an error if the index is out of bounds.
-
- Apr 19, 2003
-
-
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.
-
gerd authored
test cases. * src/compiler/locall.lisp (convert-more-call): Handle the case of a null arglist.
-
- Apr 16, 2003
-
-
toy authored
ansi-tests.
-
- Apr 15, 2003
-
-
emarsden authored
via SBCL.
-
- 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.
-
- 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.
-