Skip to content
Snippets Groups Projects
  1. Nov 09, 2005
    • rtoy's avatar
      Oops. Remove unused function, and make sure we have an array type · 27533ab2
      rtoy authored
      before asking if it's a complex array.
      27533ab2
    • rtoy's avatar
      Change how the important-result stuff is implemented. We no longer · ec85d432
      rtoy authored
      use an IR1 attribute but allow arbitrary functions to determine if the
      result is used or not.  This allows us to handle SORT and ADJUST-ARRAY
      depending on the args.
      
      Use 19c/boot-2005-11-1.lisp to bootstrap this change.
      
      compiler/knownfun.lisp:
      o Remove IMPORTANT-RESULT attribute.
      o Add new slot to function-info the hold the function to indicate if
        the result is not used.
      o Adjust %defknown with a new keyword arg :result-not-used for the new
        slot.
      o Add functions for the result-not-used arg for
        o SORT-RESULT-NOT-USED-P: non-NIL if the sequence might be a list.
        o ADJUST-ARRAY-RESULT-NOT-USED-P: non-NIL if the array is not known
          to be adjustable.
        o FUNCTION-RESULT-NOT-USED-P:  non-NIL if function result must be
          used (for functions like nreverse).
      
      compiler/ir1opt.lisp:
      o Remove now unused function CHECK-IMPORTANT-RESULT
      o Add check in IR1-OPTIMIZE-COMBINATION to see if function result
        should be used.
      
      compiler/fndb.lisp:
      o Remove IMPORTANT-RESULT attribute and replace with :result-not-used.
      ec85d432
  2. Nov 08, 2005
    • rtoy's avatar
      o Make HEAD version of release-19c.txt match the actual release-19c.txt · 9a862e13
      rtoy authored
        in the 19c release.
      o Move the new stuff to the new file, release-19d.txt.
      9a862e13
    • rtoy's avatar
      Add an extension to allow printing pathnames using the syntax · 527266cd
      rtoy authored
      #P(<make-pathname args).  So most pathnames can be printed readably,
      even if they have weird components.  But we don't handle search-lists
      and patterns very well because we don't have readable syntax for
      those.
      
      code/sharpm.lisp:
      o Make the #P reader accept lists and apply make-pathname on them to
        create the pathname
      
      code/pathname.lisp:
      o If a pathname has no namestring, then try to print out the pathname
        object using #P(foo) syntax, if possible.  If not possible, just
        print out the pathname unreadably, as we used to.
      o Put some conditional newlines when printing out unprintable
        pathnames so it wraps a bit better.  (Needs work.)
      527266cd
  3. Nov 07, 2005
  4. Nov 04, 2005
  5. Nov 03, 2005
  6. Oct 26, 2005
  7. Oct 25, 2005
    • rtoy's avatar
      Compiler was not handling things like the following: · 680389bc
      rtoy authored
      (defun zot ()
        (flet ((%f (&key)
      	   :bad))
          (%f nil nil)))
      
      This should produce a compile-time warning and a run-time error that
      NIL is not a valid keyword.
      
      To fix this, in CONVERT-MORE-CALL listify the name so we can
      distinguish no LOSER's or a LOSER whose name is NIL.
      680389bc
  8. Oct 24, 2005
    • rtoy's avatar
      Fix ansi-test logical-pathname.error.2 which was failing because · 98ab1c48
      rtoy authored
      LOGICAL-PATHNAME-NAMESTRING-P wasn't defined anywhere.
      
      o Add LOGICAL-PATHNAME-NAMESTRING-P and adjust LOGICAL-PATHNAME to use
        it.
      
      o Print out identity when printing logical-hosts.  (This unrelated
        change makes it easier to see that the user's BOGUS logical host
        isn't the same as the BOGUS logical host used in
        *LOGICAL-PATHNAME-DEFAULTS*.
      98ab1c48
  9. Oct 22, 2005
  10. Oct 21, 2005
  11. Oct 20, 2005
    • rtoy's avatar
      Fix some issues with two-arg log function. (log 17 10f0), (log 17f0 · 0f17dd30
      rtoy authored
      10), and (log 17 10) returned different single-float results.  I think
      this is allowed by ANSI CL, but I think it's unfortunate.
      
      Therefore, try to apply float contagion to the arguments before
      computing the log function.  Also, if both args are single-floats or
      rationals, we coerce them to double-floats before computing the
      result.  This makes (log 17 10) = (log 17.0 10).
      
      There are other cases still to be considered.
      0f17dd30
  12. Oct 19, 2005
    • rtoy's avatar
      Bootstrap file for the port of SBCL'S support for detecting when · d3e339fa
      rtoy authored
      destructive functions (such as nreverse) modify constant args and for
      warning when the result of destructive functions is not used.
      d3e339fa
    • rtoy's avatar
      Port SBCL'S support for detecting when destructive functions (such as · 31ddb605
      rtoy authored
      nreverse) modify constant args and for warning when the result of
      destructive functions is not used.
      
      Detecting modification of constant args is done by adding a new IR1
      transformation that checks that a function is not destructively
      modifying constants or literals.
      
      A new IR1 attribute, important-result, is used to determine if the
      result of a function should be used instead of discarded.  (Note:
      this means some functions are not detected.  This should probably be
      implemented as another transform so the compiler can detect those cases.)
      
      code/error.lisp:
      o Add new condition CONSTANT-MODIFIED.
      
      compiler/fndb.lisp:
      o Note destructive functions that should not modify constant args
      o Note destructive functions whose results should be used.
      
      compiler/ir1opt.lisp:
      o Add new function CHECK-IMPORTANT-RESULT to check if the result is
        used.
      o Update IR1-OPTIMIZE-COMBINATION to check if a function destructively
        modifies constant args or if the result of a destructive function is
        not used.
      
      compiler/knownfun.lisp:
      o Add new IR1 attribute, IMPORTANT-RESULT, to indicate that the result
        of a function should be used.
      o Add new FUNCTION-INFO slot, DESTROYED-CONSTANT-ARGS.  This holds a
        function for computing the constant or literal arguments which are
        destructively modified by the function.
      o Add support functions for DESTROYED-CONSTANT-ARGS functions.
      31ddb605
  13. Oct 18, 2005
  14. Oct 14, 2005
  15. Oct 11, 2005
    • rtoy's avatar
      o Adjust CALLBACK-ACCESSOR-FORM to handle 64-bit integer and · 5ad81686
      rtoy authored
        double-floats correctly.  (Double's were broken before.)
      o Fix MAKE-CALLBACK-TRAMPOLINE-SEGMENT which wasn't saving all the
        callee-saved registers and was not adjusting the stack properly when
        saving these registers.
      
      These changes should (Ha!) fix all of the issues reported by Luis
      Oliveira for ppc callbacks.
      5ad81686
  16. Oct 10, 2005
  17. Oct 07, 2005
  18. Oct 06, 2005
  19. Oct 05, 2005
Loading