From ff6ddce535d5cc02a6574fe3baf238cf6533d218 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 1 Nov 2016 15:10:01 +0100 Subject: [PATCH 2/2] psyntax: fix gen-label for unset module. * 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