blob: 8710ffb8b249b697dfc187d67900486505e00b1e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
This patch fixes an issue with define-values generating unbound variables
when compiled with Guile >= 3.0.11, which would lead to compilation failures.
Thanks rubin55 <me@rubin55.org> for coming up with a fix.
--- a/spells/define-values.scm
+++ b/spells/define-values.scm
@@ -35,21 +35,15 @@
(with-syntax (((dummy) (generate-temporaries '(dummy))))
(syntax
(define dummy (begin exp ... 'dummy)))))
- ((_ (id ...) exp0 exp ...)
- ;; Mutable-ids are needed so that ids defined by
- ;; define-values can be exported from a library (mutated
- ;; variables cannot be exported). This fix is due to Andre
- ;; van Tonder.
- (with-syntax (((mutable-id ...) (generate-temporaries (syntax (id ...))))
- ((result ...) (generate-temporaries (syntax (id ...))))
+ ((_ (id ...) exp0 exp ...)
+ (with-syntax (((result ...) (generate-temporaries (syntax (id ...))))
((dummy) (generate-temporaries '(dummy))))
- (syntax
- (begin
- (define mutable-id) ...
- (define dummy
- (call-with-values
- (lambda () exp0 exp ...)
- (lambda (result ...)
- (set! mutable-id result) ...
- 'dummy)))
- (define id mutable-id) ...))))))))
+ (syntax
+ (begin
+ (define id) ...
+ (define dummy
+ (call-with-values
+ (lambda () exp0 exp ...)
+ (lambda (result ...)
+ (set! id result) ...
+ 'dummy)))))))))))
|