mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-09 21:40:33 +02:00
define `delay' in terms of make-promise
* module/ice-9/boot-9.scm (delay): Define `delay' in terms of make-promise. * module/ice-9/psyntax-pp.scm (compile): Regenerated with a fully compiled Guile, so that the gensym numbers are the same. * module/language/tree-il/compile-glil.scm: Add some notes about what needs doing to catch up to the old compiler.
This commit is contained in:
parent
2ce77f2d95
commit
1eec95f8de
3 changed files with 28 additions and 11 deletions
|
@ -210,6 +210,10 @@
|
|||
;; module system has booted up.
|
||||
(define %pre-modules-transformer sc-expand)
|
||||
|
||||
(define-syntax delay
|
||||
(syntax-rules ()
|
||||
((_ exp) (make-promise (lambda () exp)))))
|
||||
|
||||
|
||||
|
||||
;;; {Defmacros}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -28,6 +28,19 @@
|
|||
#:use-module (language tree-il analyze)
|
||||
#:export (compile-glil))
|
||||
|
||||
;;; TODO:
|
||||
;;
|
||||
;; * (delay x) -> (make-promise (lambda () x))
|
||||
;; * ([@]apply f args) -> goto/apply or similar
|
||||
;; * ([@]apply values args) -> goto/values or similar
|
||||
;; * ([@]call-with-values prod cons) ...
|
||||
;; * ([@]call-with-current-continuation prod cons) ...
|
||||
;; call-with-values -> mv-bind
|
||||
;; compile-time-environment
|
||||
;; GOOPS' @slot-ref, @slot-set
|
||||
;; basic degenerate-case reduction
|
||||
;; vm op "inlining"
|
||||
|
||||
;; allocation:
|
||||
;; sym -> (local . index) | (heap level . index)
|
||||
;; lambda -> (nlocs . nexts)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue