* looks not bad.
This commit is contained in:
parent
30f71b0381
commit
0bd88991cb
|
@ -1170,3 +1170,235 @@ Words allocated: 201324942
|
||||||
Words reclaimed: 0
|
Words reclaimed: 0
|
||||||
Elapsed time...: 4280 ms (User: 3750 ms; System: 529 ms)
|
Elapsed time...: 4280 ms (User: 3750 ms; System: 529 ms)
|
||||||
Elapsed GC time: 2443 ms (CPU: 2444 in 768 collections.)
|
Elapsed GC time: 2443 ms (CPU: 2444 in 768 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:30:18 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing peval under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 34340444
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 1255 ms (User: 1248 ms; System: 7 ms)
|
||||||
|
Elapsed GC time: 55 ms (CPU: 60 in 131 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:43:05 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing peval under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 34340444
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 1256 ms (User: 1249 ms; System: 7 ms)
|
||||||
|
Elapsed GC time: 60 ms (CPU: 65 in 131 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:44:20 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing paraffins under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 201324942
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 4278 ms (User: 3750 ms; System: 528 ms)
|
||||||
|
Elapsed GC time: 2445 ms (CPU: 2437 in 768 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:46:28 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing compiler under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
> WARNING from macro expander:
|
||||||
|
Redefining
|
||||||
|
bound?
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:47:54 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing slatex under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 4194150
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 1843 ms (User: 532 ms; System: 777 ms)
|
||||||
|
Elapsed GC time: 15 ms (CPU: 8 in 16 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:49:52 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing scheme under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 29621860
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 1193 ms (User: 1190 ms; System: 3 ms)
|
||||||
|
Elapsed GC time: 46 ms (CPU: 45 in 113 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 18:50:38 EST 2007 under Darwin Vesuvius.local 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing earley under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 123206268
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 2023 ms (User: 1932 ms; System: 91 ms)
|
||||||
|
Elapsed GC time: 580 ms (CPU: 582 in 470 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 22:59:25 EST 2007 under Darwin adsl-68-251-150-42.dsl.bltnin.ameritech.net 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing dderiv under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 244055776
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 1905 ms (User: 1893 ms; System: 11 ms)
|
||||||
|
Elapsed GC time: 333 ms (CPU: 332 in 931 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 23:00:51 EST 2007 under Darwin adsl-68-251-150-42.dsl.bltnin.ameritech.net 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing puzzle under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 8126378
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 1953 ms (User: 1807 ms; System: 144 ms)
|
||||||
|
Elapsed GC time: 17 ms (CPU: 10 in 31 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 23:02:15 EST 2007 under Darwin adsl-68-251-150-42.dsl.bltnin.ameritech.net 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing parsing under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 100923902
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 6587 ms (User: 6512 ms; System: 74 ms)
|
||||||
|
Elapsed GC time: 295 ms (CPU: 295 in 385 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 23:30:51 EST 2007 under Darwin adsl-68-251-150-42.dsl.bltnin.ameritech.net 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing parsing under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 100923902
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 6584 ms (User: 6509 ms; System: 72 ms)
|
||||||
|
Elapsed GC time: 296 ms (CPU: 287 in 385 collections.)
|
||||||
|
|
||||||
|
****************************
|
||||||
|
Benchmarking Larceny-r6rs on Mon Feb 19 23:32:41 EST 2007 under Darwin adsl-68-251-150-42.dsl.bltnin.ameritech.net 8.8.3 Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006; root:xnu-792.15.4.obj~4/RELEASE_I386 i386 i386
|
||||||
|
|
||||||
|
Testing parsing under Larceny-r6rs
|
||||||
|
Compiling...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
>
|
||||||
|
Running...
|
||||||
|
Larceny v0.93 "Deviated Prevert" (Nov 10 2006 04:27:45, precise:BSD Unix:unified)
|
||||||
|
|
||||||
|
|
||||||
|
>
|
||||||
|
Words allocated: 100923902
|
||||||
|
Words reclaimed: 0
|
||||||
|
Elapsed time...: 6590 ms (User: 6512 ms; System: 75 ms)
|
||||||
|
Elapsed GC time: 284 ms (CPU: 288 in 385 collections.)
|
||||||
|
|
|
@ -560,6 +560,8 @@
|
||||||
(define parsing-iters 1000)
|
(define parsing-iters 1000)
|
||||||
(define gcold-iters 10000)
|
(define gcold-iters 10000)
|
||||||
;(define nbody-iters 1) ; nondeterministic (order of evaluation)
|
;(define nbody-iters 1) ; nondeterministic (order of evaluation)
|
||||||
|
|
||||||
|
|
||||||
;(define integer->char ascii->char)
|
;(define integer->char ascii->char)
|
||||||
;(define char->integer char->ascii)
|
;(define char->integer char->ascii)
|
||||||
|
|
||||||
|
|
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -198,6 +198,7 @@
|
||||||
[top-level-value v]
|
[top-level-value v]
|
||||||
[$symbol-value v]
|
[$symbol-value v]
|
||||||
|
|
||||||
|
[$memq pv]
|
||||||
|
|
||||||
[$record vt]
|
[$record vt]
|
||||||
[$record/rtd? p]
|
[$record/rtd? p]
|
||||||
|
@ -494,6 +495,26 @@
|
||||||
(case (length rands)
|
(case (length rands)
|
||||||
[(1) (P (car rands))]
|
[(1) (P (car rands))]
|
||||||
[else (make-seq (E x) (make-constant #t))])]
|
[else (make-seq (E x) (make-constant #t))])]
|
||||||
|
[($memq)
|
||||||
|
(record-case (cadr rands)
|
||||||
|
[(constant ls)
|
||||||
|
(unless (list? ls) (error who "invalid call to $memq"))
|
||||||
|
(cond
|
||||||
|
[(null? ls)
|
||||||
|
(make-seq (E (car rands)) (make-constant #f))]
|
||||||
|
[else
|
||||||
|
(let ([t (unique-var 'tmp)])
|
||||||
|
(make-bind (list t) (list (V (car rands)))
|
||||||
|
(let f ([ls ls])
|
||||||
|
(cond
|
||||||
|
[(null? (cdr ls))
|
||||||
|
(make-primcall 'eq? (list t (make-constant (car ls))))]
|
||||||
|
[else
|
||||||
|
(make-conditional
|
||||||
|
(make-primcall 'eq? (list t (make-constant (car ls))))
|
||||||
|
(make-constant #t)
|
||||||
|
(f (cdr ls)))]))))])]
|
||||||
|
[else (Predicafy x)])]
|
||||||
[(not)
|
[(not)
|
||||||
(make-conditional
|
(make-conditional
|
||||||
(P (car rands))
|
(P (car rands))
|
||||||
|
@ -567,6 +588,26 @@
|
||||||
[(e) (make-seq (E x) (make-constant (void)))]
|
[(e) (make-seq (E x) (make-constant (void)))]
|
||||||
[(pv)
|
[(pv)
|
||||||
(case op
|
(case op
|
||||||
|
[($memq)
|
||||||
|
(record-case (cadr rands)
|
||||||
|
[(constant ls)
|
||||||
|
(unless (list? ls) (error who "invalid call to $memq"))
|
||||||
|
(cond
|
||||||
|
[(null? ls)
|
||||||
|
(make-seq (E (car rands)) (make-constant #f))]
|
||||||
|
[else
|
||||||
|
(let ([t (unique-var 'tmp)])
|
||||||
|
(make-bind (list t) (list (V (car rands)))
|
||||||
|
(let f ([ls ls])
|
||||||
|
(cond
|
||||||
|
[(null? ls)
|
||||||
|
(make-constant #f)]
|
||||||
|
[else
|
||||||
|
(make-conditional
|
||||||
|
(make-primcall 'eq? (list t (make-constant (car ls))))
|
||||||
|
(make-constant ls)
|
||||||
|
(f (cdr ls)))]))))])]
|
||||||
|
[else (make-funcall (make-primref '$memq) (map V rands))])]
|
||||||
[(list*)
|
[(list*)
|
||||||
(case (length rands)
|
(case (length rands)
|
||||||
[(0) (make-funcall (make-primref 'list*) '())]
|
[(0) (make-funcall (make-primref 'list*) '())]
|
||||||
|
@ -1767,11 +1808,9 @@
|
||||||
(cond
|
(cond
|
||||||
[(null? nf*) ac]
|
[(null? nf*) ac]
|
||||||
[else
|
[else
|
||||||
(let ([t (unique-var 't)])
|
(make-seq
|
||||||
(do-bind (list t) (list (car v*))
|
(V (car nf*) (car v*))
|
||||||
(make-seq
|
(do-bind-frmt* (cdr nf*) (cdr v*) ac))]))
|
||||||
(make-set (car nf*) t)
|
|
||||||
(do-bind-frmt* (cdr nf*) (cdr v*) ac))))]))
|
|
||||||
;;;
|
;;;
|
||||||
(define (handle-nontail-call rator rands value-dest call-targ)
|
(define (handle-nontail-call rator rands value-dest call-targ)
|
||||||
(let-values ([(reg-locs reg-args frm-args)
|
(let-values ([(reg-locs reg-args frm-args)
|
||||||
|
@ -2466,6 +2505,11 @@
|
||||||
[(nfv? d)
|
[(nfv? d)
|
||||||
(cond
|
(cond
|
||||||
[(not (mem-nfv? d ns)) (error who "dead nfv")]
|
[(not (mem-nfv? d ns)) (error who "dead nfv")]
|
||||||
|
[(or (disp? s) (constant? s) (reg? s))
|
||||||
|
(let ([ns (rem-nfv d ns)])
|
||||||
|
(mark-nfv/vars-conf! d vs)
|
||||||
|
(mark-nfv/frms-conf! d fs)
|
||||||
|
(R s vs rs fs ns))]
|
||||||
[(var? s)
|
[(var? s)
|
||||||
(let ([ns (rem-nfv d ns)]
|
(let ([ns (rem-nfv d ns)]
|
||||||
[vs (rem-var s vs)])
|
[vs (rem-var s vs)])
|
||||||
|
@ -2496,6 +2540,14 @@
|
||||||
(let ([rs (rem-reg d rs)])
|
(let ([rs (rem-reg d rs)])
|
||||||
(mark-reg/vars-conf! d vs)
|
(mark-reg/vars-conf! d vs)
|
||||||
(R s vs (set-add d rs) fs ns))])]
|
(R s vs (set-add d rs) fs ns))])]
|
||||||
|
[(nfv? d)
|
||||||
|
(cond
|
||||||
|
[(not (mem-nfv? d ns)) (error who "dead nfv")]
|
||||||
|
[else
|
||||||
|
(let ([ns (rem-nfv d ns)])
|
||||||
|
(mark-nfv/vars-conf! d vs)
|
||||||
|
(mark-nfv/frms-conf! d fs)
|
||||||
|
(R s vs rs fs (add-nfv d ns)))])]
|
||||||
[else (error who "invalid op d ~s" (unparse x))])]
|
[else (error who "invalid op d ~s" (unparse x))])]
|
||||||
[(idiv)
|
[(idiv)
|
||||||
(mark-reg/vars-conf! eax vs)
|
(mark-reg/vars-conf! eax vs)
|
||||||
|
|
|
@ -540,6 +540,8 @@
|
||||||
(CODE #x29 (ModRM 3 src dst ac))]
|
(CODE #x29 (ModRM 3 src dst ac))]
|
||||||
[(and (mem? src) (reg? dst))
|
[(and (mem? src) (reg? dst))
|
||||||
(CODErd #x2B dst src ac)]
|
(CODErd #x2B dst src ac)]
|
||||||
|
[(and (imm? src) (mem? dst))
|
||||||
|
((CODE/digit #x81 '/5) dst (IMM32 src ac))]
|
||||||
[(and (reg? src) (mem? dst))
|
[(and (reg? src) (mem? dst))
|
||||||
((CODE/digit #x29 src) dst ac)]
|
((CODE/digit #x29 src) dst ac)]
|
||||||
[else (error who "invalid ~s" instr)])]
|
[else (error who "invalid ~s" instr)])]
|
||||||
|
|
Loading…
Reference in New Issue