Documentation

eflisp base level development notes

DO

BUGS: 

  o  If a macro is defined for an existing built in "constant" symbol, the macro goes into the *syntax-environment*
     just fine, but it is never used. That's because in (expand-in e env) checking if the head symbol is bound
     is checked before the check (macrocall? e).

MISSING:

 o  as reported by ecraven's r7rs-coverage:

      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,complex?,complex literal 3+1i
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,define-syntax,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,denominator,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,inexact,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,let-syntax,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,letrec-syntax,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,numerator,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,rational?,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,rationalize,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-copy!,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-copy!,start
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-copy!,start and end
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-fill!,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-fill!,start
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-fill!,start and end
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,string-set!,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,syntax-rules,
      eflisp,2025-05-29T16:43:24,(scheme base),ERROR,literals,rational
      eflisp,2025-05-29T16:43:24,(scheme case-lambda),ERROR,case-lambda,
      eflisp,2025-05-29T16:43:24,(scheme complex),ERROR,angle,
      eflisp,2025-05-29T16:43:24,(scheme complex),ERROR,imag-part,
      eflisp,2025-05-29T16:43:24,(scheme complex),ERROR,magnitude,
      eflisp,2025-05-29T16:43:24,(scheme complex),ERROR,make-polar,
      eflisp,2025-05-29T16:43:24,(scheme complex),ERROR,make-rectangular,
      eflisp,2025-05-29T16:43:24,(scheme complex),ERROR,real-part,
      eflisp,2025-05-29T16:43:24,(scheme repl),ERROR,interaction-environment,

 o  binary ports are not really distinuishable from text ports;

 o  input and output ports are indistinguishable

 o  r7rs write-simple needs a new parameter *print-simple* for disabling print_traverse,
    and printing the circular tags, etc.; 
    untangling the various uses of print_princ in print.c will take a bit of work

 o  adding a count bits or log2 primitive would help speed up some things, e.g., exact-integer-sqrt
    see eflib/bitvector.c, now unused except by gc for marks/flags

