racket/collects/unstable
Eli Barzilay 3f36d054f6 Turn contracts on enqueue!' and dequeue!' into the usual error checks.
On a simple benchmark of:

  (let ([N 100000]
        [M 20]
        [q (make-queue)])
    (time (for ([i (in-range M)])
            (for ([i (in-range (* i N))]) (enqueue! q i))
            (unless (for/and ([i (in-range (* i N))]) (list i (dequeue! q)))
              (error "poof")))))

I get these timings:

  original version: cpu time: 24438 real time: 24439 gc time: 8164
  single-links:     cpu time: 17848 real time: 17849 gc time: 4859
  this version:     cpu time:  6519 real time:  6519 gc time: 3032

In addition, cleaned up the documentation a little, and mention the fact
that it is not thread safe.
2010-06-23 16:13:54 -04:00
..
gui Moved unstable/cce/slideshow to unstable/gui/slideshow. 2010-06-06 20:31:34 -04:00
net
private Moved the contents of unstable/cce/syntax to multiple other modules: 2010-06-06 20:31:32 -04:00
scribblings Turn contracts on enqueue!' and dequeue!' into the usual error checks. 2010-06-23 16:13:54 -04:00
byte-counting-port.rkt
bytes.rkt
class-iop.rkt
class.rkt Moved unstable/cce/class to unstable/class. 2010-06-06 20:31:31 -04:00
contract.rkt Moved the contents of unstable/cce/syntax to multiple other modules: 2010-06-06 20:31:32 -04:00
debug.rkt Make `debug' catch *all* exceptions 2010-06-21 18:30:27 -04:00
define.rkt Moved unstable/cce/define to unstable/define. 2010-06-06 20:31:33 -04:00
dict.rkt Moved unstable/cce/dict to unstable/dict. 2010-06-06 20:31:31 -04:00
dirs.rkt
exn.rkt Added unstable/cce/exn to unstable/exn. 2010-06-06 20:31:30 -04:00
file.rkt
find.rkt
function.rkt Adapted unstable/cce/function to unstable/function. 2010-06-06 20:29:54 -04:00
generics.rkt
hash.rkt Replaced unstable/hash with unstable/cce/hash. 2010-06-06 20:30:48 -04:00
info.rkt
interval-map.rkt
list.rkt
location.rkt
markparam.rkt
match.rkt Added unstable/cce/match macros to unstable/match. 2010-06-06 20:29:55 -04:00
mutated-vars.rkt New interface for unstable/mutated-vars 2010-06-10 13:28:29 -04:00
path.rkt
planet-syntax.rkt Moved the contents of unstable/cce/syntax to multiple other modules: 2010-06-06 20:31:32 -04:00
planet.rkt Moved unstable/cce/planet to unstable/planet. 2010-06-06 20:31:34 -04:00
poly-c.rkt
port.rkt Moved unstable/cce/port to unstable/port. 2010-06-06 20:31:21 -04:00
pretty.rkt Added unstable/pretty with pretty-format/print, /write, and /display. 2010-06-06 20:29:38 -04:00
queue.rkt Turn contracts on enqueue!' and dequeue!' into the usual error checks. 2010-06-23 16:13:54 -04:00
regexp.rkt Moved unstable/cce/regexp to unstable/regexp. 2010-06-06 20:30:48 -04:00
require.rkt Moved unstable/cce/require-provide to unstable/require. 2010-06-06 20:31:33 -04:00
sandbox.rkt Moved unstable/cce/sandbox to unstable/sandbox. 2010-06-06 20:30:49 -04:00
scribble.rkt Moved unstable/cce/scribble to unstable/scribble. 2010-06-06 20:31:35 -04:00
sequence.rkt
set.rkt Moved unstable/cce/set to unstable/set. 2010-06-06 20:31:35 -04:00
sexp-diff.rkt Added S-Expression diff to unstable. 2010-06-22 18:42:28 -04:00
skip-list.rkt
srcloc.rkt
string.rkt
struct.rkt
syntax.rkt Moved the contents of unstable/cce/syntax to multiple other modules: 2010-06-06 20:31:32 -04:00
text.rkt Moved unstable/cce/text to unstable/text. 2010-06-06 20:29:54 -04:00
values.rkt Moved unstable/cce/values to unstable/values. 2010-06-06 20:29:56 -04:00
web.rkt Moved unstable/cce/web to unstable/web. 2010-06-06 20:29:59 -04:00