Skip to content
Snippets Groups Projects
  1. Dec 08, 2022
  2. Nov 25, 2022
  3. Nov 02, 2022
  4. Oct 31, 2022
  5. Oct 17, 2022
  6. Oct 15, 2022
  7. Aug 08, 2022
  8. Dec 16, 2021
  9. Feb 04, 2021
  10. Sep 22, 2018
  11. Jul 21, 2018
  12. Jul 15, 2018
  13. 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
  14. 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
  15. Feb 04, 2018
  16. Feb 03, 2018
  17. Jan 29, 2018
  18. Sep 30, 2017
  19. Sep 09, 2017
    • Raymond Toy's avatar
      Fix #41: Report proper process status · f05cb10a
      Raymond Toy authored
      The main problem is that we weren't calling wait3 with WCONTINUED so
      that we would be signaled when the process continues.  And we also
      need to check that result of wait call was WCONTINUED>
      
      Replace the wait3 routine with a C routine (prog_status) so we don't
      have to deal with the OS-specific flags.  This function basically
      returns what the lisp function wait3 did.
      
      Use this function in GET-PROCESSES-STATUS-CHANGES.
      
       - runprog.c:
         - Add prog_status
       - run-program.lisp:
         - Use prog_status instead of wait3
       - issues.lisp:
         - Add basic test
      f05cb10a
  20. Dec 02, 2016
  21. Nov 30, 2016
  22. Nov 29, 2016
  23. Nov 11, 2016
  24. Oct 03, 2016
  25. Sep 26, 2016
  26. Sep 10, 2016
  27. Sep 08, 2016
  28. Aug 21, 2016
    • Raymond Toy's avatar
      Fix #25: Handle unicode strings more consistently. · a8c27cfa
      Raymond Toy authored
      When writing a string to the program too few octets were written
      because strings are now 16-bits wide.  To fix this, only write the low
      8-bits of each character.  This matches what reading does.
      
      This pretty much implies that the caller should use
      STREAM:STRING-ENCODE and STREAM::STRING-DECODE on the strings.
      
      Add several tests to verify the expected results.
      a8c27cfa
  29. May 14, 2016
    • Raymond Toy's avatar
      Fix #22 where coerce was returning the wrong type of float. · bb4afde9
      Raymond Toy authored
      src/compiler/float.lisp:
      o The deftransform coerce was checking for a type of 'float and using
        %single-float to do the conversion.  This is incorrect; it should
        only apply if the type is 'single-float.
      
      tests/issues.lisp
      o Add test for this.
      
      Verified that the test fails on the current snapshot and ix fixed by
      this change.
      bb4afde9
  30. Oct 17, 2015
    • Raymond Toy's avatar
      Add tests for issue #10. · b239ce3f
      Raymond Toy authored
      Covers 1, 2, and 4-bit arrays.
      
      Manually verified that the cmucl 21a fails these tests, as expected,
      when the index is a multiple of the number of elements per 32-bit
      word.
      b239ce3f
  31. Aug 01, 2015
    • Raymond Toy's avatar
      Fix #4 again, but for negative indices. · 5a1ecf1a
      Raymond Toy authored
      o Add declaration for LIST-ELT* that the index is a kerrnel:index.
      o Clean up ELT to directly call LIST-ELT* instead of having an inlined
        version.
      o Fix typo: issue.5 is really issue.4.
      o Add tests for invalid indices for ELT and (SETF ELT) for both lists
        and vectors.
      5a1ecf1a
  32. Jun 24, 2015
    • Raymond Toy's avatar
      Check for function names correctly · 89074ab3
      Raymond Toy authored
      Fix #7
      
      The change to use extended names like (flet frob) broke the detection
      of local names for get-setf-expansion.  Fix it.  This reverts behavior
      back to what 18a used to do.
      
      A test for this is also added.
      89074ab3
  33. Jun 22, 2015
  34. Jun 14, 2015
    • Raymond Toy's avatar
      Fix #4: ELT signals error on invalid index on lists · 1ca0a557
      Raymond Toy authored
      code/seq.lisp:
      o Define internal LIST-ELT* function that executes ELT on lists,
        signaling an error if the index is invalid.
      
      compiler/seqtran.lisp:
      o Change the deftransform for ELT to use LIST-ELT* instead of NTH.
      
      tests/issues.lisp:
      o Add test for this issue.
      1ca0a557
  35. Apr 25, 2015
Loading