done

 x modules
   if we implement library modules a la r7rs the obvious implmentation is a new symtab per module;
   however, this would break the existing implementation in these ways:
   1. values are stored in symbols so importing aliased globals would duplicate the values breaking setters
   2. An AVL tree is used with links in the symbols, so they can only appear in one symtab
   The solution is tano implemented macro system that sits on top of eflisp and implements deflibrary 


 x    > (eqv? (string.rep 'z 3) (string.rep 'z 3))
      #t ; wrong; this is a consequence of eqv? treating all cvalues as comparable in order to handle = for numbers
      ; however... I belive strings are immutable in eflisp, so I guess thet are eqv in a sense despite violating r7rs semantics

      > (eq? (string.rep 'z 3) (string.rep 'z 3))
      #f ; ok

      but bytevectors also have this problem
      > (eqv? (make-bytevector 8) (make-bytevector 8))
      #t
      ; and bytevectors are definitely mutable

 x  cond-expand - available in SLIB

 x  Create cvalue_pointer_init; it should call cvalue_from_ref

 x  Augment cvalue_new to use cvalue_pointer_init for pointer type

 x  Fix get_type to use cvalue_pointer_init instead of cvalue_from_ref

 x  Confirm that AREF works to dereference pointer (and that ASET works too)

 x  For testing, need addrof prim to return address of c-value data

 x  Add function #`pointer for pointer contructor to be used by read.c for TOK_SHARPSYM -- #pointer(uint32 4 4531979288)

 x  Add code to print pointers in print.c's cvalue_printdata (similar to array case)

 o  Document pointer enhancements, e.g., 

    > (define y (c-value '(array uint32 4)))
    #array(uint32 0 0 0 0)
    
    > (addrof y)
    4531979288
    
    > #pointer(uint32 4 4531979288)
    
    
    > (define p #pointer(uint32 4 4531979288))
    
    
    > (aset! p 1 42)
    42
    
    > (aref y 1)
    #uint32(42)

    (define p (c-value '(pointer uint32 4) 4522546200))

    -=-

 x  Add hexdump from femtolisp
        

    Note: (table.foldl (lambda (k v ls) (cons k ls)) () *syntax-environment*)


 p  Create a function to compute memory usage and return as a htable:

    > (define s (memory.stats))
    #table("cvalues used" 330  "stack used" 36  "symbols" 528  "cvalue malloc" 13572  
    "gc handles alloc" 8192  "heap alloc" 1048576  "stack alloc" 262144  "symtab" 29551  
    "gc handles used" 0  "heap used" 95088  "cvalues allocated" 512)
"
    // reduce GC Handles (now 64 KB)?
    #define N_GC_HANDLES 8192
    // reduce stack (now 2 MB)?
    N_STACK = 262144;
    // hashtables
    // bitvectors
    // read state


 x  Dump symtab

    (define display princ)
    (for-each-symbol (lambda (s b c) (display s) (display " ") (display (typeof b)) (display " ") (display c) (newline)))

    (for-each-symbol (lambda (s b c)
                        (display s) (display " ")
                        (display (if (bound? s) (typeof b) "unbound")) (display " ")
                        (display c) (newline)))

    (for-each-symbol (lambda (s b c)
                        (cond ((bound? s)
                                (display s) (display " ")
                                (display (typeof b)) (display " ")
                                (display c) (newline)))))

 x  Get rid of dlsym stuff in print.c

 o  Integrate emyg_atod emyg_dtoa

 x  Warn on attempt to redefine constant toplevel values (isconstant()) in set! and set-top-level-value!

 x  make named consts in flisp.h INITIAL_STACK_SIZE_WORDS and INITIAL_HHEAP_SIZE_BYTES

 x  Include record.scm in flisp.boot

 x  Enhance read so it handles self referential data in #fn() functions this is required by some applicaitons of fix!

 x  Make = and < variadic (min 2 args) in vm; add to dissassembler
 x  Add variadic > >= <= in system.lsp
 x  Add tests for variadic = > >= <= in unittest.lsp

 o  document how strings and (array char) (array wchar) and (array uint8) relate to each other
    what's encoded in UTF-8; what's encoded in UCS; how does this compare with R7RS?
    see ";; UTF-8" below

 o  start addressing missing functions and macros from r7rs-coverage tests (see r7rs-coverage below)
 x  math (trig, sqrt, etc.)
 x  done: sqrt, sin, cos, tan, exp, asin, acos
 x  done: 1-arg versions of atan, log
 x  done: (atan y x) (log z1 z2)
 x  bytevector read/write use #u8 (R7RS) instead of #vu8 (R6RS)
 x  bytevector functions
 x  letrec*
 x  let-values let*-values

 o  R7RS has parameterize; flisp has with-bindings; how big a deal to convert to parameterize?
    https://srfi.schemers.org/srfi-39/srfi-39.html

 x  version info (date, word size, commit hash) ; fossil setting manifest on

 o  makefile and bin directories for different builds: m32goto m32switch m64goto m64switch

 x  commit to eflisp name, always -DEMBED_BOOT_CODE
 x  add command line option to use external boot file
 o  look at using heap space instead of fname_buf in main() to save C stack space

 x  make a new print mode to eliminate as many spaces as possible from flisp.boot
 x  maybe set *print-width* really small to signal that no leading spaces on a line are desired

 o  extend peephole optimizer
 p  make a .scm app to get stats on static frequencies of specific 2-instruction and 3-instruction sequences
 p  make an elisp build mode to get stats on dynamic frequencies of specific 2-instruction sequences
 x  read and print function for compact string representation, Ascii85 #~...~
 x  modify function print to emit compact uint8 representation, getting rid of +/-48 hack
 x    because as we add new bytecodes for the optimizer,
 x    we'll break the check that the first bytecode > (N_OPCODES - 48)
 x  The boot file size increase was 10% with Ascii85 #~...~ -- bigger than expected
 x  So, let's make Ascii85 optional, disabled by default. and 
 x  explore a more robust way of retainined the +/-48 hack, perhaps with a smaller offset like 33
 x    actually 35 is superior since it avoids \"
 x  One thing to examine is using the four-byte initial size INT32 of the bytecode;
 x   it shouldn't be > 0x00FFFFFF, and if it is, the MSB is the offset
 x  Move the four consts in opcode.h to the top of the range of uint8_t to make a hole for opcodes
 x  Good candidates from top 50 (or top 80 with peep-excludes):
                                    r7rs-benchmark    mkboot1.lsp
 x  dup brf        -> dbrf & dbrf.l     9812631081         159329
 x  dup brt        -> dbrt & dbrt.l     6920212617         121084
 x  loada0 loada1  -> loada0a1         10168546904         169678
 x  loada1 loada0  -> loada1a0          4356011522          66736
 x  load1 sub2     -> ld1sub2           8538780664          12309
 x  load1 add2     -> ld1add2           4720124044          25263
 x  loada0 car     -> cara0             4231238582         116204 
 x  loada0 cdr     -> cdra0             7723398395          56635
 x  loada1 car     -> cara1             1390016951         179058
 x  loada1 cdr     -> cdra1             5513264864         128228
 x  cdr cdr        -> cddr              1002239832
 x  pair? brf      -> brnp & brnp.l                        145289

 o  use #u8() for function.bytecode instead of string? (making Ascii85 #~...~ reader syntax produce #u8()?

 o  merge some changes from femtolisp
 x  print improvements:
 x    don't print shared references to cprims, and estimate their size better
 x    print `#\ ` and `#\newline` instead of `#\space` and `#\linefeed`
 x    don't print-circle in `princ` mode
 x    fix bug in printing the character #\x0 ; with unit test
 x  restore fl_char_upcase, fl_char_downcase (char.upcase char.downcase)
 o  restore string.decode ?
 x  lower `BOUNDED_COMPARE_BOUND`, allowing r7rs `equal` benchmark to complete
 x  new fl_char_alpha (char-alphabetic?)
 o  femto now has elementary functions (builtins.c); they return floats for float args

 o  reconcile lib/aliases.scm with r7rs-benchmarks_dcurrie/src/eflisp-prelude.scm
 o  reconcile lib/aliases.scm with r7rs-coverage/preludes/eflisp.scm

-=-

;; UTF-8

> (array 'byte 1 2 3 4 5)
"\x01\x02\x03\x04\x05"

> (array 'uint8 1 2 3 4 5)
#vu8(1 2 3 4 5)

> #vu8(98 88 77)
#vu8(98 88 77)

> *string-type*
(array byte)

> *wcstring-type*
(array wchar)

> (array 'wchar 56 57 69)
#array(wchar #\8 #\9 #\E)

> (array 'wchar 56 57 69 #\λ)
#array(wchar #\8 #\9 #\E #\λ)

> (string.encode "λ")
type error: string.encode: expected wchar array, got "λ"

> (string.encode (array 'wchar #\λ))
"λ"

> #array(byte 41 42 43)
")*+"

> #array(uint8 41 42 43)
#vu8(41 42 43)

> #array(wchar 41 42 43)
#array(wchar #\) #\* #\+)

> #array(int8 41 42 43)
#array(int8 41 42 43)

> (string #array(wchar 41 42 43))
"#array(wchar ) * +)"

> (string.encode #array(wchar 41 42 43))
")*+"

> (string.char "12λ56" 2)
#\λ

> 
(string.char "12λ56" 3)
#\»

> (string.char "12λ56" 4)
#\5

> (length "12λ56")
6

> (string.count "12λ56")
5

> "\x03B1; is named GREEK SMALL LETTER ALPHA."
"\x03B1; is named GREEK SMALL LETTER ALPHA."

> "\u03B1; is named GREEK SMALL LETTER ALPHA."
"α; is named GREEK SMALL LETTER ALPHA."          ;;;;;;;;; note ';' retained

-=-

An idea re: non-circular letrec (presently the closure function can have a self-reference in the function.data)
- two pass compile of letrec 
-- pass 1: identify the free variables for a shared closure
-- pass 2: compile the lambdas and body with this shared closure
- the closure will contain the bytecode vectors and constant vectors for all the letec's lambdas
- calls to the lambdas will be "inlined" by pulling the bytecode and constant vectors from the shared closure
- references to the letrec vars that escape will be replaced with the creation of a new fuction in standard form
-- it will refer to the bytecode and constant vectors from the shared closure, and the shared closure itself
-- it would be nice to cache these so they are created only once, but I haven't thought that through
- determining whether a letrec var is an escaped refernence when in function call location
-- depends on whether the call takes place in the same contour as the shared closure creation
-- non-function-call position references can always be assumed to escape

-=-

BUGS

1. FIXED -- VM's do_neg doesn't check for overflow of negating a fixnum

    > (- -2305843009213693952)
    -2305843009213693952

2. FIXED -- fl_neg doesn't check for overflow of negating a fixnum

3. FIXED -- optional arg value not gc protected in fl_vector_alloc

4. FIXED -- fl_add_any and fl_mul_any did inexact->exact for 0.0 and 1.0 respectively

5. FIXED -- get_type() should not cache array types that have sizes, or else they stick...

    > (c-value (list 'array 'uint8 13))
    #vu8(0 0 0 0 0 0 0 0 0 0 0 0 0)
    
    > (typeof (array 'uint8 9 8 7))
    (array uint8 13)
    
    > #vu8(9 8 7 6 5)
    #vu8(9 9 9 9 9 9 9 9 9 9 9 9 9)

-=-

Documentation notes...

1.  Documentation defect: prog1 takes multiple args like scheme begin0

    > (prog1 1 (print 2) (print 3))
    231

2. ash (and presumably other builtins) silently overflow at 64 bits

    > (ash 1 23)
    8388608

    > (ash 1 60)
    1152921504606846976

    > (ash 1 61)
    #int64(2305843009213693952)

    > (ash 1 63)
    #int64(-9223372036854775808)

    > (ash 1 -63)
    0

3. Setting a builtin silently fails -- FIXED by raising a type error...
   Was:
    > +
    #.+
    > (define + (lambda (x y) (* x y)))
    #fn("6000r2|}T2;" [])
    > (+ 2 3)
    5
    > (define (+ x y) (* x y))
    #fn("6000r2|}T2;" [] +)
    > (+ 7 8)
    15
    > +
    #.+
   Now:
    > +
    #.+
    > (define + (lambda (x y) (* x y)))
    type error: set!: expected non-const, got +
    #0 (lambda)
    > (+ 2 3)
    5

--------------------------------------------------------------------------------

[e269aa3703] 2017-08-15T21:03:06

eflisp_fswc e$ size eflisp
__TEXT  __DATA  __OBJC  others  dec hex
192512  16384   0   4295028736  4295237632  100042000   

[0d88728b56] 2017-08-16T18:15:47 after using *print-width* 0 to dump image:

eflisp_fswc e$ size eflisp
__TEXT  __DATA  __OBJC  others  dec hex
188416  16384   0   4295028736  4295233536  100041000   

[00a3c5aa8d] 2017-08-16T23:06:06 after adding some elementary math functions
eflisp_fswc e$ size eflisp
__TEXT  __DATA  __OBJC  others  dec hex
192512  16384   0   4295032832  4295241728  100043000   

flisp.boot 36,088 bytes -> 39,426 bytes with Ascii85 enccoding of bcode
flisp.boot 36,088 bytes -> 36,462 bytes with offset 32 (primarily due to \")
flisp.boot 36,088 bytes -> 35,415 bytes with offset 35

[2dc0b9f09b] 2017-08-23T21:46:03 after revising bytecode offset to 35 (from 48)
eflisp_fswc e$ size eflisp
__TEXT  __DATA  __OBJC  others  dec hex
192512  16384   0   4295032832  4295241728  100043000   

[6343eebbb2] 2017-08-24T22:05:07 after restoring a few functions/macros in system.lsp

eflisp_fswc e$ size eflisp -- with #define eFLISP_PEEP_COUNT  (1)
__TEXT  __DATA  __OBJC  others  dec hex
196608  94208   0   4295032832  4295323648  100057000   

eflisp_fswc e$ size eflisp -- with #define eFLISP_PEEP_COUNT  (0)
__TEXT  __DATA  __OBJC  others  dec hex
192512  16384   0   4295032832  4295241728  100043000   

[9817eafff2] 2017-08-25T03:31:07 with some peephole optimizations

eflisp_fswc e$ size eflisp -- with #define eFLISP_PEEP_COUNT  (1)
__TEXT  __DATA  __OBJC  others  dec hex
200704  114688  0   4295032832  4295348224  10005d000   
eflisp_fswc e$ size eflisp -- with #define eFLISP_PEEP_COUNT  (0)
__TEXT  __DATA  __OBJC  others  dec hex
196608  16384   0   4295032832  4295245824  100044000   

flisp.boot 37,698 bytes -> 37,819 bytes with more peephole optimizations
                        -> 38,086 bytes with letrec*

eflisp_fswc e$ size eflisp
__TEXT  __DATA  __OBJC  others  dec hex
196608  16384   0   4295032832  4295245824  100044000   

--------------------------------------------------------------------------------

 ;; the following may interact with the optimizations made, or have lower occurance

 o  loada1 pair?   -> paira1?                              142442
 o  loada0 pair?   -> paira0?            546630286
 o  pop loada0     -> poplda0           3193311864         130866
 o  pop loada1     -> poplda1                              157707
 o  loadt ret      -> rett                                  24275
 o  loadc0 loadc1  -> loadc0c1           495163043          26282
 o  set-car! pop   -> set-car!pop       1031246403          10311
 o  loada0 call    -> lda0call          7826114016          59870
 o  car call       -> carcall           1304331112          96529


;; after running ./eflisp mkboot1.lsp
;;
> (peep-analyze 200)
195453 argc loada0
179058 loada1 car
169678 loada0 loada1
159329 dup brf
157707 pop loada1
156807 cdr seta
156072 loadg loada0
155560 seta pop
145289 pair? brf
142442 loada1 pair?
130866 pop loada0
128228 loada1 cdr
121084 dup brt
120379 seta jmp
116204 loada0 car
112816 loada loada
107478 pop loada
99989 loada loadv
96529 car call
95335 loadv brne
91742 loada0 loadc0
90190 loada loada1
85589 loada dup
82963 loadv loada
79733 lt2 ret
77955 loada call
77954 loadc0 lt2
75786 loadnil cons
75244 cons set-cdr!
74928 car loadnil
74928 set-cdr! cdr
69502 loada0 atom?
68418 atom? brf
67147 loadv call
66736 loada1 loada0
65400 car loadv
64654 pop loadg
63437 argc loada1
61365 loada1 loadv
60356 loadg loada
60121 argc loadg
59870 loada0 call
56635 loada0 cdr
54715 argc loada
53789 pop loadv
44959 cdr loada1
44527 eq? dup
43422 loadv eq?
41668 loada0 ret
40627 loada0 load0
39566 lt2 brf
38948 loada1 load0
38733 loadc1 loadc
38065 loadv loada1
37838 symbol? brf
37604 brne loada
37278 loada1 loada
36472 numeq2 brf
36263 loadv loada0
33526 set-cdr! pop
33210 loada1 seta
33210 pop seta
33210 pop set-cdr!
32740 pair? dup
32211 loada1 brnn
32142 loada car
31909 load0 numeq2
30717 loada1 call
30711 loada aref
29688 cdr call
28997 brnn loada0
28772 cons ret
28655 load0 aref
28106 loada0 symbol?
27892 loada0 loadi8
26657 loadt pop
26282 loadc0 loadc1
25354 atom? dup
25263 load1 add2
25021 shift pop
24741 loadv loadg
24618 argc loadt
24275 loadt ret
24192 loada brf
23732 loada lt2
23181 loada load1
22854 loadg loada1
22816 loada tcall
22614 argc loadc0
21195 loadg loadv
20874 loada closure
20837 car loada
19986 car loada1
19702 lt2 dup
19698 load0 lt2
19470 loadv loadv
19123 loadc loadc
18979 loada loadg
18836 loadc tcall
18020 loada1 loadc0
18016 loadc0 eq?
18015 cdr tcall
17655 aref loada1
17319 add2 seta
17177 argc loadv
17151 add2 aref
17087 loada load0
16853 loada0 add2
16741 brne loadv
16711 loada0 tcall
16680 loadt shift
16665 loada0 loada
16401 loada brnn
15973 loadf ret
15853 loada symbol?
15765 eq? ret
15745 vargc loada1
15745 loada0 lt2
15698 not dup
15482 loadf loadc1
15482 loadc0 loadf
15426 loada cdr
14975 loadc *
14684 loadc loada
14461 loadt loada1
14268 brne loada0
14197 brne loadg
14137 car loada0
14110 brne loadt
14035 loadt loadv
13836 aref loada
13748 car jmp
13453 loada pair?
13371 loadv seta
13224 loadi8 aref
12978 * loada0
12655 null? dup
12509 loadv loadc0
12309 load1 sub2
12195 loada cons
12154 loadg loadc0
11799 add2 aset!
11554 brnn loadv
11397 vargc loada
11268 aref seta
11171 aset! ret
10591 loada0 load1
10419 loadc0 car
10360 loadc car
10311 set-car! pop
10121 loada0 loadv
9875 number? brf
9875 loada number?
9829 aref jmp
9813 loada0 closure
9518 symbol? not
9455 closure loada0
9452 car atom?
9452 loadc loada0
9315 loada1 add2
9315 loadi8 loada0
9309 loada1 loadg
9242 cadr ret
8756 loadc0 loada0
8753 car tcall
8715 loada1 load1
8629 aref pair?
#t

;; after running r7rs-benchmark and eflist bootstrap
;;
> (peep-analyze)
16833736615 loadg loada0
16120574767 argc loada0
10168546904 loada0 loada1
9812631081 dup brf
8563054540 loada0 load1
8538780664 load1 sub2
7826114016 loada0 call
7750315065 argc loada1
7723398395 loada0 cdr
6920212617 dup brt
6355172720 argc loadg
6116110685 car loada0
5929313711 cdr tcall
5888138776 cdr loada1
5755611729 loada0 load0
5513264864 loada1 cdr
5511788955 lt2 brf
5437006008 loadg loadg
5165550095 not dup
5083700441 loadc0 loada0
4952182999 pop loadg
4806163834 loada0 brnn
4720124044 load1 add2
4583414874 numeq2 brf
4431343389 add2 tcall
4371228649 load0 numeq2
4356011522 loada1 loada0
4282041468 loada loadv
4231238582 loada0 car
4040938329 loadc loada0
3714006224 loada1 load1
3665676463 loadc0 car
3600170854 loada0 lt2
3555503705 loada1 call
3542445159 loada call
3421390106 loada0 loadi8
3354255135 loada1 add2
3274526871 pop loada
3253446037 lt2 dup
3193311864 pop loada0
2993546030 sub2 call
2962483601 null? dup
2912897747 sub2 loada0
2819697830 loada0 loadv
2805181266 brnn loada0
2794262889 load0 lt2
2751360218 loada1 brnn
2745921978 loada loada
2534183985 loadg loadc1
2253130510 loada car
2200355283 loadg loadc
2181305255 brnn loadg
2175380567 eqv? brf
2165018200 loadg loada1
2148100425 loada0 loadc0
2146188515 null? not
2127511100 loada1 null?
2073478214 loada tcall
2019578786 loada0 null?
1994298191 loadc0 call
1975289267 loadc car
1971367608 vargc loada1
1944738147 pop loadc
1943658069 add2 ret
1929754753 loadg loadc0
1917712274 loada1 loada
1899698971 loadg loada
1866731824 loadc1 car
1833642892 argc loadc0
1819160604 car loada1
1793764264 loadc loada
1712806997 brnn loadc0
1712098030 loada1 load0
1712055147 loadc1 loada0
1701200569 loadv eqv?
1695061753 loadv loada
1684898039 loadc1 call
1680758555 lt2 brt
1669109747 loadi8 lt2
1628732281 numeq2 not
1616331844 aref call
1602893756 loada0 loada
1545487539 loada1 lt2
1545017305 loadv call
1528986584 aset! pop
1520918834 loadv loada0
1494518104 aref ret
1443466267 loadc loadc
1405410526 sub2 tcall
1390016951 loada1 car
1323037079 loada ret
1304331112 car call
1249199794 loada0 ret
1193316765 loada loada0
1175620252 loada0 loadg
1172504109 loada0 tcall
1126431547 numeq2 ret
1120862684 argc loada
1116382680 loadv loadc0
1114286845 loada1 tcall
1105885693 loada0 loada0
1096481443 vargc loada0
1091551117 loada brnn
1058104445 loada cdr
1040626247 car loadc1
1040089977 cdr ret
1031246403 set-car! pop
1023632411 cons ret
1017568812 add2 loada
1003506985 sub2 loada1
1002239832 cdr cdr
984352840 add2 numeq2
969544348 cons tcall
961249317 loadv equal?
953662947 sub2 loadg
949509990 loada null?
944280339 car loada
912827241 loada1 cons
902373408 loada load1
873559109 loada0 loadc
871766447 pop loadc1
849234581 loadv lt2
845137526 brnn loada
835001093 loadi8 sub2
803188149 loada closure
798607520 loadv sub2
783409860 loada1 sub2
783389440 sub2 numeq2
778372090 loada loadc0
766643100 aref loada0
764227439 pop loadc0
760257614 loadc0 loada
756461643 car loadv
750502101 sub2 loadc
747920498 aref loada
729848413 loadc1 loadc
727632956 numeq2 dup
723554894 car loadg
688273702 eq? ret
680865120 loadf ret
678861716 argc loadv
671196236 brbound brt
671196232 optargs brbound
669382780 loadc0 loada1
669169811 loadc0 loadg
651611659 loada1 *
647284053 closure tcall
629651764 loadi8 numeq2
602789712 closfix pop
585756754 loada loada1
578941643 loadv eq?
554059447 loadi8 tcall
546630286 loada0 pair?
545648309 loadc1 load1
538902000 aref dup
536963001 loadc1 loadg
519984093 loadv ret
510997032 loadc0 loadc
503599405 loada0 loadc1
500734899 loadc closure
495163043 loadc0 loadc1
480850495 equal? ret
480569523 equal? dup

--------------------------------------------------------------------------------

r7rs-coverage e$ ./coverage eflisp
eflisp,2017-08-25T18:14:24,r7rs/boolean,OK,literals,
eflisp,2017-08-25T18:14:24,r7rs/boolean,OK,boolean?,
eflisp,2017-08-25T18:14:24,r7rs/boolean,ERROR,boolean=?,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector?,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,make-bytevector,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-length,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-u8-ref,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-u8-set!,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-copy,3 args
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-copy,4 args
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-copy,5 args
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-copy!,3 args
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-copy!,4 args
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-copy!,5 args
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,bytevector-append,
eflisp,2017-08-25T18:14:24,r7rs/bytevectors,OK,utf8->string,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,literals,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char=?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char<?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char>?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char<=?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char>=?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-ci=?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-ci<?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-ci>?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-ci<=?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-ci>=?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char-alphabetic?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char-numeric?,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char-whitespace?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-upper-case?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-lower-case?,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,digit-value,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char->integer,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,integer->char,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char-upcase,
eflisp,2017-08-25T18:14:24,r7rs/characters,OK,char-downcase,
eflisp,2017-08-25T18:14:24,r7rs/characters,ERROR,char-foldcase,
eflisp,2017-08-25T18:14:24,r7rs/control,OK,procedure?,
eflisp,2017-08-25T18:14:24,r7rs/control,OK,apply,
eflisp,2017-08-25T18:14:24,r7rs/control,OK,map,1 list
eflisp,2017-08-25T18:14:24,r7rs/control,OK,map,2 lists
eflisp,2017-08-25T18:14:24,r7rs/control,OK,map,3 lists, different length
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,string-map,1 string
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,string-map,2 strings, different length
eflisp,2017-08-25T18:14:24,r7rs/control,OK,vector-map,1 vector
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,vector-map,2 vectors, different length
eflisp,2017-08-25T18:14:24,r7rs/control,OK,for-each,1 list
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,for-each,2 lists, different length
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,string-for-each,2 strings, different length
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,vector-for-each,2 vectors, different length
eflisp,2017-08-25T18:14:24,r7rs/control,OK,call-with-current-continuation,
eflisp,2017-08-25T18:14:24,r7rs/control,ERROR,call/cc,
eflisp,2017-08-25T18:14:24,r7rs/control,OK,call-with-values,
eflisp,2017-08-25T18:14:24,r7rs/define,OK,define,value
eflisp,2017-08-25T18:14:24,r7rs/define,OK,define,function, 1 parameter
eflisp,2017-08-25T18:14:24,r7rs/define,OK,define,function, 3 parameters
eflisp,2017-08-25T18:14:24,r7rs/define,OK,define,function, rest parameter
eflisp,2017-08-25T18:14:24,r7rs/define,OK,define,function, only rest parameter
eflisp,2017-08-25T18:14:24,r7rs/delay,ERROR,delay,
eflisp,2017-08-25T18:14:24,r7rs/delay,ERROR,force,
eflisp,2017-08-25T18:14:24,r7rs/delay,ERROR,promise?,
eflisp,2017-08-25T18:14:24,r7rs/delay,ERROR,make-promise,
eflisp,2017-08-25T18:14:24,r7rs/delay,ERROR,delay-force,
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,true
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,false
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,symbol
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,integer
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,real
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,char
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,null
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,pair
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,vector
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,string
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,bytevector
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,function
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different booleans
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different symbols
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,integer and real
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different integers
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different chars
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different list literals
eflisp,2017-08-25T18:14:24,r7rs/equivalence,ERROR,eqv?,different lists
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different vectors
eflisp,2017-08-25T18:14:24,r7rs/equivalence,ERROR,eqv?,different strings
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eqv?,different bytevectors
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eq?,symbols
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eq?,different lists
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eq?,null
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eq?,function
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eq?,vector
eflisp,2017-08-25T18:14:24,r7rs/equivalence,OK,eq?,same function
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,cond,else
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,cond,=>
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,case,else
eflisp,2017-08-25T18:14:24,r7rs/macros,ERROR,case,=>
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,and,no forms
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,and,short-circuit
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,or,no forms
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,or,short-circuit
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,when,
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,unless,
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,let,forms
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,let,no bindings
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,let*,
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,letrec,
eflisp,2017-08-25T18:14:24,r7rs/macros,ERROR,letrec*,
eflisp,2017-08-25T18:14:24,r7rs/macros,ERROR,let-values,
eflisp,2017-08-25T18:14:24,r7rs/macros,ERROR,let*-values,
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,begin,
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,do,
eflisp,2017-08-25T18:14:24,r7rs/macros,OK,named-let,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,number?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,real?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,rational?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,integer?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,exact?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,inexact?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,exact-integer?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,finite?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,infinite?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,nan?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,=,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,=,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,<,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,<,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,>,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,>,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,<=,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,<=,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,>=,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,>=,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,zero?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,positive?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,negative?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,odd?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,even?,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,max,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,min,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,+,no parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,+,one parameter
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,+,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,*,no parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,*,one parameter
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,*,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,/,one parameter
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,/,more than two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,abs,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,floor-quotient,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,floor-remainder,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,truncate-quotient,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,truncate-remainder,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,floor/,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,truncate/,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,gcd,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,lcm,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,numerator,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,denominator,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,floor,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,ceiling,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,truncate,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,round,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,rationalize,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,exp,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,log,one parameter
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,log,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,sin,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,cos,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,tan,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,asin,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,acos,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,atan,one parameter
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,atan,two parameters
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,square,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,sqrt,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,exact-integer-sqrt,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,expt,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,expt,0^0
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,expt,0^1
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,make-rectangular,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,real-part,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,imag-part,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,make-polar,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,magnitude,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,angle,
eflisp,2017-08-25T18:14:24,r7rs/numeric,ERROR,inexact,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,exact,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,number->string,
eflisp,2017-08-25T18:14:24,r7rs/numeric,OK,string->number,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,literals,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,pair?,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,cons,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,car,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,cdr,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,set-car!,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,set-cdr!,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,caar-cadr-cdar-...,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,null?,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,list?,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,ERROR,make-list,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,list,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,length,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,append,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,append,improper list
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,append,not list
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,reverse,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,list-tail,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,list-ref,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,ERROR,list-set!,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,memq,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,memv,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,member,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,ERROR,member,comparator
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,assq,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,assv,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,OK,assoc,
eflisp,2017-08-25T18:14:24,r7rs/pair-list,ERROR,assoc,comparator
eflisp,2017-08-25T18:14:24,r7rs/pair-list,ERROR,list-copy,
eflisp,2017-08-25T18:14:24,r7rs/parameters,ERROR,make-parameter,
eflisp,2017-08-25T18:14:24,r7rs/parameters,ERROR,make-parameter,converter
eflisp,2017-08-25T18:14:24,r7rs/parameters,ERROR,parameterize,
eflisp,2017-08-25T18:14:24,r7rs/special-forms,OK,set!,
eflisp,2017-08-25T18:14:24,r7rs/special-forms,OK,lambda,
eflisp,2017-08-25T18:14:24,r7rs/special-forms,OK,lambda,rest
eflisp,2017-08-25T18:14:24,r7rs/special-forms,OK,lambda,only rest
eflisp,2017-08-25T18:14:24,r7rs/special-forms,OK,if,
eflisp,2017-08-25T18:14:24,r7rs/special-forms,OK,if,no else
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,literal,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string?,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,make-string,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,make-string,fill
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string-length,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string-ref,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-set!,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string=?,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-ci=?,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string<?,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-ci<?,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string>?,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-ci>?,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string<=?,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-ci<=?,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string>=?,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-ci>=?,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-upcase,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-downcase,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-foldcase,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,substring,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string-append,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string->list,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string->list,start
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string->list,start and end
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,list->string,
eflisp,2017-08-25T18:14:24,r7rs/strings,OK,string-copy,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-copy,start
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-copy,start and end
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-copy!,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-copy!,start
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-copy!,start and end
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-fill!,
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-fill!,start
eflisp,2017-08-25T18:14:24,r7rs/strings,ERROR,string-fill!,start and end
eflisp,2017-08-25T18:14:24,r7rs/symbol,OK,symbol?,
eflisp,2017-08-25T18:14:24,r7rs/symbol,ERROR,symbol=?,
eflisp,2017-08-25T18:14:24,r7rs/symbol,OK,symbol->string,
eflisp,2017-08-25T18:14:24,r7rs/symbol,OK,string->symbol,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector?,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,make-vector,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,make-vector,fill
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector-length,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector-ref,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector-set!,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector->list,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector->list,start
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector->list,start and end
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,list->vector,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector->string,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector->string,start
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector->string,start and end
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,string->vector,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,string->vector,start
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,string->vector,start and end
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-copy,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-copy,start
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-copy,start and end
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-copy!,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-copy!,start
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-copy!,start and end
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-append,
eflisp,2017-08-25T18:14:24,r7rs/vectors,OK,vector-fill!,
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-fill!,start
eflisp,2017-08-25T18:14:24,r7rs/vectors,ERROR,vector-fill!,start and end
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,OK,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,OK,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,OK,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,ERROR,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,OK,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,OK,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,OK,,
eflisp,2017-08-25T18:14:24,srfi-1/srfi-1,ERROR,,
r7rs-coverage e$