Camelia, the Perl 6 bug

IRC log for #parrot, 2008-10-27

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:09 AndyA joined #parrot
01:00 Andy joined #parrot
01:02 Theory joined #parrot
01:05 dalek r32189 | chromatic++ | trunk:
01:05 dalek : [MMD] Refactored multi_sig caching out of mmd_distance().  This is the first
01:05 dalek : step toward fixing the bug where you can't dispatch on types declared after the
01:05 dalek : first call to any multi variant of that name.
01:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32189
01:07 num1 joined #parrot
01:14 tetragon joined #parrot
01:19 Theory joined #parrot
01:41 daxelrod joined #parrot
01:45 dalek r32190 | chromatic++ | trunk:
01:45 dalek : [MMD] Made mmd_cvt_to_types() return PMCNULL when it cannot resolve all types
01:45 dalek : in a multi's signature.  In this case, you can't actually dispatch to the
01:45 dalek : variant with this signature, as you don't have any parameters which correspond
01:45 dalek : to the missing types -- Parrot doesn't know about them at all.  This solves the
01:45 dalek : problem where aggressive multi signature type caching meant you could never
01:46 dalek : dispatch to any multi variant with types you declare later, such as classes
01:46 dalek : defined at runtime, after the first call to the multi.
01:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32190
01:50 dalek r32191 | chromatic++ | trunk:
01:50 dalek : [t] Revised a couple of MMD tests to remove since-deleted Perl* PMC references,
01:50 dalek : and to prove that MMD type caching is no longer too aggressive (see r32190).
01:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32191
01:51 chromatic That should let us get rid of many TODOs in the MMD tests.
01:51 chromatic It may help Rakudo too...
01:59 duzy joined #parrot
01:59 duzy hi
02:01 duzy I got problems with declarating a variable, following the tutorial of squaak. My stuff looks like:
02:02 duzy method variable_declaration($/) {
02:02 duzy my $var = $( $<variable> );
02:03 duzy my $val = $( $<val> );
02:03 duzy $var.viviself( $val );
02:03 duzy make $var;
02:03 duzy }
02:04 duzy method variable($/) {
02:04 duzy make PAST::Var.new( :name( ~$/ ),
02:04 duzy :scope('package'),
02:04 duzy :viviself('Undef'),
02:04 duzy :lvalue(1)
02:04 duzy );
02:04 duzy }
02:04 duzy
02:04 duzy method val($/) {
02:04 duzy make PAST::Val.new( :value( ~$/ ), :node($/) );
02:04 duzy }
02:04 duzy
02:05 duzy While testing, always got: Method 'item' not found for invocant of class 'Undef'
02:05 duzy current instr.: 'parrot;smart;Grammar;Actions;_block79' pc 10509 (src/gen_actions.pir:274)
02:05 duzy
02:13 dalek r32192 | chromatic++ | trunk:
02:13 dalek : [t] Un-todoed several new passing tests.
02:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32192
02:22 bacek_ chromatic++ # horray!
02:23 chromatic Fix anything for you?
02:33 bacek_ Lexicals?
02:33 purl Lexicals are sexy
02:33 bacek_ rakudo: my $a; $a+=1; say $a
02:34 polyglotbot OUTPUT[Multiple Dispatch: No suitable candidate found for 'i_add', with signature 'PP'␤current instr.: 'infix:+=' pc 12300 (src/gen_builtins.pir:7640)␤called from Sub '_block11' pc 36 (EVAL_12:19)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 864 (src/PCT/HLLCompiler.pir:498)␤called from Sub
02:34 polyglotbot ..'parrot;PCT;HLLCompiler;evalfiles' pc 1138 (src/PCT...
02:34 bacek_ chromatic: this on still happens...
02:35 bacek_ rakudo: my $a; my $b = 1i + $a; say $b;
02:35 polyglotbot OUTPUT[0+1i␤]
02:35 bacek_ rakudo: my $a; my $b = $a + 1i; say $b;
02:35 polyglotbot OUTPUT[Multiple Dispatch: No suitable candidate found for 'add', with signature 'PPP->P'␤current instr.: 'infix:+' pc 1941 (src/gen_builtins.pir:1368)␤called from Sub '_block11' pc 51 (EVAL_11:22)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 864 (src/PCT/HLLCompiler.pir:498)␤called from Sub
02:35 polyglotbot ..'parrot;PCT;HLLCompiler;evalfiles' pc 1138 (src/PCT...
02:37 bacek_ rakudo: my $a; my $b = $a + 1; say $b;
02:37 polyglotbot OUTPUT[1␤]
02:37 bacek_ MMD still failing...
02:40 chromatic Is that the Complex PMC?
02:42 bacek_ chromatic: $a +1i -- yes
02:42 bacek_ $a+=1 is just Undef+=Integer
02:45 chromatic Okay.  Complex still has some trouble.
02:46 bacek_ but why $a+=1 failing?
02:55 chromatic I think the inplace operators aren't working currently.
03:04 bacek_ chromatic: yes.. RT #60036
03:05 chromatic Can't fix that one right away.
03:05 chromatic I might get masak's segfault though.
03:06 bacek_ <README ./perl6 -e 'my $l = 0; while !$*IN.eof { $l++; =$*IN; }; say $l'
03:06 bacek_ this one?
03:06 purl rumour has it this one is bugged too now
03:07 chromatic Yes, that one.
03:07 purl somebody said that one was more Acme.
03:22 bacek_ chromatic: masak's segfault looks like duplicate of "exception rethrowing" bug
03:24 chromatic Stack smashing perhaps?
03:24 bacek_ chromatic: no... Just infinite exception loop
03:26 bacek_ ==25833== More than 10000000 total errors detected.  I'm not reporting any more.
03:26 bacek_ ==25833== Final error counts will be inaccurate.  Go fix your program!
03:26 bacek_ yak...
03:26 chromatic Sure, then it runs out of stack space.
03:27 * bacek_ rerun this test with -G under valgrind
03:28 bacek_ valgrind reports only stack overflow.
03:31 bacek_ looks like valgrind can't detect stack smashing
03:33 chromatic Run it in gdb and see if it gets into corecursion.
03:40 bacek_ chromatic: yes, it is
03:41 Theory joined #parrot
03:48 bacek_ Breakpoint 1, Parrot_ex_throw_from_c_args (interp=0x98c4008, ret_addr=0xb773b8b4, exitcode=45,
03:48 bacek_ format=0xb7e9fd30 "Method '%Ss' not found for invocant of class '%Ss'") at src/exceptions.c:321
03:49 bacek_ it start looping on  "Method 'succ' not found for invocant of class 'Int'"
03:49 bacek_ and it probably my bug ;)
03:52 bacek_ hmm... it is not my bug...
03:58 Psyche^ joined #parrot
04:01 bacek_ chromatic: around?
04:17 particle joined #parrot
05:02 bacek_ parrotbug?
05:02 purl parrotbug is probably mailto:parrotbug@parrotcode.org or http://svn.perl.org/parrot/​trunk/docs/submissions.pod or see also "rakudobug"
05:07 bacek_ msg chromatic #60166 is one of the cause for "masak's bug"
05:07 purl Message for chromatic stored.
05:39 Bzek joined #parrot
05:41 chrisdolan joined #parrot
05:58 cotto If PHP had a designer, I'd shoot him.
05:58 cotto or her.
06:01 chrisdolan rakudo: "" ~~ m/:lang(Perl6) {{ say "hi" }}/
06:01 polyglotbot OUTPUT[sh: ./parrot: No such file or directory␤]
06:02 chrisdolan Hmm, well, that example emits "invoke() not implemented in class 'Perl6::Compiler'"
06:03 chrisdolan Can someone explain why?
06:05 chrisdolan This works: "" ~~ m/:lang(PIR) {{ say "hi" }}/
06:47 chromatic joined #parrot
07:08 gaz joined #parrot
07:08 uniejo joined #parrot
07:22 chromatic joined #parrot
07:45 Khisanth joined #parrot
07:46 iblechbot joined #parrot
07:50 gaz_ joined #parrot
07:56 dalek r32193 | chromatic++ | trunk:
07:56 dalek : [t] Removed a passing TODO test.
07:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32193
08:19 bacek joined #parrot
08:36 Bzek joined #parrot
08:46 barney joined #parrot
08:55 cosimo joined #parrot
09:26 tewk wq
09:40 tomyan joined #parrot
09:44 skv joined #parrot
09:53 tomyan joined #parrot
10:13 bacek evening
10:13 bacek is S29-convertions/ord_and_chr crashes only on my box?
10:17 bacek rakudo: say chr(228);
10:17 polyglotbot OUTPUT[ä␤]
10:18 bacek rakudo: say ord(chr(228));
10:18 polyglotbot OUTPUT[228␤]
10:30 ruoso joined #parrot
10:43 kj joined #parrot
11:45 bacek joined #parrot
12:00 Bzek joined #parrot
12:10 Lorn joined #parrot
12:17 Ontolog joined #parrot
12:50 tetragon joined #parrot
12:53 tetragon_ joined #parrot
12:58 * Coke managed to exclude the tcl testing library from the segfault and is down to 4 lines of tcl.
12:59 Coke really 3 lines, with one line forcing a gc run.
13:13 iblechbot joined #parrot
13:20 gryphon joined #parrot
13:26 gryphon_ joined #parrot
13:32 * Coke simplifies the 3 lines again, and posts to the list; hopefully that's small enough for chromatic.
13:32 Coke (or whoever else is a GC expert. =-)
13:33 gryphon joined #parrot
14:09 jhorwitz joined #parrot
14:29 mj41 joined #parrot
14:38 PacoLinux joined #parrot
14:38 iblechbot joined #parrot
14:42 Andy joined #parrot
14:42 kj if anyone on linux is bored, s/he could try out how compilers/pirc compiles and works. Just updated it to parse macros and heredocs. Pretty cool on windows :-)
14:45 mj41_ joined #parrot
14:47 Infinoid I just got some t/perl/Parrot_Test.t failures
15:24 grim_fandango joined #parrot
15:25 * Coke reduces the segfault down to < 5000 lines of PIR
15:30 NotFound Coke: prove -v t/cmd_lsort.t gives: "attempt to access code outside of current code segment" after the last test
15:31 Coke NotFound: there's an open RT on that.
15:31 Coke it's a parrot issue.
15:31 Coke < 2000 lines of PIR ...
15:44 Coke NotFound: http://rt.perl.org/rt3/Tic​ket/Display.html?id=57088
15:47 Coke hurm. the PIR-based segfault I'm seeing now doesn't go away when -G is used.
15:47 NotFound Coke: I think the segfault is a combination of two problems: an infinite recursion in the handling of a exception, and a STRING created in the chain that eventually gets collected because is never marked.
15:49 NotFound STRING *msg in Parrot_ex_throw_from_c_args
15:50 NotFound The exception message is: "Class s already registered!\n"
15:50 NotFound "Class %Ss already registered!\n"
15:50 dalek r32194 | kjs++ | trunk:
15:50 dalek : [pirc/new] disable thread testing for linux. this should be refactored anyway.
15:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32194
15:53 hercynium joined #parrot
15:53 NotFound Same for the short version
15:54 PerlJam Anyone got a document or some pointers on debugging a rakudo segfault?
15:55 NotFound Hum, not, seems like is not an infinite recursion, the stack trace is a lot short in the pir version
15:55 NotFound short version
15:55 purl rumour has it short version is this: the company lej was contracting to wanted lej's personal company to take over all the development for their company
15:55 Theory joined #parrot
15:59 particle forget short version
15:59 purl particle, I didn't have anything matching short version
16:00 Infinoid ha!  beat ya to it.
16:00 particle PerlJam: chromatic wrote up some notes on the wiki
16:00 particle :P
16:00 PerlJam ah, of course
16:02 tewk I've got a GC bug.
16:02 particle don't give it to me, tewk. i've just gotten over one.
16:03 tewk nci_info->signature->strstart is getting reclaimed while the nci_info struct should still be live.
16:06 particle signature...
16:06 NotFound tewk: Did you have an example?
16:06 particle need to look for proper anchoring
16:08 tewk NOTE the NCI PMC is attached to the integer multi "cmp" "Integer,DEFAULT"
16:08 Coke NotFound: are you referring to the segfault I reported that I saw in tcl or a different one?
16:09 tewk Its kind a long recreation path, you have to enable CAN_BUILD_CALL_FRAMES
16:09 NotFound Coke: the tcl
16:09 Coke oooh.
16:09 Coke NotFound++
16:13 particle tewk: have you tried ncigen against parrot's headers?
16:14 tewk No, I should, I'm trying to reviving jitted NCI right now since I think that will get used more.
16:14 tewk I'll try ncigen tonight agains parrot headers.
16:14 particle good and good
16:14 particle (jitted nci)++
16:15 particle i spoke with a bunch of folks at saturday about language interop, and that came up
16:16 Coke jitted NCI did?
16:16 particle yes
16:16 Coke I am not convinced most HLLs will be able to use JIT in any meaningful way, since we seem to have to use PMCs for a lot. Here's hoping.
16:17 * Coke opens his second segfault ticket of the week.
16:17 Infinoid Coke++
16:17 tewk It passes all the NCI tests, it just segfaults while building TGE because of an early GC reclaimation.
16:17 NotFound Coke: have you found the class register that fails?
16:18 particle tewk: it's probably in some pmc's init or init_pmc
16:18 Coke NotFound: No. I haven't isolated the original segfault more than the most recently posted tcl.
16:18 particle however, it could be in the calling convention code
16:18 tewk Parrot_mmd_add_multi_from_c_args creates the NCI PMC.
16:18 Coke I was trying to convert it to a PIR-based segfault, but then RT#60170 got in my way.
16:18 jhorwitz that class error might be a red herring -- i had the same error the last segfault i reported, but it was unrelated.
16:19 tewk the NCI PMC seems to be fine, its the nci_info->signature->strstart that gets reused.
16:20 Coke Infinoid: is that in a "better you than me" kind of way? =-)
16:20 barney joined #parrot
16:20 NotFound tewk: then it can be that the nci pmc that contains the signature is not marked
16:20 particle kj: ping
16:21 dalek r32195 | tewk++ | trunk:
16:21 dalek : [jitted NCI] changed jitted code to use EBP instead of ESP, more efficient
16:21 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32195
16:22 tewk yeah I'd like to pick chromatic or allisons brain because mmd creates that NCI PMC and sticks it a namespace and in the global interp
16:23 tewk Ah its a MultiSub, lets go see if it marks its sub
16:24 Infinoid Coke: nah, you're finding good stuff
16:24 Infinoid actually, that verify_signature crash is pretty interesting.  it's walked off the end of the constants list
16:27 kj particle: pong
16:28 particle i see you've made some progress on pirc recently
16:28 kj yes
16:28 particle fab. i'm reviewing the diffs now
16:29 kj I'm kinda stuck, so I'm trying to find all sorts of issues that need to be resolved anyway
16:29 particle what are you stuck on?
16:29 kj the diffs are quite big
16:29 Infinoid Coke: its a condition we can test for.  I've converted the segfault to an assertion failure, but I know that doesn't really help you much
16:29 kj particle: stuck on how to generate actual bytecode. IMCC emits bytecode (the op codes and the arguments) into a codesegment that is in the Interp structure
16:30 kj I basically get the idea, but haven't been able to understand all details.
16:30 particle ah
16:30 tewk kj is there a test suite for pirc I can run on linux for you?
16:31 kj tewk: no test suite yet, although I added a commandline option to pirc which will prevent pirc from any output, except an 'ok'.
16:31 kj in case of any errors, the output != 'ok', which will make any tests fail
16:31 kj but no tuits yet to find out how to create tests.
16:32 particle kj: have you tried tracing a simple pasm program (eg. 'end') through the imcc bytecode emitter?
16:32 kj not sure how you would do that. -t == trace?
16:33 particle i was thinking gdb and step
16:33 kj problem is too, that 'end' is too simple, you can't check.
16:33 Lorn joined #parrot
16:33 kj i need at least a print statement
16:33 kj *op
16:33 kj gdb: I'm not  yet familiar with gdb
16:33 particle well, end is as simple as it gets. it does generate bytecode with opcode 0
16:33 kj I should learn it...
16:35 tewk gdb watch *(int)ADDRESS is your friend in finding GC errors
16:36 tewk gdb watch *(int*)ADDRESS is your friend in finding GC errors
16:36 tewk It took me years to develop my love for gdb, we had a very rocky start.
16:36 Ontolog joined #parrot
16:37 kj I should invest some time to get familiar with debugging tools.
16:37 kj I usually rewrite my code after I found out I can't debug it :-P
16:44 particle kj: no -M option to run macro preprocessor only?
16:44 kj I called it -E, but doesn't really work yet
16:45 kj as in it's not working at all. It's integrated now, so I think the best way to do it is to generate PIR code from the tree structure that is created.
16:51 jhorwitz i reproduced Coke's segfault and did some snooping -- looks like RT #60000
16:53 Coke which segfault? tcl or the other one?
16:53 particle -E is macro AND heredoc
16:53 particle i was thinking macro-only
16:53 kj particle: ah ok. but then what happens if you have heredocs?
16:53 kj so .macro foo() ... .endm
16:53 particle what happens with -H ?
16:53 kj and .foo(<<'HI')
16:53 Tene jhorwitz: I'm going to harass you into going out to dinner with me later this week.
16:54 Coke ... wtf, I just tripped another segfault.
16:54 kj runs the heredoc preprocessor only
16:54 jhorwitz Coke: i think the other one (NOT #57088)
16:54 kj so there's no separate macro preprocessor anymore, I integrated it with PIR's lexer
16:54 particle AH
16:54 kj there were some good reasons to do so
16:54 kj I found, anyway :-)
16:55 jhorwitz Coke: if you change your __onload sub to :load, it runs.  TGE.pbc tries to load Dumper.pir, but since the whole thing happens in an immediate block, things go BIG BADABOOM.
17:00 chromatic joined #parrot
17:01 jhorwitz Tene: tomorrow night might be best
17:02 * Coke opens his third segfault ticket
17:02 Coke jhorwitz: yah, I don't expect that to work, i just expect it to not segfault.
17:02 Coke much like #60172
17:03 jhorwitz yeah, that ticket didn't say *how* it wasn't working.  :)
17:03 Coke "by segfaulting"
17:03 chromatic expand_pcc_sub_call... guess: Parrot thinks a parameter is one type when it's another type.
17:03 jhorwitz it's the mayor of segfaultville
17:03 Coke chromatic: I have 3 segfault tickets open. Soon I will lap you.
17:05 Coke only found the last 2 because i thought I had narrowed down the SF in the original ticket, but it turned out it was YA sf.
17:06 Lorn joined #parrot
17:06 ruoso joined #parrot
17:07 chromatic Right now I'm looking at why you can't subclass a PMC with a struct from PIR.
17:07 chromatic You can, but it doesn't seem to work.
17:12 Coke with a -struct- ?
17:13 Coke do you mean a class?
17:17 chromatic PMC Attributes, stored in a struct defined in the .c file for the PMC.
17:18 particle these freebsd negative zero smoke failures are annoying
17:18 Coke oh. a pmc with a struct; from pir, not a pmc ; with a struct from PIR.
17:19 particle anyone know a bsd hacker who can work to fix them (maybe in sprintf code?) rather than just skipping them?
17:19 Coke do we even know how we want parrot to behave with negative 0?
17:19 chromatic We don't.
17:19 Coke we don't know, or we don't want -0?
17:20 particle we want -0
17:20 particle it's ieee standard
17:20 particle which we promise to support
17:20 Coke "we do"?
17:21 Coke (i mean, you'll need it for tcl to work, didn't realize it was in writing.)
17:23 nopaste "tewk" at 155.98.69.7 pasted "jitted NCI GC bug, any ideas chromatic" (8 lines) at http://nopaste.snit.ch/14402
17:28 chromatic tewk, is the rest of the NCI PMC sane?
17:30 Coke this is (&*#$; I have a replacement for the top level tclsh that load_bytecode's runtime/tcllib.pir; I get the expected segfault. if I copy tcllib.pir to tclboom.pir in that same directory and change the load_bytecode line... I get a different segfault.
17:30 tewk chromatic: the other STRING in nci_info also doesn't look good.
17:30 Coke (one of hte 2 I just reported today)
17:31 chromatic Maybe the NCI PMC isn't valid.
17:31 chromatic Maybe something's casting to a PMC but it wasn't a PMC to start.
17:34 AndyA joined #parrot
17:37 nopaste "tewk" at 155.98.69.7 pasted "jitted NCI stacktraces" (64 lines) at http://nopaste.snit.ch/14403
17:37 tewk chromatic: the nci_info PMC looks good except for the STRING members
17:38 tewk the stacktrace shows the segfault, followed by the place where nci_info->signature->strstart gets reused.
17:45 Coke 0xb7e1ad7b in yyensure_buffer_stack (yyscanner=0x0) at compilers/imcc/imclexer.c:4927
17:45 Coke 4927            if (!yyg->yy_buffer_stack) {
17:45 Coke ... that's 4.
17:47 particle coke's on a mission.
17:47 Coke meh. I'm not reporting that one.
17:50 chromatic Can't fix things that don't get reported.
17:52 tewk I'll report it, I was just trying to fix it myself, but I've run out of obvious places to look.
17:52 chromatic tewk, it's this line in the NCI PMC:
17:52 chromatic jit_func(INTERP, SELF, (char *) nci_info->pcc_params_signature->strstart);
17:53 tewk yeah the pcc_params_signature->strstart isnt valid any more.
17:54 chromatic Was it ever valid?  Did pcc_params() get called?
17:54 tewk a MultiSub owns the NCI PMC, and since a MultiSub inherits from RPA, I don't see how the nci_info isn't getting marked.
17:55 tewk I'll double check but I believe so.
17:57 tewk pcc_params get called by set_pointer_keyed_str which is called at Parrot_mmd_add_multi_from_c_args:2088
18:01 chromatic Here's the problem:
18:01 chromatic PMC    *sub_obj        = constant_pmc_new(interp, enum_class_NCI);
18:01 AndyA joined #parrot
18:01 chromatic src/multidispatch.c:1980
18:01 tewk Awe because its constant, right, duh
18:01 chromatic Yep.
18:01 chromatic And it has non-constant children.
18:02 chromatic The NCI sub gets stored in a namespace anyway right away, so changing that to pmc_new should fix things.
18:02 tewk Yeah this is probably a result of the MMD merge.
18:03 masak joined #parrot
18:03 tewk I read over that code a dozen times and didn't even think about the constant_pmc_new.
18:04 tewk Thanks.
18:04 masak I can't compile my Parrot. anyone else have this for r32195?
18:04 * moritz also can't compile masak's parrot... oh wait
18:04 masak pfeh.
18:04 moritz doing a realclean + rebuild now...
18:06 tewk masak r32195 is my commit, is this windows?
18:06 Coke chromatic: (can't fix things that don't get reported) yes, but I only have so many tuits available. (sadly, I had already lost whatever magic incancation caused that to barf by the time I complained about it here.)
18:06 masak http://sial.org/pbot/32903
18:06 masak tewk: no, OS X 1.5.4
18:06 masak s/1/10/
18:06 tewk tests passed on linux, let me know if a realclean doesn't fix it.
18:07 * moritz is well into the tests now, also on linux
18:07 masak tewk: not sure it's your commit that did it. stepping back to check.
18:07 tewk chromatic++
18:07 masak I always do a realclean.
18:07 masak moritz: I never got to the tests.
18:10 pmichaud (RT #60172) ... what exactly is the :pir_only flag anyway?
18:10 pmichaud or is it simply that this is an imcc bug of some sort for failing to properly trap the syntax error?
18:11 chromatic The latter is my guess.
18:13 kj allison#60172 doesn't segfault on windows
18:13 dalek r32196 | julianalbo++ | trunk:
18:14 dalek : avoid a strlen call in nci.pmc
18:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32196
18:14 kj woops
18:14 kj must have hit an 'a'; I just meant #60172
18:23 masak my Parrot stops compiling at r32189
18:23 tewk chromatic: I'm in constant hell, couldn't I just make the STRINGS const instead of un-consting the whole mmd structure
18:25 masak I'll merge back that change and try compiling HEAD.
18:25 tewk masak: I just tried on a OS X box and pge fails because of no bigint lib loaded
18:25 chromatic tewk, I figured to unconst the NCI PMC created in this MMD sub.  Does that not work?
18:25 masak tewk: did it look like http://sial.org/pbot/32903?
18:25 johbar joined #parrot
18:25 tewk no I got a segfault and I'm guessing its because the MultSub is also constant
18:26 chromatic Most subs are constant.
18:27 tewk I really don't see a need for the NCI sub not to be constant either, I just need to make those STIRNGS constant then?
18:28 chromatic That should work.
18:28 chromatic I'm trying to think of any drawbacks.
18:29 tewk masak: nope, mine is much nicer, saying I need a big int library.
18:30 masak tewk: I don't think we have the same problem.
18:30 tewk so does PGE require a bigint lib now?
18:30 chromatic PGE shouldn't.
18:31 masak chromatic: your commit r32189 borked Parrot for me. I don't know what's wrong, but I can compile HEAD if I only use the r32188 version of src/multidispatch.c
18:31 masak should I report this to parrotbug?
18:31 nopaste "tewk" at 155.98.69.7 pasted "PGE needs bigint ?" (14 lines) at http://nopaste.snit.ch/14404
18:32 chromatic That's crazy.
18:32 chromatic Yes, please report it.
18:32 pmichaud tewk: what's the grammar being compiled?
18:32 pmichaud oh, wait, it's right there.
18:32 pmichaud hrm.
18:33 pmichaud PGE normally does not require bigint.
18:33 tewk This is on a OS X box doing a basic make.
18:38 Psyche^ joined #parrot
18:43 tewk How do I create a const version of an existing STRING, const_string(INTERP, key->strstart); doesn't seem quite right.
18:43 pmichaud PGE builds fine on my system, fwiw.
18:44 pmichaud (Kubuntu)
18:44 chromatic tewk, string_from_cstring and then const_string, and then string_cstring_free.
18:45 chromatic Hm, maybe you don't need the free.
18:46 NotFound chromatic: sounds like a Big Crash
18:47 NotFound cons_string sets the external flag
18:47 tewk pmichaud: I bet it would build fine if I installed a bigint library, It seems like someone made a change recently that enabled some type of auto bigint promotion?
18:48 pmichaud possible, but I wouldn't expect PGE to tickle that feature.
18:48 NotFound The Integer pmc convert to BigInt on overflows
18:48 pmichaud sure, but I don't expect PGE to overflow there.
18:49 pmichaud it shouldn't even come close to overflowing.
18:51 tewk 343 lt P2, 0, 26                     P2=Integer=PMC(0x2a5064: 27)
18:51 tewk no bigint lib loaded
18:51 pmichaud of course, it may be that Integer is now requiring bigint support even w/o overflows, and that PGE is just the first PIR program that gets compiled.
18:51 tewk could this be a MMD issue.
18:51 pmichaud i.e., it's not a PGE bug.
18:52 tewk right, but it seems wrong.
18:52 pmichaud Many times bugs show up in "PGE" not because they're PGE specific, but just because building PGE is the first thing in the build sequence that actually uses parrot.
18:52 tewk Its actually compiling the tge .pg
18:53 pmichaud the command you nopasted is part of building PGE itself.
18:53 pmichaud at any rate, clearly 27 is well within the bigint limits :-)
18:54 chromatic Not now... I changed our INTVAL to 4 bits last night.
18:54 chromatic Everything else overflows to BigInt.
18:54 tewk :)
18:54 pmichaud oh, in that case it's just a world of BigInts.  :-)
18:54 chromatic include/parrot/core_types.h:36
18:54 chromatic #define INTVAL short
18:54 pmichaud ...short is 4 bits on OSX?
18:55 chromatic Oh, Mac OS X?  It's probably 7 or 13 or something.
18:55 pmichaud 27 is within 7 bits
18:56 pmichaud I don't have an include/parrot/core_types.h
18:56 pmichaud (but I'm on Kubuntu)
18:56 NotFound pmichaud: in Kubuntu is: kore_types
18:57 chromatic That's a joke for coast-dwellers.
18:57 chromatic Flyover country finds it confusing.
18:57 pmichaud ah.
18:57 pmichaud We do.
18:57 pmichaud Those of us living in "real America" can't understand the others, I guess.  :-P
18:58 NotFound pmichaud: dispatch to "complex America"
18:58 tewk guns, religion, 32bit INVALS
18:58 chromatic Still, Mac OS X having 17-bit pointers seems consistent with other design decisions.
18:59 tewk Yeah OS X doesn't support __thread, which is nice when writing multi-threaded GCs
19:00 tewk and WIN32 doesn't support declspec(__thread) with dynamically loaded dlls.
19:00 tewk rant over.
19:01 pmichaud ...that's it?  I figured OS X deserves a lot more ranting.
19:02 chromatic You have to pace yourself.
19:02 NotFound Many people does not rant about it because they never used it
19:03 tewk chromatic: does string_from_cstring and then const_string, and then string_cstring_free, deserve a const_string_from_string addition?
19:03 tewk I'm thinking of adding it.
19:04 NotFound tewk: forget the string_cstring_free
19:04 purl NotFound, I didn't have anything matching string_cstring_free
19:04 chromatic tewk, maybe... but someday I'd like to fix the constant marking problem.
19:05 NotFound const_string creates an external string using the buffer passed. If you free that buffer...
19:05 tewk I agree, two calls I guess I can handle, three would be too many
19:05 tewk well then const_string isn't for me.
19:07 chromatic Then you have to make a string and pass in some _Constant_ flag.
19:07 chromatic I forget which one, but const_string() does it.
19:08 tewk Yeah I'm reading src/string.c, I'll get it right.
19:09 chromatic The STRING APIs aren't clear enough.  We should revise them such that we don't have to read the code to remember which to use.
19:09 PerlJam isn't that one of the milestones to 1.0?  revamp strings
19:09 tewk Yeah, I've had the same thought, just not the resolve to do it yet/
19:11 chromatic That might be doable before even making the Unicode APIs right.
19:12 NotFound For example, not having a function called string_equal that returns 0 when they are equal.
19:14 chromatic No kidding!
19:14 Tene Right, string_equal should return NULL.
19:18 pmichaud btw, while working in the lex branch I saw a place where string_equal is used improperly  -- src/sub.c:528
19:19 pmichaud of course, that particular line of code is wrong in several other ways as well.
19:35 dalek r32197 | kjs++ | trunk:
19:35 dalek : [pirc/main] add parser-debug capability.
19:35 dalek : + add %debug option to parser
19:35 dalek : + add reference to yypirdebug GLOBAL variable (eeuhw! no other option, it seems).
19:35 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32197
19:50 dalek r32198 | kjs++ | trunk:
19:50 dalek : [pirc/new] add 'y' option to help, and some rules to catch some syntax errors and print a proper message.
19:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32198
19:52 dalek r32199 | kjs++ | trunk:
19:52 dalek : [pirc/new] add #ifdef YYDEBUG for yypirdebug variable; if the #define is not given, then yypirdebug is not available.
19:52 dalek : + remove old yydebug option.
19:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32199
20:08 GeJ_ joined #parrot
20:10 vhold_ joined #parrot
20:10 Coke ping feather.perl6.nl
20:10 purl I can't find feather.perl6.nl in the DNS.
20:11 bacek joined #parrot
20:12 bacek morning
20:12 bacek seen chromatic
20:12 purl chromatic was last seen on #parrot 57 minutes and 59 seconds ago, saying: No kidding!
20:12 baest joined #parrot
20:12 PacoLinux joined #parrot
20:12 NotFound joined #parrot
20:12 nopaste joined #parrot
20:12 krunen joined #parrot
20:12 Maddingue joined #parrot
20:15 * bacek wander why rt#60166 didn't hit mailing list...
20:16 Coke sometimes they take a while
20:17 * Coke wonders where feather is.
20:19 bacek Coke: more then 12 hours???
20:20 Coke that's on the long side.
20:21 Coke but at some point, if it's flagged as spam, a human might have to look at it.
20:21 Coke and the perl.org servers have been known to be choked by even the "i'm just going to throw this away" kind of spam.
20:22 Coke anyone have an IP addy for feather?
20:22 Coke feather?
20:22 purl feather is http://feather.perl6.nl/ or a perl6 community development server
20:22 Coke feather.perl6.nl?
20:23 * Coke curses.
20:23 Coke chromatic: I am down to about 5000 lines of PIR to duplicate the ORIGINAL segfault.
20:23 ab5tract joined #parrot
20:23 tewk Coke: ping perl6.wall.org
20:23 tewk PING perl6.wall.org (193.200.132.135) 56(84) bytes of data.
20:23 Coke msg chromatic: I am down to about 5000 lines of PIR to duplicate the ORIGINAL segfault.
20:23 purl Message for chromatic stored.
20:24 purl 10 packets transmitted, 0 received, 100% packet loss, time 9007ms
20:24 tewk I believe perl6.wall.org points to feather.perl6.nl
20:24 Coke ssh'ing there doesn't seem to help.
20:25 Coke could be my network; I figured if purl couldn't ping feather, though, that it was more widespread.
20:25 NotFound Coke: I added an assertion that catches the segfault in the short tcl example in r32200
20:25 Coke ... so now I will randomly assert instead of segfault?
20:26 NotFound Coke: progress is progress ;)
20:26 NotFound Coke: looks like some problem in hll mapping
20:27 Coke while I appreciate the effort, I'm not entirely convinced that having a PARROT_ASSERT is much better than a segfault.
20:28 Coke but if it helps track down the actual problem, woot.
20:28 NotFound If is a condition that must never happen, an assertion that verifies that assumption is god.
20:28 NotFound good
20:28 Coke (hll mapping) wouldn't surprise me.
20:28 bacek NotFound: can you take a look at #60166?
20:29 bacek my parrot-fu is too weak to fix it...
20:30 NotFound bacek: I was wondering about that thing some days ago, because is the way pirric control flow works.
20:32 chromatic assertions trap the problems much closer to where they occur.
20:32 bacek NotFound: rakudo's control exceptions are probably affected too...
20:33 NotFound bacek: But in that code, is the exception handling or the pop_eh what fails?
20:33 TimToady I can't even get dns to feather righ tnow
20:33 TimToady *right now
20:34 bacek NotFound: exception handling IIUC. "pop_eh" never executed.
20:34 Coke chromatic: hopefully I can get this segfault down to a small test case without accidentally changing segfaults.
20:35 Coke it is quite a pita.
20:37 chromatic As far as I can tell, tewk is about to fix an MMD-related segfault which can manifest in many ways.
20:38 tewk I take that as a invitiation to commit, let run run tests without CAN_BUILD_CALL_FRAMES
20:38 ambs joined #parrot
20:41 chromatic If your tests are passing, go ahead.
20:41 chromatic The code's clearly wrong.
20:41 ambs left #parrot
20:41 bacek I have a question about MMD: how I can trap MMD failures to implement Junction auto-threading in rakudo?
20:43 chromatic You should be able to add an exception handler which handles only MMD exceptions.
20:44 davidfetter [ot] w00t! ted stevens guilty on all counts :)
20:44 bacek chromatic: are parrot's exceptions resumable?
20:46 chromatic In theory, yes.
20:46 purl in practice: ASSCLOWNS
20:46 * Theory coughs
20:47 NotFound bacek: #60166 is another nice example of infinite recursion in exception handling
20:49 bacek NotFound: no. it's not. Exceptions are handled. Properly. But C stack isn't unwinded.
20:50 NotFound Then is worse than I imagined
20:54 NotFound I think that the problem is that in order to allow to resume the exceptions the C stack must be preserved. And in cases like this, it has no chance to be restored.
20:55 NotFound 130881 steps in the backtrace
20:58 chromatic What about with longjmp?
20:58 NotFound chromatic: using longjmp kills the possibility of resume
20:59 tewk In PLTScheme we save off the stack to allow resume
20:59 NotFound But I'm wondering why throw_from_c is used.... It must not be throw_from_op?
21:02 tewk Coke: I committed my fix, give it a try
21:02 tewk I guess dalek lives on feather
21:09 Coke tewk: rebuilding parrot...
21:10 TiMBuS joined #parrot
21:16 * bacek can't find how to resume exception in parrot...
21:18 moritz what do you mean by "resume exception"?
21:19 NotFound Resume from an exception handler, I suppose
21:20 bacek moritz: resume execution of program from point where exception happened.
21:20 moritz bacek: take a look at the gather/take implementation, it uses that feature
21:20 chromatic When your exception handler catches the exception, you deal with it, then say "Go back to the point of the throw and resume execution as if the exception never happened".
21:21 particle "resumeable exception" is the term
21:21 NotFound The problem in that case seems to be solved by replacing Parrot_ex_throw_from_c_args with Parrot_ex_thow_from_op.... with great logic, because is from an op
21:22 NotFound I think we need a new function: Parrot_ex_throw_from_op_args
21:23 Coke tewk: I still segfault on RT#60128 with parrot r32164 and partcl r124
21:24 tewk Coke: r32203 | tewk [NCI] ensure that nci_info members are CONSTANT STRINGS
21:24 Coke ... I swear I just did an svn update in that dir. moment.
21:24 tewk I'm not so sure that my fix will fix your problem, but you definitely need to svn up :)
21:25 NotFound nopaste?
21:25 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
21:25 purl somebody said nopaste was at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/
21:25 bacek NotFound++
21:26 nopaste "NotFound" at 213.96.228.50 pasted "Fix for RT#60166" (23 lines) at http://nopaste.snit.ch/14405
21:26 Coke still happens on r32203; think that was the revision of languages or something.
21:27 bacek $self->move(school => @kids, work => $self)
21:27 NotFound Forget the details of the exception, this is a quick test
21:27 purl NotFound, I didn't have anything matching details of the exception, this is a quick test
21:29 NotFound Did you think this is the way to go?
21:30 chromatic Nothing seems wrongish there to me.
21:30 NotFound In that case, a lot of thow from ops needs this fix.
21:31 particle time to write a macro?
21:32 chromatic More like a helper function, I'd say.
21:32 NotFound I think a function Parrot_ex_throw_from_op_args to replace the Parrot_ex_throw_from_c_args is the cleaner way.
21:33 bacek moritz: btw, can you apply #60164? Pm said "Okay" ;)
21:33 moritz bacek: looking...
21:35 NotFound I can work in patch and discuss it in tomorrow #ps
21:35 moritz bacek: wrong ticket number?
21:35 bacek moritz: oops. #60168. sorry
21:39 * moritz finds a whole lot of codingstd failures, but probably not related to this patch
21:40 kj joined #parrot
21:53 nopaste "NotFound" at 213.96.228.50 pasted "Fix for RT#60166 II: The return of the args" (100 lines) at http://nopaste.snit.ch/14406
21:59 moritz anybody feels like opening a ticket for the current codetest failures?
22:00 NotFound moritz: something like "[TODO] find a way to remotely electroshock people that commits without codetesting" ?
22:01 moritz NotFound++
22:01 * moritz opens ticket
22:02 tewk ~/srcs/parrot/compilers/pirc/new/hdocprep.c is auto generated just exclude it.
22:02 kj oh, my bad! I forgot about those...
22:03 kj (the pirc/hdocprep.c)
22:03 tewk CLOSE THAT TICKET :)
22:03 moritz kj: that files says it's autogenerated from compilers/pirc/heredoc/hdocprep.l, but that file does not exist
22:04 kj moritz: ah right. I have been doing some rearranging...
22:04 kj so hdocprep.l went from heredoc/ to new/
22:04 kj so did hdocprep.c, the generated C source from the .l file
22:04 kj I will update hdocprep.l
22:05 kj (currently doing some documentation etc.)
22:09 chromatic NotFound, that looks sane to me.
22:11 kj where is this list of skipped files for coding std?
22:11 kj then I'll update what I broke.
22:12 GeJ_ Good morning all
22:15 NotFound chromatic: I'll keep working on it tomorrow, is late for me
22:16 iblechbot joined #parrot
22:19 kj anybody here who can tell me where the lists with exceptions for codingstd is?
22:24 chromatic I thought it was in t/harness
22:24 kj ah found it
22:24 kj lib/parrot/distribution.pm
22:25 dmknopp joined #parrot
22:30 dalek joined #parrot
22:30 wolverian joined #parrot
22:31 PerlJam joined #parrot
22:33 jonathan joined #parrot
22:33 leo joined #parrot
22:36 polyglotbot joined #parrot
22:38 pmichaud joined #parrot
22:39 Juerd joined #parrot
22:40 dalek r32208 | kjs++ | trunk:
22:40 dalek : [src] add a space after sizeof operator/keyword.
22:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32208
22:49 dalek r32209 | kjs++ | trunk:
22:49 dalek : [t] fix paths of hdocprep.c/.l files for linelength.t tests.
22:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32209
22:51 kj src/jit_emit.h and src/jit/i386/jit_emit.h have same header guard defines. Should that be the case?
22:51 kj it seems the source is very similar
22:53 chromatic Configure copies src/jit/{arch}/jit_emit.h to src/jit_emit.h
22:54 eternaleye joined #parrot
22:55 kj ah ok.so preferably, that same piece of coding doing that should update the header guards
22:59 particle1 joined #parrot
22:59 tetragon joined #parrot
23:07 ruoso joined #parrot
23:08 GeJ_ joined #parrot
23:12 bacek joined #parrot
23:13 dalek r32210 | kjs++ | trunk:
23:13 dalek : [pirc/new] fix some warnings
23:13 dalek : + add a cast to lexer_state * const for yyget_extra()
23:13 dalek : + add a 'const' to store_macro_string argument
23:13 dalek : + #include header in hdocprep. containing a prototype
23:13 dalek : + add a prototype to pirmacro.c
23:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32210
23:33 chromatic joined #parrot
23:42 Coke hey, c
23:43 Coke feather's back. whee
23:44 tewk make
23:49 allison kj: thanks (for windows report on RT #60172)
23:50 kj eh, yeh, I think i hit some wrong buttons on my keyboard, so I didn't mean to call you :-)
23:50 allison kj: it was a while back, I was just catching up on IRC history
23:51 kj ok
23:51 kj then you'll see my 'woops'
23:51 allison kj: ah, yeah
23:52 dmknopp hi all, ive been away for a week or so...  Is any one else having trouble building svn head on fedora distro linux 32 bit.
23:52 chromatic dmknopp, are you having PGE segfaults?
23:52 dmknopp no parrot compilation error
23:52 dmknopp src/interpreter.c
23:54 kj dmknopp: what's the error message?
23:54 purl somebody said the error message was in op.c
23:54 dmknopp i did a svn update, make clean, perl Configure.pl, then a gmake just like always
23:54 dmknopp error msg, one sec
23:54 chromatic Which revision?
23:55 dmknopp its the latest in the trunk
23:55 chromatic Everything's good for me.
23:56 Infinoid trunk -rHEAD builds fine here on x86-64 gentoo
23:56 dmknopp hmm.. i have been blindly updating packages, probably a bad idea on my part
23:57 dmknopp src/inter_create.c: In function ‘make_interpreter’:
23:57 dmknopp src/inter_create.c:216: warning: implicit declaration of function ‘Parrot_DynOp_core_0_7_1’
23:57 dmknopp src/inter_create.c:216: warning: nested extern declaration of ‘Parrot_DynOp_core_0_7_1’
23:57 dmknopp src/inter_create.c:216: warning: assignment makes pointer from integer without a cast
23:57 dmknopp src/inter_misc.c
23:57 dmknopp src/interpreter.c:406: error: ‘Parrot_DynOp_core_0_7_1’ undeclared (first use in this function)
23:57 dmknopp src/interpreter.c: In function ‘stop_prederef’:
23:57 dmknopp src/interpreter.c:548: warning: implicit declaration of function ‘Parrot_DynOp_core_0_7_1’
23:57 dmknopp src/interpreter.c:548: warning: nested extern declaration of ‘Parrot_DynOp_core_0_7_1’
23:57 dmknopp src/interpreter.c:548: error: invalid type argument of ‘->’ (have ‘int’)
23:57 dmknopp src/interpreter.c: In function ‘dynop_register’:
23:57 dmknopp src/interpreter.c:1057: warning: assignment makes pointer from integer without a cast
23:57 dmknopp src/interpreter.c:1108: error: ‘Parrot_DynOp_core_cgp_0_7_1’ undeclared (first use in this function)
23:57 dmknopp src/interpreter.c:1109: error: ‘Parrot_DynOp_core_cg_0_7_1’ undeclared (first use in this function)
23:57 dmknopp src/interpreter.c: In function ‘dynop_register_switch’:
23:57 dmknopp src/interpreter.c:1242: warning: implicit declaration of function ‘Parrot_DynOp_core_switch_0_7_1’
23:57 dmknopp src/interpreter.c:1242: warning: nested extern declaration of ‘Parrot_DynOp_core_switch_0_7_1’
23:57 dmknopp src/interpreter.c:1242: warning: initialization makes pointer from integer without a cast
23:57 dmknopp gmake: *** [src/interpreter.o] Error 1
23:57 dmknopp here is my output, if it helps
23:57 Infinoid did you do a "make realclean"?
23:57 dmknopp sorry for flooding
23:57 Infinoid (before building it this time)
23:57 dmknopp nope just make clean
23:58 dmknopp lemme try that
23:58 chromatic There are some old dynops functions there from before the 0.8.0 release.
23:59 kj the error messages don't seem to make sense
23:59 kj against my copy

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced