~ chicken-core (chicken-5) 1527e04682ef4d2b182151ac35a70e032875bdc6
commit 1527e04682ef4d2b182151ac35a70e032875bdc6
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Sat Apr 28 10:41:48 2018 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sat Apr 28 19:22:46 2018 +0200
Fix lambda info strings for get, put!, list-ref and the c[ad]r procedures
Now that `set!' preserves lambda info, we can get rid of the explicit
info strings in the `getter-with-setter' calls for these procedures.
Signed-off-by: felix <felix@call-with-current-continuation.org>
diff --git a/library.scm b/library.scm
index 89cd285e..febb6f3c 100644
--- a/library.scm
+++ b/library.scm
@@ -3589,28 +3589,27 @@ EOF
p))
p1))))
-(set! scheme#car (getter-with-setter scheme#car set-car! "(car p)"))
-(set! scheme#cdr (getter-with-setter scheme#cdr set-cdr! "(cdr p)"))
-(set! scheme#caar (getter-with-setter scheme#caar (lambda (x y) (set-car! (car x) y)) "(caar p)"))
-(set! scheme#cadr (getter-with-setter scheme#cadr (lambda (x y) (set-car! (cdr x) y)) "(cadr p)"))
-(set! scheme#cdar (getter-with-setter scheme#cdar (lambda (x y) (set-cdr! (car x) y)) "(cdar p)"))
-(set! scheme#cddr (getter-with-setter scheme#cddr (lambda (x y) (set-cdr! (cdr x) y)) "(cddr p)"))
-(set! scheme#caaar (getter-with-setter scheme#caaar (lambda (x y) (set-car! (caar x) y)) "(caaar p)"))
-(set! scheme#caadr (getter-with-setter scheme#caadr (lambda (x y) (set-car! (cadr x) y)) "(caadr p)"))
-(set! scheme#cadar (getter-with-setter scheme#cadar (lambda (x y) (set-car! (cdar x) y)) "(cadar p)"))
-(set! scheme#caddr (getter-with-setter scheme#caddr (lambda (x y) (set-car! (cddr x) y)) "(caddr p)"))
-(set! scheme#cdaar (getter-with-setter scheme#cdaar (lambda (x y) (set-cdr! (caar x) y)) "(cdaar p)"))
-(set! scheme#cdadr (getter-with-setter scheme#cdadr (lambda (x y) (set-cdr! (cadr x) y)) "(cdadr p)"))
-(set! scheme#cddar (getter-with-setter scheme#cddar (lambda (x y) (set-cdr! (cdar x) y)) "(cddar p)"))
-(set! scheme#cdddr (getter-with-setter scheme#cdddr (lambda (x y) (set-cdr! (cddr x) y)) "(cdddr p)"))
-(set! scheme#string-ref (getter-with-setter scheme#string-ref string-set! "(string-ref str i)"))
-(set! scheme#vector-ref (getter-with-setter scheme#vector-ref vector-set! "(vector-ref vec i)"))
+(set! scheme#car (getter-with-setter scheme#car set-car!))
+(set! scheme#cdr (getter-with-setter scheme#cdr set-cdr!))
+(set! scheme#caar (getter-with-setter scheme#caar (lambda (x y) (set-car! (car x) y))))
+(set! scheme#cadr (getter-with-setter scheme#cadr (lambda (x y) (set-car! (cdr x) y))))
+(set! scheme#cdar (getter-with-setter scheme#cdar (lambda (x y) (set-cdr! (car x) y))))
+(set! scheme#cddr (getter-with-setter scheme#cddr (lambda (x y) (set-cdr! (cdr x) y))))
+(set! scheme#caaar (getter-with-setter scheme#caaar (lambda (x y) (set-car! (caar x) y))))
+(set! scheme#caadr (getter-with-setter scheme#caadr (lambda (x y) (set-car! (cadr x) y))))
+(set! scheme#cadar (getter-with-setter scheme#cadar (lambda (x y) (set-car! (cdar x) y))))
+(set! scheme#caddr (getter-with-setter scheme#caddr (lambda (x y) (set-car! (cddr x) y))))
+(set! scheme#cdaar (getter-with-setter scheme#cdaar (lambda (x y) (set-cdr! (caar x) y))))
+(set! scheme#cdadr (getter-with-setter scheme#cdadr (lambda (x y) (set-cdr! (cadr x) y))))
+(set! scheme#cddar (getter-with-setter scheme#cddar (lambda (x y) (set-cdr! (cdar x) y))))
+(set! scheme#cdddr (getter-with-setter scheme#cdddr (lambda (x y) (set-cdr! (cddr x) y))))
+(set! scheme#string-ref (getter-with-setter scheme#string-ref string-set!))
+(set! scheme#vector-ref (getter-with-setter scheme#vector-ref vector-set!))
(set! scheme#list-ref
- (getter-with-setter
+ (getter-with-setter
scheme#list-ref
- (lambda (x i y) (set-car! (list-tail x i) y))
- "(list-ref lst i)"))
+ (lambda (x i y) (set-car! (list-tail x i) y))))
;;; Parameters:
@@ -6280,13 +6279,14 @@ static C_word C_fcall C_setenv(C_word x, C_word y) {
(##sys#check-symbol sym 'put!)
(##core#inline_allocate ("C_a_i_putprop" 8) sym prop val) )
-(define ##sys#put! put!)
-
-(define (##sys#get sym prop #!optional default)
+(define (get sym prop #!optional default)
(##sys#check-symbol sym 'get)
(##core#inline "C_i_getprop" sym prop default))
-(define get (getter-with-setter ##sys#get put! "(get sym prop . default)"))
+(define ##sys#put! put!)
+(define ##sys#get get)
+
+(set! get (getter-with-setter get put!))
(define (remprop! sym prop)
(##sys#check-symbol sym 'remprop!)
Trap