Skip to content
Snippets Groups Projects
  1. Feb 19, 2018
    • Raymond Toy's avatar
      Complex array accessors are not foldable · e9a598e5
      Raymond Toy authored
      Fixes #61 and #62.
      
      The `ARRAY-HAS-FILL-POINTER-P` and `ARRAY-DISPLACEMENT` functions are
      declared inline and the compiler tries to constant-fold these inlined
      functions operating on simple arrays.
      
      Thus don't allow the compiler to constant-fold calls to
      `%ARRAY-FILL-POINTER-P`.  This is normally protected by a call to
      `ARRAY-HEADER-P`, but when it's inlined, the compiler tries to
      constant-fold `%ARRAY-FILL-POINTER-P` on an array without such a slot.
      
      Likewise `ARRAY-DISPLACEMENT` calls `%ARRAY-DISPLACED-P`,
      `%ARRAY-DATA-VECTOR`, and `%ARRAY-DISPLACEMENT`, and the calls are
      protected by `ARRAY-HEADER-P`. So don't constant-fold these either.
      
      Maybe we could also make CONSTANT-FOLD-CALL be smarter about this?
      
      * src/compiler/generic/objdef.lisp
        * Remove flushable from these ref-trans methods.
      * src/general-info/release-21d.md
        * Update
      * tests/issues.lisp
        * Add tests from the bug reports.
      e9a598e5
  2. Feb 18, 2018
    • Raymond Toy's avatar
      Fix #58: Bogus type error in comparison of complex number with `THE` form · bccd6a98
      Raymond Toy authored
      The deftransforms `upgraded-complex-real-contagion-arg1` and
      `upgraded-complex-real-contagion-arg2` were coercing the complex
      number to the exact type of the float number.  Because of the `THE`
      form, the type of the float was `(member 1d0)`, so the compiler was
      coercing `#c(1/2 1/2)` to `(complex (double-float 1d0))`, which is
      wrong.
      
      Therefore, coerce the complex to just the type format of the real
      part, ignoring any bounds.
      
      * src/compiler/float-tran.lisp
        * Coerce to format type, discarding any bounds
      * src/general-info/release-21d.md
        * Update notes
      * tests/issues.lisp
        * Added test for this
      bccd6a98
    • Raymond Toy's avatar
      Fix #60: `C::%UNARY-FROUND` is undefined · 26e3ad82
      Raymond Toy authored
      Remove the symbol `C::%UNARY-FROUND` and just let the compiler package
      inherit it from the kernel package.
      
      * src/bootfiles/21c/boot-2018-02-1.lisp
          * Use this to bootstrap the change (by uninterning the symbol)
      * src/code/float.lisp
          * Just export %unary-fround
      * src/general-info/release-21d.md
          * Update
      * tests/issues.lisp
          * Add test for this issue
      26e3ad82
  3. Feb 10, 2018
  4. Dec 29, 2017
  5. Dec 02, 2017
  6. Oct 28, 2017
  7. Oct 16, 2017
  8. Oct 15, 2017
  9. Oct 07, 2017
  10. Sep 23, 2017
  11. Apr 08, 2017
  12. Jan 12, 2017
  13. Dec 03, 2016
  14. Oct 09, 2016
    • Raymond Toy's avatar
      Update links · fe6317dd
      Raymond Toy authored
      * Update links to point to the gitlab cmucl wiki
      * Rephrase a bit differently since things have changed.
      fe6317dd
    • Raymond Toy's avatar
      Clean up · 7b1ad83d
      Raymond Toy authored
      * Indent neatly
      * Run spell-checker
      7b1ad83d
  15. Oct 08, 2016
  16. Oct 05, 2016
  17. Sep 27, 2016
  18. Sep 05, 2016
  19. May 30, 2016
  20. May 21, 2016
  21. May 08, 2016
  22. Mar 12, 2016
  23. Feb 15, 2016
  24. Jan 09, 2016
  25. Jan 08, 2016
  26. Dec 12, 2015
  27. Dec 06, 2015
Loading