guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, updated. v2.1.0-36-g64fc50c


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. v2.1.0-36-g64fc50c
Date: Mon, 10 Jun 2013 20:44:55 +0000

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=64fc50c294df9b6644fd40bec90eb8f4dfbc3907

The branch, master has been updated
       via  64fc50c294df9b6644fd40bec90eb8f4dfbc3907 (commit)
       via  4828538940e6fcd1637f359fa5557acb4b6e9c91 (commit)
      from  c4c098e355bd2edcd3bc66eb7041c5f9cdeefef0 (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 64fc50c294df9b6644fd40bec90eb8f4dfbc3907
Author: Andy Wingo <address@hidden>
Date:   Tue May 28 11:20:29 2013 -0400

    Simplify let-values to let if consumer binds only one variable
    
    * module/language/tree-il/peval.scm (peval): let-values with a consumer
      that has only one argument is the same as let.
    
    * test-suite/tests/peval.test ("partial evaluation"): Add test.

commit 4828538940e6fcd1637f359fa5557acb4b6e9c91
Author: Andy Wingo <address@hidden>
Date:   Mon Jun 10 22:42:46 2013 +0200

    fix linker.test
    
    * test-suite/tests/linker.test (link-elf-with-one-main-section): Fix
      test after string table change.

-----------------------------------------------------------------------

Summary of changes:
 module/language/tree-il/peval.scm |    4 ++++
 test-suite/tests/linker.test      |   18 ++++++------------
 test-suite/tests/peval.test       |    7 ++++++-
 3 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/module/language/tree-il/peval.scm 
b/module/language/tree-il/peval.scm
index c5a1c4e..d7d561d 100644
--- a/module/language/tree-il/peval.scm
+++ b/module/language/tree-il/peval.scm
@@ -979,6 +979,10 @@ top-level bindings from ENV and return the resulting 
expression."
        ;; reconstruct the let-values, pevaling the consumer.
        (let ((producer (for-values producer)))
          (or (match consumer
+               (($ <lambda-case> src (req-name) #f #f #f () (req-sym) body #f)
+                (for-tail
+                 (make-let src (list req-name) (list req-sym) (list producer)
+                           body)))
                (($ <lambda-case> src req opt rest #f inits gensyms body #f)
                 (let* ((nmin (length req))
                        (nmax (and (not rest) (+ nmin (if opt (length opt) 
0)))))
diff --git a/test-suite/tests/linker.test b/test-suite/tests/linker.test
index 9e63991..dcfac1b 100644
--- a/test-suite/tests/linker.test
+++ b/test-suite/tests/linker.test
@@ -24,15 +24,9 @@
   #:use-module (system vm linker))
 
 (define (link-elf-with-one-main-section name bytes)
-  (let ((string-table (make-string-table)))
-    (define (intern-string! string)
-      (call-with-values
-          (lambda () (string-table-intern string-table string))
-        (lambda (table idx)
-          (set! string-table table)
-          idx)))
+  (let ((strtab (make-string-table)))
     (define (make-object index name bv relocs . kwargs)
-      (let ((name-idx (intern-string! (symbol->string name))))
+      (let ((name-idx (string-table-intern! strtab (symbol->string name))))
         (make-linker-object (apply make-elf-section
                                    #:index index
                                    #:name name-idx
@@ -40,16 +34,16 @@
                                    kwargs)
                             bv relocs
                             (list (make-linker-symbol name 0)))))
-    (define (make-string-table)
-      (intern-string! ".shstrtab")
-      (make-object 2 '.shstrtab (link-string-table string-table) '()
+    (define (make-shstrtab)
+      (string-table-intern! strtab ".shstrtab")
+      (make-object 2 '.shstrtab (link-string-table! strtab) '()
                    #:type SHT_STRTAB #:flags 0))
     (let* ((word-size (target-word-size))
            (endianness (target-endianness))
            (sec (make-object 1 name bytes '()))
            ;; This needs to be linked last, because linking other
            ;; sections adds entries to the string table.
-           (shstrtab (make-string-table)))
+           (shstrtab (make-shstrtab)))
       (link-elf (list sec shstrtab)
                 #:endianness endianness #:word-size word-size))))
 
diff --git a/test-suite/tests/peval.test b/test-suite/tests/peval.test
index ecc5dd1..f409e94 100644
--- a/test-suite/tests/peval.test
+++ b/test-suite/tests/peval.test
@@ -1236,4 +1236,9 @@
       (call-with-prompt t
                         (lambda () (abort-to-prompt t 1 2 3))
                         (lambda (k x y z) (list x y z))))
-    (primcall list (const 1) (const 2) (const 3))))
+    (primcall list (const 1) (const 2) (const 3)))
+
+  (pass-if-peval
+      (call-with-values foo (lambda (x) (bar x)))
+    (let (x) (_) ((call (toplevel foo)))
+         (call (toplevel bar) (lexical x _)))))


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]