This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=55ae815b62c5d4bf324351d64919bdb8d4070148 The branch, syncase-in-boot-9 has been updated via 55ae815b62c5d4bf324351d64919bdb8d4070148 (commit) from e0c90f9084914956d90db73b21ef2ab32d1a477a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 55ae815b62c5d4bf324351d64919bdb8d4070148 Author: Andy Wingo <wi...@pobox.com> Date: Fri May 22 16:07:41 2009 +0200 move things to (language tree-il primitives) * module/language/tree-il/optimize.scm: * module/language/tree-il/primitives.scm: Move primitive-related things to primitive.scm from inline.scm and optimize.scm. * module/Makefile.am: Update for inventory changes. ----------------------------------------------------------------------- Summary of changes: module/Makefile.am | 2 +- module/language/tree-il/optimize.scm | 54 +------------------ .../tree-il/{inline.scm => primitives.scm} | 57 +++++++++++++++++++- 3 files changed, 58 insertions(+), 55 deletions(-) rename module/language/tree-il/{inline.scm => primitives.scm} (76%) diff --git a/module/Makefile.am b/module/Makefile.am index 22a9562..35959e2 100644 --- a/module/Makefile.am +++ b/module/Makefile.am @@ -72,7 +72,7 @@ SCHEME_LANG_SOURCES = \ language/scheme/inline.scm TREE_IL_LANG_SOURCES = \ - language/tree-il/inline.scm \ + language/tree-il/primitives.scm \ language/tree-il/optimize.scm \ language/tree-il/analyze.scm \ language/tree-il/compile-glil.scm \ diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index 9ba384f..3a02e02 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -20,10 +20,9 @@ ;;; Code: (define-module (language tree-il optimize) - #:use-module (system base syntax) #:use-module (language tree-il) - #:use-module (language tree-il inline) - #:export (optimize! add-interesting-primitive!)) + #:use-module (language tree-il primitives) + #:export (optimize!)) (define (env-module e) (if e (car e) (current-module))) @@ -41,52 +40,3 @@ ;; * degenerate case optimizations ;; * "fixing letrec" -(define *interesting-primitive-names* - '(apply @apply - call-with-values @call-with-values - call-with-current-continuation @call-with-current-continuation - call/cc - values - eq? eqv? equal? - = < > <= >= zero? - + * - / 1- 1+ quotient remainder modulo - not - pair? null? list? acons cons cons* - - list vector - - car cdr - set-car! set-cdr! - - caar cadr cdar cddr - - caaar caadr cadar caddr cdaar cdadr cddar cdddr - - caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr - cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr)) - -(define (add-interesting-primitive! name) - (hashq-set! *interesting-primitive-vars* - (module-variable (current-module) name) name)) - -(define *interesting-primitive-vars* (make-hash-table)) - -(for-each add-interesting-primitive! *interesting-primitive-names*) - -(define (resolve-primitives! x mod) - (post-order! - (lambda (x) - (record-case x - ((<toplevel-ref> src name) - (and (hashq-ref *interesting-primitive-vars* - (module-variable mod name)) - (make-primitive-ref src name))) - ((<module-ref> src mod name public?) - ;; for the moment, we're disabling primitive resolution for - ;; public refs because resolve-interface can raise errors. - (let ((m (and (not public?) (resolve-module mod)))) - (and m (hashq-ref *interesting-primitive-vars* - (module-variable m name)) - (make-primitive-ref src name)))) - (else #f))) - x)) diff --git a/module/language/tree-il/inline.scm b/module/language/tree-il/primitives.scm similarity index 76% rename from module/language/tree-il/inline.scm rename to module/language/tree-il/primitives.scm index 5a8e2db..25fd8c7 100644 --- a/module/language/tree-il/inline.scm +++ b/module/language/tree-il/primitives.scm @@ -19,11 +19,64 @@ ;;; Code: -(define-module (language tree-il inline) +(define-module (language tree-il primitives) #:use-module (system base syntax) #:use-module (language tree-il) #:use-module (srfi srfi-16) - #:export (expand-primitives!)) + #:export (resolve-primitives! add-interesting-primitive! + expand-primitives!)) + +(define *interesting-primitive-names* + '(apply @apply + call-with-values @call-with-values + call-with-current-continuation @call-with-current-continuation + call/cc + values + eq? eqv? equal? + = < > <= >= zero? + + * - / 1- 1+ quotient remainder modulo + not + pair? null? list? acons cons cons* + + list vector + + car cdr + set-car! set-cdr! + + caar cadr cdar cddr + + caaar caadr cadar caddr cdaar cdadr cddar cdddr + + caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr + cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr)) + +(define (add-interesting-primitive! name) + (hashq-set! *interesting-primitive-vars* + (module-variable (current-module) name) name)) + +(define *interesting-primitive-vars* (make-hash-table)) + +(for-each add-interesting-primitive! *interesting-primitive-names*) + +(define (resolve-primitives! x mod) + (post-order! + (lambda (x) + (record-case x + ((<toplevel-ref> src name) + (and (hashq-ref *interesting-primitive-vars* + (module-variable mod name)) + (make-primitive-ref src name))) + ((<module-ref> src mod name public?) + ;; for the moment, we're disabling primitive resolution for + ;; public refs because resolve-interface can raise errors. + (let ((m (and (not public?) (resolve-module mod)))) + (and m (hashq-ref *interesting-primitive-vars* + (module-variable m name)) + (make-primitive-ref src name)))) + (else #f))) + x)) + + (define *primitive-expand-table* (make-hash-table)) hooks/post-receive -- GNU Guile