mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-25 13:05:05 +02:00
Cleanup
This commit is contained in:
parent
e3a0aa7dfa
commit
28cbab2644
2 changed files with 35 additions and 63 deletions
2
TODO
2
TODO
|
@ -6,6 +6,8 @@ Working TODO list:
|
||||||
- Error handling
|
- Error handling
|
||||||
need to perform much more error handling of input code. one of the biggest is to report if a function is passed the wrong number of arguments, as this will result in segfauls, bad transport errors, etc downstream if it is allowed.
|
need to perform much more error handling of input code. one of the biggest is to report if a function is passed the wrong number of arguments, as this will result in segfauls, bad transport errors, etc downstream if it is allowed.
|
||||||
|
|
||||||
|
- Add unit tests for exception handlers, and new constructs added to lib
|
||||||
|
|
||||||
- Reduction in size of generated code
|
- Reduction in size of generated code
|
||||||
is there anything we can do?
|
is there anything we can do?
|
||||||
are closures being packed/unpacked unnecessarily?
|
are closures being packed/unpacked unnecessarily?
|
||||||
|
|
96
test.scm
96
test.scm
|
@ -1,34 +1,4 @@
|
||||||
;;; Temporary testing, delete this once it works
|
;;; Temporary testing, delete this once it works
|
||||||
;(define (call2 fn x y)
|
|
||||||
; (write
|
|
||||||
; (fn x y)))
|
|
||||||
;
|
|
||||||
;(define (call fn a)
|
|
||||||
; (fn a))
|
|
||||||
;
|
|
||||||
;(call write 'hello)
|
|
||||||
;
|
|
||||||
;;; Demonstrate sending an interpreted function to compiled code
|
|
||||||
;;; I think in order for this to work, the compiled code would have to
|
|
||||||
;;; detect an interpreted proc, and use eval to execute it
|
|
||||||
;
|
|
||||||
;;; TODO: to debug this, may try placing printfs in runtime's apply
|
|
||||||
;(eval '(call2 (lambda (x y) (+ y x)) 2 3))
|
|
||||||
;;(eval '(call (lambda (x) (+ 1 x)) (display (+ 1 1))))
|
|
||||||
;;(eval '(call write 1))
|
|
||||||
;;(eval '(call mywrite 1))
|
|
||||||
;
|
|
||||||
;(eval '(define (a x) x))
|
|
||||||
;(eval '(a 1))
|
|
||||||
;(eval '(a 1))
|
|
||||||
;(eval '(begin (define (a z) z) (a 1) (a 1)))
|
|
||||||
|
|
||||||
; TODO: demonstrates problem of using call/cc within a global.
|
|
||||||
; all globals are created with a k parameter, EG:
|
|
||||||
; ((lambda (call/cc)
|
|
||||||
; (define test
|
|
||||||
; (lambda (k$104)
|
|
||||||
;
|
|
||||||
; Need to rewrite the code to use this, and preserve the global def
|
; Need to rewrite the code to use this, and preserve the global def
|
||||||
(define (test)
|
(define (test)
|
||||||
(call/cc
|
(call/cc
|
||||||
|
@ -36,39 +6,39 @@
|
||||||
(return #t))))
|
(return #t))))
|
||||||
(write (test))
|
(write (test))
|
||||||
|
|
||||||
;(write
|
(write
|
||||||
; (with-exception-handler
|
(with-exception-handler
|
||||||
; (lambda (con)
|
(lambda (con)
|
||||||
; (cond
|
(cond
|
||||||
; ((string? con)
|
((string? con)
|
||||||
; (display con))
|
(display con))
|
||||||
; (else
|
(else
|
||||||
; (display "a warning has been issued")))
|
(display "a warning has been issued")))
|
||||||
; 42)
|
42)
|
||||||
; (lambda ()
|
(lambda ()
|
||||||
; (+ (raise-continuable "should be a number") 23)
|
(+ (raise-continuable "should be a number") 23)
|
||||||
; )))
|
)))
|
||||||
;;prints: should be a number
|
;prints: should be a number
|
||||||
;;=> 65
|
;=> 65
|
||||||
;
|
|
||||||
;(write
|
(write
|
||||||
; (call/cc
|
(call/cc
|
||||||
; (lambda (k)
|
(lambda (k)
|
||||||
; (with-exception-handler
|
(with-exception-handler
|
||||||
; (lambda (x)
|
(lambda (x)
|
||||||
; (display "condition: ")
|
(display "condition: ")
|
||||||
; (write x)
|
(write x)
|
||||||
; ;(newline)
|
;(newline)
|
||||||
; (k 'exception))
|
(k 'exception))
|
||||||
; (lambda ()
|
(lambda ()
|
||||||
; (+ 1 (raise 'an-error)))))))
|
(+ 1 (raise 'an-error)))))))
|
||||||
;
|
|
||||||
;(with-exception-handler
|
(with-exception-handler
|
||||||
; (lambda (x)
|
(lambda (x)
|
||||||
; (display "something went wrong\n"))
|
(display "something went wrong\n"))
|
||||||
; (lambda ()
|
(lambda ()
|
||||||
; (+ 1 (raise 'an-error))))
|
(+ 1 (raise 'an-error))))
|
||||||
;
|
|
||||||
;(define test '(a b))
|
;(define test '(a b))
|
||||||
;(set-car! test '(1 2 3))
|
;(set-car! test '(1 2 3))
|
||||||
;(write test)
|
;(write test)
|
||||||
|
|
Loading…
Add table
Reference in a new issue