mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 09:10:22 +02:00
Remove jscall type
This commit is contained in:
parent
d57dc85fa8
commit
b70b39e478
3 changed files with 4 additions and 13 deletions
|
@ -58,7 +58,7 @@
|
||||||
(compile-term exp))
|
(compile-term exp))
|
||||||
(($ $cont k _)
|
(($ $cont k _)
|
||||||
(make-local (list (compile-cont body))
|
(make-local (list (compile-cont body))
|
||||||
(make-jscall k req))))))
|
(make-continue k (map make-id req)))))))
|
||||||
(_
|
(_
|
||||||
`(clause:todo: ,clause))))
|
`(clause:todo: ,clause))))
|
||||||
|
|
||||||
|
@ -78,9 +78,9 @@
|
||||||
;; use the name part?
|
;; use the name part?
|
||||||
(make-var k (make-function syms (compile-term body))))
|
(make-var k (make-function syms (compile-term body))))
|
||||||
(($ $cont k ($ $kreceive ($ $arity (arg) _ (? symbol? rest) _ _) k2))
|
(($ $cont k ($ $kreceive ($ $arity (arg) _ (? symbol? rest) _ _) k2))
|
||||||
(make-var k (make-function (list arg rest) (make-jscall k2 (list arg rest)))))
|
(make-var k (make-function (list arg rest) (make-continue k2 (list (make-id arg) (make-id rest))))))
|
||||||
(($ $cont k ($ $kreceive ($ $arity (arg) _ #f _ _) k2))
|
(($ $cont k ($ $kreceive ($ $arity (arg) _ #f _ _) k2))
|
||||||
(make-var k (make-function (list arg) (make-jscall k2 (list arg)))))
|
(make-var k (make-function (list arg) (make-continue k2 (list (make-id arg))))))
|
||||||
(_
|
(_
|
||||||
`(cont:todo: ,cont))
|
`(cont:todo: ,cont))
|
||||||
))
|
))
|
||||||
|
@ -94,9 +94,7 @@
|
||||||
(($ $call name args)
|
(($ $call name args)
|
||||||
(make-call name (cons k args)))
|
(make-call name (cons k args)))
|
||||||
(($ $callk label proc args)
|
(($ $callk label proc args)
|
||||||
;; eh?
|
(make-continue label (map make-id (cons* proc k args))))
|
||||||
;; (pk 'callk label proc args k)
|
|
||||||
(make-jscall label (cons* proc k args)))
|
|
||||||
(($ $values values)
|
(($ $values values)
|
||||||
(make-continue k (map make-id values)))
|
(make-continue k (map make-id values)))
|
||||||
(_
|
(_
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
make-const const
|
make-const const
|
||||||
make-primcall primcall
|
make-primcall primcall
|
||||||
make-call call
|
make-call call
|
||||||
make-jscall jscall
|
|
||||||
make-closure closure
|
make-closure closure
|
||||||
make-branch branch
|
make-branch branch
|
||||||
; print-js
|
; print-js
|
||||||
|
@ -64,7 +63,6 @@
|
||||||
(define-js-type const value)
|
(define-js-type const value)
|
||||||
(define-js-type primcall name args)
|
(define-js-type primcall name args)
|
||||||
(define-js-type call name args)
|
(define-js-type call name args)
|
||||||
(define-js-type jscall name args) ;; TODO: shouldn't need this hack
|
|
||||||
(define-js-type closure label num-free)
|
(define-js-type closure label num-free)
|
||||||
(define-js-type branch test consequence alternate)
|
(define-js-type branch test consequence alternate)
|
||||||
(define-js-type id name)
|
(define-js-type id name)
|
||||||
|
@ -91,8 +89,6 @@
|
||||||
`(primcall ,name , args))
|
`(primcall ,name , args))
|
||||||
(($ call name args)
|
(($ call name args)
|
||||||
`(call ,name , args))
|
`(call ,name , args))
|
||||||
(($ jscall name args)
|
|
||||||
`(jscall ,name , args))
|
|
||||||
(($ closure label nfree)
|
(($ closure label nfree)
|
||||||
`(closure ,label ,nfree))
|
`(closure ,label ,nfree))
|
||||||
(($ return val)
|
(($ return val)
|
||||||
|
|
|
@ -64,9 +64,6 @@
|
||||||
(make-call (make-refine (name->id name) (make-const "fun"))
|
(make-call (make-refine (name->id name) (make-const "fun"))
|
||||||
(map name->id (cons name args)))))
|
(map name->id (cons name args)))))
|
||||||
|
|
||||||
(($ il:jscall name args)
|
|
||||||
(make-return (make-call (name->id name) (map name->id args))))
|
|
||||||
|
|
||||||
(($ il:closure label nfree)
|
(($ il:closure label nfree)
|
||||||
(make-new
|
(make-new
|
||||||
(make-call (make-refine *scheme* (make-const "Closure"))
|
(make-call (make-refine *scheme* (make-const "Closure"))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue