#parrot Parrot 2.1.1 Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: PCC deprecations hackathon on Saturday, TT #389 branch
Set by moderator on 5 March 2010.
00:11 fperrad_ joined
kurahaupo_mobi wonders about the portability of nesting "foo(va_arg(vl,T))" rather that T x = va_arg(vl,T); foo(x) 00:11
allison it's midnight here, and I need to get some sleep. does anyone want to look at an infinite looping exception bug? 00:12
I haven't committed the code that causes it yet 00:13
I should say "the code that reveals it"
It's in PGE, and sparks off an infinite sequence of "too few positional arguments: 0 passed, 1 (or more) expected" 00:16
cotto commit or nopaste? 00:18
allison either way, nopaste is less invasive
cotto commit is harder to ignore 00:20
allison true 00:21
and, it is a branch
I'll do the safe commits first, then the buggy commit 00:22
it could be argued that an infinite loop of exceptions on the wrong number of arguments is an improvement over a flat-out segfault, I suppose 00:26
Tene I odn't want to make any promises, but I might be able to look at it. 00:28
dalek rrot: r44719 | cotto++ | branches/ops_pct/compilers/opsc (5 files):
[opsc] transform op args and OP_SIZE in Ops::Trans::C
00:31
rrot: r44720 | allison++ | branches/pcc_hackathon_6Mar10/src (3 files):
[pcc] Updated more invocations from C to fetch return values after invoke.
allison Tene/cotto: okay, the offending patch is in the hackathon branch r44721. 00:39
Tene/cotto: revert if needed
I'll take a look at it again tomorrow if noone else resolves it in the mean time
cotto night 00:40
dalek rrot: r44721 | allison++ | branches/pcc_hackathon_6Mar10/src/call/pcc.c:
[pcc] Convert the method dispatch function to fetch returns after invocation.

