8464
((3) 0 () 9 ((q lib "plai/mutator.rkt") (q lib "plai/scribblings/fake-collector2.rkt") (q lib "plai/gc2/collector.rkt") (q lib "plai/gc2/mutator.rkt") (q lib "plai/main.rkt") (q lib "plai/collector.rkt") (q lib "plai/scribblings/fake-collector.rkt") (q lib "plai/gc2/random-mutator.rkt") (q lib "plai/random-mutator.rkt")) () (h ! (equal) ((c def c (c (? . 1) q gc:set-first!)) q (6332 . 4)) ((c def c (c (? . 0) q *)) q (3184 . 2)) ((c form c (c (? . 0) q and)) q (2725 . 2)) ((c def c (c (? . 5) q root?)) q (1106 . 3)) ((c form c (c (? . 2) q with-heap)) q (5734 . 4)) ((c def c (c (? . 1) q gc:closure-env-ref)) q (6889 . 4)) ((c def c (c (? . 2) q heap-set!)) q (5278 . 4)) ((c def c (c (? . 0) q eq?)) q (3546 . 2)) ((c form c (c (? . 3) q if)) q (7197 . 2)) ((c form c (c (? . 3) q set!)) q (7314 . 2)) ((c form c (c (? . 3) q quote)) q (7326 . 2)) ((c def c (c (? . 1) q gc:cons)) q (6096 . 4)) ((c form c (c (? . 3) q begin)) q (7339 . 2)) ((c def c (c (? . 4) q plai-ignore-exn-strings)) q (887 . 3)) ((c form c (c (? . 0) q test/value=?)) q (4109 . 2)) ((c def c (c (? . 0) q rest)) q (3740 . 3)) ((c form c (c (? . 4) q type-case)) q (104 . 6)) ((c def c (c (? . 0) q >)) q (3329 . 2)) ((c form c (c (? . 0) q import-primitives)) q (4018 . 2)) ((c form c (c (? . 0) q λ)) q (2982 . 2)) ((c form c (c (? . 3) q let-values)) q (7284 . 2)) ((c form c (c (? . 3) q empty)) q (8410 . 2)) ((c def c (c (? . 5) q set-root!)) q (1461 . 4)) ((c def c (c (? . 0) q halt-on-errors)) q (3982 . 2)) ((c def c (c (? . 2) q set-root!)) q (5516 . 4)) ((c form c (c (? . 0) q set!)) q (2832 . 2)) ((c form c (c (? . 3) q import-primitives)) q (8470 . 2)) ((c form c (c (? . 0) q quote)) q (2844 . 2)) ((c form c (c (? . 0) q let*)) q (2820 . 2)) ((c form c (c (? . 3) q test/value=?)) q (8561 . 2)) ((c def c (c (? . 6) q gc:set-rest!)) q (2345 . 4)) ((c def c (c (? . 3) q error)) q (7514 . 2)) ((c def c (c (? . 1) q gc:flat?)) q (6629 . 3)) ((c def c (c (? . 0) q error)) q (3032 . 2)) ((c def c (c (? . 3) q cons)) q (8053 . 4)) ((c def c (c (? . 4) q plai-catch-test-exn)) q (561 . 3)) ((c form c (c (? . 3) q or)) q (7218 . 2)) ((c form c (c (? . 3) q cond)) q (7228 . 2)) ((c form c (c (? . 3) q define)) q (7352 . 2)) ((c def c (c (? . 5) q heap-set!)) q (1214 . 4)) ((c def c (c (? . 3) q even?)) q (7712 . 2)) ((c def c (c (? . 3) q odd?)) q (7739 . 2)) ((c def c (c (? . 0) q sub1)) q (3085 . 2)) ((c def c (c (? . 6) q gc:cons)) q (1982 . 4)) ((c def c (c (? . 0) q <)) q (3306 . 2)) ((c def c (c (? . 1) q gc:alloc-flat)) q (6026 . 3)) ((c def c (c (? . 6) q gc:deref)) q (1847 . 3)) ((c form c (c (? . 5) q with-heap)) q (1625 . 4)) ((c form c (c (? . 0) q lambda)) q (2928 . 2)) ((c def c (c (? . 3) q set-rest!)) q (8340 . 4)) ((c def c (c (? . 1) q gc:cons?)) q (6567 . 3)) ((c def c (c (? . 2) q heap-ref)) q (5367 . 3)) ((c def c (c (? . 6) q gc:set-first!)) q (2226 . 4)) ((c form c (c (? . 0) q cond)) q (2746 . 2)) ((c def c (c (? . 0) q +)) q (3138 . 2)) ((c form c (c (? . 4) q define-type)) q (0 . 4)) ((c form c (c (? . 0) q let)) q (2791 . 2)) ((c def c (c (? . 6) q gc:first)) q (2077 . 3)) ((c def c (c (? . 1) q gc:closure?)) q (7002 . 3)) ((c def c (c (? . 2) q heap-value?)) q (5221 . 3)) ((c form c (c (? . 3) q test/location=?)) q (8506 . 2)) ((c form c (c (? . 4) q test/regexp)) q (413 . 2)) ((c def c (c (? . 7) q save-random-mutator)) q (8683 . 14)) ((c def c (c (? . 8) q find-heap-values)) q (4950 . 3)) ((q form ((lib "plai/scribblings/fake-mutator.rkt") allocator-setup)) q (2585 . 5)) ((c def c (c (? . 0) q even?)) q (3230 . 2)) ((c form c (c (? . 5) q get-root-set)) q (1368 . 2)) ((c def c (c (? . 6) q gc:alloc-flat)) q (1912 . 3)) ((c form c (c (? . 3) q and)) q (7207 . 2)) ((c def c (c (? . 0) q add1)) q (3059 . 2)) ((c def c (c (? . 5) q procedure-roots)) q (1546 . 3)) ((c form c (c (? . 0) q let-values)) q (2802 . 2)) ((c def c (c (? . 6) q init-allocator)) q (1809 . 2)) ((c form c (c (? . 3) q let)) q (7273 . 2)) ((c def c (c (? . 1) q init-allocator)) q (5923 . 2)) ((c form c (c (? . 3) q let*)) q (7302 . 2)) ((c def c (c (? . 3) q +)) q (7620 . 2)) ((c def c (c (? . 3) q -)) q (7643 . 2)) ((c def c (c (? . 3) q *)) q (7666 . 2)) ((c def c (c (? . 3) q /)) q (7689 . 2)) ((c def c (c (? . 3) q number?)) q (7941 . 2)) ((c def c (c (? . 0) q -)) q (3161 . 2)) ((c def c (c (? . 0) q zero?)) q (3111 . 2)) ((c form c (c (? . 0) q if)) q (2715 . 2)) ((c def c (c (? . 3) q boolean?)) q (7970 . 2)) ((c def c (c (? . 3) q eq?)) q (8028 . 2)) ((c def c (c (? . 4) q test-inexact-epsilon)) q (810 . 3)) ((c def c (c (? . 0) q symbol=?)) q (3429 . 2)) ((c def c (c (? . 0) q set-rest!)) q (3859 . 4)) ((c def c (c (? . 4) q abridged-test-output)) q (469 . 3)) ((c form c (c (? . 2) q get-root-set)) q (5432 . 2)) ((c def c (c (? . 0) q odd?)) q (3257 . 2)) ((c def c (c (? . 0) q cons)) q (3571 . 4)) ((c def c (c (? . 4) q error)) q (340 . 2)) ((c def c (c (? . 6) q gc:cons?)) q (2461 . 3)) ((c def c (c (? . 2) q read-root)) q (5454 . 3)) ((c form c (c (? . 4) q test/exn)) q (367 . 2)) ((c def c (c (? . 3) q =)) q (7765 . 2)) ((c def c (c (? . 3) q <)) q (7788 . 2)) ((c def c (c (? . 3) q >)) q (7811 . 2)) ((c def c (c (? . 0) q symbol?)) q (3400 . 2)) ((c def c (c (? . 0) q first)) q (3692 . 3)) ((c def c (c (? . 1) q gc:rest)) q (6258 . 3)) ((c form c (c (? . 3) q halt-on-errors)) q (8448 . 2)) ((c def c (c (? . 1) q gc:set-rest!)) q (6451 . 4)) ((c def c (c (? . 3) q symbol?)) q (7882 . 2)) ((c def c (c (? . 2) q make-root)) q (5601 . 5)) ((c def c (c (? . 2) q heap-size)) q (5061 . 2)) ((c def c (c (? . 1) q gc:closure)) q (6691 . 4)) ((c form c (c (? . 3) q case)) q (7240 . 2)) ((c def c (c (? . 3) q add1)) q (7541 . 2)) ((c def c (c (? . 3) q sub1)) q (7567 . 2)) ((c def c (c (? . 3) q rest)) q (8222 . 3)) ((c form c (c (? . 0) q define)) q (2870 . 2)) ((c def c (c (? . 0) q >=)) q (3376 . 2)) ((c def c (c (? . 0) q set-first!)) q (3787 . 4)) ((c def c (c (? . 7) q find-heap-values)) q (9395 . 3)) ((c def c (c (? . 3) q first)) q (8174 . 3)) ((c form c (c (? . 4) q test)) q (259 . 2)) ((c def c (c (? . 2) q location?)) q (5115 . 3)) ((c def c (c (? . 3) q zero?)) q (7593 . 2)) ((c def c (c (? . 0) q boolean?)) q (3488 . 2)) ((c def c (c (? . 3) q <=)) q (7834 . 2)) ((c def c (c (? . 6) q gc:rest)) q (2152 . 3)) ((c def c (c (? . 5) q heap-size)) q (997 . 2)) ((c def c (c (? . 3) q >=)) q (7858 . 2)) ((c def c (c (? . 4) q print-only-errors)) q (726 . 3)) ((c def c (c (? . 3) q set-first!)) q (8269 . 4)) ((c def c (c (? . 0) q empty?)) q (3518 . 2)) ((c form c (c (? . 3) q define-values)) q (7252 . 2)) ((c def c (c (? . 1) q gc:closure-code-ptr)) q (6813 . 3)) ((c def c (c (? . 0) q number?)) q (3459 . 2)) ((c def c (c (? . 8) q save-random-mutator)) q (4238 . 14)) ((c def c (c (? . 5) q heap-ref)) q (1303 . 3)) ((c form c (c (? . 3) q lambda)) q (7410 . 2)) ((c def c (c (? . 0) q =)) q (3283 . 2)) ((c form c (c (? . 0) q case)) q (2758 . 2)) ((c form c (c (? . 3) q λ)) q (7464 . 2)) ((c def c (c (? . 3) q symbol=?)) q (7911 . 2)) ((c form c (c (? . 0) q begin)) q (2857 . 2)) ((c def c (c (? . 1) q gc:first)) q (6183 . 3)) ((c form c (c (? . 4) q test/pred)) q (301 . 2)) ((q form ((lib "plai/scribblings/fake-mutator2.rkt") allocator-setup)) q (7067 . 5)) ((c def c (c (? . 3) q empty?)) q (8000 . 2)) ((c def c (c (? . 3) q cons?)) q (8123 . 3)) ((c form c (c (? . 0) q or)) q (2736 . 2)) ((c def c (c (? . 0) q <=)) q (3352 . 2)) ((c form c (c (? . 0) q empty)) q (3930 . 2)) ((c def c (c (? . 5) q heap-value?)) q (1157 . 3)) ((c form c (c (? . 2) q with-roots)) q (5825 . 4)) ((c def c (c (? . 2) q root?)) q (5170 . 3)) ((c def c (c (? . 5) q location?)) q (1051 . 3)) ((c def c (c (? . 0) q print-only-errors)) q (3943 . 2)) ((c def c (c (? . 5) q read-root)) q (1399 . 3)) ((c form c (c (? . 3) q print-only-errors)) q (8423 . 2)) ((c form c (c (? . 0) q test/location=?)) q (4054 . 2)) ((c def c (c (? . 6) q gc:flat?)) q (2523 . 3)) ((c def c (c (? . 1) q gc:deref)) q (5961 . 3)) ((c def c (c (? . 4) q halt-on-errors)) q (647 . 3)) ((c form c (c (? . 3) q printf)) q (8611 . 4)) ((q def ((lib "plai/scribblings/fake-web.rkt") start)) q (9506 . 3)) ((c form c (c (? . 5) q with-roots)) q (1716 . 4)) ((c form c (c (? . 0) q printf)) q (4166 . 4)) ((c def c (c (? . 0) q cons?)) q (3641 . 3)) ((c form c (c (? . 4) q plai-all-test-results)) q (968 . 2)) ((c form c (c (? . 0) q define-values)) q (2770 . 2)) ((c def c (c (? . 0) q /)) q (3207 . 2))))
syntax
(define-type type-id variant ...)
 
