8363
((3) 0 () 8 ((q lib "plai/gc2/mutator.rkt") (q lib "plai/mutator.rkt") (q lib "plai/collector.rkt") (q lib "plai/main.rkt") (q lib "plai/scribblings/fake-collector2.rkt") (q lib "plai/scribblings/fake-collector.rkt") (q lib "plai/gc2/collector.rkt") (q lib "plai/random-mutator.rkt")) () (h ! (equal) ((c form c (c (? . 6) q get-root-set)) q (4659 . 2)) ((c def c (c (? . 0) q eq?)) q (7301 . 2)) ((c def c (c (? . 5) q gc:cons?)) q (2511 . 3)) ((c def c (c (? . 0) q rest)) q (7495 . 3)) ((c def c (c (? . 4) q gc:set-first!)) q (5605 . 4)) ((c def c (c (? . 3) q test-inexact-epsilon)) q (860 . 3)) ((c def c (c (? . 1) q odd?)) q (3307 . 2)) ((c def c (c (? . 1) q =)) q (3333 . 2)) ((c def c (c (? . 2) q root?)) q (1156 . 3)) ((c form c (c (? . 0) q halt-on-errors)) q (7721 . 2)) ((c form c (c (? . 0) q quote)) q (6599 . 2)) ((c form c (c (? . 1) q and)) q (2775 . 2)) ((c form c (c (? . 1) q λ)) q (3032 . 2)) ((c def c (c (? . 2) q location?)) q (1101 . 3)) ((c form c (c (? . 0) q begin)) q (6612 . 2)) ((c def c (c (? . 1) q cons)) q (3621 . 4)) ((c def c (c (? . 0) q -)) q (6916 . 2)) ((c def c (c (? . 1) q print-only-errors)) q (3993 . 2)) ((c def c (c (? . 1) q <)) q (3356 . 2)) ((c def c (c (? . 2) q heap-value?)) q (1207 . 3)) ((c def c (c (? . 0) q >=)) q (7131 . 2)) ((c def c (c (? . 2) q set-root!)) q (1511 . 4)) ((c form c (c (? . 1) q let)) q (2841 . 2)) ((c form c (c (? . 3) q test/regexp)) q (463 . 2)) ((c def c (c (? . 1) q >=)) q (3426 . 2)) ((c def c (c (? . 1) q add1)) q (3109 . 2)) ((c def c (c (? . 4) q gc:cons)) q (5369 . 4)) ((c def c (c (? . 0) q symbol?)) q (7155 . 2)) ((c def c (c (? . 4) q gc:closure?)) q (6275 . 3)) ((q form ((lib "plai/scribblings/fake-mutator2.rkt") allocator-setup)) q (6340 . 5)) ((c def c (c (? . 3) q error)) q (390 . 2)) ((c def c (c (? . 1) q >)) q (3379 . 2)) ((c def c (c (? . 1) q *)) q (3234 . 2)) ((c form c (c (? . 1) q lambda)) q (2978 . 2)) ((c def c (c (? . 0) q *)) q (6939 . 2)) ((c form c (c (? . 1) q cond)) q (2796 . 2)) ((c def c (c (? . 4) q init-allocator)) q (5196 . 2)) ((c def c (c (? . 0) q empty?)) q (7273 . 2)) ((c def c (c (? . 2) q procedure-roots)) q (1596 . 3)) ((c def c (c (? . 0) q zero?)) q (6866 . 2)) ((c def c (c (? . 1) q <=)) q (3402 . 2)) ((c form c (c (? . 2) q with-roots)) q (1766 . 4)) ((c def c (c (? . 5) q gc:first)) q (2127 . 3)) ((c def c (c (? . 0) q error)) q (6787 . 2)) ((c def c (c (? . 1) q number?)) q (3509 . 2)) ((c def c (c (? . 6) q heap-set!)) q (4505 . 4)) ((c def c (c (? . 4) q gc:first)) q (5456 . 3)) ((c def c (c (? . 0) q /)) q (6962 . 2)) ((c form c (c (? . 0) q import-primitives)) q (7743 . 2)) ((c form c (c (? . 1) q set!)) q (2882 . 2)) ((c form c (c (? . 0) q define)) q (6625 . 2)) ((c def c (c (? . 0) q add1)) q (6814 . 2)) ((c def c (c (? . 2) q read-root)) q (1449 . 3)) ((c def c (c (? . 4) q gc:flat?)) q (5902 . 3)) ((c def c (c (? . 0) q +)) q (6893 . 2)) ((c def c (c (? . 0) q even?)) q (6985 . 2)) ((c def c (c (? . 5) q gc:alloc-flat)) q (1962 . 3)) ((c form c (c (? . 0) q let-values)) q (6557 . 2)) ((c def c (c (? . 6) q read-root)) q (4681 . 3)) ((c form c (c (? . 0) q case)) q (6513 . 2)) ((c form c (c (? . 3) q test)) q (309 . 2)) ((c form c (c (? . 3) q test/pred)) q (351 . 2)) ((c def c (c (? . 1) q eq?)) q (3596 . 2)) ((c def c (c (? . 4) q gc:closure-env-ref)) q (6162 . 4)) ((c def c (c (? . 3) q plai-catch-test-exn)) q (611 . 3)) ((c def c (c (? . 0) q set-rest!)) q (7613 . 4)) ((c def c (c (? . 0) q cons?)) q (7396 . 3)) ((c form c (c (? . 3) q type-case)) q (154 . 6)) ((c def c (c (? . 3) q plai-ignore-exn-strings)) q (937 . 3)) ((c form c (c (? . 1) q quote)) q (2894 . 2)) ((c form c (c (? . 6) q with-heap)) q (5019 . 4)) ((c form c (c (? . 3) q test/exn)) q (417 . 2)) ((c def c (c (? . 0) q odd?)) q (7012 . 2)) ((c def c (c (? . 3) q abridged-test-output)) q (519 . 3)) ((c form c (c (? . 0) q or)) q (6491 . 2)) ((c def c (c (? . 0) q set-first!)) q (7542 . 4)) ((c def c (c (? . 1) q sub1)) q (3135 . 2)) ((c def c (c (? . 0) q =)) q (7038 . 2)) ((c def c (c (? . 0) q number?)) q (7214 . 2)) ((c def c (c (? . 0) q <)) q (7061 . 2)) ((c def c (c (? . 5) q init-allocator)) q (1859 . 2)) ((q def ((lib "plai/scribblings/fake-web.rkt") start)) q (8870 . 3)) ((c def c (c (? . 4) q gc:closure)) q (5964 . 4)) ((c def c (c (? . 6) q heap-value?)) q (4448 . 3)) ((c def c (c (? . 0) q cons)) q (7326 . 4)) ((c def c (c (? . 1) q halt-on-errors)) q (4032 . 2)) ((c def c (c (? . 0) q <=)) q (7107 . 2)) ((c form c (c (? . 0) q lambda)) q (6683 . 2)) ((c def c (c (? . 1) q cons?)) q (3691 . 3)) ((c def c (c (? . 1) q error)) q (3082 . 2)) ((c def c (c (? . 6) q set-root!)) q (4743 . 4)) ((c def c (c (? . 4) q gc:alloc-flat)) q (5299 . 3)) ((c def c (c (? . 7) q find-heap-values)) q (8759 . 3)) ((c def c (c (? . 0) q boolean?)) q (7243 . 2)) ((c form c (c (? . 1) q printf)) q (4216 . 4)) ((c def c (c (? . 4) q gc:deref)) q (5234 . 3)) ((c def c (c (? . 6) q make-root)) q (4886 . 5)) ((c def c (c (? . 6) q simple-root)) q (4828 . 3)) ((c def c (c (? . 0) q sub1)) q (6840 . 2)) ((c form c (c (? . 1) q begin)) q (2907 . 2)) ((c form c (c (? . 6) q with-roots)) q (5110 . 4)) ((c def c (c (? . 4) q gc:set-rest!)) q (5724 . 4)) ((c def c (c (? . 4) q gc:cons?)) q (5840 . 3)) ((c form c (c (? . 3) q define-type)) q (0 . 5)) ((c def c (c (? . 6) q root?)) q (4397 . 3)) ((c form c (c (? . 0) q print-only-errors)) q (7696 . 2)) ((c form c (c (? . 0) q and)) q (6480 . 2)) ((c form c (c (? . 1) q let*)) q (2870 . 2)) ((c def c (c (? . 1) q /)) q (3257 . 2)) ((c def c (c (? . 1) q first)) q (3742 . 3)) ((c def c (c (? . 0) q >)) q (7084 . 2)) ((c form c (c (? . 0) q cond)) q (6501 . 2)) ((c def c (c (? . 1) q set-rest!)) q (3909 . 4)) ((c def c (c (? . 6) q location?)) q (4342 . 3)) ((c form c (c (? . 1) q define-values)) q (2820 . 2)) ((c def c (c (? . 5) q gc:deref)) q (1897 . 3)) ((c def c (c (? . 6) q heap-ref)) q (4594 . 3)) ((c form c (c (? . 1) q import-primitives)) q (4068 . 2)) ((c def c (c (? . 7) q save-random-mutator)) q (7956 . 16)) ((c form c (c (? . 0) q λ)) q (6737 . 2)) ((c def c (c (? . 5) q gc:set-rest!)) q (2395 . 4)) ((c def c (c (? . 1) q symbol=?)) q (3479 . 2)) ((c def c (c (? . 5) q gc:rest)) q (2202 . 3)) ((c def c (c (? . 4) q gc:closure-code-ptr)) q (6086 . 3)) ((c def c (c (? . 1) q set-first!)) q (3837 . 4)) ((c def c (c (? . 3) q halt-on-errors)) q (697 . 3)) ((c def c (c (? . 0) q first)) q (7447 . 3)) ((c form c (c (? . 0) q test/value=?)) q (7834 . 2)) ((c form c (c (? . 1) q test/value=?)) q (4159 . 2)) ((c form c (c (? . 3) q plai-all-test-results)) q (1018 . 2)) ((c form c (c (? . 0) q let)) q (6546 . 2)) ((c def c (c (? . 5) q gc:cons)) q (2032 . 4)) ((c def c (c (? . 1) q rest)) q (3790 . 3)) ((c def c (c (? . 1) q -)) q (3211 . 2)) ((c def c (c (? . 1) q +)) q (3188 . 2)) ((c form c (c (? . 1) q if)) q (2765 . 2)) ((c form c (c (? . 1) q let-values)) q (2852 . 2)) ((c form c (c (? . 1) q empty)) q (3980 . 2)) ((c form c (c (? . 1) q define)) q (2920 . 2)) ((c form c (c (? . 0) q set!)) q (6587 . 2)) ((c def c (c (? . 1) q boolean?)) q (3538 . 2)) ((c form c (c (? . 1) q or)) q (2786 . 2)) ((c form c (c (? . 0) q test/location=?)) q (7779 . 2)) ((c form c (c (? . 0) q empty)) q (7683 . 2)) ((c form c (c (? . 0) q if)) q (6470 . 2)) ((c form c (c (? . 2) q with-heap)) q (1675 . 4)) ((q form ((lib "plai/scribblings/fake-mutator.rkt") allocator-setup)) q (2635 . 5)) ((c def c (c (? . 0) q symbol=?)) q (7184 . 2)) ((c form c (c (? . 0) q printf)) q (7884 . 4)) ((c def c (c (? . 6) q heap-size)) q (4288 . 2)) ((c def c (c (? . 5) q gc:flat?)) q (2573 . 3)) ((c def c (c (? . 1) q even?)) q (3280 . 2)) ((c form c (c (? . 1) q case)) q (2808 . 2)) ((c def c (c (? . 4) q gc:rest)) q (5531 . 3)) ((c def c (c (? . 3) q print-only-errors)) q (776 . 3)) ((c def c (c (? . 2) q heap-set!)) q (1264 . 4)) ((c def c (c (? . 1) q empty?)) q (3568 . 2)) ((c def c (c (? . 1) q symbol?)) q (3450 . 2)) ((c def c (c (? . 1) q zero?)) q (3161 . 2)) ((c form c (c (? . 0) q define-values)) q (6525 . 2)) ((c form c (c (? . 1) q test/location=?)) q (4104 . 2)) ((c form c (c (? . 2) q get-root-set)) q (1418 . 2)) ((c def c (c (? . 2) q heap-ref)) q (1353 . 3)) ((c def c (c (? . 2) q heap-size)) q (1047 . 2)) ((c form c (c (? . 0) q let*)) q (6575 . 2)) ((c def c (c (? . 5) q gc:set-first!)) q (2276 . 4))))
syntax
(define-type type-id variant ...)
(define-type type-id #:immutable 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
(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
(simple-root l) -> root?
  l : 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 ...)
 
  root-var : 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           
                      #:gc2? gc2?])               -> 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
  gc2? : boolean? = #f
procedure
(find-heap-values input) -> (listof heap-value?)
  input : (or/c path-string? input-port?)
procedure
(start initial-request) -> response?
  initial-request : request?
