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