variant = (variant-id (field-id contract-expr) ...)
syntax
(type-case datatype-id expr
   branch ...)
 
branch = (variant-id (field-id ...) result-expr ...)
       | (else result-expr ...)
syntax
(test result-expr expected-expr)
syntax
(test/pred result-expr pred?)
value
error : procedure?
syntax
(test/exn result-expr error-message)
syntax
(test/regexp result-expr error-message-regexp)
procedure
(abridged-test-output [abridge?]) -> void?
  abridge? : boolean? = false
procedure
(plai-catch-test-exn [catch?]) -> void?
  catch? : boolean? = true
procedure
(halt-on-errors [halt?]) -> void?
  halt? : boolean? = true
procedure
(print-only-errors [print?]) -> void?
  print? : boolean? = true
procedure
(test-inexact-epsilon epsilon) -> void?
  epsilon : number?
procedure
(plai-ignore-exn-strings ignore?) -> void?
  ignore? : boolean?
syntax
plai-all-test-results
procedure
(heap-size) -> exact-nonnegative-integer?
procedure
(location? v) -> boolean?
  v : any/c
procedure
(root? v) -> boolean?
  v : any/c
procedure
(heap-value? v) -> boolean?
  v : any/c
procedure
(heap-set! loc val) -> void?
  loc : location?
  val : heap-value?
