Commit Graph

5 Commits

Author SHA1 Message Date
Matthew Flatt
9ace663021 Racket-implemented reverse', member', memv', memq'
With the JIT, the `reverse' function is significantly faster,
while the `member' variants do not really change; the main
benefit is that the operations play well with futures.

The C implementation is still used when the JIT is unavailable,
since the Racket implementations can be much slower in
interpreted mode.
2011-07-27 05:47:46 +01:00
Matthew Flatt
1160d3df62 remove syntax certificates; add syntax taints 2011-06-29 19:15:48 -06:00
Matthew Flatt
56423f330e `procedure-arity-includes?' reports #f for keyword-requiring procs
by default; a new optional argument restores the old behavior
  (but the default behavior is consistent with the old docs and with
  the vast majority of existing uses)

 The implementation is ugly for performance reasons. A new primitive
  `prop:arity-incomplete' property determines when to return #f for
  `procedure-arity-includes?' in default mode. A nicer implementation
  would be to redefine `procedure-arity-includes?' at the kw-proc level,
  but the bytecode optimizer's and JIT's treatment of the built-in
  `procedure-arity-includes?' is important. The implementation choice
  could be revisited after cross-module inlining is implemented.

 Closes PR 11978
2011-06-16 12:36:16 -06:00
Matthew Flatt
2f8006aa6b add an optional argument to `assoc'
and implement `assoc', `assq', and `assv' in Racket
2011-04-24 07:55:33 -06:00
Matthew Flatt
c95a398754 move most of the 'scheme' collection to the 'racket' collection 2010-04-20 15:24:48 -06:00