|
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 | |||