guile-devel
[Top][All Lists]
Advanced

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

[PATCH 2/2] psyntax: fix gen-label for unset module.


From: Jan Nieuwenhuizen
Subject: [PATCH 2/2] psyntax: fix gen-label for unset module.
Date: Wed, 2 Nov 2016 20:14:50 +0100

* module/ice-9/boot-9.scm (generate-unique-id!): New function.
  (module-generate-unique-id!): Use it.
* module/ice-9/psyntax.scm (gen-label): Use it to cater for unset
  module.
* module/ice-9/psyntax-pp.scm: Regenerate.
---
 module/ice-9/boot-9.scm     | 3 ++-
 module/ice-9/psyntax-pp.scm | 2 +-
 module/ice-9/psyntax.scm    | 6 ++++--
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index f1d684d..e18818e 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -374,12 +374,13 @@ a-cont
 (define (module-ref module sym)
   (let ((v (module-variable module sym)))
     (if v (variable-ref v) (error "badness!" (pk module) (pk sym)))))
-(define module-generate-unique-id!
+(define generate-unique-id!
   (let ((next-id 0))
     (lambda (m)
       (let ((i next-id))
         (set! next-id (+ i 1))
         i))))
+(define module-generate-unique-id! generate-unique-id!)
 (define (resolve-module . args)
   #f)
 
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm
index 207d534..c47df7f 100644
--- a/module/ice-9/psyntax-pp.scm
+++ b/module/ice-9/psyntax-pp.scm
@@ -301,7 +301,7 @@
          (simple-format
            #f
            "l-~s~s"
-           (module-generate-unique-id! mod)
+           (if mod (module-generate-unique-id! mod) (generate-unique-id! #f))
            (module-name mod)))))
    (gen-labels
      (lambda (ls)
diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm
index 8fa0ff3..7e5c863 100644
--- a/module/ice-9/psyntax.scm
+++ b/module/ice-9/psyntax.scm
@@ -634,8 +634,10 @@
     (define (gen-label)
       (let ((mod (current-module)))
         (simple-format #f "l-~s~s"
-                       (module-generate-unique-id! mod)
-                       (module-name mod))))
+                        (if mod
+                            (module-generate-unique-id! mod)
+                            (generate-unique-id! #f))
+                        (module-name mod))))
 
     (define gen-labels
       (lambda (ls)
-- 
2.10.1




reply via email to

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