1. 29 May, 2019 2 commits
  2. 28 May, 2019 2 commits
  3. 08 Dec, 2018 1 commit
  4. 06 Dec, 2018 1 commit
  5. 12 Oct, 2018 1 commit
  6. 22 Sep, 2018 1 commit
  7. 12 May, 2018 1 commit
  8. 19 Feb, 2018 1 commit
    • 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
  9. 18 Feb, 2018 2 commits
    • 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
  10. 10 Feb, 2018 1 commit
  11. 29 Dec, 2017 1 commit
  12. 02 Dec, 2017 1 commit
  13. 28 Oct, 2017 1 commit
  14. 15 Oct, 2017 2 commits
  15. 07 Oct, 2017 1 commit
  16. 23 Sep, 2017 1 commit
  17. 08 Apr, 2017 1 commit
  18. 12 Jan, 2017 1 commit
  19. 03 Dec, 2016 2 commits