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

Problem with string operations

2 views
Skip to first unread message

Roger Browne

unread,
Jan 5, 2006, 11:04:59 AM1/5/06
to Perl 6 Internals
I wonder if anyone has any ideas how I can track down the source of a
problem that I am having. I have a pir file that runs fine under 0.4.0,
but under the latest svn fails with this message:

parrot: src/string.c:448: string_append: Assertion `b->encoding &&
b->charset && !(((b)->obj.flags) & b_PObj_on_free_list_FLAG)' failed.

If I insert print instructions into the pir file, the point at which the
program fails changes arbitrarily.

If I run the program with --no-gc, it runs normally.

If I run it with -t, it fails consistently right near the beginning:

$ parrot -t string_operations.pir
3 warningson 255
5 store_global "_argv", P0 - , P0=SArray=PMC(0x8ae4610)
8 newclass P0, "ANY" - P0=SArray=PMC(0x8ae4610),
11 getclass P1, "Amber_INTEGER" - P1=PMCNULL,
14 getclass P1, "Amber_BOOLEAN" - P1=parrot: src/string.c:448:
string_append: Assertion `b->encoding && b->charset
&& !(((b)->obj.flags) & b_PObj_on_free_list_FLAG)' failed.
Aborted

The program exercises a whole load of string functions (appending,
repeating, substringing etc)

If anyone wants to try running the pir, it's here:
http://xamber.org/temp/string_operations.pir
(first build the pmcs: cd languages/amber && make all)
but really I'd be grateful for any tips about how to locate the problem.

Regards,
Roger Browne

Leopold Toetsch

unread,
Jan 5, 2006, 1:32:22 PM1/5/06
to Roger Browne, Perl 6 Internals

On Jan 5, 2006, at 17:04, Roger Browne wrote:

> I wonder if anyone has any ideas how I can track down the source of a
> problem that I am having. I have a pir file that runs fine under 0.4.0,
> but under the latest svn fails with this message:
>
> parrot: src/string.c:448: string_append: Assertion `b->encoding &&
> b->charset && !(((b)->obj.flags) & b_PObj_on_free_list_FLAG)'
> failed.

This means that at that line a GC-collected strings is used - the RHS
of concat is dead (on the free list).

> If I insert print instructions into the pir file, the point at which
> the
> program fails changes arbitrarily.

That's the nice thing with GC bugs ;-)

> If I run the program with --no-gc, it runs normally.

The bad news is I can't reproduce this with trunk, all combinations of
-t, --gc-debug are working.

There is another issue though 'make all' inside amber currently needs a
statically linked parrot. I don't know, if this is amber- or
parrot-related though.

> Regards,
> Roger Browne

leo

Leopold Toetsch

unread,
Jan 5, 2006, 2:00:06 PM1/5/06
to Leopold Toetsch, Roger Browne, Perl 6 Internals

On Jan 5, 2006, at 19:32, Leopold Toetsch wrote:

> There is another issue though 'make all' inside amber currently needs
> a statically linked parrot. I don't know, if this is amber- or
> parrot-related though.

Works with tcl - so it's probably an amber Makefile issue.

leo

Roger Browne

unread,
Jan 5, 2006, 3:37:49 PM1/5/06
to Perl 6 Internals

Thanks for trying this, Leo.

What is a non-"statically-linked parrot"? Is it what I get by giving the
"--parrot_is_shared" argument to Configure.pl?

The amber PMCs build for me with or without this option. How does it
fail when you build the PMCs without a statically linked parrot? (might
be a clue to my other problem).

Regards,
Roger Browne

Leopold Toetsch

unread,
Jan 5, 2006, 7:10:20 PM1/5/06
to Roger Browne, Perl 6 Internals

On Jan 5, 2006, at 21:37, Roger Browne wrote:

> What is a non-"statically-linked parrot"? Is it what I get by giving
> the
> "--parrot_is_shared" argument to Configure.pl?

I did
$ ./doit
$ cd languages/amber
$ make clean all

and got an error (Makefile related) - then:

$ ./doit --parrot_is_shared=0
$ cd languages/amber
$ make all

and amber worked. ./doit is basically 'perl Configure.pl "$@" && make
all test' e.g.

perl Configure.pl --maintainer --icuheaders=/usr/include "$@"
--icushared='-licuuc -licudata'
nice make -s all test

> Regards,
> Roger Browne

leo

0 new messages