* cleanip of ikarus.trace, vectors, and writer.ss
This commit is contained in:
parent
e3ddd4d0e6
commit
d579b63f52
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -1,10 +1,7 @@
|
||||||
|
|
||||||
(library (ikarus trace)
|
(library (ikarus trace)
|
||||||
(export make-traced-procedure trace-symbol! untrace-symbol!)
|
(export make-traced-procedure trace-symbol! untrace-symbol!)
|
||||||
(import
|
(import (ikarus))
|
||||||
(only (scheme) top-level-bound? set-top-level-value!
|
|
||||||
top-level-value)
|
|
||||||
(ikarus))
|
|
||||||
|
|
||||||
(define k* '())
|
(define k* '())
|
||||||
|
|
||||||
|
@ -63,7 +60,7 @@
|
||||||
(cond
|
(cond
|
||||||
[(assq s traced-symbols) =>
|
[(assq s traced-symbols) =>
|
||||||
(lambda (pr)
|
(lambda (pr)
|
||||||
(let ([a (cdr pr)] [v (top-level-value s)])
|
(let ([a (cdr pr)] [v (symbol-value s)])
|
||||||
(unless (eq? (cdr a) v)
|
(unless (eq? (cdr a) v)
|
||||||
(unless (procedure? v)
|
(unless (procedure? v)
|
||||||
(error 'trace
|
(error 'trace
|
||||||
|
@ -72,18 +69,18 @@
|
||||||
(let ([p (make-traced-procedure s v)])
|
(let ([p (make-traced-procedure s v)])
|
||||||
(set-car! a v)
|
(set-car! a v)
|
||||||
(set-cdr! a p)
|
(set-cdr! a p)
|
||||||
(set-top-level-value! s p)))))]
|
(set-symbol-value! s p)))))]
|
||||||
[else
|
[else
|
||||||
(unless (top-level-bound? s)
|
(unless (symbol-bound? s)
|
||||||
(error 'trace "~s is unbound" s))
|
(error 'trace "~s is unbound" s))
|
||||||
(let ([v (top-level-value s)])
|
(let ([v (symbol-value s)])
|
||||||
(unless (procedure? v)
|
(unless (procedure? v)
|
||||||
(error 'trace "the top-level value of ~s is ~s (not a procedure)"
|
(error 'trace "the top-level value of ~s is ~s (not a procedure)"
|
||||||
s v))
|
s v))
|
||||||
(let ([p (make-traced-procedure s v)])
|
(let ([p (make-traced-procedure s v)])
|
||||||
(set! traced-symbols
|
(set! traced-symbols
|
||||||
(cons (cons s (cons v p)) traced-symbols))
|
(cons (cons s (cons v p)) traced-symbols))
|
||||||
(set-top-level-value! s p)))])))
|
(set-symbol-value! s p)))])))
|
||||||
|
|
||||||
(define untrace-symbol!
|
(define untrace-symbol!
|
||||||
(lambda (s)
|
(lambda (s)
|
||||||
|
@ -93,8 +90,8 @@
|
||||||
[(null? ls) '()]
|
[(null? ls) '()]
|
||||||
[(eq? s (caar ls))
|
[(eq? s (caar ls))
|
||||||
(let ([a (cdar ls)])
|
(let ([a (cdar ls)])
|
||||||
(when (eq? (cdr a) (top-level-value s))
|
(when (eq? (cdr a) (symbol-value s))
|
||||||
(set-top-level-value! s (car a)))
|
(set-symbol-value! s (car a)))
|
||||||
(cdr ls))]
|
(cdr ls))]
|
||||||
[else (cons (car ls) (loop (cdr ls)))])))
|
[else (cons (car ls) (loop (cdr ls)))])))
|
||||||
(set! traced-symbols (loop traced-symbols))))
|
(set! traced-symbols (loop traced-symbols))))
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
(except (ikarus) make-vector vector
|
(except (ikarus) make-vector vector
|
||||||
vector-length vector-ref vector-set!
|
vector-length vector-ref vector-set!
|
||||||
vector->list list->vector)
|
vector->list list->vector)
|
||||||
(only (scheme)
|
(ikarus system $fx)
|
||||||
$fx= $fx>= $fx< $fx<= $fx+ $fxadd1 $fxsub1 $fxzero? $car $cdr
|
(ikarus system $pairs)
|
||||||
$vector-set! $vector-ref $make-vector $vector-length))
|
(ikarus system $vectors))
|
||||||
|
|
||||||
|
|
||||||
(define vector-length
|
(define vector-length
|
||||||
|
|
|
@ -8,9 +8,7 @@
|
||||||
(ikarus system $strings)
|
(ikarus system $strings)
|
||||||
(ikarus system $fx)
|
(ikarus system $fx)
|
||||||
(ikarus system $pairs)
|
(ikarus system $pairs)
|
||||||
(only (scheme)
|
(ikarus system $symbols)
|
||||||
$forward-ptr?
|
|
||||||
$unbound-object?)
|
|
||||||
(except (ikarus) write display format printf print-error
|
(except (ikarus) write display format printf print-error
|
||||||
error-handler error))
|
error-handler error))
|
||||||
|
|
||||||
|
@ -375,9 +373,9 @@
|
||||||
[($unbound-object? x)
|
[($unbound-object? x)
|
||||||
(write-char* "#<unbound-object>" p)
|
(write-char* "#<unbound-object>" p)
|
||||||
i]
|
i]
|
||||||
[($forward-ptr? x)
|
;;; [($forward-ptr? x) FIXME reinstate
|
||||||
(write-char* "#<forward-ptr>" p)
|
;;; (write-char* "#<forward-ptr>" p)
|
||||||
i]
|
;;; i]
|
||||||
[(number? x)
|
[(number? x)
|
||||||
(write-char* (number->string x) p)
|
(write-char* (number->string x) p)
|
||||||
i]
|
i]
|
||||||
|
|
Loading…
Reference in New Issue