Skip to content
  1. Nov 25, 2013
  2. Dec 19, 2012
  3. Nov 04, 2011
  4. Sep 25, 2011
  5. May 25, 2010
    • rtoy's avatar
      code/macros.lisp: · 48f2c8e6
      rtoy authored
      o In DEFINE-COMPILER-MACRO, use the correct BLOCK name for SETF
        functions
      o Signal an error if the function name is not a valid function name.
      
      general-info/release-20b.txt:
      o Update.
      48f2c8e6
  6. Apr 27, 2010
    • rtoy's avatar
      o Work around issue pointed out by Madhu on cmucl-imp, 2010-04-24. · 30c2e45f
      rtoy authored
        Replace the call to (setf info) with a (new) function,
        set-defvar-textdomain, that calls (setf info).  The (setf info) was
        causing the compiler to run and producing an unexpected message.
        The compiler doesn't need to handle the new function specially.
      
      o DEFCONSTANT was not recording the text domain for the new constant.
        Call set-defvar-textdomain to record the text domain.
      30c2e45f
  7. Apr 23, 2010
    • rtoy's avatar
      Add source location info for defstructs and deftypes. · 4c3c1c2a
      rtoy authored
      code/defstruct.lisp:
      o Save source info for defstructs
      
      code/macros.lisp:
      o Save source info for deftypes.
      
      compiler/globaldb.lisp:
      o Add comments that the info type source-location defvar also includes
        defparameter, defconstant, defstruct, and deftype.
      4c3c1c2a
  8. Apr 20, 2010
  9. Apr 18, 2010
  10. Mar 19, 2010
  11. Mar 18, 2010
    • rtoy's avatar
      Make CMUCL signal a cerror if we try to redefine a slot accessor. If · bd3d965b
      rtoy authored
      continued, the accessor is redefined.  Previously, a warning was
      printed and the structure was (mostly) undefined.
      
      compiler/proclaim.lisp:
      o Add new function NOTE-IF-ACCESSOR to check if we're redefining a
        slot accessor.  If so, signal a cerror, and redefine if continued.
      o Adjust DEFINE-FUNCTION-NAME to call NOTE-IF-ACCESSOR.
      
      compiler/main.lisp:
      o Make COMPILE-FIX-FUNCTION-NAME call NOTE-IF-ACCESSOR to catch
        attempts to redefine a slot-accessor.
      
      code/macros.lisp:
      o Move call to C::DEFINE-FUNCTION-NAME to the top of C::%%DEFUN before
        we set the fdefinition.   This allows us to give up before modifying
        anything if we choose not to redefine the slot accessor.
      bd3d965b
  12. Jun 18, 2009
  13. Jun 19, 2008
  14. Jan 03, 2008
    • cshapiro's avatar
      Switch the FreeBSD port to use the common floating point trap handling · 9495c516
      cshapiro authored
      code.  Rather than introduce a new FreeBSD case to the x86 sigcontext
      member accessor routines, collapse all of the system specific routines
      down to a common set of routines.
      
      * code/debug-int.lisp - Disable some Darwin-specific code to debug
        NULL mcontext pointers.
      
      * code/float-trap.lisp - Remove ancient FreeBSD-specific code for
        handling floating point signals.
      
      * code/macros.lisp, code/sap.lisp, compiler/saptran.lisp - Include the
        SAP-REF-LONG setter by default on the x86.
      
      * code/x86-vm.lisp - Remove operating system specific sigcontext
        definitions and sigcontext accessors.  Define the alien sigcontext
        as a system area pointer.  Replace the sigcontext accessors with
        foreign function calls that mask the complexity of the underlying
        sigcontext member access.
      
      * compiler/x86/float.lisp - Unconditionally define STORE-LONG-FLOAT.
        This function is used by the %SET-SAP-REF-LONG VOP that underlies
        the SAP-REF-LONG setter.
      
      * compiler/x86/sap.lisp - Unconditionally define %SET-SAP-REF-LONG.
        In the case where there is not a distinct LONG-FLOAT type, admit
        DOUBLE-FLOAT values instead.  The x87 automatically widens values
        pushed onto stack.  This mirrors the behavior of the SAP-REF-LONG
        VOP.
      
      * lisp/Darwin-os.c, lisp/Linux-os.c - Define functions to access
        sigcontext members of interest to Lisp.  Delete the sc_reg function
        and replace its uses with os_sigcontext_reg which is more suitably
        typed.
      
      * lisp/FreeBSD-os.c - Define functions to access sigcontext members of
        interest to Lisp.  We need to be careful about the SSE and non-SSE
        cases for retrieving x87 registers from the saved machine state.
        Define a low-level SIGFPE handler to intercept floating point traps
        and restore the cleared status word bits based on the signal code.
        Get rid of sc_reg for the reasons noted above.
      
      * lisp/Darwin-os.h, lisp/FreeBSD-os.h - Declare the restore_fpu
        function and define a specialized RESTORE_FPU macro.  Remove the
        sc_reg prototype.
      
      * lisp/Linux-os.h - Remove the sc_reg prototype.
      
      * lisp/os.h - Add prototypes for the new os_sigcontext functions.
      
      * lisp/x86-lispregs.h - Redefine SC_REG and SC_PC to expand out to the
        new os_sigcontext functions.  Redfine SC_SP to expand out to SC_REG.
        Eliminate all platform-specific defintions of SC_PC and SC_SP.
      9495c516
  15. Aug 08, 2007
  16. Apr 13, 2006
  17. Nov 18, 2005
  18. Oct 21, 2005
  19. Jul 13, 2005
  20. May 09, 2005
  21. Dec 15, 2004
  22. Oct 14, 2004
  23. Jun 29, 2004
  24. May 18, 2004
    • rtoy's avatar
      From Juan Jose Garcia Ripoll: · c53007d8
      rtoy authored
          but the following gives wrong results:
      
          (macroexpand '(multiple-value-bind (&rest x) (foo y) d))
      
          (MULTIPLE-VALUE-CALL
      
             #'(LAMBDA (&OPTIONAL &REST X &REST #:G858) (DECLARE (IGNORE #:G858)) D)
      
            (FOO Y))
      
      Fix from Juan Jose Garcia Ripoll.
      c53007d8
  25. May 06, 2004
  26. Apr 14, 2004
  27. Aug 08, 2003
    • emarsden's avatar
      Add a function EXT:UNLOCK-ALL-PACKAGES, that disables both the · 1a960279
      emarsden authored
      structural and the definition locks for all existing packages. Add an
      additional restart to the PACKAGE-LOCKED-ERROR signaling points that
      allows the user to disable all packages then continue.
      
      Package locks are initialized upon startup, so the unlocking only
      takes effect during the current session. However, this function
      doesn't suffer from the problem that affects
      LISP::*ENABLE-PACKAGE-LOCKED-ERRORS* (which is bound by LOAD so can't
      be set from an initialization file).
      1a960279
  28. Jul 17, 2003
  29. Jul 09, 2003
  30. Jun 18, 2003
    • gerd's avatar
      Remove package nicknames USER from COMMON-LISP-USER. Add a new · b4f2c7c7
      gerd authored
      	package COMMON-LISP which LISP uses, so that COMMON-LISP no longer
      	has the non-ANSI nickname LISP.
      
      	To bootstrap, use boot13.lisp as target:bootstrap.lisp with pmai's
      	build scripts, and do a full compile.
      
      	* src/bootfiles/18e/boot13.lisp: Change for all the package
      	changes.
      
      	* src/code/exports.lisp: New package common-lisp,
      	which lisp uses.
      
      	* src/tools/worldload.lisp:
      	* src/tools/setup.lisp: Use cl-user instead of user.
      	Use lisp:: instead of cl::.
      
      	* src/tools/worldcom.lisp:
      	* src/tools/snapshot-update.lisp:
      	* src/tools/pclcom.lisp:
      	* src/tools/mk-lisp:
      	* src/tools/hemcom.lisp:
      	* src/tools/config.lisp:
      	* src/tools/comcom.lisp:
      	* src/tools/clxcom.lisp:
      	* src/tools/clmcom.lisp:
      	* src/pcl/defsys.lisp:
      	* src/motif/lisp/initial.lisp:
      	* src/interface/initial.lisp:
      	* src/hemlock/lispmode.lisp (setup-lisp-mode):
      	Use cl-user instead of user.
      
      	* src/code/save.lisp (assert-user-package):
      	* src/code/print.lisp (%with-standard-io-syntax): Find
      	cl-user package instead of user.
      
      	* src/code/package.lisp (package-locks-init): Add lisp.
      	(package-init): Don't add user nickname to cl-user.
      
      	* src/code/ntrace.lisp (*trace-encapsulate-package-names*):
      	Add common-lisp.
      
      	* src/code/hash.lisp (toplevel):
      	* src/code/hash-new.lisp (toplevel): Use in-package :lisp
      	instead of :common-lisp.
      
      	* src/code/float-trap.lisp (sigfpe-handler): Don't
      	qualify floating-point-inexact with ext:.
      
      	* src/pcl/simple-streams/strategy.lisp (sc):
      	* src/pcl/simple-streams/null.lisp (null-read-char):
      	* src/pcl/simple-streams/internal.lisp (allocate-buffer)
      	(free-buffer):
      	* src/pcl/simple-streams/impl.lisp (%check, %read-line)
      	(%peek-char, %read-byte):
      	* src/pcl/simple-streams/file.lisp (open-file-stream)
      	(device-close):
      	* src/pcl/simple-streams/classes.lisp (simple-stream)
      	(device-close):
      	* src/pcl/macros.lisp (toplevel):
      	* src/pcl/braid.lisp (lisp::sxhash-instance):
      	* src/pcl/env.lisp (toplevel):
      	* src/compiler/generic/objdef.lisp (symbol-hash):
      	* src/code/stream.lisp (read-sequence, write-sequence):
      	* src/code/macros.lisp (defmacro, deftype):
      	* src/code/eval.lisp (interpreted-function):
      	* src/code/defstruct.lisp (defstruct):
      	* src/code/debug.lisp (debug-eval-print): Use lisp:: instead
      	of cl::.
      b4f2c7c7
  31. May 12, 2003
    • emarsden's avatar
      · 807d6f0f
      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
      807d6f0f
  32. Apr 19, 2003
    • gerd's avatar
      Add destructuring support to &REST, &BODY, &WHOLE. Detected · 1ca1159c
      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.
      1ca1159c
  33. 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
  34. Feb 28, 2003
  35. Feb 24, 2003
  36. Feb 18, 2003
  37. Feb 08, 2003
  38. Feb 05, 2003
    • gerd's avatar
      Generalized function names. · a1a66688
      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.
      a1a66688
  39. Jan 23, 2003
    • toy's avatar
      From Eric Marsden: · f315d7f1
      toy authored
          fix typos in comments, signal more specific error types, remove
          some stale code, fix a few compiler warnings in the runtime.
      f315d7f1