Camelia, the Perl 6 bug

IRC log for #parrot, 2008-05-17

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced