- bug fixes
- got spreadsheet working again svn: r507
This commit is contained in:
parent
38ae4e952b
commit
e9593ed546
|
@ -2,17 +2,20 @@
|
||||||
|
|
||||||
(require (lib "class.ss")
|
(require (lib "class.ss")
|
||||||
(all-except (lib "mred.ss" "mred") send-event)
|
(all-except (lib "mred.ss" "mred") send-event)
|
||||||
|
(rename mzscheme mz:define-struct define-struct)
|
||||||
"preprocessor2.ss"
|
"preprocessor2.ss"
|
||||||
(lifted "ss-funcs.ss" inflate-data)
|
(lifted "ss-funcs.ss" inflate-data)
|
||||||
"quotes.ss"
|
"quotes.ss"
|
||||||
(as-is:unchecked (lib "match.ss") match-lambda)
|
(as-is:unchecked (lib "match.ss") match-lambda)
|
||||||
|
(as-is:unchecked (lib "frp-core.ss" "frtime") signal-value
|
||||||
|
proc->signal)
|
||||||
(lib "framework.ss" "framework")
|
(lib "framework.ss" "framework")
|
||||||
(as-is:unchecked (lib "string.ss") expr->string)
|
(as-is:unchecked (lib "string.ss") expr->string)
|
||||||
(as-is:unchecked (lib "etc.ss") build-vector)
|
(as-is:unchecked (lib "etc.ss") build-vector)
|
||||||
(lifted mzscheme regexp-match)
|
(lifted mzscheme regexp-match)
|
||||||
(as-is:unchecked mzscheme make-hash-table hash-table-put! hash-table-get
|
(as-is:unchecked mzscheme make-hash-table hash-table-put! hash-table-get
|
||||||
hash-table-remove! let*-values vector-set! make-string
|
hash-table-remove! let*-values vector-set! make-string
|
||||||
exn? eof-object?
|
exn?
|
||||||
open-input-file open-output-file read write hash-table-map
|
open-input-file open-output-file read write hash-table-map
|
||||||
file-exists? delete-file open-input-string eof
|
file-exists? delete-file open-input-string eof
|
||||||
flush-output close-output-port dynamic-require))
|
flush-output close-output-port dynamic-require))
|
||||||
|
@ -44,7 +47,7 @@
|
||||||
|
|
||||||
(set-cell! raise-exceptions #t)
|
(set-cell! raise-exceptions #t)
|
||||||
|
|
||||||
(define-struct ss-loc (row col))
|
(mz:define-struct ss-loc (row col))
|
||||||
|
|
||||||
(define (ss-format val)
|
(define (ss-format val)
|
||||||
(if (or (and (signal? val)
|
(if (or (and (signal? val)
|
||||||
|
@ -142,7 +145,7 @@
|
||||||
cols
|
cols
|
||||||
(lambda (_) (make-hash-table))))
|
(lambda (_) (make-hash-table))))
|
||||||
|
|
||||||
(define-struct ss-cell (expr value updater))
|
(mz:define-struct ss-cell (expr value updater))
|
||||||
|
|
||||||
(define (ss-get-cell-text row col)
|
(define (ss-get-cell-text row col)
|
||||||
(cond
|
(cond
|
||||||
|
@ -212,7 +215,7 @@
|
||||||
(eval `(let ([row ,row]
|
(eval `(let ([row ,row]
|
||||||
[col ,col])
|
[col ,col])
|
||||||
,processed-expr))))
|
,processed-expr))))
|
||||||
(synchronize)
|
;(synchronize)
|
||||||
(send canvas draw-cell row col))
|
(send canvas draw-cell row col))
|
||||||
(send canvas focus)))
|
(send canvas focus)))
|
||||||
|
|
||||||
|
|
|
@ -250,9 +250,12 @@
|
||||||
(define-syntax snapshot/sync
|
(define-syntax snapshot/sync
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
[(_ (id ...) expr ...)
|
[(_ (id ...) expr ...)
|
||||||
(let-values ([(id ...) (sync/read id ...)])
|
(let-values ([(id ...) (value-now/sync id ...)])
|
||||||
expr ...)]))
|
expr ...)]))
|
||||||
|
|
||||||
|
(define (synchronize)
|
||||||
|
(snapshot/sync () (void)))
|
||||||
|
|
||||||
(define-syntax snapshot
|
(define-syntax snapshot
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
[(_ (id ...) expr ...)
|
[(_ (id ...) expr ...)
|
||||||
|
@ -702,6 +705,7 @@
|
||||||
hold
|
hold
|
||||||
for-each-e!
|
for-each-e!
|
||||||
snapshot/sync
|
snapshot/sync
|
||||||
|
synchronize
|
||||||
snapshot
|
snapshot
|
||||||
snapshot-e
|
snapshot-e
|
||||||
snapshot/apply
|
snapshot/apply
|
||||||
|
@ -736,7 +740,7 @@
|
||||||
value-now/sync
|
value-now/sync
|
||||||
frtime-version
|
frtime-version
|
||||||
signal-count
|
signal-count
|
||||||
|
signal?
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -141,7 +141,10 @@
|
||||||
(lambda (_)
|
(lambda (_)
|
||||||
(loop (unbox (signal:switching-current v))))
|
(loop (unbox (signal:switching-current v))))
|
||||||
(signal:switching-trigger v))]
|
(signal:switching-trigger v))]
|
||||||
[(signal? v) (printf "access to ~a in ~a~n" acc (value-now/no-copy v)) (lift #t acc v)]
|
[(signal? v) #;(printf "access to ~a in ~a~n" acc
|
||||||
|
(value-now/no-copy v))
|
||||||
|
(lift #t acc v)]
|
||||||
|
[(undefined? v) undefined]
|
||||||
[else (acc v)]))))
|
[else (acc v)]))))
|
||||||
|
|
||||||
(define frp:car
|
(define frp:car
|
||||||
|
@ -252,7 +255,7 @@
|
||||||
|
|
||||||
; FORBIDS MUTATION
|
; FORBIDS MUTATION
|
||||||
(define (frp:make-struct-field-mutator acc i sym)
|
(define (frp:make-struct-field-mutator acc i sym)
|
||||||
(lambda (s)
|
(lambda (s _)
|
||||||
(error "MUTATION NOT ALLOWED IN FrTime STRUCTURES")))
|
(error "MUTATION NOT ALLOWED IN FrTime STRUCTURES")))
|
||||||
|
|
||||||
(define-syntax (frp:define-struct stx)
|
(define-syntax (frp:define-struct stx)
|
||||||
|
@ -280,11 +283,23 @@
|
||||||
[(_ s (field ...))
|
[(_ s (field ...))
|
||||||
#'(frp:define-struct (s #f) (field ...) (current-inspector))]))
|
#'(frp:define-struct (s #f) (field ...) (current-inspector))]))
|
||||||
|
|
||||||
|
(define (find pred lst)
|
||||||
|
(cond
|
||||||
|
[(empty? lst) #f]
|
||||||
|
[(pred (first lst)) (first lst)]
|
||||||
|
[else (find pred (rest lst))]))
|
||||||
|
|
||||||
|
|
||||||
|
(define (ensure-no-signal-args val name)
|
||||||
|
(if (procedure? val)
|
||||||
|
(lambda args
|
||||||
|
(cond
|
||||||
|
[(find signal? args)
|
||||||
|
=>
|
||||||
|
(lambda (v)
|
||||||
|
(raise-type-error name "non-signal"
|
||||||
|
(format "#<signal: ~a>" (signal-value v))))]
|
||||||
|
[else (apply val args)]))))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
|
@ -306,7 +306,7 @@
|
||||||
seconds->date
|
seconds->date
|
||||||
expand syntax-object->datum exn-message continuation-mark-set->list exn-continuation-marks
|
expand syntax-object->datum exn-message continuation-mark-set->list exn-continuation-marks
|
||||||
exn:fail?
|
exn:fail?
|
||||||
list->vector make-vector vector-set!)
|
list->vector make-vector)
|
||||||
|
|
||||||
(rename eq? mzscheme:eq?)
|
(rename eq? mzscheme:eq?)
|
||||||
make-exn:fail current-inspector make-inspector
|
make-exn:fail current-inspector make-inspector
|
||||||
|
|
Loading…
Reference in New Issue
Block a user