1
Fork 0
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:
Andy Wingo 2009-05-17 18:04:36 +02:00
parent 2ce77f2d95
commit 1eec95f8de
3 changed files with 28 additions and 11 deletions

View file

@ -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

View file

@ -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)