- May 08, 2003
-
-
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.
-
- Apr 30, 2003
-
-
gerd authored
an assertion.
-
- 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.
-
- 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.
-
- Apr 16, 2003
-
-
toy authored
ansi-tests.
-
- 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 11, 2003
-
-
emarsden authored
lexical environment to take into account generalized function names, and in particular inline declarations for FLET or LABELS functions. New function called FUNCTION-NAME-EQV-P that knows that a name like (FLET INNER OUTER) is equivalent to a name like INNER. * Include any context information in undefined-function warnings. Forms like (defun bogus (x) (declare (ftype (function (t) *) no-ftype)) (flet ((foo (x) (random (1+ x)))) (declare (inline almost-foo)) (foo (+ x 1)))) will now generate warnings of the form Warning: Undefined function almost-foo in an inline or notinline declaration Warning: Undefined function no-ftype in a function type declaration
-
- Apr 08, 2003
-
-
gerd authored
(process-ignore-declaration): Find local functions differently.
-
- 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
symbols as ftype types, like SBCL and others.
-
- 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.
-
- Feb 05, 2003
-
-
gerd authored
valid-function-name-p for determining the block name.
-
emarsden authored
The new XREF package exports function WHO-CALLS, WHO-REFERENCES, WHO-BINDS and WHO-SETS. These return structures of type XREF-CONTEXT, which contain the name of the referencing context, the file it was referenced from (or NIL when compiling from the toplevel), and the source-position in that file. Also change the names of lambda nodes in IR1 for macros and compiler-macros to be lists of the form (:macro macro-name) (:compiler-macro macro-name) instead of strings of the form "DEFMACRO MACRO-NAME". Documentation has been added to the User's Manual. This change shouldn't cause any bootstrapping problems when building.
-
gerd authored
* code/fdefinition.lisp (*valid-function-names*): New variable. (%define-function-name-syntax, valid-function-name-p): New functions. (define-function-name-syntax): New macro. (toplevel): Define the syntax of setf function names. (fdefinition-object): Use valid-function-name-p. * compiler/proclaim.lisp (check-function-name): Use valid-function-name-p. * compiler/ir1tran.lisp (function): Use valid-function-name-p. * code/profile.lisp (%report-times): Use valid-function-name-p. * code/macros.lisp (defun): Use valid-function-name-p. * code/eval.lisp (eval): Use valid-function-name-p. * code/describe.lisp (describe-aux, describe-function-name): Use valid-function-name-p. * code/exports.lisp ("EXTENSIONS"): Add define-function-name-syntax and valid-function-name-p.
-
- Jan 06, 2003
-
-
toy authored
have the semi-colon prefix.
-
- Dec 13, 2002
-
-
toy authored
environment. Adds an optional environment argument to COMPILE-FOR-EVAL and INTERNAL-EVAL. DO-MACROLET-STUFF then uses INTERNAL-EVAL (instead of COERCE) to create the local macro function in a suitable environment. This is a "minimalistic fix for CMUCL" from Gerd Moellmann.
-
- Dec 07, 2002
-
-
toy authored
- fixes to the internal consistency of IR2, ported from the corresponding changes to SBCL by Alexey Dejneka - modification of the internal IR1 consistency checking code to accept objects of type HEAP-ALIEN-INFO in the *FREE-VARIABLES* list. With this change, it is possible to rebuild with c::*check-consistency* enabled, with only the "Unseen function ~S in ~S." check disabled.
-
- Nov 25, 2002
-
-
toy authored
Port the bug fix from SBCL.
-
- Nov 21, 2002
-
-
toy authored
modelled after the corresponding code in SBCL.)
-
- Aug 12, 2002
-
-
toy authored
Rhodes): * When you load or execute code that didn't compile correctly, you should get a PROGRAM-ERROR rather than a generic ERROR.
-
- Aug 09, 2002
-
-
toy authored
SYMBOL-MACROLET.
-
- Jan 27, 2002
-
-
moore authored
DEFINE-COMPILER-MACRO. This fixes buggy behavior when DEFCONSTANT is not at top level.
-
- Oct 31, 2001
-
-
pw authored
broke the SPARC port.
-
- Oct 28, 2001
-
-
pw authored
Patch to correct non-ANSI use of symbol-macrolet in compiler backend. Also fix symbol-macrolet to disallow binding to special variables. ----------------------------------------------------------------------
-
- Oct 15, 2001
-
-
pw authored
symbol-macros by changing CADR to CDR. Probably a typo? Now (declare (ignore xxx)) in WITH-SLOTS (xxx ...) works.
-
- Jun 03, 2001
-
-
pw authored
Arrange for ANSI behaviour regarding DEFMACRO processing. It has compile-time effect only at top level now.
-
- Mar 04, 2001
-
-
pw authored
-
- Mar 03, 2001
-
-
pw authored
-
- Mar 01, 2001
-
-
pw authored
-
- Oct 06, 2000
-
-
dtc authored
-
- Oct 04, 2000
-
-
dtc authored
they are correctly quoted (from Pierre R. Mai), and correcting the result type of make-keyword which is in general a symbol not a keyword.
-
- Aug 10, 2000
-
-
dtc authored
-
- Jul 13, 2000
-
-
dtc authored
The new variables were being created by copying the old leafs which incorrectly copied over any refs, or sets etc, which should have been cleared in the new leafs. o Fix the handling of the 'special identifier in the proclaim IR1 translator which had been incorrectly using the identifier rather than the variable name when updating the hash tables.
-
- Jul 07, 2000
-
-
dtc authored
return values, and replace them with function argument declarations which the compiler move carefully checks.
-
- Jul 06, 2000
-
-
dtc authored
causing problems: o Redefine coerce-to-values to convert a single value type into (values type), rather than the former definition (values type &rest t). A single value type such as fixnum is now equivalent to (values fixnum). Values-type-union and values-type-intersection will canonicalise values types with a single value such as (values fixnum) back to a single value type such as fixnum. o Now when the compiler makes assertions for the first value of continuations that may be generating multiple values it asserts the type as (values type &rest t), or as (value &optional type &rest t) if it is not sure that the continuation does generate a value. o Enhance the type check generation to better handle the now common values types with optional and rest arguments. Add the new function Values-types-asserted which converts asserted optional and rest arguments to required arguments that have been proven to be delivered, Thus an assertion such as (values &optional fixnum &rest t) will generate a fixnum type check if the proven type if (values t). o The compiler is now far more likely to pickup attempts to use an assertion to select a subset of values. For example (the (values fixnum) (values x y)) will generated a compiler warning. o Update single values type assertions where appropriate to clarify that the received values may be optional or that multiple values may be received. For example, a macro argument which had been asserted to be a list via (the list ,...) would now be asserted to be (the (values &optional list &rest t)) etc. o Have the IR1 translator for THE convert single value types into (values &optional type &rest t) so that code such as (the fixnum (values x y)) will still work acceptably. This does not restrict the possible type assertions as the values types may be used and are not modified.
-
- Jun 18, 2000
-
-
dtc authored
environment, for block exits and tagbody entries, are updated when continuations are substituted. Add a cont-ref structure, and a new slot to continuations which holds the list of these references to be be updated when the continuation is substituted. Based on the work of Tim Moore.
-
- Feb 28, 2000
-
-
dtc authored
o Weaken the compiler warnings generated for unused or used variables to be style-warnings as specified by ANSI CL. o Check for ignore declarations of free variables, and when such variables are found generate a style-warning noting that the declaration has been ignored.
-
- Feb 25, 1999
-
-
pw authored
It is a benign revision as no structures are redefined. At some later point the definitions in compiler/objdef could be removed, perhaps in sync with some other type change.
-