Ciao, I am using "plt-r6rs" from Racket 5.1.1 (compiled with default options) on a i686-pc-linux-gnu; when running the tests of Nausicaa/Scheme[1] revision 0.2d10, with precompiled libraries, I get some suspicious timing. First I run a test file[2] which uses some techniques in macros and I get:
$ make rtest file=vectors-xvectors ===> test file ../tests/test-vectors-xvectors.sps with Racket *** testing xvectors ; *** checks *** : 86 correct, 0 failed. real 69.83 user 65.20 sys 4.68 fine; then I run another test file[3] which uses the same techniques in macros, but it enters a neverending loop and when I am tired of waiting I kill the process and get: $ make rtest file=arrays ===> test file ../tests/test-arrays.sps with Racket ^Cuser break Command exited with non-zero status 1 real 1782.68 user 63.65 sys 1711.13 make: *** [rtest] Error 1 notice the big "sys" time portion; while CPU usage is 100%, if there is memory usage increase it is too small to be displayed by "top". Around line 437 of this test file there is a LET form starting with: (let (((array <array>) and a bit of investigation leads me to think Racket enters a long loop trying to expand this LET form which has a number of "tagged" bindings not present in my other test files. This LET is in truth a LET/WITH-CLASS syntax[4] which in turn is expanded in an R6RS's LET with a nested WITH-CLASS form[5], which in the end is expanded in a series of nested LET-SYNTAX forms each defining a set of syntaxes and identifier syntaxes for each tagged binding. If I am not mistaken, while expanding this WITH-CLASS syntax Racket takes bigger and bigger "sys" breaks. The code looks correct to me; other R6RS implementations can run the test without problems: $make ptest vtest mtest file=arrays ===> test file ../tests/test-arrays.sps with Petite Chez *** testing multidimensional arrays ; *** checks *** : 222 correct, 0 failed. real 6.90 user 6.34 sys 0.12 ===> test file ../tests/test-arrays.sps with Vicare *** testing multidimensional arrays ; *** checks *** : 222 correct, 0 failed. real 23.52 user 22.94 sys 0.37 ===> test file ../tests/test-arrays.sps with Mosh *** testing multidimensional arrays ; *** checks *** : 222 correct, 0 failed. real 104.61 user 21.70 sys 82.55 This problem may be in the same category of another[6] I already reported. I look forward to the new Racket release. TIA [1] <http://github.com/marcomaggi/nausicaa/downloads> [2] <https://github.com/marcomaggi/nausicaa/blob/devel/scheme/tests/test-vectors-xvectors.sps> [3] <https://github.com/marcomaggi/nausicaa/blob/devel/scheme/tests/test-arrays.sps> [4] Line 165 of <https://github.com/marcomaggi/nausicaa/blob/devel/scheme/src/libraries/nausicaa/language/classes/binding-constructs.sls> [5] Line 1332 of <https://github.com/marcomaggi/nausicaa/blob/devel/scheme/src/libraries/nausicaa/language/classes/core.sls> [6] <http://www.mail-archive.com/users@racket-lang.org/msg05765.html> -- Marco Maggi _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users