8410
((3) 0 () 8 ((q lib "plai/gc2/mutator.rkt") (q lib "plai/mutator.rkt") (q lib "plai/gc2/collector.rkt") (q lib "plai/collector.rkt") (q lib "plai/scribblings/fake-collector2.rkt") (q lib "plai/main.rkt") (q lib "plai/scribblings/fake-collector.rkt") (q lib "plai/random-mutator.rkt")) () (h ! (equal) ((c form c (c (? . 0) q let)) q (6622 . 2)) ((c def c (c (? . 0) q -)) q (6992 . 2)) ((c form c (c (? . 1) q or)) q (2862 . 2)) ((c form c (c (? . 3) q with-roots)) q (1842 . 4)) ((c def c (c (? . 2) q read-root)) q (4757 . 3)) ((c def c (c (? . 0) q empty?)) q (7349 . 2)) ((c def c (c (? . 4) q gc:closure-code-ptr)) q (6162 . 3)) ((c def c (c (? . 1) q <)) q (3432 . 2)) ((c def c (c (? . 1) q set-first!)) q (3913 . 4)) ((c def c (c (? . 1) q >=)) q (3502 . 2)) ((c form c (c (? . 0) q quote)) q (6675 . 2)) ((c form c (c (? . 1) q test/value=?)) q (4235 . 2)) ((c form c (c (? . 2) q with-heap)) q (5095 . 4)) ((c form c (c (? . 0) q let*)) q (6651 . 2)) ((c def c (c (? . 6) q gc:deref)) q (1973 . 3)) ((c form c (c (? . 1) q test/location=?)) q (4180 . 2)) ((c def c (c (? . 1) q -)) q (3287 . 2)) ((c form c (c (? . 0) q and)) q (6556 . 2)) ((c def c (c (? . 3) q heap-value?)) q (1283 . 3)) ((c form c (c (? . 5) q define-type)) q (0 . 5)) ((c def c (c (? . 1) q >)) q (3455 . 2)) ((c form c (c (? . 1) q empty)) q (4056 . 2)) ((c def c (c (? . 4) q gc:rest)) q (5607 . 3)) ((c form c (c (? . 5) q test/pred)) q (351 . 2)) ((c def c (c (? . 3) q heap-ref)) q (1429 . 3)) ((c def c (c (? . 4) q gc:closure-env-ref)) q (6238 . 4)) ((c def c (c (? . 5) q halt-on-errors)) q (773 . 3)) ((c def c (c (? . 5) q print-only-errors)) q (852 . 3)) ((c def c (c (? . 6) q gc:alloc-flat)) q (2038 . 3)) ((c form c (c (? . 1) q λ)) q (3108 . 2)) ((c form c (c (? . 1) q quote)) q (2970 . 2)) ((c def c (c (? . 0) q >)) q (7160 . 2)) ((c form c (c (? . 0) q define)) q (6701 . 2)) ((c form c (c (? . 2) q with-roots)) q (5186 . 4)) ((c form c (c (? . 0) q test/location=?)) q (7855 . 2)) ((c def c (c (? . 1) q error)) q (3158 . 2)) ((c def c (c (? . 1) q +)) q (3264 . 2)) ((c form c (c (? . 1) q begin)) q (2983 . 2)) ((c def c (c (? . 1) q boolean?)) q (3614 . 2)) ((c def c (c (? . 2) q simple-root)) q (4904 . 3)) ((c form c (c (? . 1) q case)) q (2884 . 2)) ((c def c (c (? . 5) q plai-catch-test-exn)) q (687 . 3)) ((c def c (c (? . 0) q cons)) q (7402 . 4)) ((c form c (c (? . 0) q or)) q (6567 . 2)) ((q form ((lib "plai/scribblings/fake-mutator.rkt") allocator-setup)) q (2711 . 5)) ((c def c (c (? . 0) q sub1)) q (6916 . 2)) ((c def c (c (? . 0) q rest)) q (7571 . 3)) ((c form c (c (? . 1) q set!)) q (2958 . 2)) ((c form c (c (? . 0) q empty)) q (7759 . 2)) ((c def c (c (? . 6) q init-allocator)) q (1935 . 2)) ((c def c (c (? . 1) q empty?)) q (3644 . 2)) ((c def c (c (? . 3) q set-root!)) q (1587 . 4)) ((c form c (c (? . 1) q printf)) q (4292 . 4)) ((c form c (c (? . 1) q let)) q (2917 . 2)) ((c def c (c (? . 7) q save-random-mutator)) q (8032 . 16)) ((c def c (c (? . 0) q error)) q (6863 . 2)) ((c form c (c (? . 1) q and)) q (2851 . 2)) ((c form c (c (? . 0) q printf)) q (7960 . 4)) ((c def c (c (? . 0) q symbol=?)) q (7260 . 2)) ((c form c (c (? . 1) q lambda)) q (3054 . 2)) ((c def c (c (? . 0) q eq?)) q (7377 . 2)) ((c def c (c (? . 2) q location?)) q (4418 . 3)) ((c def c (c (? . 6) q gc:set-first!)) q (2352 . 4)) ((c def c (c (? . 1) q /)) q (3333 . 2)) ((c def c (c (? . 4) q gc:alloc-flat)) q (5375 . 3)) ((c form c (c (? . 1) q cond)) q (2872 . 2)) ((c def c (c (? . 0) q first)) q (7523 . 3)) ((c form c (c (? . 0) q halt-on-errors)) q (7797 . 2)) ((q def ((lib "plai/scribblings/fake-web.rkt") start)) q (8946 . 3)) ((c def c (c (? . 3) q location?)) q (1177 . 3)) ((c def c (c (? . 4) q gc:set-first!)) q (5681 . 4)) ((c def c (c (? . 0) q number?)) q (7290 . 2)) ((c def c (c (? . 5) q abridged-test-output)) q (595 . 3)) ((c def c (c (? . 3) q heap-set!)) q (1340 . 4)) ((c def c (c (? . 1) q <=)) q (3478 . 2)) ((c def c (c (? . 0) q +)) q (6969 . 2)) ((c form c (c (? . 5) q test/regexp)) q (463 . 2)) ((c def c (c (? . 0) q set-first!)) q (7618 . 4)) ((c def c (c (? . 1) q symbol?)) q (3526 . 2)) ((c def c (c (? . 2) q heap-size)) q (4364 . 2)) ((c form c (c (? . 1) q if)) q (2841 . 2)) ((q form ((lib "plai/scribblings/fake-mutator2.rkt") allocator-setup)) q (6416 . 5)) ((c def c (c (? . 1) q set-rest!)) q (3985 . 4)) ((c def c (c (? . 1) q sub1)) q (3211 . 2)) ((c def c (c (? . 0) q <=)) q (7183 . 2)) ((c def c (c (? . 0) q even?)) q (7061 . 2)) ((c def c (c (? . 0) q add1)) q (6890 . 2)) ((c def c (c (? . 5) q equal~?)) q (519 . 4)) ((c form c (c (? . 0) q set!)) q (6663 . 2)) ((c def c (c (? . 1) q zero?)) q (3237 . 2)) ((c def c (c (? . 6) q gc:first)) q (2203 . 3)) ((c def c (c (? . 3) q root?)) q (1232 . 3)) ((c form c (c (? . 1) q import-primitives)) q (4144 . 2)) ((c def c (c (? . 0) q =)) q (7114 . 2)) ((c def c (c (? . 1) q odd?)) q (3383 . 2)) ((c form c (c (? . 1) q let-values)) q (2928 . 2)) ((c def c (c (? . 5) q error)) q (390 . 2)) ((c form c (c (? . 1) q let*)) q (2946 . 2)) ((c def c (c (? . 0) q <)) q (7137 . 2)) ((c form c (c (? . 5) q type-case)) q (154 . 6)) ((c def c (c (? . 0) q >=)) q (7207 . 2)) ((c def c (c (? . 1) q halt-on-errors)) q (4108 . 2)) ((c def c (c (? . 2) q root?)) q (4473 . 3)) ((c def c (c (? . 1) q first)) q (3818 . 3)) ((c def c (c (? . 3) q heap-size)) q (1123 . 2)) ((c def c (c (? . 1) q eq?)) q (3672 . 2)) ((c def c (c (? . 3) q procedure-roots)) q (1672 . 3)) ((c form c (c (? . 5) q test)) q (309 . 2)) ((c form c (c (? . 0) q let-values)) q (6633 . 2)) ((c def c (c (? . 1) q cons)) q (3697 . 4)) ((c form c (c (? . 2) q get-root-set)) q (4735 . 2)) ((c def c (c (? . 2) q set-root!)) q (4819 . 4)) ((c form c (c (? . 0) q import-primitives)) q (7819 . 2)) ((c def c (c (? . 0) q boolean?)) q (7319 . 2)) ((c def c (c (? . 6) q gc:cons?)) q (2587 . 3)) ((c def c (c (? . 3) q read-root)) q (1525 . 3)) ((c def c (c (? . 0) q symbol?)) q (7231 . 2)) ((c form c (c (? . 1) q define-values)) q (2896 . 2)) ((c def c (c (? . 4) q gc:cons)) q (5445 . 4)) ((c form c (c (? . 0) q test/value=?)) q (7910 . 2)) ((c def c (c (? . 1) q symbol=?)) q (3555 . 2)) ((c def c (c (? . 5) q test-inexact-epsilon)) q (936 . 3)) ((c def c (c (? . 0) q /)) q (7038 . 2)) ((c def c (c (? . 1) q number?)) q (3585 . 2)) ((c form c (c (? . 3) q get-root-set)) q (1494 . 2)) ((c def c (c (? . 1) q =)) q (3409 . 2)) ((c def c (c (? . 1) q *)) q (3310 . 2)) ((c form c (c (? . 0) q begin)) q (6688 . 2)) ((c def c (c (? . 0) q zero?)) q (6942 . 2)) ((c def c (c (? . 0) q cons?)) q (7472 . 3)) ((c def c (c (? . 2) q heap-value?)) q (4524 . 3)) ((c def c (c (? . 0) q set-rest!)) q (7689 . 4)) ((c def c (c (? . 1) q add1)) q (3185 . 2)) ((c def c (c (? . 6) q gc:flat?)) q (2649 . 3)) ((c def c (c (? . 1) q even?)) q (3356 . 2)) ((c form c (c (? . 0) q if)) q (6546 . 2)) ((c def c (c (? . 4) q gc:closure)) q (6040 . 4)) ((c def c (c (? . 7) q find-heap-values)) q (8835 . 3)) ((c def c (c (? . 4) q gc:first)) q (5532 . 3)) ((c form c (c (? . 0) q case)) q (6589 . 2)) ((c def c (c (? . 6) q gc:set-rest!)) q (2471 . 4)) ((c form c (c (? . 0) q cond)) q (6577 . 2)) ((c form c (c (? . 0) q print-only-errors)) q (7772 . 2)) ((c form c (c (? . 0) q lambda)) q (6759 . 2)) ((c def c (c (? . 1) q print-only-errors)) q (4069 . 2)) ((c def c (c (? . 2) q heap-ref)) q (4670 . 3)) ((c def c (c (? . 2) q heap-set!)) q (4581 . 4)) ((c def c (c (? . 4) q init-allocator)) q (5272 . 2)) ((c form c (c (? . 5) q test/exn)) q (417 . 2)) ((c form c (c (? . 1) q define)) q (2996 . 2)) ((c def c (c (? . 4) q gc:cons?)) q (5916 . 3)) ((c def c (c (? . 4) q gc:set-rest!)) q (5800 . 4)) ((c def c (c (? . 4) q gc:closure?)) q (6351 . 3)) ((c def c (c (? . 1) q cons?)) q (3767 . 3)) ((c def c (c (? . 2) q make-root)) q (4962 . 5)) ((c def c (c (? . 5) q plai-ignore-exn-strings)) q (1013 . 3)) ((c form c (c (? . 3) q with-heap)) q (1751 . 4)) ((c form c (c (? . 0) q λ)) q (6813 . 2)) ((c def c (c (? . 4) q gc:deref)) q (5310 . 3)) ((c def c (c (? . 0) q *)) q (7015 . 2)) ((c def c (c (? . 6) q gc:rest)) q (2278 . 3)) ((c form c (c (? . 0) q define-values)) q (6601 . 2)) ((c def c (c (? . 1) q rest)) q (3866 . 3)) ((c form c (c (? . 5) q plai-all-test-results)) q (1094 . 2)) ((c def c (c (? . 4) q gc:flat?)) q (5978 . 3)) ((c def c (c (? . 6) q gc:cons)) q (2108 . 4)) ((c def c (c (? . 0) q odd?)) q (7088 . 2))))
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
(equal~? v1 v2) -> boolean?
  v1 : any/c
  v2 : any/c
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?
