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$