~ 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