Skip to content
Snippets Groups Projects
  1. May 10, 2004
  2. Apr 06, 2004
    • rtoy's avatar
      Add support for source location recording, from Helmut Eller on · f4f6325e
      rtoy authored
      cmucl-imp:
      
          The patch below adds a somewhat general mechanism to the get the
          "current location".  So every macro that wants to record the
          source location, can insert a call to SOURCE-LOCATION in the
          generated code and safe the result in a appropriate place.
          SOURCE-LOCATION is a compiler-macro and returns a quoted struct
          with the source info.
      
          The patch adds the definition for SOURCE-LOCATION some
          modifications for the defclass, defgeneric and defmethod macros.
          Classes, generic functions and methods have already a "source"
          slot and the result of SOURCE-LOCATION is just stored into that
          slot.  (The source slot contains currently only the *loadpath*,
          which is is not very useful, if the fasl file is in a different
          directory than the source file.)
      f4f6325e
  3. Jan 16, 2004
  4. Dec 02, 2003
  5. Aug 11, 2003
  6. Jul 15, 2003
  7. 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
  8. Apr 11, 2003
    • emarsden's avatar
      * Change the way that the compiler searches for function names in the · e790920a
      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
      e790920a
  9. Mar 31, 2003
    • gerd's avatar
      Name local functions (FLET ...) or (LABELS ...). · cf3f726a
      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.
      cf3f726a
  10. Feb 05, 2003
    • emarsden's avatar
      Added a cross-referencing facility to the compiler. · 5383aa5f
      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.
      5383aa5f
  11. Jan 21, 2003
    • toy's avatar
      From Eric Marsden: · 7b973467
      toy authored
          From a recent thread on comp.lang.lisp, it seems that CMUCL is non
          conforming in the way that it handles the coalescing of constants in
          the functions EVAL and COMPILE:
      
             Literal objects appearing in code processed by the compile
             function are neither copied nor coalesced. The code resulting
             from the execution of compile references objects that are eql
             to the corresponding objects in the source code.
      7b973467
  12. Jan 06, 2003
  13. Nov 19, 2002
  14. Nov 14, 2002
    • toy's avatar
      From Eric Marsden: · ef58fd80
      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).
      ef58fd80
  15. Aug 25, 2002
  16. Aug 12, 2002
  17. Aug 09, 2002
  18. Mar 07, 2002
  19. May 17, 2001
  20. Mar 13, 2001
  21. Mar 04, 2001
  22. Mar 01, 2001
  23. Aug 09, 2000
  24. May 23, 2000
  25. Apr 06, 2000
  26. Apr 05, 2000
  27. Nov 25, 1999
  28. Feb 25, 1999
  29. Feb 15, 1997
    • pw's avatar
      /tmp/msg · 992e55c1
      pw authored
      992e55c1
  30. Feb 05, 1997
  31. Jan 18, 1997
  32. Oct 31, 1994
  33. Oct 05, 1994
  34. Sep 30, 1994
  35. Aug 21, 1994
  36. Feb 12, 1994
Loading