Skip to content
Snippets Groups Projects
  1. Oct 21, 2005
  2. 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
  3. 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
  4. Oct 18, 2005
  5. Oct 14, 2005
  6. 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
  7. Oct 10, 2005
  8. Oct 07, 2005
  9. Oct 06, 2005
  10. Oct 05, 2005
  11. Oct 03, 2005
  12. Sep 30, 2005
    • rtoy's avatar
      parse-unix-namestring: · c0715083
      rtoy authored
      o Don't allow a namestring to be parsed as a search-list if a logical
        host with the same host name already exists.  Allowing this causes
        confusing in printing such pathnames because, when read, the logical
        host takes precedence.
      
      unparse-unix-file:
      o Preserve version :NEWEST when printing out logical pathnames.  This
        makes #p"host:foo.bar.newest" readable.
      c0715083
    • rtoy's avatar
      For all intents and purposes, pathnames with :version nil and :version · f629b245
      rtoy authored
      :newest are equivalent in CMUCL.
      
      src/pathname.lisp:
      o Make EQUAL compare pathnames such that version nil and :newest are
        equal.
      
      src/hash-new.lisp:
      o Adjust sxhash to treat :version nil and :newest the same.  (Version
        :newest is hashed as if it were nil.)
      f629b245
    • rtoy's avatar
      Clean up code callback trampoline code: · 8c8e5151
      rtoy authored
      o Remove unused function
      o Remove redundant stack-pointer variable
      o Clean up comments.
      8c8e5151
    • rtoy's avatar
      The callback trampoline needs to save at least r13 and r24 to prevent · bef0d90d
      rtoy authored
      them from getting clobbered because the linkage-table trampoline uses
      them.  This was causing the callback qsort example from Luis Oliviera
      to fail.
      
      There might be other registers that need saving.
      bef0d90d
  13. Sep 29, 2005
  14. Sep 27, 2005
  15. Sep 26, 2005
  16. Sep 25, 2005
    • rtoy's avatar
      extract-name-type-and-version: · c2cdcb87
      rtoy authored
      o Leave some debugging prints in, but commented out.
      o In the last case for EXPLICIT-VERSION, when looking for digits
        surrounded by ~'s, return version NIL if we don't find just digits.
        #p"foo.*" was returning version :newest.  I think we really want
        :version nil.
      
      unparse-unix-enough:
      o If the pathname has no directory, it's relative to the defaults.
        Returning NIL is probably as good as returning '(:RELATIVE), and
        results in a shorter namestring.
      c2cdcb87
    • rtoy's avatar
      The defaults arg for PARSE-NAMESTRING is a pathname designator, not a · 95125ba8
      rtoy authored
      pathname,  Adjust PARSE-NAMESTRING to accept pathname designators.
      95125ba8
  17. Sep 24, 2005
Loading