PGE.pbc. Committing so others can work on the bug, but if this gets in anyone's way, revert it.
00:47
00:48 workbench joined
plobsing workbench? 00:51
purl workbench is, like, a robot or keeping norris's cock all to himself
00:59 payload joined 01:43 snarkyboojum joined 02:45 eternaleye joined 02:46 Myhrlin joined
dalek rrot: r44722 | cotto++ | branches/ops_pct/compilers/opsc (4 files):
[opsc] implement {{...}} to C transformation in rewrite_body, fix a subtle mistranslation in the actions
02:58
kudo: 3633cb8 | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Add infix_prefix_meta_operator and !op to the grammar.
kudo: dee7104 | (Solomon Foster)++ | src/ (2 files):
First attempt to create an action for !op.
kudo: df80392 | (Solomon Foster)++ | src/ (3 files):
Change !op to generate an explicit call to an infix_prefix_meta_operator function.
purl dalek: that doesn't look right
kudo: 19c36a8 | (Solomon Foster)++ | src/ (5 files):
Merge branch 'metanot'
cotto go play in traffic 03:13
purl wanders off to dent some cars.
03:48 hercynium joined
dalek rrot: r44723 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm:
[opsc] store the jump flags in a printable manner
04:03
04:07 janus joined
dalek kudo: 54be6dd | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Comment noting a big hole in the !op implementation.
04:12
04:48 bubaflub joined 06:25 kurahaupo joined 07:05 snarkyboojum joined 07:21 bacek joined
bacek aloha 07:24
cotto hio 07:26
what does op_info_t->labels do? 07:27
It's not widely used.
coverage? 07:28
purl coverage is cv.perl6.cz
bacek cotto++ # We almost have it!
cotto yes. It'll be awesome and really slow AT THE SAME TIME. 07:29
bacek++
kinda like GGE
though not as awesome (yet) or as slow 07:30
bacek labels used in Op.rewrite_body afaiu
cotto I meant what C code uses them, but there's a spot in compilers/imcc/pbc.c that gets coverage and uses them. 07:31
bacek Anyway, I will take them 07:32
cotto ok.
I just now figured out what they're for. It makes sense that they'd be necessary. 07:33
It certainly wouldn't hurt to start documenting. That's also something I can easily do for a few minutes at a time. 07:34
07:34 tuxdna joined
dalek rrot: r44724 | cotto++ | branches/ops_pct/compilers/opsc (5 files):
[opsc] generate jump flags in op_info_t array
07:34
bacek Remember, English is my forth language. I can document it in "Rude Russian" :) 07:36
cotto ponders the kind of documentation bacek would write on a bad day 07:38
dalek rrot: r44725 | bacek++ | branches/ops_pct/compilers/opsc (3 files):
Handle args.labels
07:51
bacek cotto, handling JUMPS is slightly incorrect... 07:53
0|PARROT_JUMP_RELATIVE,
and no field when no jump presented.
cotto It should just be 0. odd.
bacek yeah... 07:54
Looking
cotto right you are
bacek Fixed. 07:57
We can create ops2c.nqp now for test it :)
cotto the op funcions seem to have an extra terminal } 07:58
bacek Because of grammar 07:59
We can fix it, but it's harmless
cotto oh. I missed the extra leading {
yeah. That certainly won't break anything. 08:00
bacek So... 08:01
Are we brave enough to try it?
:)
cotto s/brave/patient/
Is there any code there that deals with ops.num? 08:02
bacek We can ignore it for now
It's part of ops2pm afair
cotto wfm 08:03
bacek ok 08:04
I'm going to commit core_ops.[ch] into repo
And then generate them using opsc
bacek cross fingers
cotto wants to see how this will work 08:05
dalek rrot: r44726 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files):
Fix handling op.jump
08:08
rrot: r44727 | bacek++ | branches/ops_pct/compilers/opsc/ops2c.nqp:
Initial version of ops2c.nqp
bacek ooookeeeey
bacek@icering:~/src/parrot$ ./parrot-nqp compilers/opsc/ops2c.nqp 08:09
It will take time... 08:10
08:10 iblechbot joined
bacek parsed... 08:11
08:11 zpmorgan joined
bacek cotto, we do need /o for regexes... 08:12
cotto What's that in p6regex-speak? 08:13
Austin compile once
bacek I suspect nothing... 08:14
cotto possible correctness fix:
nopaste "cotto" at 96.26.227.153 pasted "regex fix for opsc" (76 lines) at nopaste.snit.ch/19871 08:15
cotto Does that look sane?
bacek cotto, why not \\d?
cotto \\d? 08:17
purl \\ is, like, compiled to a ":DIGIT" node, while [\\ is compiled to an ":ANYOF" node
bacek \\d+ actually. Digits only 08:18
Or it can contains some other chars?
cotto most of them can contain non-digits
bacek sigh.. 08:20
than try you patch. It loos sane
looks
cotto btw, make opsc-test is kinda explodey. 08:23
dalek rrot: r44728 | bacek++ | branches/ops_pct (2 files):
Bootstrapped ops.
08:24
bacek I probably commited debug output 08:25
08:29 zpmorgan joined
bacek It doesn't work 08:33
purl It's a Y2K error! Panic! Sue!
bacek Sigh..
08:34 eternaleye joined
cotto It'd be more surprising if it worked so soon. 08:34
bacek C'mon! We can finish it today! :) 08:35
cotto For me, "today" started 35 minutes ago.
bacek 23 hours 25 minutes to go
Plenty of time!
cotto I'll look forward to hacking on it later in the day. 08:36
though I'm not sure if it's really faster than GGE at this point 08:37
bacek "GGE"?
cotto masak's Glacial Grammar Engine 08:39
wiki.github.com/masak/gge/ 08:40
dalek rrot: r44729 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
Fix generating ops funcs names
08:41
rrot: r44730 | bacek++ | branches/ops_pct/compilers/opsc/t/06-emitter.t:
Remove debug output.
rrot: r44731 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/Op.pm:
[opsc] regex correctness fixes in _substitute
cotto bacek, are you seeing "Cannot write to a closed filehandle" from ops2c.nqp? 08:42
bacek fixed already
cotto nice
cotto gets the feeling he's going to want an alias to quickly revert core_ops.h and core_ops.c 08:44
bacek git checkout src/ include/
cotto alias opfix='svn revert src/ops/core_ops.c include/parrot/oplib/core_ops.h' 08:46
The slowness of opsc is mitigated by the fact that most people won't generally need to regenerate it. It'll still be nice to speed it up. 08:51
5:18 to generate the files 08:52
cotto repeats to himself "make it work, then make it work well" 08:53
time for sleep
night bacek++ 08:54
bacek Good night, cotto++
cotto don't leave nothing for me to work on. ;)
bacek I'll try :) 08:56
There is 3 more trans/runcores to work on anyway
dalek rrot: r44732 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm:
Open StringHandle before write into it.
08:57
rrot: r44733 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
Add Trans::C.body_prelude
09:13
rrot: r44734 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm:
Emit op_lib descriptor early.
09:39 fperrad joined
dalek kudo: 3113ee8 | jonathan++ | t/spectest.data:
S02-literals/quoting-unicode.t needs to be marked as needing ICU.
10:02
kudo: 125e872 | jonathan++ | src/metamodel/ClassHOW.pir:
Make sure type objects are marked as scalars, so we .WHAT.say works on various things it was fail on before.
10:08
10:13 rblackwe_ joined 10:32 masak joined 10:41 masak joined
masak sometimes when I get error messages, the error message comes before the last printed output of the program, or after the output but before the newline of the output. 10:42
moritz masak: sync mismatch between STDOUT and STDERR? 10:43
masak moritz: seems like it.
purl i think seems like it is creating a conflict somewhere, which then creates a requires condition
masak had had time to forget about purl :(
purl: listen carefully. I really need you to shut up, like, forever.
purl masak: sorry...
masak well, that's a start. 10:44
anyway, is there a way to make Parrot not sync-mismatch between STDOUT and STDERR? it would really help debugging to be more confident that things arrive in the right order. 10:48
put another way, having an error message appear before some output that was printed before the error occurred... is extremely confusing. 10:49
allison masak: are these both going through Parrot I/O? or are some using C prints? 10:56
masak allison: the prints and the errors all originate from inside of Rakudo.
allison masak: using the two different I/O systems is usually the culprit from in lack of synchronization 10:57
masak I'm not doing anything extraordinary, to my knowledge.
this occurs for me quite often in 'normal' use.
allison masak: parrot does use both internally
masak: how are the two prints done in Rakudo? 10:58
masak that's beyond my current knowledge.
I'm basically just a Rakudo end user, for the purposes of this conversation.
if you're asking how the two prints are done in my program, one is a &say call, and the other is an error from a failed &substr that I'm still trying to track down. 10:59
allison masak: yeah, I was just asking for the Perl6-level syntax
masak I'll see if I can golf the erring program down a bit. 11:05
11:06 lucian joined 11:13 payload joined 11:29 payload1 joined 11:44 bacek joined 12:03 iblechbot joined 12:04 mikehh joined 12:18 cognominal joined
bacek msg cotto Can you bring branch up-to-date with trunk? I don't want mix svn/git merges. 12:56
purl Message for cotto stored.
dalek rrot: r44735 | bacek++ | branches/ops_pct/include/parrot/op.h:
Remove op_info_t.flags. It was removed in trunk already.
13:01
rrot: r44736 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files):
Always listify arg_types
rrot: r44737 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Op.pm:
FIx handling empty arg_types
13:02
rrot: r44738 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (3 files):
Merge Trans.source_preamble with Trans.defines
rrot: r44739 | bacek++ | branches/ops_pct/src/ops/core.ops:
Use goto ADDRESS(0) instead of HALT as per trunk.
13:06 joeri joined 13:13 payload joined
Infinoid As far as I can tell, dalek is behaving again. Anyone got any wishlist items? 13:25
13:53 payload joined 14:12 TiMBuS joined 14:25 Whiteknight joined 14:28 lucian joined
masak Infinoid: I'm personally very happy with the way dalek behaves when it behaves. 14:33
Whiteknight I don't even care whe he misbehaves 14:48
Infinoid Hi, guys :) 14:53
Dalek shouldn't misbehave any more, it filters the project name in the review link to make sure github gave us data from the right project.
Please let me know if it does screw up, or if there's any other feeds it should cover 14:54
dalek kudo: d4d58aa | moritz++ | t/spectest.data:
more tests
14:56
purl rumour has it more tests is trivial
kudo: 201e027 | moritz++ | src/core/Int.pm:
Int**Int does not produce an Int if the RHS is negative

