|
Devel: 0.6.1 | parrotcode.org/ | 696 new/open tix Set by moderator on 12 May 2008. |
|||
|
00:05
davidfetter joined
|
|||
| DietCoke | particle: right here. | 00:08 | |
| purl | right here is the best possible place, DietCoke. or right now | ||
| DietCoke | Sorry, real life intruded. | 00:09 | |
|
00:27
bacek joined
00:39
cotto_work joined
00:44
codeguy left
00:49
cotto_work joined
00:51
bacek joined
|
|||
| bacek | hi there | 00:51 | |
| Tene | Hi! | 00:52 | |
| Never seen you around here before, bacek. Interested in parrot? | 00:56 | ||
|
00:57
AndyA joined
|
|||
| bacek | Tene, yes. | 01:02 | |
| We had a good chat yesterday with pmichaud. | |||
|
01:07
Zaba joined
|
|||
| dalek | r27567 | chromatic++ | trunk: | 01:23 | |
| : [src] Improved refcounting and recycling of stack chunks, so as to reduce GC | |||
| : pressure. This improves the Rakduo-building benchmark by 29.24%. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27567 | |||
| japhb | OK, CLA sent off ... so who is a metacommitter? | 01:24 | |
| man, it's just amazing how completely HLL performance is being dominated by GC ... | 01:25 | ||
| DietCoke | japhb: I am. | 01:34 | |
| but I don't get the CLAs - I just see when they've been processed. at which point there's a general pinging. | |||
| japhb | DietCoke: Consider this an application for commitbit, then. :-) | ||
| ag | 01:35 | ||
| ah | |||
| DietCoke | if you've sent in the CLA, we'll have a little metacommitter party and discuss it. =-) | ||
| japhb | heh | ||
| DietCoke orders some memory for his imac. | |||
| japhb | 32- or 64-bit? | ||
| (CPU in the imac, I mean) | 01:36 | ||
| Hinrik | has the bug day begun? | 01:37 | |
| DietCoke | somewhere! | 01:39 | |
| purl | i think somewhere is SF? | ||
| DietCoke | japhb: how do I tell? =-) | ||
| (I don't think mac does 64 bit yet, does they?) | |||
|
01:40
IllvilJa joined
|
|||
| japhb | DietCoke: yep, ever since they started using Core 2 Duos (Core Duo -- no numeral 2 in the middle -- is 32-bit. I know, because that's what's in the laptop I'm typing on right now.) | 01:40 | |
| One of several reasons that Core 2 Duo >> Core Duo, performance-wise | 01:41 | ||
| Infinoid hugs his core 2 duo laptop | 01:51 | ||
| hmm... 64 bit would make the fat-library stuff on OSX even more complicated, wouldn't it? | |||
| Tene also core 2 duo | 01:55 | ||
|
01:56
cjfields joined
|
|||
| DietCoke | I have a core 2 duo box. no clue if it's 64 bit, but I'm guessing I would have noticed that. | 02:01 | |
| Infinoid | its 64 bit if you are running a 64 bit OS on it | 02:06 | |
| otherwise, its in x86 reverse-compatibility mode. | |||
|
02:13
Theory joined
02:35
AndyA joined
02:48
c9s joined
|
|||
| dalek | r27568 | chromatic++ | trunk: | 03:42 | |
| : [PMC] Extracted function to calculate class name from Class PMC. This allows | |||
| : the get_string vtable entry to return a COW version of the name and the isa | |||
| : vtable entry to operate on the name directly. This is safe, as the latter does | |||
| : not modify the string. | |||
| : The result is a 16.23% improvement in the Rakudo-building benchmark. | |||
| : One complication remains: the PMCProxy PMC either needs a special case (as in | |||
| : the code in this commit) or its own version of the isa vtable entry, as it | |||
| : stores the class name differently. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27568 | |||
|
03:56
slightlyoff left
04:11
Andy joined
|
|||
| dalek | r27569 | pmichaud++ | p6metaclass: | 04:16 | |
| : remove p6metaclass branch to resync with trunk | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27569 | |||
| r27570 | pmichaud++ | p6object: | |||
| : Create re-sync'd p6object branch for updating protoobject | |||
| : implementation. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27570 | |||
|
04:33
Psyche^ joined
|
|||
| DietCoke resurrects his ancient osx/ppc laptop | 05:17 | ||
|
05:26
Zaba_ joined
|
|||
| Patterner | parrot takes a long time to compile on those. | 05:59 | |
|
06:04
Zaba joined
|
|||
| japhb | Any committers about? | 06:46 | |
|
06:51
barney joined
07:15
masak joined
|
|||
| dalek | r27571 | bernhard++ | trunk: | 07:28 | |
| : Add NEWS from Geoffrey Broadwell | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27571 | |||
| r27572 | pmichaud++ | p6object: | |||
| : [p6object]: | |||
| : * First code draft. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27572 | |||
| allison@perl.org | Concurrency Tasks: | 07:32 | ||
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | allison@perl.org | Concurrency Tasks: | 07:36 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| Tene | japhb: sorry, today was crazy. you still up? | 07:40 | |
|
07:53
TimToady joined
07:54
aa2 joined
07:58
iblechbot joined
|
|||
| dalek | r27573 | pmichaud++ | p6object: | 08:03 | |
| : [p6object]: | |||
| : * Add 'new_class' method, more tests. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27573 | |||
| r27574 | bernhard++ | trunk: | 08:37 | ||
| : [Plumhead antlr] | |||
| : Start with generating NQP, instead of PIR, | |||
| : for setting up PAST. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27574 | |||
| r27575 | bernhard++ | trunk: | 09:15 | ||
| : [Plumhead phc] | |||
| : More consistent formating of generated NQP | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27575 | |||
| r27576 | bernhard++ | trunk: | 09:29 | ||
| : [Plumhead PHC] | |||
| : Use the regular template for the toplevel past:stmts. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27576 | |||
| allison@perl.org | Concurrency Tasks: | 10:03 | ||
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | r27577 | bernhard++ | trunk: | 10:12 | |
| : [Plumhead antlr3] | |||
| : Add a STMTS below PROGRAM and emit dummy PAST | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27577 | |||
|
10:32
Ademan joined
|
|||
| dalek | r27578 | bernhard++ | trunk: | 10:52 | |
| : [Plumhead antlr] | |||
| : Remove dummy code, bring back support for printing positive integers. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27578 | |||
|
11:04
ambs joined
|
|||
| ambs | DietCoke, new guys are lazy | 11:05 | |
|
11:09
Ivatar joined
|
|||
| dalek | r27579 | ambs++ | trunk: | 11:32 | |
| : [plumhead] | |||
| : svn properties to languages/plumhead/src/antlr3/GenPastNqp.java | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27579 | |||
|
11:32
rdice joined
|
|||
| dalek | r27580 | bernhard++ | trunk: | 11:46 | |
| : [Plumhead antlr] | |||
| : Convert some more production from emitting PIR | |||
| : to emitting NQP. A lot of failures. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27580 | |||
|
12:02
tetragon joined
|
|||
| jonathan | Write-up from yesterday: use.perl.org/~JonathanWorthington/journal/36451 | 12:03 | |
|
12:11
ambs joined
12:22
NotFound joined
|
|||
| NotFound | Hello. | 12:22 | |
| ambs | Hellows. | 12:24 | |
|
12:27
andyc joined
|
|||
| paco | NotFound: good morning :) | 12:35 | |
| NotFound | For some values of "morning" ;) | 12:39 | |
| cognominal | the sun never sets on the parrot empire | 12:40 | |
| dalek | r27581 | fperrad++ | trunk: | 12:41 | |
| : [Lua] | |||
| : - bytecode translation : some improvements (vivification, ...) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27581 | |||
| jonathan only saw the first couple of hours of the morning...the ones before 2am. | 12:49 | ||
|
12:56
Limbic_Region joined
13:13
mire_ joined
|
|||
| dalek | r27582 | fperrad++ | trunk: | 13:21 | |
| : [Lua] | |||
| : - bytecode translation : remove .const generation | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27582 | |||
|
13:31
mire_ joined
13:42
Andy joined
13:45
b2gills joined
13:46
Ron joined
13:49
wknight8111 joined
|
|||
| dalek | r27583 | bernhard++ | trunk: | 13:53 | |
| : [Plumhead antlr3] | |||
| : Fix infix ops. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27583 | |||
|
14:13
Zaba_ joined
|
|||
| dalek | r27584 | bernhard++ | trunk: | 14:15 | |
| : [Plumhead antlr] | |||
| : Add 'prefix:-' :multi(PMC) | |||
| : Fix '+^'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27584 | |||
| ambs | [plumhead] All tests successful. | 14:27 | |
| dalek | r27585 | bernhard++ | trunk: | 14:33 | |
| : [Plumhead antlr] | |||
| : Add nodes for IF back in. | |||
| : Fix NOQUOTESTRING. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27585 | |||
|
14:37
braceta joined
|
|||
| barney | ambs: Plumhead has three variants. Using PCT is the default. Currently I'm fiddling with the variant that uses ANTLR for parsing | 14:44 | |
| ambs | barney, and what is the approach to test it? | 14:49 | |
| if there is interest in doing it :) | |||
| barney | set CLASSPATH according to docs/antlr3.pod | ||
| make build-antlr3 | 14:50 | ||
| make test-antlr3 | |||
| but you need java and the antlr3 runtime libs | |||
| A Perl6 Backend for ANTLR3 is on my mental TODO-List, as I'm not very attached to Java | 14:53 | ||
| ambs | java? argh | ||
| ok, forget it :D | |||
| purl | ambs, I didn't have anything matching it :d | ||
| ambs | purl, seen dietcoke | 15:00 | |
| purl | dietcoke was last seen on #parrot 9 hours and 43 minutes ago, saying: resurrects his ancient osx/ppc laptop | ||
|
15:07
Ivatar joined
|
|||
| japhb | Tene: I *was* still up, just hangin' with the better half | 15:19 | |
|
15:25
particle joined
|
|||
| japhb | OK, I ran 'make fulltest', but I don't get any summary of the results, just pages and pages of terminal scrollback. Is it normal to have no test summary for fulltest? | 16:15 | |
| dalek | r27586 | bernhard++ | trunk: | ||
| : [Plumhead antlr] | |||
| : Bring back SCALAR and ARRAY. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27586 | |||
| barney | japhb: That's the way it currently is. But I wouldn't call it normal. | ||
|
16:15
ilbot2 joined
|
|||
| moderator | Devel: 0.6.1 | parrotcode.org/ | 696 new/open tix | ||
| dalek | r27590 | allison++ | pdd25cx: | 16:19 | |
| : [pdd25cx] Code refactor, moving functions for better maintainability. Put error | |||
| : functions under a different header than exception functions. Move runloop jump | |||
| : point functions to the interpreter's source files. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27590 | |||
| Tene | tewk: lemme take a look... do you have a minimal test case? | ||
| dalek | allison@perl.org | Concurrency Tasks: | 16:20 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | allison@perl.org | Concurrency Tasks: | 16:23 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| Tene | tewk: notice that it's failing in TOP | 16:31 | |
| dalek | allison@perl.org | Concurrency Tasks: | 16:33 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | r27591 | bernhard++ | trunk: | 16:34 | |
| : [Plumhead] | |||
| : Merge driver_nqp.pir into plumhead.pir. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27591 | |||
|
16:43
sjansen joined
|
|||
| tewk | Tene: I fixed it, ws contents need to be wrapped with [ ]*, duh. | 16:49 | |
| japhb | Tene: I'm here again. You were looking for me? | 16:52 | |
| dalek | r27592 | chromatic++ | trunk: | ||
| : NEWS updated through 01 May; language updates are skimpy since previous release. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27592 | |||
| r27593 | allison++ | pdd25cx: | 16:57 | ||
| : [pdd25cx] Delete 'throwcc' opcode, replace with 'throw' in one- and two-argument forms. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27593 | |||
| allison@perl.org | Concurrency Tasks: | 17:08 | ||
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | r27594 | pmichaud++ | p6object: | 17:24 | |
| : [p6object]: | |||
| : * Refactored tests, more tests for subclasses. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27594 | |||
|
17:25
davidfetter joined
|
|||
| tewk | pmichaud: A couple of grammar questions. My <identifier> rule is composed of subrules, but I'm only intereted in captureing the <identifier> as a whole, is that possible? | 17:57 | |
|
17:58
tetragon joined
|
|||
| Tene | japhb: I'm here again. I think that I thought you were looking for me, but I don't recall why. | 18:04 | |
| tewk: explain more. | 18:05 | ||
| tewk: probably just use the <.rule> non-capturing form inside of <identifier> | 18:06 | ||
| japhb | Tene: you were going to commit my OpenGL patch, last we spoke | 18:08 | |
| Tene | Oh, sure. Is it available online somewhere, or do I need to pull it from email? | 18:11 | |
| japhb | It's attached to 54238 | ||
| (So you should be able to download it from RT, I mean) | |||
| nopaste | "tewk" at 155.97.237.62 pasted "<.rule> issue" (27 lines) at nopaste.snit.ch/13003 | 18:14 | |
| japhb | Tene: got to run for now; ping if you need me, and I'll check back later | 18:17 | |
| Tene | Hm. I can't make any new outgoing connections, but I'm somehow still connected to IRC? Weird. | ||
| tewk: want to talk about what's going on? | 18:31 | ||
| tewk | Tene: sure do you know? | 18:32 | |
| purl | But are you sure you're sure? | ||
| dalek | r27595 | tene++ | trunk: | ||
| : OpenGL updates from japhb++ | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27595 | |||
|
18:35
lichtkind joined
|
|||
| Tene | tewk: what is it that you want? | 18:39 | |
|
18:59
itz_ joined
19:09
ambs joined
|
|||
| ambs | purl, seen coke | 19:17 | |
| purl | coke was last seen on #parrot 3 days and 15 hours ago, saying: (the script for manifest should work if you svn add first!) [May 13 21:42:37 2008] | ||
| ambs | purl, seen dietcoke | ||
| purl | dietcoke was last seen on #parrot 14 hours ago, saying: resurrects his ancient osx/ppc laptop | ||
| dalek | r27596 | fperrad++ | trunk: | 19:19 | |
| : [Lua] | |||
| : - fix ipairs when bytecode translation | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27596 | |||
| r27597 | fperrad++ | trunk: | 19:28 | ||
| : [Lua] | |||
| : - update NEWS | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27597 | |||
| r27598 | allison++ | pdd25cx: | 19:38 | ||
| : [pdd25cx] Change the name of 'Parrot_ex_throw_from_c' adding '_args', to make | |||
| : room for a 'Parrot_ex_throw_from_c' that throws an exception object. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27598 | |||
| allison@perl.org | Concurrency Tasks: | 19:39 | ||
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | allison@perl.org | Concurrency Tasks: | 19:41 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| DietCoke yawns. | 20:14 | ||
| yes, ambs? | |||
| purl | ambs is, like, Alberto Simoes, one of the organizers of YAPC::EU::2005 and available at mailto:ambs@cpan.org | ||
| ambs | DietCoke, can you please send your votes before Monday night? | 20:16 | |
| DietCoke | yup, planning on doing so tomorrow morning local time. | 20:19 | |
| ambs | DietCoke, thanks | 20:23 | |
|
20:24
andyc left
|
|||
| dalek | r27599 | allison++ | pdd25cx: | 20:29 | |
| : [pdd25cx] Remove 'do_exception' function. Split 'Parrot_ex_throw_from_c' into | |||
| : two functions, one that takes C args to build an exception, and one that just | |||
| : takes an exception object argument. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27599 | |||
| allison@perl.org | Concurrency Tasks: | |||
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
|
20:29
Mat1 joined
|
|||
| dalek | allison@perl.org | Concurrency Tasks: | 20:31 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | allison@perl.org | Concurrency Tasks: | 20:32 | |
| link: www.perlfoundation.org/parrot/index...ency_tasks | |||
| shorten | dalek's url is at xrl.us/bjqpy | ||
| dalek | r27600 | ambs++ | trunk: | 20:37 | |
| : runtime/parrot/library/OpenGL.pir - removed a white space | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27600 | |||
| ambs | O:-) | ||
|
20:38
iblechbot joined
20:39
contingencyplan joined
|
|||
| spinclad | ambs++ | 20:56 | |
| ambs | spinclad, lol, I think I need to remove more spaces :-P | ||
| dalek | r27601 | pmichaud++ | p6object: | 21:00 | |
| : [p6object]: | |||
| : * Allow mapping classes (esp. PMC classes) to specific protoobjects. | |||
| : * Any class 'new' method overrides P6protoobject::new . | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27601 | |||
|
21:00
wonko joined
|
|||
| wonko | hi folks | 21:00 | |
| i just tried www.parrotblog.org/2008/03/targetin...ot-vm.html | 21:01 | ||
| however, i ran in an error | |||
| pmichaud | hello, wonko | ||
| wonko | konstantin@dell-desktop:~/Workspace/parrot/languages/squaak$ make test | ||
| ../../parrot /home/konstantin/Workspace/parrot/runtime/parrot/library/PGE/Perl6Grammar.pbc \\ | |||
| --output=src/gen_grammar.pir \\ | |||
| src/parser/grammar.pg | |||
| unable to parse regex at line 186, near "{\\n \\\\\\" <" | |||
| the source in question is: | 21:02 | ||
| token string_constant { | |||
| \\" <string_literal: "> \\" | |||
| {*} | |||
| } | |||
| pmichaud | yes, the syntax changed a bit. | ||
| try | 21:03 | ||
| \\" <string_literal: '"'> \\" | |||
| we should probably fix this in the repo. too. | |||
| wonko | works, thx | ||
| ...or not | 21:04 | ||
| /usr/bin/perl t/harness | |||
| t/00-sanity....PAST::Compiler can't compile node of type Integer | |||
| current instr.: 'parrot;PCT::HLLCompiler;panic' pc 158 (src/PCT/HLLCompiler.pir:103) | |||
| pmichaud | yes, it seems to lead to another error. I'm not sure what that one is -- I'd have to dig a bit further. | ||
| kjs isn't around or I'd ping him. | |||
| essentially it means that somewhere in the PAST there's an integer being stored where a PAST node should be | 21:05 | ||
| dalek | r27602 | pmichaud++ | trunk: | 21:08 | |
| : [squaak]: | |||
| : * <panic: ...> and <string_literal: ...> subrules need to quote | |||
| : their arguments. (Reported by wonko++) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27602 | |||
| wonko | i'm not realy that into parrot, yet. but the error seems do be somewhat raised by "$P1 = $P0.'command_line'(args)" | 21:13 | |
| pmichaud | well, that's a fairly high-level call. the error would need to be somewhere lower. | ||
| it's bound to be inside of one of the action methods in src/parser/action.pm | 21:14 | ||
| er, actions.pm | |||
| Tene | need me to go fix it, or can it wait for kj to take care of it? | ||
| pmichaud | Tene: if you're up for fixing it that might be good. | ||
| I don't know how long it will be for kj | |||
| I'm still planning to write up a languages/abc tutorial (w/particle) | 21:15 | ||
| ambs | purl, nopaste | ||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating | ||
| wonko | yeah, sorry | 21:16 | |
|
21:18
rgrjr joined
21:19
braceta joined
|
|||
| nopaste | "ambs" at 77.54.92.255 pasted "Make testj under x86/MacOS-X" (475 lines) at nopaste.snit.ch/13004 | 21:19 | |
| ambs | ^^ is that expected? | ||
| pmichaud | ambs: I don't know. It may be expected -- I don't know that the jit core runs under MacOS yet. | 21:20 | |
|
21:21
Zaba joined
|
|||
| dalek | r27603 | pmichaud++ | p6object: | 21:22 | |
| : [p6object]: | |||
| : * Add :attr option to 'new_class'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27603 | |||
| ambs | how can I run a specific test with prove and jit? | 21:23 | |
|
21:32
Ron_ joined
21:33
kid51 joined
|
|||
| pmichaud | I'm not sure. | 21:33 | |
| ambs | well, looking into other things | 21:34 | |
| kid51, close it | 21:37 | ||
| dalek | r27604 | fperrad++ | trunk: | 21:41 | |
| : [Lua] | |||
| : - translates last opcodes (upvalues) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27604 | |||
| kid51 | ambs: Close which? | 21:45 | |
|
22:08
Theory joined
22:14
TiMBuS joined
|
|||
| tewk | pmichaud: is there anyway to get rid of the array of single letters here: (27 lines) at nopaste.snit.ch/13003 | 22:17 | |
| pmichaud | that looks like a bug. | 22:20 | |
| afaict, there shouldn't be an array there. | |||
| I'm not sure why it's putting one there. | |||
| My first guess is an error in the Perl6Regex parser, that is treating <.foo> as capturing into <> | 22:21 | ||
| tewk | Should I have to put a . infront of the <alpha> sub-sub-rule? I had to do that to get rid of <alpha> captures now I just have PGE::Grammar captures in the array. | 22:22 | |
| pmichaud | yes, if you want <alpha> to be non-capturing, it's <.alpha> | ||
| can you file a parrotbug ticket for your nopaste? I'll want to come back and look at that. | 22:24 | ||
| tewk | yep | ||
| japhb | pmichaud: re: Rakudo not being able to use modules from parrot namespace -- is that particular to Rakudo, or actually lacking in PCT? | 22:26 | |
| Tene, ambs: thanks for the OpenGL commits | |||
| pmichaud | japhb: it has entirely to do with deciding how we want to import symbols | 22:27 | |
| japhb | I'd like to click on that, please. :-) | 22:29 | |
| pmichaud | the main issue is: "when rakudo uses a non-Perl 6 module, how does it know what symbols to import?" | ||
| pdd21 (namespaces pdd) describes an 'export_to' method that supposedly allows a module (namespace, actually) to define what symbols it exports by default, but afaict that's not actually implemented or working anywhere | 22:30 | ||
| japhb | pmichaud: I thought the Parrot namespace design was that the module in question is responsible for interpreting the requested import list | ||
| pmichaud | japhb: yes, but where to do we the import list from? | 22:31 | |
| let's consider the case of SDL | |||
| japhb decides to wait and listen for the moment ... | |||
| pmichaud | suppose a rakudo program wants to make use of the SDL module (written in PIR) | ||
| (1) what's the Perl 6 syntax for loading the module? | |||
| (2) how does Rakudo (or Parrot) know where to find that module on disk? | 22:32 | ||
|
22:32
braceta left
|
|||
| pmichaud | (3) how does the rakudo program specify what symbols to import? | 22:32 | |
| (end) | |||
| japhb | Thoughts ... | ||
| 1) I think that depends on 3) | 22:33 | ||
| 2+3) It feels to me that each HLL (namespace owner) should register a module loader -- which may default to some basic thing Parrot does, doing what 'load_bytecode' does now. Then the request should be passed through from Perl 6 to the module loader of the HLL the module resides in | 22:35 | ||
| pmichaud | (module loader) that's a reasonable approach -- I like it. It could even be made part of the compiler object for each HLL. | 22:36 | |
| japhb | So, just like a URI is opaque past the namespace/protocol token ('http:'), I think a good first concept other-language loads should be opaque past the HLL specifier | ||
| pmichaud: yes, exactly | |||
| pmichaud | we still have the question of "how to determine what symbols to import" | ||
| at present there's not a convention for each module to define its default list of exported symbols | 22:37 | ||
| that's really what we're lacking at this point. | |||
| I don't think it's reasonable for every importer to have to specify all of the symbols that it might need from an external module. | 22:38 | ||
| (it certainly should be able to do so, but it shouldn't have to do so.) | |||
| japhb | Something analogous ... put the import request into either a string or list and pass it through to an exporter for the HLL you're loading from. | ||
| Any decent HLL should have something equivalent to the "tags" that Perl5 uses in Exporter. | |||
| But each HLL will probably have a different standard for this, | 22:39 | ||
| pmichaud | anyway, to answer your earlier question -- PCT and Parrot already have all of the technical pieces need to accomplish this. What we need is to establish the conventions that HLLs will use. | ||
| (and in rakudo's case, I just need to know the Perl 6 compatible syntax.) | 22:40 | ||
| japhb | so we should be able to say the moral equivalent of 'use ooblex:"{(some_stuff)}";' and the ooblex exporter should interpret "{(some_stuff)}" according to its own rules, and then use the base export_to functionality to export them | ||
| pmichaud | my suggestion is to take a look at the module syntax in Synopsis 11, and then tell me what the Perl 6 line would be for loading the SDL.pbc module | ||
| or, more precisely, loading the SDL modules | 22:41 | ||
| for example... | |||
| examples/sdl/blue_rect.pl contains an NQP program for loading and exercising the SDL library | 22:42 | ||
| but the way it currently handles importing is by making explicit calls to Protomaker | |||
| in Perl 6 I would expect to do something like | |||
| use SDL::App; | |||
| use SDL::Rect; | |||
| use SDL::Color; | |||
| and automatically receive the SDL::App, SDL::Rect, and SDL::Color definitions imported into my namespace | 22:43 | ||
| of course, since SDL::App, etc. aren't written in Perl 6, we need to have a :from attribute there | |||
| japhb | Sure, but that's really just 'use SDL::App qw();' and so on, right? | ||
| pmichaud | thus | 22:44 | |
| use SDL::App:from<parrot> | |||
| so, the Perl 6 syntax would then seem to be | 22:45 | ||
| use SDL::App:from<parrot> <SDL::App>; | |||
| ??? | |||
| japhb | That doesn't seem right. | ||
| OK ... | 22:46 | ||
| pmichaud | that's the way I read S11. | ||
| of course, the "standard" way of doing it would be | |||
| use SDL::App:from<parrot>; | |||
| which would import whatever symbols SDL::App has defaulted for export. But we don't have a convention for defining that default list yet (in Parrot). | 22:47 | ||
| so since we don't have a default list yet, we need to explicitly specify what symbols to import, thus | |||
| japhb deletes previous typing, since you just said it | |||
| pmichaud | use SDL::App:from<parrot> <SDL::App> | ||
| *or* | |||
| we need to get all of those non-Perl 6 modules to provide a standard list of symbols to export. | 22:48 | ||
| All of the needed pieces are there (or can be written fairly quickly) -- I just don't know how to get the export list from a non-p6 module yet. | 22:49 | ||
| japhb | OK, to me there are two parts to this: | ||
| pmichaud | We could probably define something and start retrofitting the other Parrot components with it. | ||
| japhb | 1. How does a module explicitely say what it wants to export | ||
| jonathan | Would implementing the thing where you explicitly list what to import to get us started, and then adding support for getting the default set of imports when we know how to do that? | 22:50 | |
| japhb | 2. What should the default behavior be in the default Namespace PMC when handed a null export list | ||
| jonathan | s/Would/How about/ | ||
| pmichaud | (explicitly list) yes, I think this would work. | ||
| What I hadn't figured out yet was what to pass that list to. | |||
| But I think the correct answer is that we pass it to the HLL compiler. | 22:51 | ||
| japhb | pmichaud: yes. | ||
| pmichaud | at least for the short term. | ||
| in Rakudo's case, that would mean that it would need things to map :from<foo> to the appropriate HLL handler for 'foo' | 22:52 | ||
| (where "HLL handler" is the corresponding hll compiler for the short term) | 22:53 | ||
| so, I propose | |||
| compiler.'load_module'(name, 'import'=>list) | |||
| japhb | (default behavior of default Namespace PMC) currently this is specced as existing but is not implemented. I'd vote for this behavior in the default Namespace PMC to be to try to ask the module, either using a well-known global var or well-known function name, and failing that, export all symbols without underscores. But I'm biased, because that's the behavior I'm currently using for OpenGL. | ||
| (Because we need to specify a behavior for the 'parrot' HLL) | 22:54 | ||
| pmichaud | I don't think export all symbols is a good approach. It wouldn't work in the SDL::App case I just gave, at any rate. | ||
| japhb | s/underscores/leading underscores/ | ||
| It's either a simple rule like that, or export-none behavior | 22:55 | ||
| jonathan | pmichaud: I guess we could reasonably say that not specifying the import list would get the module to load whatever it considers the default set of imports... | ||
| pmichaud | I'd say export-none if not specified. | ||
| japhb | pmichaud: I can live with that. | ||
| Eevee | oh ho ho | ||
| eevee@tekkanin:~/dev/parrot/languages/perl6$ ../../parrot perl6.pbc -e 'my @foo = <1 2 3>; say @foo.reduce(sub { $^a + $^b })' | |||
| 6 | |||
| pmichaud | jonathan: you may have missed the earlier part -- we don't yet have a convention for "default set of imports" in a module. | 22:56 | |
| jonathan | pmichaud: I'm suggesting it as a possible future convention. | ||
| pmichaud | right. | ||
| japhb | for PIR modules, I'd prefer a sub that returns a list | ||
| Tene | Eevee: looks like a good choice to implement. | ||
| japhb | s/sub/well-known sub/ | ||
| pmichaud | mmmm, sub sounds very good | ||
| Eevee | now I want some subway | ||
| Tene | Eevee: throw together a patch. :) | ||
| Eevee | Tene: chosen for optimal copy/paste-ability from List.grep 8) | ||
| pmichaud | ....who created .reduce() ? That's.... COOL. | 22:57 | |
| Eevee | pmichaud: me, just now | ||
| pmichaud | Eevee++ | ||
| jonathan | Eevee++ | ||
| pmichaud | certainly makes implementing things like [+] easier :-) | ||
| japhb | Go Eevee++ | ||
| pmichaud | do you even need the 'sub'? | ||
| Eevee | does grep in rakudo work any way other than @array.grep(sub {})? I tried various other ways of feeding it blocks and the non-method way but nothing else worked | 22:58 | |
| pmichaud: oh hey I don't | |||
| jonathan | Now someone should get the infix:<+> syntax implemented so we can just write @foo.reduce(infix:<+>) :-) | ||
| pmichaud | @foo.reduce({ $^a + $^b}) | ||
| Eevee | but without the parens it doesn't work | ||
| jonathan | And then the reduce operator is just a small matter of syntax transformation. :-) | ||
| pmichaud | seems like it should work without the parens, as long as there's a space before the { | ||
| Eevee | $ ../../parrot perl6.pbc -e 'my @foo = <1 2 3>; say @foo.reduce { $^a + $^b }' | ||
| Statement not terminated properly at line 1, near "{ $^a + $^" | |||
| pmichaud | okay, we'll have to look at that. | 22:59 | |
| Eevee | same with grep though | 23:00 | |
| there is a lot of similarity with grep here, by some strange coincidence | |||
| pmichaud | for some reason it's not liking the closure as an argument to @foo.reduce | ||
| anyway, that's a grammar/syntax bug, undoubtedly. | |||
| Eevee | pointy doesn't work either, with or without parens (if I'm correct in thinking it should) | 23:01 | |
| jonathan | Eevee: It should, but parse bug. Try <-> variant of pointy. | ||
| Eevee | jonathan: "A signature must not be defined on a sub that uses placeholder vars." | 23:02 | |
| jonathan | Oh, fun. | ||
| Eevee | was that hack only for for? | ||
| pmichaud | no. | ||
| that's part of Perl 6 | |||
| jonathan | Not sure why it thinks there's a signature. | ||
| Eevee | I know, I mean when it was fixed in rakudo recently | ||
| pmichaud | -> $a { ... } gives the closure a signature | 23:03 | |
| Eevee | putting a real signature works | ||
| jonathan | -> { ... } should be an unsignatured pointy though? | ||
| pmichaud | I think it's the same as -> $_ { ... } | ||
| jonathan | Ah. | ||
| pmichaud | (I'd have to re-check the synopsis, though) | ||
| Eevee | 'my @foo = <1 2 3>; say @foo.grep(<-> { $_ })' gives me nothing | 23:04 | |
| japhb | OK, summary of decisions re: imports from foreign HLLs: 1) Each HLL compiler has a module loader that we defer to for loading modules from that HLL; 2) Each HLL compiler has an export interpreter that we defer to for interpreting export lists; 3) PIR modules have a well-known sub that returns the default export list for that module. 4) If it doesn't exist, Namespace assumes no exports. Is that all right? | ||
| Limbic_Region | jonathan - did you ever get a chance to look at rakudo's spectest on Win32/MinGW ? | ||
| oh, salutations all | |||
| pmichaud | japhb: excellent summary. | ||
|
23:04
Theory joined
|
|||
| japhb | pmichaud: good. OK, I must go AFK. Children terrorizing better half | 23:04 | |
| pmichaud | japhb: we'll go with that for now -- it'll be a good start. | 23:05 | |
| Eevee | Tene: will pastebin.com/d7ef8b0b7 work or is there some patch secret handshake | 23:06 | |
| jonathan | Limbic_Region: I glanced at it - it appeared to be a similar set of failures, but with a somewhat more noisy way of failing when Parrot exited with a non-zero exit code. | 23:08 | |
| dalek | r27605 | jkeenan++ | trunk: | 23:15 | |
| : languages/c99/src/cpp/t/comment_01.t was missing from MANIFEST, causing | |||
| : t/manifest/02-regenerate_file.t to fail during 'make fulltest'. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27605 | 23:16 | ||
| Eevee | hrm, List.pir has a sub grep but it doesn't seem to work: "Method 'grep' not found for invocant of class 'ResizablePMCArray'" | 23:18 | |
| pmichaud | some functions inadvertently return ResizablePMCArray instead of List | ||
| hopefully this will be fixed when we do .HLL mapping | 23:19 | ||
| jonathan | pmichaud: Is .HLL mapping on your list of things you plan to look at? | 23:21 | |
| BTW, I have been following what you've been committing in the branch - like the look of it so far. | 23:22 | ||
| pmichaud | jonathan: yes, .HLL mapping is on my list | ||
| I'm going to create a branch for .HLL mapping experiments | 23:23 | ||
| but I wanted to get P6object out of the way first | |||
| and fix the class definitions in rakudo | |||
| and probably do mutables | |||
| and *then* try .HLL | |||
| because .HLL will depend on a lot of those. | 23:24 | ||
| jonathan | pmichaud: OK, sounds good. | ||
| purl | speakers so loud they blow women's clothing off! | ||
| pmichaud | yes, I like the way P6object has turned out. | ||
| I'm going to apply it to PGE and PCT next. | |||
| jonathan | pmichaud: Fix class definitions as in...? | ||
| pmichaud | well, for one, what we have as 'Hash' or 'Perl6Hash' should actually be 'Mapping' :-) | 23:25 | |
| jonathan | Oh, OK. The built-ins. | ||
| pmichaud | but mainly review the files in src/classes/ and make sure that they're reasonably following the spec | ||
| I'll also look at the !keyword_hash type stuff -- it doesn't belong in Perl6Object. | |||
| jonathan | Yes, that needs a good goiving over. | ||
| pmichaud | er, !keyword_hash | ||
| er, !keyword_has | |||
| (can you tell I've been tying "hash" a few too many times lately? ;-) | 23:26 | ||
| jonathan | You sure, it's not because you visited Morrocco? ;-) | ||
| pmichaud | although, come to think of it, "hash" sounds like it ought to be a unix shell of some sort. :-P | ||
| we already have sh, csh, ksh, bash, ... | 23:27 | ||
| Eevee | fish.. | ||
| pmichaud | wash.. | ||
| jonathan | Here Again SHell | ||
| Eevee | I'm surprised there's no yash | ||
| pmichaud | Home Again SHell | ||
| or, if it's really small, it's the "Hardly Any SHell" | |||
| pmichaud decides not to quit his day job. | 23:28 | ||
| jonathan advises working on Rakudo. ;-) | |||
| Eevee golfclap | |||
| pmichaud | my rakudo work seems less visible than jonathan's :-) | 23:29 | |
| implementing .* is COOL. | |||
| implementing prefix:^ is COOL. | |||
| re-designing the underlying metaobject system.... well, not so visible. :-P | 23:30 | ||
| jonathan | That's because you're doing the important stuff and I'm doing the stuff people think is the important stuff. ;-) | ||
| Eevee | anything /^meta/ at least sounds cool | 23:31 | |
| pmichaud | well, I expect to be doing visible stuff again real soon, if you (and Eevee and japhb and particle and Tene and...) haven't beaten me to it all first :-) | ||
| yes, most of the stuff I've been doing is trying to make it easier for others to do also :-) | |||
| I'm very pleased we have lots of new contributors | 23:32 | ||
| jonathan | Yeah, it's really good to see. | ||
| pmichaud | oh, I figured out how to handle 'self' in PCT | ||
| it's going to be PAST::Var.new( :name('self'), :scope('register') ) | 23:33 | ||
| jonathan | Oh, good. I was pondering putting in lexical self support in time for the workshops, but if you have a solution coming I'll hold off. | ||
| Erm, will this work lexically? | |||
| pmichaud | no | ||
| in a Perl 6 method definition, we should have | |||
| jonathan | Oh, as a way to get at self | ||
| And we will assign it to self lexical... | 23:34 | ||
| pmichaud | yes. | ||
| exactly. | |||
| jonathan | Great. | ||
| pmichaud | but one will also be able to do | ||
| jonathan | Will we be able to do :name('I*') | ||
| "stick it in an int register" | |||
| pmichaud | PAST::Var.new( :name('$P0'), .... right. | ||
| $P0 through $P9 (and $I0 through $I9, $S0 through $S9) are available for use. | |||
| jonathan | Will that be enough? | 23:35 | |
| pmichaud | oh, I think so. They're only usable within a block | ||
| jonathan | I mean, I see using this for implementing the lowercase types like "int" somewhere down the line. | ||
| pmichaud | oh. | ||
| jonathan | Only allowing 9 such variables in a given scope, wouldn't work so well. | ||
| pmichaud | for that I was thinking of something like | ||
| jonathan | I need to think this through more, and I'm not planning it soon, mind. | ||
| pmichaud | PAST::Var.new( :name('$foo') :scope('register_int')) | 23:36 | |
| although I don't like register_int | |||
| and there's also an issue of dealing with lexical 'int' | |||
| kid51 | pmichaud: +1 from me on closing all those old tickets you've spotted. I've closed those about which I have some knowledge/competence, but most of the ones you've tagged in the last hour are outside of my scope. | ||
| pmichaud | kid51: thanks for closing them. I just wanted a second confirmation, which you provided. | 23:37 | |
| jonathan | We need to have it in an int register and use that in the current scope, and then have a lexical PMC registered which is just a register reference PMC. | ||
| pmichaud | oh, that could work. | ||
| jonathan | I had to do similar for .Net, though it was a bit of a hack and didn't work with closures. It needs a little Parrot guts tweaks. | 23:38 | |
| pmichaud | anyway, I was also thinking of things like | ||
| PAST::Var.new( :name('xyz'), :scope('register'), :isdecl(1) ) | |||
| which generates | |||
| .local pmc xyz | |||
| jonathan | Doing that and using that would avoid issues of conflicting with register numbers in generated code. | ||
| pmichaud | I'm also thinking that a single PAST::Var node will explicitly be allowed to appear as children of multiple PAST nodes | 23:39 | |
| i.e.: | |||
| my $reg = PAST::Var.new(...) | |||
| PAST::Op.new($reg, ...) | |||
| and later | |||
| PAST::Op.new($reg, ...) | |||
| jonathan | I can see some :inline(...) in Rakudo going away quite nicely with :scope('register') | ||
| pmichaud | exactly. That's what made me think of it. | 23:40 | |
| also, you should be able to eliminate the "def" (or is it "$def") lexical. | |||
| jonathan | I was about to say the exact same. | ||
| OK, I'm very happy to see this addition. | |||
| pmichaud | there will also be :scope('root') to be able to get at other HLL namespaces | ||
| jonathan | pmichaud++ # spotting common hacks and making a good way to do it | ||
| Sounds good. | 23:41 | ||
| purl | speakers so loud they blow women's clothing off! | ||
| jonathan | PCT is evolving nicely. | ||
| pmichaud | yes, I was very pleased at coming up with :scope('register'). This past week has been very good for me to be able to come up with conceptual stuff :-) | 23:42 | |
| jonathan | I'll be pimping it to a load of undergrads who have just done a dynamic languages course next week at Stockholm uni. | ||
| pmichaud | ooooh, nice. | ||
| jonathan | Parrot and especially PCT. | ||
| pmichaud | another feature I played with for PCT was to be able to mark some symbols as non-volatile | ||
| jonathan | Meaning? | 23:43 | |
| purl | it has been said that Meaning is in the individual, whether a definition of a word, connotation of a symbol, or impression of a painting. | ||
| pmichaud | i.e., if a hll or system *knows* that called functions won't be rebinding symbols, then it can flag a block or variable as non-volatile and PCT will re-use registers instead of doing constant find_lex and get_global fetches. | ||
| jonathan | Oh, nice. | ||
| pmichaud | i.e., it'll cache the register for each symbol and re-use it within the PAST::Block | 23:44 | |
| jonathan wonders if we'll actually be able to use this in Perl 6. | |||
| pmichaud | in Perl 6, probably not... but NQP can use it! | ||
| jonathan | True. | ||
| In Perl 6, only with a good deal of code analysis. | |||
| We'd certainly put that in a separate optimize stage. | |||
| pmichaud | correct. | ||
| purl | no, it's not! | ||
| jonathan | purl: yes it is, n00b | ||
| purl | jonathan: huh? | ||
| pmichaud | I've tried to get rid of some of those autoreplies from purl, but without success. | 23:45 | |
| jonathan | The sounds good one is the one I need to learn to stop triggering. | ||
| pmichaud | my itchy triggers is "correct." | ||
| I already learned to stop saying "morning, all" | 23:46 | ||
| jonathan | "you're welcome" or similar tends to illict a less than nice response too... | ||
| Next week, I'm pondering doing Rakudo day on Wednesday. | 23:47 | ||
| $other_job could do with my time on Monday for sure, and probably Tuesday too. And on Thursday afternoon I'm heading off to Stockholm for conference stuff. | |||
| (Lecture and workshop) | |||
| pmichaud | yes, next weekend we're going on a vacation here | ||
| (memorial day weekend in U.S.) | |||
| jonathan | Ah, OK. Enjoy it! | ||
| Anywhere nice? | 23:48 | ||
| pmichaud | Wednesday is likely the best day for me too | ||
| jonathan | OK, sounds good. | ||
| purl | speakers so loud they blow women's clothing off! | ||
| jonathan | DAMM! | ||
| Eevee | whoops, my reduce() doesn't work for empty list | 23:49 | |
| pmichaud | we're going to somewhere called "Fossil Rim". Basically hiking and outdoorsy stuff with the kids. | ||
| jonathan | Eevee: That's a tricky one to solve without defining multi-subs, which is what operators do. | 23:51 | |
| Maybe just return undef for now. | |||
| pmichaud | (return undef for now)++ | ||
| jonathan | pmichaud: Sounds nice. :-) | ||
| Eevee | jonathan: that's what I was going to do | ||
| that's what the example impl in the spec does anyway | |||
| in pir, is "undef()" supposed to be "new 'Undef'" now? | 23:53 | ||
| pmichaud | no. | ||
| I suggest 'undef'() | |||
| (for rakudo.) | |||
| Perl 6 doesn't have an 'Undef' type. | |||
| just call rakudo's undef() function directly and let it return the proper value. | 23:54 | ||
| Eevee | both are used in List.pir but undef() doesn't work | ||
| incidentally, "say undef()" with parens doesn't work in rakudo | |||
| pmichaud | oh | 23:55 | |
| that's right, rakudo parses undef specially at the moment. | |||
| jonathan | pmichaud: There is no undef function | ||
| $P0 = get_hll_global 'Failure' # is probably OK | |||
| Tene | pmichaud, jonathan, whichever asked: the reason that -> { ... } thinks that a signature is set is that -> *always* binds $?BLOCK_SIGNATURED, regardless of whether there are any parameters. | ||
| I haven't fixed it yet. | |||
| It'll take some reworking of that method | 23:56 | ||
| Eevee Sandwich.new | |||
| pmichaud | and yes, S04 seems to indicate that -> { ... $^x ... } is valid | 23:58 | |
| fixing pointy block parsing is another of those things on my list of things to get done :-) | |||
| Tene | Also on mine. | 23:59 | |
| jonathan Pivo.new() | |||