Parrot 0.6.3 "Beautiful Parrot" Released | parrotcode.org/ | 5/649/88 new/open/stalled tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 26 June 2008.
japhb Gah! 00:00
00:00 TiMBuS joined
japhb Does IMCC do any constant expression folding, and if so, how do I convince it to do so? 00:00
I want to do something like this: '.macro_const ROWS 10; .macro_const COLS 5; $I0 = 4 * .ROWS * .COLS' 00:02
And have it actually work.
bacek_ japhb: check my patch from rt #56630. It uses macros. 00:03
japhb Similarly, I want '.macro_const FLAG_FOO 1; .macro_const FLAG_BAR 2; .macro_const FLAG_BAZ 4; $I0 = FLAG_FOO | FLAG_BAR | FLAG_BAZ' work ... 00:04
bacek_: checking
bacek_ $I0 = 4 * .ROWS * .COLS will not work anyway 00:06
japhb bacek_: it *should*. Because the RHS is a constant expression that should be turned into a single integer constant by the compiler. 00:07
COMPARISON is misspelled in your patch. ;-)
nopaste "Coleoid" at 76.251.83.159 pasted "kid51: win32 'prove' and 'Configure.pl' auto_icu details" (231 lines) at nopaste.snit.ch/13512
particle japhb: imcc doesn't do expressions. it does pir 00:08
you can create a '|'() function that takes slurpy args, and similarly a '*'() function 00:09
japhb particle: By which I assume you mean, purely desugaring.
particle yes
00:10 AndyA joined
japhb OK, fine. But what about the macro engine? Is it purely text substitution as well, or can it be made to evaluate an expression? 00:10
00:10 Khisanth joined
japhb I'd happily settle for '.macro_const ROWS 10; .macro_const COLS 5; $I0 = .EXPR(4 * .ROWS * .COLS)' 00:10
or the moral equivalent 00:11
I want no runtime cost.
And the result of the expression to be stored in the constant table.
particle you're out of luck 00:12
japhb sigh ....
particle you can use the .NL() macro 00:13
japhb blinks, goes to look up .NL()
particle $I0 = 4 * .ROWS .NL() $I0 *= .COLS
it at least allows you to put it on one line :)
japhb particle: oh sure ... but it's still a runtime cost.
particle runtime/parrot/include/hllmacros.pir
jonathan japhb: Just emit clear code that does the right thing. And worry about <whatever thing compiles PIR in the future> to optimize it for you.
particle imcc internally does constant folding 00:14
but you can't do expressions in pir
jonathan Trying to emit clever code only makes things harder for the PIR optimizer to improve.
And the kind of thing you're pointing out, should be simple optimizations to implement, if they aren't already there. (Not that I'm sure, how bit-rotten the PIR optimizer is.) 00:15
japhb particle: OK, if it doesn't handle expressions in the source, what is it doing? Does it collapse away ops in the source that it can calculate a forced result for?
jonathan: I'm not trying to be clever. A constant expression is the clearest way to express what I'm doing. Since the expression is a no-go, it's then a matter of knowing how to feed the beast with a less-clear version that still does what I want. 00:17
Besides, I'm writing a benchmark. Unintentionally doing something that breaks internal optimization would invalidate the results. :-) 00:18
To be more precise, I'm benchmarking different ways of handling packed data that will exchanged with C. One of the goals is to determine the fastest way to do it *now*, given the current state of Parrot. The other goal is to determine if the current packed structure handling is just too slow by design, and thus in need of a redesign. 00:22
s/(fastest way)/$1s/ 00:23
cotto-work what's the right way to use get_iter from PIR? 00:26
iter = get_iter p #doesn't work
jonathan cotto-work: $P0 = iter thingy
cotto-work thanks 00:27
jonathan++
jonathan japhb: Disassembling $I0 = 1 + 3 is curious. :-)
It disassembles to 00:28
00000330 00000000 00000004
In there, the first value is op code, the second means integer register zero, and the third word in there holds a 4
So it's generating a set $I0, 4
If you want to have similar fun, pdump is your friend. :-) 00:29
(And probably the best way, if you're happy reading Parrot bytecode in binary form, of seeing what stuff compiles down to.)
OK, sleep, Rakudo hacking once I wake up. Night folks. 00:35
japhb g'night
Coleoid Night!
00:46 clunker9_ joined 00:47 Limbic_Region joined
kid51_at_dinner /nick kid51 00:48
00:48 contingencyplan joined 00:51 contingencyplan joined
cotto-work make pdump dies, although deleting the offending constraint makes the build succeed 00:51
(line 40 of src/packdump.c) 00:53
00:53 bacek_ joined
Coleoid If I make spectest_regression, it tells me 2252 tests. How can I learn the number actually passed? 01:03
I could... uh... 01:04
Subtract the wallclock seconds.
pmichaud Coleoid: try "perl tools/test_summary.pl"
Coleoid Very cool, thanks! 01:05
pmichaud "make spectest_regression" wasn't giving me the statistics I wanted (as in "tests actually passed"), so I created tools/test_summary.pl as an alternative 01:06
I'm about to commit a version that also summarizes todo results, as well as 'skip'
01:06 bacek_ joined
dalek r29134 | pmichaud++ | trunk: 01:08
: [rakudo]: Make tools/test_summary.pl summarize TODO results also
diff: www.parrotvm.org/svn/parrot/revision?rev=29134
r29135 | pmichaud++ | trunk: 01:09
: [rakudo]: Get empty subs to properly return undef
: * Refactor 'undef' to be a named_0ary
: * Clean up routine_declarator a bit
diff: www.parrotvm.org/svn/parrot/revision?rev=29135
Coleoid *blink* Not kidding, 'about to commit'. 01:12
Hey, isa_ok() is working.
kid51 Coleoid: Thanks again for the testing assistance!
Coleoid kid51: Sure thing! 01:13
The help was mutual, I build now! :D 01:14
kid51 Coleoid: the developer who filed the test failure report on auto::icu, Franļæ½ois Perrad, is one of our major people on Win32. So he can probably be helpful in problems you encounter. 01:19
01:21 bacek_ joined
Coleoid kid51: Thanks. Is FranƧois often here? 01:23
dalek r29136 | Whiteknight++ | gsoc_pdd09: 01:24
: [gsoc_pdd09] Fixed some pointer arithmetic for proper alignment. Doesn't solve my segfault problem, but makes me feel better.
diff: www.parrotvm.org/svn/parrot/revision?rev=29136
cotto-work Coleoid, I can't remember having seen fperrad (and I've been looking)
dalek r29137 | chromatic++ | trunk:
: [pdump] Fixed pdump compilation (reported by Christoph Otto).
diff: www.parrotvm.org/svn/parrot/revision?rev=29137
cotto-work chromatic++ 01:25
kid51 purl doesn't seen to know any 'fperrad' -- but he follows the list and RT closely
cotto-work karma fperrad 01:26
purl fperrad has karma of 766
cotto-work (probably mostly from svn commits)
Whiteknight that's the best way to earn karma 01:27
at least, best for the project 01:28
cotto-work playing with polyglotbot would be the fastest, but someone would probably notice 01:31
dalek r29138 | chromatic++ | trunk:
: [PMC] Fixed a warning in the Float PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=29138
01:32 magnachef joined, bacek_ joined
dalek r29139 | jkeenan++ | trunk: 01:37
: Use a named variable () instead of config/auto/pack.pm inside foreach loop inside runstep().
diff: www.parrotvm.org/svn/parrot/revision?rev=29139
Whiteknight segfault-- 01:41
dalek r29140 | Whiteknight++ | gsoc_pdd09:
: [gsoc_pdd09] Okay, now I've ACTUALLY fixed that pointer arithmetic. It's ugly, but it should do the job for now. +comments. Fixes an assertion failure, doesn't fix my segfault error.
diff: www.parrotvm.org/svn/parrot/revision?rev=29140
r29141 | jkeenan++ | trunk: 01:50
: Make program flow inside runstep() more coherent.
diff: www.parrotvm.org/svn/parrot/revision?rev=29141
01:54 nopaste joined
nopaste "magnachef" at 74.78.109.88 pasted "make error on CentOS release 4.6" (20 lines) at nopaste.snit.ch/13513 01:59
magnachef does anyone else have issues making parrot trunk on CentOS 4.x? 02:01
pmichaud (wild guess) -- that looks to me as though libparrot isn't being built or linked properly 02:06
oh... perhaps you did a "make install" step previously?
if so, then it's probably grabbing the wrong libparrot 02:07
magnachef I've done make cleans, and tried making from a new co
pmichaud well, if you ever did 'make install' on that system, then make clean and a new checkout won't help
dalek r29142 | Whiteknight++ | gsoc_pdd09:
: [gsoc_pdd09] Fixed an existing problem with the Memory_Pool compacting code attempting to dereference links in non-PObj memory objects. Doesn't fix my segfault error.
diff: www.parrotvm.org/svn/parrot/revision?rev=29142
pmichaud it'll still grab the "install" version of the library instead of the newly built on 02:08
*one
I'm still just guessing here
magnachef ahhh, so how do I clear the old libparrot out? 02:09
pmichaud I don't know. perhaps look for libparrot in /lib, /usr/lib, /usr/local/lib, or the other standard "lib" places
magnachef yeah, running a find now
dalek r29143 | pmichaud++ | trunk: 02:14
: [rakudo]: Make 'return' with no arguments work for now. (RT #56638, masak++ )
: * Patch courtesy "Carl Mļæ½sak" <cmasak@gmail.com>
: * See also note in ticket regarding proper return value.
diff: www.parrotvm.org/svn/parrot/revision?rev=29143
magnachef hmmm...still can't find libparrot anywhere 02:27
I have done builds fine on freebsd, openbsd, netbsd, etc with no issue 02:29
pmichaud did you look for libparrot.*, or just "libparrot"?
magnachef just libparrot
let me try with libparrot.* 02:30
found it in: /home/parrot/builds/trunk/blib/lib/ 02:31
pmichaud that's the one you just built 02:33
(at least it should be)
any others?
magnachef that was it 02:34
it was there after a make clean
pmichaud I would expect it to remain after 'make clean' -- it shouldn't be there after 'make realclean' though.
kid51 'make realclean' is the smoke tester's friend!
pmichaud make clean just gets rid of the files needed to build parrot -- it doesn't eliminate the files needed to run parrot 02:35
magnachef ahhh, realclean is what I need
kid51 It's like castor oil for the configuration system!
magnachef guess I need to change those VMs then
magnachef makes 'make realclean' is friend 02:37
s/is/his/
dalek r29144 | jkeenan++ | trunk: 03:02
: Additional refactoring from within auto::sizes::runstep(). Test resulting internal subs.
diff: www.parrotvm.org/svn/parrot/revision?rev=29144
kid51 must sleep 03:04
purl $kid51->sleep(8 * 3600);
Whiteknight ha, if I manage to get a full 8 hours, I'll say something nice about purl 03:09
Whiteknight is sure that won't happen
nopaste "japhb" at 76.191.190.8 pasted "Limits of IMCC constant folding" (67 lines) at nopaste.snit.ch/13514 04:37
japhb jonathan: See paste above. It's not clear how a constant expression of more than two operands can be folded successfully .... 04:38
05:24 baest joined 05:25 Psyche^ joined 05:39 nopaste joined 05:46 Ademan joined 05:48 Theory joined
dalek r29145 | pmichaud++ | trunk: 05:53
: [rakudo]: Refactor Perl6Capture to use Capture_PIR, implement prefix:<\\\\>
: * This implementation is almost certainly buggy, but it's a start.
: * Partially addresses RT #56684 (moritz++)
diff: www.parrotvm.org/svn/parrot/revision?rev=29145
bacek_ Yo! pmichaud++ 06:00
bacek_ running autounfudge --auto 06:03
dalek r29146 | pmichaud++ | trunk: 06:11
: [rakudo]: More updates to empty 'return', RT #56638
: * Based on comments from TimToady++
diff: www.parrotvm.org/svn/parrot/revision?rev=29146
pmichaud time for sleep -- be back tomorrow
06:18 Auzon joined 06:20 uniejo joined 07:00 Ademan joined 07:04 contingencyplan joined, apeiron_ joined 07:40 barney joined 08:04 iblechbot joined 08:14 Whiteknight joined
dalek r29147 | bernhard++ | trunk: 08:26
: [codingstd] Remove trailing whitespace.
diff: www.parrotvm.org/svn/parrot/revision?rev=29147
jonathan morning all 08:33
purl morning, jonathan
moritz good morning 08:34
purl whips out a machete. I'm *tired* of your shit moritz
moritz purl, forget good morning 08:35
purl moritz: I forgot good morning
bacek_ jonathan, moritz: good localtime() 08:36
jonathan: pmichaud steals your TODO items :) 08:37
jonathan I know!!!
I just came here thinking "OK, first item, \\\\...oh"
moritz but the capture patch didn't make any tests pass
jonathan Oh.
moritz at least autounfudge didn't catch any 08:39
bacek_ > my @a = (1,2,3); my @b = (1,2,3); say \\@a === \\@b;
Could not find non-existent sub infix:=== 08:40
very strange...
perl6: say 1===1; 08:41
polyglotbot OUTPUT[Could not find non-existent sub infix:===␤current instr.: '_block11' pc 35 (EVAL_10:19)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806 (src/PCT/HLLCompiler.pir:469)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1088 (src/PCT/HLLCompiler.pir:598)␤called from Sub
..'parrot;PCT::HLLCompiler;command_line' pc 1267 (src/PCT/HLLCom...
jonathan Oh, that'll be because we're pasring it, but ain't implemented it yet. 08:42
bacek_ perl6: my @array = <a b c>; my $ref = \\@array; say ~$ref; say +$ref; 08:45
polyglotbot OUTPUT[Statement not terminated properly at line 1, near "= \\\\@array;"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;eat_terminator' pc 20609 (src/gen_grammar.pir:2813)␤called from Sub
..'parrot;Perl6::Grammar;statementlist' pc 19622 (src/gen_grammar.pir:2450)␤called f...
bacek_ polyglotbot?
purl it has been said that polyglotbot is running an outdated version of rakudo.
bacek_ bacek_: pugs: my @array = <a b c>; my $ref = \\@array; say ~$ref; say +$ref; 08:47
[6:46pm] p6eval: pugs: OUTPUT[a b c␤3␤]
[6:46pm] bacek_: rakudo: my @array = <a b c>; my $ref = \\@array; say ~$ref; say +$ref;
[6:46pm] p6eval: rakudo 29147: OUTPUT[a b c␤0␤]
jonathan: your turn to fix pmichaud's bug :)
jonathan bacek_: Should it numify to the number of array elements + the number of hash elements? 08:48
bacek_ jonathan: no idea...
.sub 'get_number' :method :vtable 08:50
$I0 = self.'list'()
.return ($I0)
.end
will bring Capture to sinc with pugs.
afk # ging home 08:52
08:55 Ademan joined 09:14 cognominal joined 09:36 pancake joined
pancake io 09:36
$ echo 'print "foo"' | ./parrot languages/lua/lua.pbc <- this command makes parrot segfault in Parrot_Closure_invoke (src/pmc/closure.pmc:103) (null value in outer_sub) 09:37
bug report created with patch 09:49
moritz pancake++ 09:51
bacek moritz: about 56692
moritz: there is small patch from #55438 for this bug 09:52
moritz I think I saw that, yes 09:53
bacek just a sec. I'll cut it from big diff
moritz the one that moves push_eh catch two lines up?
nopaste "bacek" at 202.7.166.181 pasted "eval patch for moritz" (17 lines) at nopaste.snit.ch/13519 09:54
pancake cool
bacek moritz: indeed
moritz bacek: running spectest_regression with it now. If it succeeds, I'll commit and close #56692 09:55
bacek moritz: ok. 09:56
how I can check existence of file in PIR?
pancake i have a mips-linux box and x86 open/free/net bsd boxes
needs testing? which kind?
(also a ppc and arm ones..) 09:57
moritz all kinds, I think ;)
bacek thinking about setting public buildbot for parrot/rakudo...
pancake fetching parrot on mips 10:01
dalek r29148 | moritz++ | trunk: 10:04
: [rakudo] fix RT #56692 (eval doesn't catch compilation errors).
: Patch curtesy of bacek++
diff: www.parrotvm.org/svn/parrot/revision?rev=29148
10:04 kj joined
moritz karma bacek 10:04
purl bacek has karma of 50
pancake btw is my patch ok? 10:06
bacek pancake: rt id? 10:07
moritz #56694 10:08
moritz grabs some food
bacek No permission to view ticket
oops. EWRONGTICKETNUMBER 10:09
pancake #56694
src/ops/experimental.ops:424: warning: cast increases required alignment of target type 10:10
all the *.ops files shows lot of warnings like this 10:11
in mips
and some oether in .c files src/embed.c:505: warning: cast increases required alignment of target type
jonathan moritz: I'm seeing 6 subtests UNEXPECTEDLY SUCCEEDED 10:14
Looks like there may be a few things to un-todo. :-)
(That's without any patches locally BTW)
pancake running tests in mips 10:19
10:26 Coleoid joined
moritz jonathan: no need to un-TODO these tests, they are likely bogus 10:29
an operation returns a completely wrong result, but the type of the result is right, so the isa_ok passes 10:30
jonathan moritz: Ah, OK. 10:31
So long as we don't end up with *too* many like that.
moritz aye
jonathan Though thankfully they shown in a distinct list, so it's hard to confuse them with failures that your changes have introduced.
moritz I'll take care the spectest_regression output stays sane, readable and concise 10:32
jonathan Thanks, it's much appreciated. :-) 10:33
moritz because that's the reason for having it in the first place, as opposed to spectest
pancake news.nopcode.org/parrot-mips-test.txt 10:44
moritz cool
nopaste "bacek" at 202.7.166.165 pasted "Implemening of get_number for Capture so +$capture produce correct results. (for jonathan/pmichaud to blame)" (22 lines) at nopaste.snit.ch/13520 10:53
bacek afk 10:54
pancake www.toolness.com/wp/?p=52
10:56 jan joined
moritz pancake: very interesting 10:59
pancake yup it is 11:02
11:45 ruoso joined 11:47 Whiteknight joined, Ademan joined
dalek r29149 | Whiteknight++ | gsoc_pdd09: 11:56
: [gsoc_pdd09] Updating to trunk r29148
diff: www.parrotvm.org/svn/parrot/revision?rev=29149
r29150 | jonathan++ | trunk: 12:06
: [rakudo] Stub in signatures. This doesn't do anything useful yet, but does lay a lot of groundwork: Signature class is in place, :(...) is now parsed and results in a Signature object, all subs and methods get a Signature object attached (though it's not populated yet) and some comments explaining what is going on.
diff: www.parrotvm.org/svn/parrot/revision?rev=29150
12:14 tetragon joined 12:15 iblechbot joined
pancake how can i comment multiple lines in perl6? 12:24
dev.perl.org/perl6/rfc/5.html <- none of these ways works 12:25
moritz pancake: I think that's described in S02
S02?
purl S02 is dev.perl.org/perl6/doc/design/syn/S02.html
moritz or perlcabal.org/syn/S02.html 12:26
or \\n=begin comment\\n stuff here \\n=end comment\\n
12:27 barney joined
pancake ok works 12:28
is there a perl6 vim syntax highlighting available? 12:30
Whiteknight yeah, look in the editor/ folder in the repo 12:37
it contains the highlighting files and some documentation for them
moritz pancake: in utils/perl6.vim in the pugs repo 12:47
svn.pugscode.org/pugs/util/perl6.vim 12:48
12:54 donaldh joined
dalek r29151 | bernhard++ | trunk: 12:55
: [Pipp PCT] Add token METHOD_NAME and use it in the rule 'method_definition' and 'method_call'.
diff: www.parrotvm.org/svn/parrot/revision?rev=29151
12:58 teknomunk joined 13:28 gryphon joined 13:34 jhorwitz joined 13:39 rdice joined
pancake moritz: thanks 13:46
jonathan pmichaud: ping 13:52
pmichaud pong 13:54
jonathan pmichaud: Am hacking a bit on signatures today. 13:55
pmichaud I saw that. :-)
jonathan I'm now looking at parameter/signature actions and wanted your thoughts on this.
Basically, I need to build up a signature object as well as the PAST. 13:56
I know you've mentioend wanting to try and do more in parameter and less in signature too.
pmichaud well, I still haven't done all of the parameter refactori.... right :-)
jonathan OK, well, I'd rather do something now that helps get things how you'd like, rather than gives you more to have to refactor later. :-) 13:57
pmichaud I'm pretty close to being able to do the refactor, since I got $_ and friends working this past week
I hadn't thought about building signatures in parallel (although it obviously needs to be done) 13:58
jonathan OK, what do you want me to do?
pmichaud good question.
purl Yeah, it is. I'm stumped.
pmichaud hrm.
jonathan Keep the code relatively as it is, but build the signature in parallel, and leave it for you to refactor later? 13:59
pmichaud yes, let's go ahead and do that for now.
jonathan OK.
The toher thing is
:(Bar, Foo)
pmichaud refactoring hasn't been as big an issue as it seemed to be at first.
jonathan This is allowed (seen in various places in synopses)
<signature> and, more specifically, <parameter> don't see to have a way of not specifying a name, but just a type, however. 14:00
s/see/seem/
pmichaud (phone)
barney Is there a PCT based language, that uses plain PMCs as objects ? 14:01
pancake isnt .HOW implemented? 14:16
moritz perl6: say 1.HOW 14:17
polyglotbot OUTPUT[get_string() not implemented in class 'P6metaclass'␤current instr.: 'print' pc 9632 (src/gen_builtins.pir:6354)␤called from Sub 'say' pc 9654 (src/gen_builtins.pir:6364)␤called from Sub '_block11' pc 43 (EVAL_12:18)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806
..(src/PCT/HLLCompiler.pir:469)␤called from Sub 'parrot;PCT::HLLCompiler...
moritz it is implemented, but it doesn't convert to string right now
perl6: say 1.HOW.WHAT
polyglotbot OUTPUT[Int␤]
jonathan wonders how HOW should stringify 14:18
pancake moritz: oks i see 14:19
howhow
moritz jonathan: to "don't know how to stringify meta clas"? ;-)
jonathan ;-) 14:20
pancake heh
pmichaud (PCT based language w/PMCs) ....NQP ? 14:27
barney pmichaud: Yes. NQP looks good for jumpstarting PHP OO 14:37
dalek r29152 | jonathan++ | trunk: 14:54
: [rakudo] Start to build signature objects. We don't put any types in yet.
diff: www.parrotvm.org/svn/parrot/revision?rev=29152
r29153 | pmichaud++ | trunk: 15:02
: [rakudo]: spectest-progress.csv update: 94 files, 1662 passing tests
: * Also add a column with an estimate of the total number of spectests.
diff: www.parrotvm.org/svn/parrot/revision?rev=29153
moritz pmichaud++ # not breaking existing code while adding another column ;-) 15:12
dalek r29154 | jonathan++ | trunk: 15:33
: [rakudo] STD.pm tracking: variable_decl becomes variable_declarator, add declarator and make us able to parse a signature in a declaration.
diff: www.parrotvm.org/svn/parrot/revision?rev=29154
r29155 | bernhard++ | trunk: 15:41
: [Pipp PCT] Fiddle with grammar and actions in order to make
: the generated PAST more like the PAST generated by NQP.
: But oo_1.php is still not working.
diff: www.parrotvm.org/svn/parrot/revision?rev=29155
15:41 tewk joined
barney fperrard++ for identifying problem in Pipp, RT#55842 15:41
moritz parrotsketch? 16:00
purl parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
moritz so in 2.5h if my time calculation is correct ;) 16:01
don't know if I'll make it, if not my report isn't so much different from last time 16:02
pmichaud parrot sketch in 143 mins 16:07
(2h23m)
16:09 Theory joined 16:17 tewk joined
jonathan pmichaud: Sometimes I'm getting $/.panic(...) leading to Null PMC access in type() rather than actually displaying the error message. 16:21
pmichaud jonathan: moritz and others have noticed this also 16:22
jonathan OK.
pmichaud it's occurring in $/.panic, though?
that's odd.
if you can get a backtrace that might help 16:23
but I have to run errands now
(it has become a totally crazy morning around here)
jonathan Well, it shows up in the backtrace, in one routine down the call tree. 16:24
I wonder if it's related to return in PCT.
erm
in NQP, I mean 16:25
If it was added...
moritz there's a test case in spec/S02-builtin_data_types/type.t which showed that behaviour for me 16:26
pmichaud return exists in NQP, yes, although we probably aren't using it. 16:29
although since NQP does put return handlers into its sub/methods, the exceptions show up at the point of the rethrow instead of where they were originally thrown 16:30
jonathan Ah. Then that's probably what I'm seeing.
pmichaud I don't know how to get the backtraces working properly 16:31
jonathan Are we throwing a new exception there, or are we rethrowing the old one? 16:32
particle you mean like having an uncatch rather than rethrow?
pmichaud rethrowing the old one
jonathan OK
pmichaud but just using a C<throw> opcode to do it. I don't know if there's a better one (that is implemented)
jonathan I'd have hoped Parrot would preserve the original trace.
Oh
OK, I was thinking there was a rethrow opcode, but maybe now.
pmichaud there's one specced, but I don't know if it's implemented
looks like there is 16:33
maybe I'll try rethrow instead
16:33 sjansen joined
dalek r29156 | bernhard++ | trunk: 16:33
: [Pipp] add a test case where a class is defined, but not yet used.
diff: www.parrotvm.org/svn/parrot/revision?rev=29156
pmichaud oh, but pdd23 claims:
{{ NOTE: "rethrow", and "pushaction" are removed, and "die" is different }}
particle right
rethrow is deprecated 16:34
pmichaud might also be worth thinking about RT #56604 in this context as well :-)
anyway, gotta run errands
bbl
16:40 paco joined
jonathan moritz: ping 16:43
moritz jonathan: pong 16:47
jonathan moritz: Did you say there were a bunch of tests we can get passing if my ($a, $b) style things work? 16:49
moritz jonathan: I did, but I'm not so sure anymore
jonathan: because many of those also involve list assignment
jonathan: wich you'd also have to do to make them pass
jonathan my ($a, $b) = (1, 2) style things? 16:50
moritz jonathan: and I simplified some tests to my $a; my $b; where that's not the feature that is being tested for
jonathan: yes
jonathan OK
I'm on the way to having the my ($a, $b) part working, anyway.
moritz that would be great 16:51
dalek r29157 | bernhard++ | trunk: 16:53
: [Pipp PCT] Make oo_2.php succeed by using namespace more consistently.
diff: www.parrotvm.org/svn/parrot/revision?rev=29157
jonathan I need to do another refactor to get this *really* working. 16:55
But the patch that I'm about to put in makes this work: 16:56
my ($a, $b); $a = 100; $b = 58; say $a - $b;
Whiteknight jonathan++ 16:57
dalek r29158 | jonathan++ | trunk: 17:04
: [rakudo] Start making signatures in variable declarations work. While more work is needed to make this more general, my ($a, $b); will now declare both $a and $b.
diff: www.parrotvm.org/svn/parrot/revision?rev=29158
moritz runs autounfudge to see if that patch magically got some new tests passing 17:08
jonathan: does autounfudge work on windows? 17:10
jonathan would be surprised if anything extra much passes so far.
moritz (istr that you use windows)
jonathan moritz: Not tried it...
What's the magical incantation?
moritz perl tools/autunfudge.pl --auto
requires TAP::Harness and Text::Diff 17:11
jonathan moritz: What directory do I need to bein for that?
moritz jonathan: languages/perl6
purl rumour has it languages/perl6 is rakudo. strange that doesnt parse for you
particle autounfudge.pl --auto seems redundantly redundant
jonathan Oh, you'd typo'd it.
Doesn't run as I don't have TAP::Harness.
moritz particle: I know, but the --auto options refers to something else as the 'auto' in the name ;) 17:12
particle jonathan: i see :viviself('Perl6Scalar') in your patch... does that mean my (@a, %b) won't work? 17:13
jonathan particle: Yup. :-) 17:14
But I wanted to get the one chunk of code I just did put in, before I did some shuffling around of stuff to make that work.
moritz that was the "While more work is needed ..." part of the message ;) 17:15
17:17 stupidbot joined
particle i really need to get my dev env set back up 17:20
lemme see if i can find that msvc install cd....
17:21 bacek joined
particle i really wanna refactor scope_declarator action method to match std better 17:26
dalek r29159 | bernhard++ | trunk: 17:28
: [Pipp] Update test instructions.
diff: www.parrotvm.org/svn/parrot/revision?rev=29159
jonathan particle: I'm doing bits in that area at the moment; I already added declarator earlier today. 17:32
But yes, there is much more to do.
particle sure
don't worry, it'll take a while for me to get things set up
...but i finally found the discs 17:33
jonathan :-)
jonathan hopes particle comes and joins the refactoring fun
particle oh, lovely, my os doesn't recognize my dvd drive
*sigh*
cotto-work barney, do you or fperrad have any plans to do something like make spectest for pipp? 17:34
tewk started always keeping server2008 and MSV isos on his hard drive
barney for now there is only my notes in docs/testing.pod 39/1292 passing (nothing to brag about) 17:36
AFAIK for running the PHP tests one needs to compile the Test-running PHP first 17:38
cotto_work I'll look into that. 17:39
dalek bernhard.schmalhofer@gmx.de | Pipp: 17:42
link: www.perlfoundation.org/parrot/index.cgi?pipp
cotto_work barney, the wiki says 5.2.4 is the target. Didn't you say we're targeting 5.3? 17:43
dalek bernhard.schmalhofer@gmx.de | Pipp: 17:44
link: www.perlfoundation.org/parrot/index.cgi?pipp
17:47 chromatic joined
dalek bernhard.schmalhofer@gmx.de | PHP OO for Perl 6 programmers: 17:49
link: www.perlfoundation.org/parrot/index...rogrammers
barney cotto: The Wiki should be updated
cotto_work barney++ 17:56
dalek r29160 | Whiteknight++ | gsoc_pdd09:
: [gsoc_pdd09] Update function-level documentation for src/gc/resources.c. These changes can (and will) be folded into trunk too.
diff: www.parrotvm.org/svn/parrot/revision?rev=29160
r29161 | bernhard++ | trunk: 17:57
: [docs] Consistent indenting of ChangeLog with tabs.
diff: www.parrotvm.org/svn/parrot/revision?rev=29161
particle reboots 17:59
dalek bernhard.schmalhofer@gmx.de | release_schedule_2008: 18:00
link: www.perlfoundation.org/parrot/index...edule_2008
18:02 Ivatar joined
moritz imagines particle lying on his bed, closing and re-opening eyes and saying "reboot successful" 18:05
chromatic You can't know that.
You can know he's lying down somewhere, or that he's on his bed, but you can't know both that he's stationary and where he is. 18:06
moritz I can't know, but I can imagine ;-)
and \\hbar isn't very large in comparison to particle ;-) 18:07
pmichaud jonathan: in scope_declarator, shouldn't we just use the node generated in $?BLOCK_SIGNATURED rather than create new ones? 18:09
also, ?? !! works now, so 18:10
$scope := $declarator eq 'my' ?? ' lexical' !! 'package';
jonathan ?? !! - cool 18:12
dalek r29162 | bernhard++ | trunk:
: [docs] Some fiddling with release_manager_guide.pod
diff: www.parrotvm.org/svn/parrot/revision?rev=29162
jonathan The question: I don't understand what you mean. We care about the signature, not the block.
pmichaud ignore the block
jonathan We're not greating a block.
18:12 particle joined
pmichaud ignore the block 18:12
jonathan *generating
pmichaud but instead of creating a new PAST::Stmts node and re-creating the variables (and traits and...) in it, just grab the first child of $?BLOCK_SIGNATURED 18:13
it already has that stuff in it
then we just adjust the scope if the declarator is 'our'
I think I will probably get rid of $?BLOCK_SIGNATURED and just change it to $?LAST_SIGNATURE 18:14
so that it's not a block but is instead just the signature
jonathan That will maybe work for now, but when signatures get more complex I'm less sure.
pmichaud I think it should work, or should be made to work. duplicating the variable creation code seems wrong. 18:15
let me know when you're at a likely stopping point for the day and I'll experiment with some refactors
I'll also see if I can get my parameter refactors in place, since they're also a part of this
jonathan I think that the best bet will actually be to toss the parameter checking code generating, and just put it all in the signature. 18:16
Then just get the signature object itself to do the binding.
Which will do the type checks and so forth as needed.
pmichaud well, binding and assignment are slightly different here :-)
jonathan But once signatures get more advanced, will handle the unpacking too.
pmichaud but yes, that's the essential idea
my ($a, $b) = .... is a list assignment 18:17
PerlJam PAST nodes don't have a way to make copies of themselves?
pmichaud PerlJam: oh, we could probably implement clone on them if we wanted to. but I don't think we need a copy 18:18
I'd like to see that whatever PAST structure is returned for a signature is already correct
without having to do a whole lot of higher-level context-based manipulation
jonathan The list assignment stuff: it's one of those things I "know", but am still trying to work out how fits in with the fact that what you've got on the left there is actually a signature. 18:19
So it's just signature binding, with forcing list context on the RHS of the '=', right?
dalek r29163 | kjs++ | trunk:
: [languages/pir] updates to PIR language.
diff: www.parrotvm.org/svn/parrot/revision?rev=29163
pmichaud it's not signature binding -- that would be :=
jonathan OK, so... 18:20
pmichaud the signature evaluates to a list of PAST::Var nodes
and we just do list assignment
same as ($a, $b) = ... (which isn't a signature) 18:21
jonathan OK
But my ($a, $b) := ...; is a sig binding?
pmichaud yes, that will likely be a sig binding
jonathan OK
But then we want a signautre object on the LHS.
So in that case we want the LHS not to evaluate to a list of PAST::Var nodes. 18:22
pmichaud well, we can always implement assignment on signatures
jonathan OK, that's what I thought would be easier.
pmichaud I see what you're getting at, yes.
jonathan Just override infix:= method for the Signature class.
pmichaud or possibly iterator 18:23
it depends on how list assignment is implemented
jonathan OK
Is that on your "soon" list?
pmichaud yes.
jonathan OK
pmichaud it's even mentioned in my #parrotsketch report for today :-) 18:24
jonathan We need to do things like my (:$name, [$x, @*xs]) = ...; eventually too, I guess.
pmichaud (as yes 18:25
er, yes.
jonathan My gut feeling is that it's probably eaiser to implement if we call infix:= and pass it the list of things build on the RHS. 18:26
*built
chromatic #ps in 5
pmichaud I'm trying to imagine what a signature object looks like in PIR 18:27
(haven't looked at the patches in detail yet)
jonathan At the moment, just a List of Hash. 18:28
18:28 cotto_work joined, gryphon joined
jonathan I think it will end up holding a list of some descriptors for the parameters. 18:28
Whether they are some object that can be got at rather than an internal implementation detail, is the subject of my question on p6l earlier today. 18:29
pmichaud we may end up defining PAST::Signature before we're done :-) 18:30
chromatic #ps time
dalek r29164 | jonathan++ | trunk: 18:31
: [rakudo] Start to refactor declare_attribute a bit so it mostly doesn't dive into the parse tree, but instead takes parameters providing the information it needs. This is a step on making has ($.a, $.b) style things work.
diff: www.parrotvm.org/svn/parrot/revision?rev=29164
jonathan pmichaud: That'd be...fun. :-) 18:32
The main reason I want signatures, of course, is to have all the info available for during MMD.
pmichaud well, we have to applications for signatures
one is for MMD
but one is to specify the parameters for calling
s/to applications/two applications/ 18:33
and the PIR that gets generated in each case will be different
unless, of course, we make major modifications to PIR/IMCC :-P
cognominal As a language users, even without mmd, we want signatures. The lack of it pisses me in Perl 5. And with junctionnal types, signatures have the flexibility of Perl 5 . So kudos to jonathan++ 18:36
dalek r29165 | kjs++ | trunk: 18:38
: [languages/pir] make simple assignments work. Yay!
diff: www.parrotvm.org/svn/parrot/revision?rev=29165
jonathan cognominal: Well, what I'm working on is more about being able to interogate the signatures and making the full details available to MMD algorithm as much as anything else.
dalek r29166 | chromatic++ | gsoc_pdd09: 18:50
: [src] Made GC diagnostics disable-able, and disabled them by default. This
: still allows us to get GC diagnostics when we need them, but doesn't interfere
: with passing tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=29166
18:54 mire joined
chromatic Is there a metacommitter in the house? 18:55
cognominal what is a metacommitter? or the glossary I should read 18:56
chromatic a metacomitter can give commit access
particle i'm one 18:57
chromatic NotFound gets access.
moritz cool, NotFound++
NotFound Good :)
NotFound cleans his chainsaw... 18:58
moritz clean chainsaws hurt much less then rusty ones ;)
particle NotFound: please follow the directions in section "Instructions the new committer must follow" in docs/project/metacommitter_guide.pod
cotto_work (Parrot Chainsaw Massacre)--
davidfetter waves to cotto_work
cotto_work waves back at davidfetter 18:59
davidfetter any word from your cow orkers?
cotto_work nope, but I'll let you know once something happens 19:00
davidfetter thanks :)
cotto_work np 19:01
NotFound Subversion password created. 19:06
particle account name? 19:07
purl account name is youndts
cotto_work purl, forget account name
purl cotto_work: I forgot account name
NotFound julianalbo
particle do you have an rt account? 19:09
NotFound Yes, and have rights on it. 19:10
particle and it's julianalbo, too? 19:14
if so, then you're set. welcome!
NotFound Yes.
Thanks!
Checking out with the account. 19:19
tewk Someone want to double check my delete branch cmdline 19:29
japhb tewk: OK, continuing with our discussion ...
tewk svn del svn.perl.org/parrot/branches/gsoc_nci
dalek r29167 | jonathan++ | trunk: 19:30
: [rakudo] Make has ($x, $y) work. It doesn't work with twigils just yet, but that should be a grammar change. Also remove some incorrect cuddles.
diff: www.parrotvm.org/svn/parrot/revision?rev=29167
jonathan Gotta go to the store - back soon. 19:31
japhb I think the only structure defs I have checked into the SVN repo are the variants on 'float4' ... see examples/benchmarks/float4.pir and examples/opengl/shapes.pir. I've got more locally that I'm hacking on. Also, note that chromatic's old 2D SDL bindings have a fair number of structure defs. 19:32
19:32 shamu joined
japhb He uses named struct elements, but for my stuff the overhead of named keys is significant, so I don't. 19:33
particle tewk: that should work 19:34
japhb In your structure definitions, it should be possible to use both the friendly and the fast ways. (If we could make the friendly way fast, that would be nice, but I'm not holding my breath ...)
NotFound dalek: you have ruined my first attempt to commit :D
japhb afk for a bit
NotFound Er.... jonathan 19:35
tewk japhb: generating both should be easy, mabye as STRUCTNAME_pos and STRUCTNAME_named, and then storing them as namespace_globals 19:37
chromatic They're OrderedHashes anyway, so you can access them either way. 19:38
By index or by key, I mean.
dalek r29168 | Whiteknight++ | gsoc_pdd09: 19:40
: [gsoc_pdd09] redefine Gc_it_card to be an unsigned char instead of a bitfield. 8-bit bitfield was being padded by some compilers to 32 bits long.
diff: www.parrotvm.org/svn/parrot/revision?rev=29168
r29169 | tewk++ | gsoc_nci:
: [gsoc_nci] removing outdated branch
diff: www.parrotvm.org/svn/parrot/revision?rev=29169
r29170 | tewk++ | gsoc_nci: 19:41
: [gsoc_nci] recreate branch
diff: www.parrotvm.org/svn/parrot/revision?rev=29170
tewk examples/benchmarks/float4.pir has several ManagedStruct creation alternatives. We can generate all or some of them using name mangeling 19:43
dalek r29171 | julianalbo++ | trunk: 19:48
: Add Parrot_printf and Parrot_eprintf to the extend API
diff: www.parrotvm.org/svn/parrot/revision?rev=29171
NotFound Done :) 19:49
chromatic Nicely done. Now you have to resolve the ticket. 19:50
NotFound Done. 19:53
moritz wonders why purl doesn'T have some sneaky comment on 'Done.' 19:54
jonathan NotFound: Er....yes? 19:57
NotFound jonathan: you ruined my first attempt to commit, with the actions.pm codingstd 19:58
jonathan Oh, by beating you to fixing it?
NotFound Yes, It was nice little change to start.
japhb chromatic: hmmm, I thought only the structure *definitions* were OrderedHashes, but the structures themselves were something different ...
jonathan D'oh - sorry!
japhb needs to add a couple more cases to float4.pir, it sounds like. 19:59
NotFound jonathan: no problem :)
japhb Because I'd be happy to get away from the "friendly/fast" dichotomy.
chromatic japhb, if I recall correct, all access to struct members uses the OrderedHash.
correctly that is
japhb chromatic: Hmmm, OK, thanks. 20:01
japhb will hack up a couple tests after finishing lunch
:-)
dalek r29172 | tewk++ | gsoc_nci: 20:13
: [gsoc_nci] ncigen
diff: www.parrotvm.org/svn/parrot/revision?rev=29172
r29173 | jonathan++ | trunk: 20:23
: [rakudo] Allow has ($.x, $y, $!z) to work.
diff: www.parrotvm.org/svn/parrot/revision?rev=29173
20:28 slightlyoff joined 21:17 purl joined 21:18 teknomunk joined
c karma purl 21:39
purl purl has karma of 8129
cotto_work karma purl
purl purl has karma of 8129
davidfetter karma cotto 21:42
purl cotto has karma of 18
dalek r29174 | julianalbo++ | trunk: 21:48
: Fix a codingstd in release_manager_guide.pod
diff: www.parrotvm.org/svn/parrot/revision?rev=29174
r29175 | jonathan++ | trunk: 22:11
: [rakudo] Stop producing blocks when we only want a signature object. Additionally, start storing the constraints in the signature object.
diff: www.parrotvm.org/svn/parrot/revision?rev=29175
moritz jonathan: no need for a [rakudo] tag in commit messages to the pugs repo ;) 22:13
jonathan Oh, geck! 22:15
It's automatic now!
moritz ;)
jonathan Apologies.
purl apologies are worthless but they create an opening.
jonathan Thanks for the inspiration, purl... 22:16
dalek r29176 | Whiteknight++ | trunk: 22:18
: [core] updated function-level documentation and a few error messages in src/lists.c
diff: www.parrotvm.org/svn/parrot/revision?rev=29176
r29177 | Whiteknight++ | gsoc_pdd09: 22:21
: [gsoc_pdd09] updating to trunk r29148.
diff: www.parrotvm.org/svn/parrot/revision?rev=29177
cotto_work is there a way to make gdb break whenever any function from a certain file is run? 22:34
chromatic ANY function or a particular function? 22:35
cotto_work any function
a particular function is easy
chromatic I'm not aware of one. 22:37
cotto_work how do I find out where an exception was thrown from at the C-level? 22:44
jonathan cotto_work: Maybe put a breakpoint in real_exception and look at the stack trace. 22:45
cotto_work that'd work. jonathan++
NotFound I was thinking some days ago about the idea of adding an option to abort when an exception is thrown without handler. 22:46
Whiteknight isn't that what happens now? 22:47
NotFound It exits, without dumping core.
chromatic So you get a backtrace. 22:48
Interesting.
dalek r29178 | Whiteknight++ | trunk: 22:55
: [core] update error messages in src/lists.c, again. Now, includes total number of items in list, for comparison.
diff: www.parrotvm.org/svn/parrot/revision?rev=29178
r29179 | julianalbo++ | trunk:
: Avoid a warning on Solaris, clarify PARROT_const_cast usage, see RT#56110
diff: www.parrotvm.org/svn/parrot/revision?rev=29179
22:57 japhb joined
jonathan Report: use.perl.org/~JonathanWorthington/journal/36875 23:01
pmichaud good report 23:03
jonathan pmichaud: Will do next Rakudo day on Thursday. 23:04
Feel free to have a shuffle around on parameters stuff if you wish. 23:05
Won't do any more today/tomorrow.
pmichaud jonathan: sounds good. I'll look around at parameters and signatures
jonathan I have put in a test for has ($x, $y) style things
pmichaud good.
jonathan Put didn't get around to my ($a, $b)
Maybe good to stick one in before you start refactoring. 23:06
pmichaud well, we have quite a bit of my ($a, $b) in the test suite already.
moritz but they are all fudged atm
jonathan OK, well, maybe something works now.
I need to get off the computer and rest my hands/arms.
Will be about on IRC tomorrow, if there's any questions - will code again on Thursday. 23:07
23:14 gryphon joined
s1n still trying to get a feel for the test suite, and i wanted to run a single test. how is that done? 23:21
moritz in the simplest case (not fudged) ../../parrot perl6.pbc t/spec/S29-str/lc.t 23:22
and if it's fudged, echo S29-str/lc.t > t/localtest.data; make localtest
s1n moritz: thanks 23:23
moritz: if it's been fudged, couldn't i run the fudged script in similar fashion to the first method? 23:24
moritz yes, run the .rakudo instead of the .t file 23:25
but remeber to regenerate the .rakudo file when you change the .t file
japhb Why doesn't #parrot have a topic right now? 23:27
moritz it does
japhb That's ... odd.
moritz 01:27 -!- Topic for #parrot: Parrot 0.6.3 "Beautiful Parrot" Released | parrotcode.org/ | 5/649/88 new/open/stalled tix | logged in irclog.perlgeek.de/parrot/today
01:27 -!- Topic set by smash [~smash@bl5-75-155.dsl.telepac.pt] [Tue Jun 17 17:56:33 2008] 23:28
NotFound japhb: irc clients sometimes fail to get current topic, nothing unusual.
japhb NotFound: I've literally never seen that happen before. Especially when there is a negative response to '/topic'
NotFound japhb: in some server is more frequent, don't know why. 23:29
Maybe is the server that lost sync, and that happens more frequently in some networks. 23:30
japhb ah, that makes sense
moritz I've never seen that either (always use irssi) 23:32
NotFound I've seen lot of times in irc-hispano.org, and with a variety of clients. 23:33
moritz anyway, time for bed
dalek r29180 | julianalbo++ | trunk: 23:36
: Fix trailing space in list.c
diff: www.parrotvm.org/svn/parrot/revision?rev=29180
NotFound Finally I've got a PASS make test in C++ build :) 23:45
Good nigth
chromatic Good work. 23:48
davidfetter NotFound++ :)
23:49 bacek_ joined