Leopold Toetsch wrote:
William Coleda <[EMAIL PROTECTED]> wrote:
Still some GC bugs kicking around that neither Leo nor I have been able to find yet. (Note that the bug in [string] may actually be a PGE leak, as that code uses the glob rules).
Well there are GC and other bugs, probably. I get really strange results when running the tcl tests:
$ make test
Failed Test Stat Wstat Total Fail Failed List of Failed --------------------------------------------------------------- t/cmd_continue.t 1 256 2 1 50.00% 2
*but* I see much more failing: some of cmd_concat, cmd_insert, cmd_proc, and cmd_string, which aren't shown in the summary.
These are probably the TODO tests - you still get the failure output when they run, but they don't count against the total.
Turning off DOD/GC gives this result:
$ TEST_PROG_ARGS=-G make test
All tests successful. Files=36, Tests=228, 43 wallclock secs (35.93 cusr + 6.15 csys = 42.08 CPU)
again with above failing tests unnoticed.
Running with -G didn't flush output w/o newlines properly, which is fixed now.
Thanks
Some more remarks:
lib/tclword.imc:
.local pmc me me = interpinfo 16 #INTERPINFO_CURRENT_OBJECT setattribute me, "TclWord\x00chunks", emptyArray
this is extremly prone to errors. We don't guarantee that the constant 16 stays the current object. Just use C<self> here, which does the same:
setattribute self, "TclWord\x00chunks", emptyArray
Heh. I had done this before, and, as today, it didn't work. self wasn't recognized as a variable: __init was not declared as a method. Fixed.
tcl.imc:
$P2 = parser."parse"(input_line_PMC,zero,zero) (retcode,retval) = interpret($P1)
$P1 / $P2 seems to be a typo, which happens to work as it's likely that the register allocator will use the same register.
Good catch, thank you. That'd've been easier to see if it failed. ^_^
Also, I see you found a bug in my fix to dynclasses/tclstring.pmc - I forgot to actually mark the strings.
Sadly, with all these updates, no changes in test status. (Even with your other GC fix for lisp).