1. 20 Aug, 2021 1 commit
  2. 19 Aug, 2021 3 commits
  3. 23 May, 2021 7 commits
  4. 19 May, 2021 2 commits
  5. 18 May, 2021 1 commit
    • Steve Losh's avatar
      Fix control flow when the loop contains NIL blocks · e0cc021a
      Steve Losh authored
      Control flow clauses that return from an iterate form without executing
      the epilogue code (e.g. `never` and `leave`) currently do so by
      expanding into `(return-from ,*block-name*)`.  For iterate forms without
      a user-provided name, the block will be named `nil`.  This causes
      problems when used with other Common Lisp looping constructs such as
      `dolist`:
      
          (iterate
            (for i :from 0 :below 10)
            (dolist (x '(5 10 15))
              (never (= i x))))
          ; => T, but should be NIL
      
      This patch adds a separate `*loop-name*` variable that will be bound to
      a gensym for `NIL`-named blocks and makes the various epilogue-skipping
      code refer to that instead of `*block-name*`.  Iterate forms *without*
      an explicit user-provided name will still have a separate `(block nil
      ...)` wrapping so users can still `(return ...)` as before.
      
      Before (simplified):
      
          (iterate (leave))
          ; ==> (block nil (return-from nil))
      
          (iterate foo (leave))
          ; ==> (block foo (return-from nil))
      
      After:
      
          (iterate (leave))
          ; ==> (block nil (block #:ITERATE123 (return-from #:ITERATE123)))
      
          (iterate foo (leave))
          ; ==> (block foo (return-from foo))
      e0cc021a
  6. 17 May, 2021 5 commits
  7. 03 Feb, 2021 1 commit
  8. 11 May, 2020 2 commits
  9. 25 Jan, 2020 2 commits
  10. 07 Feb, 2018 1 commit
  11. 23 Jan, 2018 1 commit
  12. 16 Jan, 2018 4 commits
  13. 03 Aug, 2017 2 commits
    • Attila Lendvai's avatar
      tests: add *tests-expected-to-fail* to document which tests are expected to fail · c6659c94
      Attila Lendvai authored
      Ignore-this: 7d072a9ffe694700e1dc52ef3c653f94
      
      darcs-hash:79473b46ee0df4304125a8727b0691cfb05bbdd7
      c6659c94
    • Attila Lendvai's avatar
      Added 3 failing tests: always.finally, never.finally, and thereis.finally · ba12cb99
      Attila Lendvai authored
      Ignore-this: f3e9d3983567eb04ce2429b310bee837
      
      I'm not sure about what is their contract, but it was surprising to me
      that the FINALLY block is not executed.
      
      Arguably if you're expected to avoid sideffects in a FINALLY block,
      then you cannot/shouldn't change the return value, so the entire
      FINALLY block can be skipped then.
      
      Either way, this behavior should be documented with the tests, so
      if the current behavior is expected, then change the tests
      accordingly (as opposed to deleting them).
      
      darcs-hash:c0b172b51bc40943946c86d8ab76297807d26594
      ba12cb99
  14. 12 Jul, 2016 2 commits
  15. 11 Jul, 2016 1 commit
    • Attila Lendvai's avatar
      modernize .asd · 44e82af5
      Attila Lendvai authored
      Ignore-this: aac8fb3377c1ca4555e4e6483048e00c
      
      darcs-hash:e19497cb42b1837e878853300bd6b1972ff159c5
      44e82af5
  16. 23 Apr, 2014 1 commit
  17. 29 Jan, 2014 3 commits
  18. 08 May, 2012 1 commit