procedure
(heap-ref loc) -> heap-value?
  loc : location?
syntax
(get-root-set id ...)
procedure
(read-root root) -> location?
  root : root?
procedure
(set-root! root loc) -> void?
  root : root?
  loc : location?
procedure
(procedure-roots proc) -> (listof root?)
  proc : procedure?
syntax
(with-heap heap-expr body-expr ...)
 
  heap-expr : (vectorof heap-value?)
syntax
(with-roots roots-expr expr1 expr2 ...)
 
  roots-expr : (listof location?)
procedure
(init-allocator) -> void?
procedure
(gc:deref loc) -> heap-value?
  loc : location?
procedure
(gc:alloc-flat val) -> location?
  val : heap-value?
procedure
(gc:cons first rest) -> location?
  first : location?
  rest : location?
procedure
(gc:first cons-cell) -> location?
  cons-cell : location?
procedure
(gc:rest cons-cell) -> location?
  cons-cell : location?
procedure
(gc:set-first! cons-cell first-value) -> void?
  cons-cell : location?
  first-value : location?
procedure
(gc:set-rest! cons-cell rest-value) -> void?
  cons-cell : location?
  rest-value : location?
procedure
(gc:cons? loc) -> boolean?
  loc : location?
procedure
(gc:flat? loc) -> boolean?
  loc : location?
