1. 09 Oct, 2017 1 commit
  2. 08 Oct, 2017 1 commit
  3. 03 Oct, 2017 1 commit
  4. 02 Oct, 2017 1 commit
  5. 30 Sep, 2017 6 commits
  6. 29 Sep, 2017 9 commits
  7. 28 Sep, 2017 1 commit
  8. 24 Sep, 2017 1 commit
  9. 19 Sep, 2017 5 commits
  10. 15 Sep, 2017 1 commit
  11. 14 Sep, 2017 2 commits
  12. 13 Sep, 2017 1 commit
  13. 10 Sep, 2017 1 commit
  14. 08 Sep, 2017 1 commit
    • Florian Margaine's avatar
      Fix INCF on a THE variable. · 09899a3e
      Florian Margaine authored
      The following code:
      
      (let ((foo 0))
        (incf (the fixnum foo) (bar)))
      
      was being expanded into:
      
      (let ((foo 0))
        (LET* ((#:G133 (BAR)) (#:G132 (THE FIXNUM (+ (THE FIXNUM FOO) (BAR)))))
          (DECLARE (:READ-ONLY #:G133))
          (SETQ FOO (THE FIXNUM #:G132))))
      
      Which is obviously going to call (BAR) twice. If (BAR) has
      side-effects, then it is going to be buggy.
      
      The old define-modify-macro had an issue with out-of-order INCF/DECF,
      which is why it was replaced with Bruno Haible's macro, which is
      supposed to improve THE handling. It turns out that the improvement is
      a bit broken, so we're just fixing this.
      
      Fixes #401.
      09899a3e
  15. 06 Sep, 2017 6 commits
  16. 05 Sep, 2017 2 commits