~ chicken-core (chicken-5) e570f2d698c2fe79f33670f68dbca533da28b00b
commit e570f2d698c2fe79f33670f68dbca533da28b00b Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sun Sep 19 00:06:47 2010 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sun Sep 19 00:06:47 2010 +0200 Revert "applied zbigniew's record-rename patch (finally), added test-case" This reverts commit 727b2b3fea271474540f215af4842d32e82e7e6d. Module-renaming records will not work with record-variants, and will break coops. Since I can't think of a correct fix for this, the feature will be removed for the time being. diff --git a/chicken-syntax.scm b/chicken-syntax.scm index f57ef506..4c049424 100644 --- a/chicken-syntax.scm +++ b/chicken-syntax.scm @@ -59,11 +59,8 @@ (lambda (x r c) (##sys#check-syntax 'define-record x '(_ symbol . #(symbol 0))) (let* ((name (cadr x)) - (prefix (symbol->string name)) - (name (if (##sys#current-module) - (##sys#module-rename name (##sys#module-name (##sys#current-module))) - name)) (slots (cddr x)) + (prefix (symbol->string name)) (setters (memq #:record-setters ##sys#features)) (%define (r 'define)) (%getter-with-setter (r 'getter-with-setter))) @@ -825,21 +822,11 @@ 'define-record-printer (cons head body) '((symbol symbol symbol) . #(_ 1))) `(##sys#register-record-printer - ',(if (##sys#current-module) - (##sys#module-rename (##sys#slot head 0) - (##sys#module-name - (##sys#current-module))) - (##sys#slot head 0)) + ',(##sys#slot head 0) (##core#lambda ,(##sys#slot head 1) ,@body)) ] - (else + [else (##sys#check-syntax 'define-record-printer (cons head body) '(symbol _)) - `(##sys#register-record-printer - ',(if (##sys#current-module) - (##sys#module-rename head - (##sys#module-name - (##sys#current-module))) - head) - ,@body) ) ) )))) + `(##sys#register-record-printer ',head ,@body) ] ) )))) ;;; Exceptions: @@ -910,11 +897,7 @@ 'define-record-type form '(_ variable #(variable 1) variable . _)) - (let* ((t (if (##sys#current-module) - (##sys#module-rename (cadr form) - (##sys#module-name - (##sys#current-module))) - (cadr form))) + (let* ((t (cadr form)) (conser (caddr form)) (pred (cadddr form)) (slots (cddddr form)) diff --git a/distribution/manifest b/distribution/manifest index 9d12d6d9..6c2ceb82 100644 --- a/distribution/manifest +++ b/distribution/manifest @@ -100,7 +100,6 @@ tests/compiler-tests-2.scm tests/compiler-tests-3.scm tests/inlining-tests.scm tests/locative-stress-test.scm -tests/record-rename-test.scm tests/r4rstest.scm tests/null.scm tests/sgrep.scm diff --git a/tests/record-rename-test.scm b/tests/record-rename-test.scm deleted file mode 100644 index 5a3e2ef6..00000000 --- a/tests/record-rename-test.scm +++ /dev/null @@ -1,33 +0,0 @@ -;;;; record-rename-test.scm - - -(define-record foo a) - -(define-record-type bar - (make-bar x) - bar? - (x get-x)) - - -(module m1 (make-foo make-bar) -(import scheme chicken) - -(define-record foo a b) - -(define-record-type bar - (make-bar x y) - bar? - (x get-x) (y get-y)) - -) - - -(let ((f1 (make-foo 1)) - (f2 (make-bar 2))) - (print (list f1 f2))) - -(import m1) - -(let ((f1 (make-foo 1 2)) - (f2 (make-bar 3 4))) - (print (list f1 f2))) diff --git a/tests/runtests.sh b/tests/runtests.sh index 3c8fc48e..d7f9fce0 100644 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -222,9 +222,6 @@ echo "======================================== posix tests ..." $compile posix-tests.scm ./a.out -echo "======================================== record-renaming tests ..." -$interpret -bnq record-rename-test.scm - echo "======================================== regular expression tests ..." $interpret -bnq test-irregex.scm $interpret -bnq test-glob.scmTrap