syntax
(allocator-setup collector-module
                 heap-size)
 
heap-size = exact-nonnegative-integer
syntax
if
syntax
and
syntax
or
syntax
cond
syntax
case
syntax
define-values
syntax
let
syntax
let-values
syntax
let*
syntax
set!
syntax
quote
syntax
begin
syntax
(define (id arg-id ...) body-expression ...+)
syntax
(lambda (arg-id ...) body-expression ...+)
syntax
(λ (arg-id ...) body-expression ...+)
value
error : procedure?
value
add1 : procedure?
value
sub1 : procedure?
value
zero? : procedure?
value
+ : procedure?
value
- : procedure?
value
* : procedure?
value
/ : procedure?
value
even? : procedure?
value
odd? : procedure?
value
= : procedure?
value
< : procedure?
value
> : procedure?
value
<= : procedure?
value
>= : procedure?
value
symbol? : procedure?
value
symbol=? : procedure?
value
number? : procedure?
value
boolean? : procedure?
value
empty? : procedure?
value
eq? : procedure?
procedure
(cons hd tl) -> cons?
  hd : any/c
  tl : any/c
procedure
(cons? v) -> boolean?
  v : any/c
procedure
(first c) -> any/c
  c : cons?
procedure
(rest c) -> any/c
  c : cons?
procedure
(set-first! c v) -> void?
  c : cons?
  v : any/c
procedure
(set-rest! c v) -> void?
  c : cons?
  v : any/c
syntax
empty
value
print-only-errors : procedure?
value
halt-on-errors : procedure?
syntax
(import-primitives id ...)
syntax
(test/location=? mutator-expr1 mutator-expr2)
syntax
(test/value=? mutator-expr scheme-datum/quoted)
syntax
(printf format mutator-expr ...)
 