Fixes RT #73262
15:02 payload joined
dalek kudo: 19cd1c6 | moritz++ | t/spectest.data:
enable arith.t
15:08
Coke Infinoid++ 15:23
dalek kudo: e9c1857 | moritz++ | (7 files):
Merge remote branch 'bkeeler/grammar'

closes RT #73244.
15:25
rrot: r44740 | allison++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
[pcc] Better handling for empty signatures with only args or only returns.
15:30
15:34 Psyche^ joined 15:36 clinton joined
dalek kudo: e2c77d4 | mberends++ | docs/S11-Modules-proposal.pod:
[docs/S11-Modules-proposal.pod] the outcome of the S11 Modules discussion at the Copenhagen Perl 6 Hackathon
15:36
15:41 tetragon joined
dalek kudo: 1ed54df | mberends++ | docs/S11-Modules-proposal.pod:
[docs/S11-Modules-proposal.pod] remove excessive Foo::Bar, Hackathon++
15:47
kudo: cd42786 | masak++ | docs/S11-Modules-proposal.pod:
[docs/S11] fixed a small typo
15:48
kudo: d32a0c2 | mberends++ | docs/S11-Modules-proposal.pod:
Merge branch 'master' of git@github.com:rakudo/rakudo
allison fixed one infinite looping error, found another (looks like in the same spot) 15:49
dalek TT #1503 created by arnsholt++: quote_delimited action misbehaves with single non-string quote_atom 15:57
kudo: cca3cfc | moritz++ | docs/S11-Modules-proposal.pod:
[docs/S11-Modules-proposal.pod] link to prototype module searching function
16:05
Whiteknight allison: you fixed that error from last night? I just started looking at it 16:09
16:09 masak` joined
allison Whiteknight: svn up 16:09
Whiteknight: there's another infinite-looping error now, but a different one
Whiteknight different errors is good: progress 16:10
ah, I see that. push_string exception
allison Whiteknight: you can temporarily trade the infinite loop for a segfault if you comment out the call to Parrot_pcc_fill_params_from_varargs from inside Parrot_pcc_invoke_method_from_c_args 16:11
aye, it's progress. the previous error was from the invoke 16:12
The call in question has a signature of ->P (no arguments), that's actually Pi->P
the signature building was bailing on the empty argument string, and so never getting to the part of the code that adds in the current_invocant to the sig string 16:13
Whiteknight so what's the soluton there, add the Pi to the signature explicitly, or tell the sig parser to add it automatically?
allison the function was already adding it
but, it had a clause to bail early when the signature string was empty
so, I tweaked it around so it skips down to the "add invocant" section of the code when the string is empty instead of bailing entirely 16:14
Whiteknight ah, and once we split the string, it is empty
because the split string doesn't contain "->"
allison yeah, a side effect of the changes
the current error seems to be in a method-call on a Namespace PMC 16:15
the 'get_name' method
and it's from the command ./parrot runtime/parrot/library/PGE/Perl6Grammar.pir --output=compilers/pge/PGE/builtins_gen.pir compilers/pge/PGE/builtins.pg
that's as far as I've gotten in the new erro
error
Whiteknight: got to step away for about an error, please continue with what you already started :) 16:16
nopaste "allison" at 77.98.130.30 pasted "patch of debugging statements I've added so far for Whiteknight" (25 lines) at nopaste.snit.ch/19874 16:17
Whiteknight okay, I'll see what I can find 16:18
16:19 szabgabx joined 16:36 atrodo joined
dalek kudo: fe12ac8 | (Arne SkjƦrholt)++ | src/Perl6/Actions.pm:
Fix issue with double quoted strings interpolating only a single variable.
16:38
16:47 patspam joined
Whiteknight allison: check out r44741. not 100% but better 16:51
dalek rrot: r44741 | whiteknight++ | branches/pcc_hackathon_6Mar10/src/call (2 files):
slight refactor of Parrot_pcc_build_call_from_varargs to handle implied invocant. infinite exception loop replaced by single non-looping exception.
cotto svn merge? 16:52
purl somebody said svn merge was really losing :/
Whiteknight hello cotto 16:53
cotto hi Whiteknight 16:54
Whiteknight ops_pct branch is coming along nicely 16:55
cotto I'm thoroughly impressed at bacek++'s work
also, thoroughly annoyed at how slow svn merge is
can it be git time now please? 16:56
16:59 theory joined
cotto msg bacek merge is in progress but I have to take off. I'll finish it when I get back in a couple hours. 17:01
purl Message for bacek stored.
cotto stupid svn
Whiteknight I've discovered I'm particularly bad at git, so I'm not going to campaign for it anymore 17:02
I won't object, of course
I don't claim to be any good at svn either
17:06 tetragon_ joined
dalek rrot: r44742 | whiteknight++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
another small refactor for Parrot_pcc_build_call_from_varargs to account for the invocant up front and ignoring Pi if it exists. If Pi is on the signature, we start iteration after it.
17:08
17:10 iblechbot joined 17:14 jan joined
allison Whiteknight: thanks! 17:14
17:17 kid51 joined 17:23 payload joined
dalek kudo: 657c165 | jonathan++ | (5 files):
Implement a first cut of subset type declarator.
17:25
17:25 chromatic joined
dalek kudo: 6a1c973 | moritz++ | t/spectest.data:
more passing test files, arnsholt++
17:59
18:03 payload joined
dalek kudo: c364130 | jonathan++ | src/builtins/SeqIter.pir:
Avoid a bunch of null PMC accesses.
18:11
18:17 snarkyboojum joined 18:33 fperrad_ joined
dalek kudo: fbd8bc9 | moritz++ | t/spectest.data:
two more passing test files, baest++, arnsholt++
18:34
dukeleto 'ello 18:36
18:48 fperrad joined
dalek kudo: be8b318 | jonathan++ | src/builtins/ (2 files):
Get Seq.new and Array.new working again.
18:51
kudo: 3547ff1 | jonathan++ | t/spectest.data:
Re-enable S32-array/create.t.
dukeleto this awesome github visualization has lots of parrot and perl 6 peeps visible: lumberjaph.net/blog/index.php/2010/...a-preview/ 19:03
19:18 TiMBuS joined
cotto msg bacek ops_pct sync with trunk is done 19:34
purl Message for bacek stored.
dukeleto how did the hackathon go? is someone going to do a write up? that would be nice
cotto whiteknight seemed to be involved so we'll probably get a writeup 19:35
dalek rrot: r44743 | cotto++ | branches/ops_pct (620 files):
[opsc] sync branch with trunk
19:36
cotto is glad to be done with that merge
also, svn-- for flagging stupid whitespace conflicts
dukeleto cotto: 620 files, wow. 19:44
plobsing cotto++ # --hash-seed really helps tt1499 19:51
19:54 fperrad_ joined
dalek rrot: r44744 | allison++ | branches/pcc_hackathon_6Mar10/src/call/args.c:
[pcc] The invocant has to be inserted in the call context argument list.
20:08
allison dukeleto: we made good progress in the hackathon
dukeleto: pretty close to a mergable branch 20:09
20:25 bacek joined
bacek ~~ 20:30
20:33 kurahaupo joined 20:45 kjeldahl_ joined
dalek rrot: r44745 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
Append 'goto NEXT' to :flow ops
20:57
rrot: r44746 | bacek++ | branches/ops_pct/compilers/opsc/t/04-op.t:
Update test.
dukeleto allison: great to hear! 21:09
allison: i assume it will get merged after 2.2.0 ? 21:10
dalek rrot: r44747 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm:
Add semicolon for 'goto NEXT'
21:13
21:13 davidfetter joined
mikehh bacek: a whole load of codetest failures - should I fix some or later 21:15
bacek mikehh, in which files? 21:16
mikehh bacek: lots, src/ops/core_ops.c, doesn't like space before parens etc and other ops files, trailing spaces, missing svn props lots more 21:20
bacek This is auto-generated file.
mikehh need to check the generation then 21:21
bacek If you can teach codetest to skip it ( src/ops/*.c, include/parrol/oplib/*.h) it will be great
mikehh, similar to bison/flex generated files. 21:23
mikehh bacek: I'll have a look - you got more to come soon? 21:24
bacek mikehh, more generated file? Not today.
mikehh, if there are any codetest failures in compilers/opsc than you can fix them 21:25
mikehh bacek: 'k
21:27 payload joined
dalek rrot: r44748 | bacek++ | branches/ops_pct/compilers/opsc/TODO:
Update TODO
21:30
rrot: r44749 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
Append munched goto NEXT instead of unmunched one...
rrot: r44750 | bacek++ | branches/ops_pct/compilers/opsc (2 files):
Other way around - add goto NEXT for non :flow ops...
bacek sign...
Why PGE in corevm???
msg cotto Hooray! First self-generated core_ops.c compiles!!! Unfortunately building of PGE epically fail... 21:32
purl Message for cotto stored.
21:33 adu joined
plobsing default.clone calls thaw(freeze(pmc)) which won't call sub-object's clone vtables. That's a bug right? 21:45
mikehh bacek: all files in compilers/opsc/runcore/ *.pm are of 0 length 21:49
boo
21:53 Andy joined
cotto bacek_at_work, awesome! Failing to compile is definitely a step up! 21:58
*failing to compile pge 22:01
22:08 bacek joined
cotto hio bacek 22:08
clock?
purl cotto: LAX: Sun 2:08pm PST / CHI: Sun 4:08pm CST / NYC: Sun 5:08pm EST / LON: Sun 10:08pm GMT / BER: Sun 11:08pm CET / IND: Mon 3:38am IST / TOK: Mon 7:08am JST / SYD: Mon 9:08am EST /
bacek Hi cotto
allison bacek: PGE is not supposed to be in corevm,
bacek allison, it is... But it's there
cotto it's pretty cool that we're far along enough that we're failing to compile pge (even if it shouldn't be there) 22:09
allison bacek: we just discovered that yesterday, a bunch of non-core libs were added in the recent makefile refactors
(added to the corevm target)
bacek allison, blame Coke! :)
allison should be easy enough to tease them back out again
bacek cotto, all tests failing with "src/runcore/cores.c:832: failed assertion 'pc'" 22:10
cotto yeah. It still needs work.
bacek cotto, looks like we munched op slightly incorrect
day job time
see you!
cotto That's possible. I looked over that code a couple times ,but it's odd. 22:11
allison dukeleto: (catching up on backscroll) yes, probably after 2.2.0
22:17 lucian joined 22:47 snl joined 22:48 snl joined
dalek kudo: d802ffd | jonathan++ | src/builtins/control.pir:
Fixes with nextwith and callwith method detection - use a heuristic that works even for those methods written in PIR.
23:14
kudo: a1f4ac9 | jonathan++ | src/glue/subset.pm:
Fixes to subsets so we can chain them and they check the base type.
kudo: 5ec2c96 | jonathan++ | t/spectest.data:
Re-enable subset.t, which passes some tests alpha never passed. :-)
23:36 hercynium joined 23:40 AndyA joined 23:42 AndyA joined
dalek kudo: 2139748 | jonathan++ | src/Perl6/Grammar.pm:
Make my subset ... parse.
23:43
23:48 snarkyboojum joined