Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

State of the Tcl [r7890]

3 views
Skip to first unread message

William Coleda

unread,
Apr 20, 2005, 12:38:44 AM4/20/05
to Perl 6 Internals
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).

Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/cmd_global.t 3 768 3 3 100.00% 1-3
t/cmd_proc.t 3 768 5 3 60.00% 1-3
t/cmd_rename.t 2 512 2 2 100.00% 1-2
t/cmd_return.t 1 256 1 1 100.00% 1
t/cmd_string.t 1 256 35 1 2.86% 27

Recent commits:

1) eliminate a .boolean macro for truth checking, and use the appropriate override in TclString; and

2) fix another (apparently only potential) GC bug in TclString; and

3) add a "make tclsh" target to both tcl/ and tcl/examples - this will run the interactive version of tcl. (a stripped down version at the moment, of course).

Leopold Toetsch

unread,
Apr 20, 2005, 5:24:59 AM4/20/05
to William Coleda, perl6-i...@perl.org
William Coleda <wi...@coleda.com> 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.

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.

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

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.

leo

William Coleda

unread,
Apr 20, 2005, 11:30:48 AM4/20/05
to l...@toetsch.at, perl6-i...@perl.org

Leopold Toetsch wrote:
> William Coleda <wi...@coleda.com> 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).

0 new messages