format = literal-string
procedure
(save-random-mutator  file                            
                      collector-name                  
                     [#:heap-values heap-values       
                      #:iterations iterations         
                      #:program-size program-size     
                      #:heap-size heap-size])     -> void?
  file : path-string?
  collector-name : string?
  heap-values : (cons heap-value? (listof heap-value?))
              = (list 0 1 -1 'x 'y #f #t '())
  iterations : exact-positive-integer? = 200
  program-size : exact-positive-integer? = 10
  heap-size : exact-positive-integer? = 100
procedure
(find-heap-values input) -> (listof heap-value?)
  input : (or/c path-string? input-port?)
procedure
(heap-size) -> exact-nonnegative-integer?
procedure
(location? v) -> boolean?
  v : any/c
procedure
(root? v) -> boolean?
  v : any/c
procedure
(heap-value? v) -> boolean?
  v : any/c
procedure
(heap-set! loc val) -> void?
  loc : location?
  val : heap-value?
procedure
(heap-ref loc) -> heap-value?
  loc : location?
syntax
(get-root-set)
procedure
(read-root root) -> location?
  root : root?
procedure
(set-root! root loc) -> void?
  root : root?
  loc : location?
procedure
(make-root name get set) -> root?
  name : symbol?
  get : (-> location?)
  set : (-> location? void?)
syntax
(with-heap heap-expr body-expr ...)
 
  heap-expr : (vectorof heap-value?)
syntax
(with-roots (root-var ...) expr1 expr2 ...)
 
  roots-expr : (listof location?)
procedure
(init-allocator) -> void?
procedure
(gc:deref loc) -> heap-value?
  loc : location?
procedure
(gc:alloc-flat val) -> location?
  val : heap-value?
procedure
(gc:cons first rest) -> location?
  first : root?
  rest : root?
procedure
(gc:first cons-cell) -> location?
  cons-cell : location?
procedure
(gc:rest cons-cell) -> location?
  cons-cell : location?
procedure
(gc:set-first! cons-cell first-value) -> void?
  cons-cell : location?
  first-value : location?
procedure
(gc:set-rest! cons-cell rest-value) -> void?
  cons-cell : location?
  rest-value : location?
procedure
(gc:cons? loc) -> boolean?
  loc : location?
procedure
(gc:flat? loc) -> boolean?
  loc : location?
procedure
(gc:closure code-ptr free-vars) -> location?
  code-ptr : heap-value?
  free-vars : (listof root?)
procedure
(gc:closure-code-ptr loc) -> heap-value?
  loc : location?
procedure
(gc:closure-env-ref loc i) -> location?
  loc : location?
  i : exact-nonnegative-integer?
procedure
(gc:closure? loc) -> boolean?
  loc : location?
syntax
(allocator-setup collector-module
                 heap-size)
 
heap-size = exact-nonnegative-integer
syntax
if
syntax
and
syntax
or
syntax
cond
syntax
case
syntax
define-values
syntax
let
syntax
let-values
syntax
let*
syntax
set!
syntax
quote
syntax
begin
syntax
(define (id arg-id ...) body-expression ...+)
syntax
(lambda (arg-id ...) body-expression ...+)
syntax
(λ (arg-id ...) body-expression ...+)
value
error : procedure?
value
add1 : procedure?
value
sub1 : procedure?
value
zero? : procedure?
value
+ : procedure?
value
- : procedure?
value
* : procedure?
value
/ : procedure?
value
even? : procedure?
value
odd? : procedure?
value
= : procedure?
value
< : procedure?
value
> : procedure?
value
<= : procedure?
value
>= : procedure?
value
symbol? : procedure?
value
symbol=? : procedure?
value
number? : procedure?
value
boolean? : procedure?
value
empty? : procedure?
value
eq? : procedure?
procedure
(cons hd tl) -> cons?
  hd : any/c
  tl : any/c
procedure
(cons? v) -> boolean?
  v : any/c
procedure
(first c) -> any/c
  c : cons?
procedure
(rest c) -> any/c
  c : cons?
procedure
(set-first! c v) -> void
  c : cons?
  v : any/c
procedure
(set-rest! c v) -> void
  c : cons?
  v : any/c
syntax
empty
syntax
print-only-errors
syntax
halt-on-errors
syntax
(import-primitives id ...)
syntax
(test/location=? mutator-expr1 mutator-expr2)
syntax
(test/value=? mutator-expr datum/quoted)
syntax
(printf format mutator-expr ...)
 
format = literal-string
procedure
(save-random-mutator  file                            
                      collector-name                  
                     [#:heap-values heap-values       
                      #:iterations iterations         
                      #:program-size program-size     
                      #:heap-size heap-size])     -> void?
  file : path-string?
  collector-name : string?
  heap-values : (cons heap-value? (listof heap-value?))
              = (list 0 1 -1 'x 'y #f #t '())
  iterations : exact-positive-integer? = 200
  program-size : exact-positive-integer? = 10
  heap-size : exact-positive-integer? = 100
procedure
(find-heap-values input) -> (listof heap-value?)
  input : (or/c path-string? input-port?)
procedure
(start initial-request) -> response?
  initial-request : request?
