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