[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-hackers] [PATCH] disable warning for let-bound keyword
From: |
Felix |
Subject: |
[Chicken-hackers] [PATCH] disable warning for let-bound keyword |
Date: |
Sat, 26 Nov 2011 22:02:36 +0100 (CET) |
"matchable" uses this feature (binding of keywords as local
variables), and since I don't want to mess around with it,
this change is taken back.
>From 036edd15fb0484c4026336c9c41f3f7072d057f1 Mon Sep 17 00:00:00 2001
From: felix <address@hidden>
Date: Sat, 26 Nov 2011 22:00:48 +0100
Subject: [PATCH] disable warning for binding keywords - matchable uses this
---
compiler.scm | 17 +++++------------
eval.scm | 14 ++++----------
2 files changed, 9 insertions(+), 22 deletions(-)
diff --git a/compiler.scm b/compiler.scm
index 83de2d2..b252bc1 100644
--- a/compiler.scm
+++ b/compiler.scm
@@ -487,11 +487,6 @@
(for-each pretty-print imps)
(print "\n;; END OF FILE"))))) ) )
- (define (checkvar name form)
- (when (keyword? name)
- (warning "variable is keyword in binding form" `(,form (... (,name ...)
...) ...)))
- name)
-
(define (walk x e se dest ldest h)
(cond ((symbol? x)
(cond ((keyword? x) `(quote ,x))
@@ -609,7 +604,7 @@
((##core#let)
(let* ((bindings (cadr x))
(vars (unzip1 bindings))
- (aliases (map (o gensym (cut checkvar <> 'let))
vars))
+ (aliases (map gensym vars))
(se2 (##sys#extend-se se vars aliases)))
(set-real-names! aliases vars)
`(let
@@ -627,7 +622,7 @@
(walk
`(##core#let
,(map (lambda (b)
- (list (checkvar (car b) 'letrec)
'(##core#undefined)))
+ (list (car b) '(##core#undefined)))
bindings)
,@(map (lambda (b)
`(##core#set! ,(car b) ,(cadr b)))
@@ -677,7 +672,7 @@
(let ((se2 (append
(map (lambda (b)
(list
- (checkvar (car b) 'let-syntax)
+ (car b)
se
(##sys#ensure-transformer
(##sys#eval/meta (cadr b))
@@ -692,7 +687,7 @@
((##core#letrec-syntax)
(let* ((ms (map (lambda (b)
(list
- (checkvar (car b) 'letrec-syntax)
+ (car b)
#f
(##sys#ensure-transformer
(##sys#eval/meta (cadr b))
@@ -769,9 +764,7 @@
(lambda (b)
(##sys#check-syntax
'let-compiler-syntax b '(symbol . #(_ 0
1)))
- (let ((name (lookup
- (checkvar (car b)
'let-compiler-syntax)
- se)))
+ (let ((name (lookup (car b) se)))
(list
name
(and (pair? (cdr b))
diff --git a/eval.scm b/eval.scm
index 4f65c8d..ce120aa 100644
--- a/eval.scm
+++ b/eval.scm
@@ -231,11 +231,6 @@
(define (decorate p ll h cntr)
(##sys#eval-decorator p ll h cntr) )
- (define (checkvar name form)
- (when (keyword? name)
- (warning "variable is keyword in binding form" `(,form (... (,name
...) ...) ...)))
- name)
-
(define (compile x e h tf cntr se)
(cond ((keyword? x) (lambda v x))
((symbol? x)
@@ -377,7 +372,7 @@
[(##core#let)
(let* ([bindings (cadr x)]
[n (length bindings)]
- [vars (map (lambda (x) (checkvar (car x)
'let)) bindings)]
+ [vars (unzip1 bindings)]
(aliases (map gensym vars))
[e2 (cons aliases e)]
(se2 (##sys#extend-se se vars aliases))
@@ -429,8 +424,7 @@
(compile
`(##core#let
,(##sys#map (lambda (b)
- (list (checkvar (car b) 'letrec)
- '(##core#undefined)))
+ (list (car b)
'(##core#undefined)))
bindings)
,@(##sys#map (lambda (b)
`(##core#set! ,(car b) ,(cadr
b)))
@@ -535,7 +529,7 @@
(let ((se2 (append
(map (lambda (b)
(list
- (checkvar (car b) 'let-syntax)
+ (car b)
se
(##sys#ensure-transformer
(##sys#eval/meta (cadr b))
@@ -549,7 +543,7 @@
((##core#letrec-syntax)
(let* ((ms (map (lambda (b)
(list
- (checkvar (car b) 'letrec-syntax)
+ (car b)
#f
(##sys#ensure-transformer
(##sys#eval/meta (cadr b))
--
1.6.0.4
- [Chicken-hackers] [PATCH] disable warning for let-bound keyword,
Felix <=
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Christian Kellermann, 2011/11/29
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Felix, 2011/11/30
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Christian Kellermann, 2011/11/30
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Christian Kellermann, 2011/11/30
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Felix, 2011/11/30
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Christian Kellermann, 2011/11/30
- Re: [Chicken-hackers] [PATCH] disable warning for let-bound keyword, Felix, 2011/11/30