www.parrot.org/ | Parrot 1.4.0 "Mundo Cani" Released!
Set by moderator on 21 July 2009.
Whiteknight good morning bacek 00:00
GeJ Good morning everyone 00:02
japhb o/ 00:03
cotto helol
I guess we're too friendly. 00:06
I'll have to insult him next time he comes by.
japhb Like that Star Trek species that thinks being nice is suspicious, and belligerence leads to fast friendship. 00:07
cotto andy++ for taking on makedepend. It'll be so nice not to have to bother with that manually again. 00:13
dalek rrot: r40354 | NotFound++ | trunk/runtime/parrot/library/pcre.pir:
[lib] try harder to load libpcre in the default platform case
00:15
kid51 japhb++ for very thought provoking posts on list 00:25
japhb kid51: thank you!
00:25 bacek joined
bacek goor moroning again 00:26
japhb o/ again 00:27
bacek still looking to someone to grant commit access to svn.parrot.org/languages 00:32
cotto Coke, can you do that? 00:33
I'm surprised that regular committers don't have that bit by default.
bacek me either 00:34
RA layer request failed: Server sent unexpected return value (403 Forbidden) in response to MKACTIVITY request for '/languages/!svn/act/555c0c03-bda7-419a-a0ab-572b5f835335' at /usr/lib/git-core/git-svn line 3604 00:35
japhb Might be a hold over from when languages/ held the big languages as well, and they wanted the HLL managers to own commit control for their subdir.
bacek time to go. 00:45
see you
01:02 dukeleto joined 01:15 TiMBuS joined 01:30 Aisling joined 01:40 mokurai joined 02:03 payload joined
dalek rtcl: r559 | coke++ | trunk/runtime/builtin/a (3 files):
Experiment with using hllmacros (and some of my own) to make the code less
02:26
Coke msg bacek please open a ticket for the languages request. 02:28
purl Message for bacek stored.
02:33 payload joined 02:42 janus joined 03:23 bacek joined
bacek o hai 03:23
msg chromatic Unfortunately my proposal for Keys refactor isn't applicable without deprecation notice... 03:26
purl Message for chromatic stored.
dalek TT #894 created by bacek++: Grant commit access to /languages to bacek 03:28
03:31 theory joined 03:58 JimmyZ joined 04:49 wayland76 joined 04:53 Zak joined 05:09 ewilhelm joined 05:45 iblechbot joined 05:46 flh joined
JimmyZ LTM? 05:50
purl i heard LTM was longest token matching
dalek rrot: r40355 | bacek++ | branches/tt24_unicode_numifications:
Branch tt24_unicode_numifications was merged to trunk
05:56
rrot: r40356 | bacek++ | branches/tt761_keys_revamp:
Branch tt761_keys_revamp was merged to trunk
wayland76 purl: seen allison? 06:07
purl allison was last seen on #parrot 3 days, 11 hours, 19 minutes and 25 seconds ago, saying: (and expanding from there) [Jul 28 18:42:29 2009]
06:22 bacek joined 06:25 mberends_ joined 06:40 mberends joined 06:45 JimmyZ joined
Coke I'm trying to get .const 'Foo' bar = baz to work, where baz is a sub that returns a resizable array. getting instantiate_str() not implemented in class 'ResizableStringArray' 06:56
... freaky. do you just use .const 'Sub' , even when the thing being returnd isn't a sub? 06:57
(apparently so, yes.) 07:03
flh Coke, 'Foo' is actually 'ResizableStringArray' in your example?
.const 'Sub' bar = baz means that "bar" is a Sub PMC, which stores the "baz" Sub, we don't care about the return type of baz 07:06
or am I missing something?
07:07 bacek joined
Coke I have a .const sub that returns a RSA and is marked :immediate. 07:14
er, I have a .sub that...
then later I have .const 'ResizableStringArray' foo = 'sub_name' 07:15
that gives the error.
if I make it .const 'Sub' foo = 'sub_name', that works.
This is surprising to me.
JimmyZ In rakudo: it uses .const 'Sub' foo = 'sub_name' 07:20
bacek Coke: I filled ticket for access. What's next? 07:23
Coke hope that allison responds. 07:24
JimmyZ: a documentation patch for the PIR PDD to explain that the type after const must == 'Sub' would be good. 07:25
dalek rtcl: r560 | coke++ | trunk/src/macros.pir:
Add .null() to create a null pmc.
rtcl: r561 | coke++ | trunk/runtime/builtin/array.pir:
Elminate all helper subs in [array]. Sub calls are expensive.

instead of creating a global to store the option names, switch over to a .const
  'Sub'
Coke wonders if the partcl spec test will run any faster now that [array] isn't making any unneccesary invokes. 07:28
dalek rtcl: r562 | coke++ | trunk/runtime/builtin/break.pir:
use hllmacros
07:30
JimmyZ Coke: it's in pdd19, but hadn't refer to 'Sub' type 07:32
Coke: just used by examples.\\
Coke The type must be int, num, string or a string constant indicating the PMC type. 07:34
... where PMC type is apparently always 'Sub'.
JimmyZ and in compiler_faq
How do I locate or create a subroutine object?
Coke (or at least, the type of the .sub, not the type of the returned PMC)
JimmyZ There are several ways to achieve this, depending on the location of
the subroutine.
.const 'Sub' foo = 'foo' 07:35
# ...
foo()
sorry,bad chatzilla
Coke . o (ZZZ) 07:36
JimmyZ compiler_faq.pod lists more ways.
07:37 gerd joined
gerd Hello Patrick 07:37
07:38 wayland76 joined
gerd pmichaud: Are you listen? 07:39
cotto Coke, does partcl do any HLL annotations?
clock?
purl cotto: LAX: Sat 12:39am PDT / CHI: Sat 2:39am CDT / NYC: Sat 3:39am EDT / LON: Sat 8:39am BST / BER: Sat 9:39am CEST / IND: Sat 1:09pm IST / TOK: Sat 4:39pm JST / SYD: Sat 5:39pm EST /
cotto nm. He's asleep.
or thinking about sleeping 07:40
gerd Okay I will try another time. 07:42
07:45 payload joined 07:57 payload joined 08:07 payload joined, mokurai left
dalek rrot: r40357 | bacek++ | branches/keys_cleanup:
Branch for cleanup Keys as described on KeysRefactor page on wiki
08:08
08:13 bacek joined
bacek cotto: are woke up already? Or didn't sleep yet? 08:13
cotto didn't sleep yet 08:14
bacek yak... 08:15
cotto Mmmm. Yak. 08:16
bacek installing bison to fix using of Keys in IMCC... 08:17
08:22 chromatic joined
cotto apparently someone else isn't sleeping either 08:24
08:24 payload joined
chromatic Sleep? 08:24
purl but if I close my eyes they will come and gouge my eyes out with brass plated spoons
chromatic Darn clowns. 08:25
bacek chromatic: Do I understand correctly that concept of "slice" in Keys is gone? 08:26
chromatic I *think* so, but I don't know for sure. Allison knows. 08:27
I believe we never had good tests for it, and I don't remember seeing it in use.
bacek chromatic: it's not used. At least IMCC never set "in_slice" flag. 08:28
chromatic I remember that flag. Ugh.
08:38 Gerd joined 08:41 payload joined
bacek here we go. 08:50
dalek rrot: r40358 | bacek++ | branches/keys_cleanup/compilers/imcc (7 files):
Drop in_slice flag from IMCC. Slices are gone
08:52
rrot: r40359 | bacek++ | branches/keys_cleanup/src/packfile.c:
[cage] Remove unreached code from packfile.c. Slices are gone.
rrot: r40360 | bacek++ | branches/keys_cleanup/src/packout.c:
[cage] Remove checks for slice in packout.c
bacek Hey! One more commit!!! 08:53
chromatic: ok. You can forget this flag now :)
dalek rrot: r40361 | bacek++ | branches/keys_cleanup (3 files):
[cage] Remove last bits of KEY_slice_* defines.
08:55
bacek ok. more tomorrow 08:57
chromatic Don't do too much on that branch until we've discussed it more. Allison needs to look it over remember. 08:58
10:19 joeri joined, jimmy joined 10:31 Gerd joined
Gerd ping Patrick 10:32
purl I can't find Patrick in the DNS.
11:24 Whiteknight joined 11:48 MoC joined 12:09 kid51 joined 14:42 mikehh joined
mikehh All Tests PASS at r40361 (pre/post config, smolder, nqp_test, fulltest) - Ubuntu 9.04 i386 14:44
14:55 Psyche^ joined 15:15 theory joined 15:16 bacek joined 15:45 Limbic_Region joined 15:58 HG` joined 16:41 tetragon joined 16:54 HG` joined 17:05 jtal joined
jtal can someone tell me how to get to these chapters? docs.parrot.org/parrot/latest/html/...d.pod.html 17:05
the links doing point anywhere and I dont see any js 17:06
"dont point anywhere"
17:08 JimmyZ joined
jtal maybe google can tell me the file names 17:08
JimmyZ docs.parrot.org/parrot/latest/html/index.html 17:09
jtal thank you 17:10
JimmyZ the best way is to checkout the parrot source code, all docs are in parrot/docs/ 17:11
including draft.
jtal Alrgiht I'll do that...I think macports gave me an old version or something 17:12
ah yeah, 1.0.0 vs. 1.4.0 17:15
17:15 mokurai joined
jtal exit 17:25
booo
17:36 chromatic joined 17:40 theory joined 17:49 eternaleye joined 17:56 AndyA joined 17:59 flh joined 18:28 dukeleto joined
nopaste "NotFound" at 213.96.228.50 pasted "Patch: centralize allocation of pmc attributes, unfinished" (495 lines) at nopaste.snit.ch/17451 18:37
NotFound Can someone take a look at this and give an opinion?
chromatic How does that work for PIR-based PMCs? 18:39
cotto It makes init and destroy asymmetrical. 18:40
chromatic You can probably also set the active destroy flag when you malloc attributes.
cotto It would be nice to have that stuff done automatically, though. 18:41
(and the asymmetry is an implementation detail) 18:42
NotFound Yes, I was thinking about that, destroying automatically, avoiding the need to activate the destroy flag just for that thing,
chromatic Hm. That's a nice side benefit. 18:43
NotFound I don't looked at pir object yet, but in the current states it passes test.
chromatic The Object PMC should handle that. 18:44
NotFound The key issue is to strore the size of the attributes struct in the vtable.
And this is done at vtables initialization time, a mininal cost. 18:45
chromatic That makes PMCs shorter and easier to write.
Especially as this is a part of PMCs that's easy to get wrong. 18:46
cotto Yes.
NotFound Yes, and having the struct at hand people tends to use it instead of SET_ATTR
But the main reason that give me that idea is the posiblity of calling SUPER inside init 18:47
Avoiding error-prone code duplication in derived pmcs.
chromatic Exactly. 18:48
NotFound Well, if you like the idea I'll keep working on it.
chromatic Please do. 18:49
Automatic deallocation of PMC_data in PMC destruction is good too.
I really like getting rid of the active destroy flag for that.
NotFound Yes, it may avoid the need for lots of destroy overrides. 18:50
18:52 elmex joined 18:54 iblechbot joined 19:28 Zak joined 19:30 MoC joined
dukeleto is there something like Memoize.pm for Parrot? 19:30
and secondly, should there be?
chromatic Seems like a potential optimization step. 19:34
dalek rrot: r40362 | tewk++ | trunk/compilers/ncigen/src/parser/actions.pm:
[NCIGEN] reduce memory usage
19:38 Pedr joined 19:39 Pedr left 19:53 davidfetter joined 20:02 pece joined 20:11 bkuhn joined
dukeleto i would like to report that I wrote a solution of Euler Project Problem #1 in PIR as a part of euler_bench: github.com/leto/euler_bench/blob/ma...001/01.pir , and it appears to be roughly the same speed as Perl 5 with Parrot 1.4.0 20:15
this is using int's instead of pmc's though 20:16
chromatic: do you think memoization should be part of parrot core or as a library ? seems pretty darn useful across many use cases 20:17
chromatic I'd like it available as a core feature. 20:22
20:27 jtal joined
dukeleto chromatic: sounds good to me 20:27
chromatic: so the developer would have an API to say which functions are to be memoized and then the optimizer would replace function calls with their looked up values (if they exist) for functions with said memoize flag? 20:34
GeJ Good morning everyone. 20:40
chromatic That's how I saw it.
20:59 mberends joined
cotto Turning a ops + timing info into something Callgrind can use is considerably trickier than getting the profile. 21:12
dalek rrot: r40363 | NotFound++ | trunk/src/exceptions.c:
[cage] show message of uncatched exceptions throwed before PIO initialization
21:15
21:19 Whiteknight joined
dalek TT #895 created by NotFound++: Towards automatic allocation and deallocation of PMC attributes 21:49
cotto NotFound++ indeed 21:50
dalek rrot: r40364 | NotFound++ | trunk/src/pmc/string.pmc:
[cage] cleanup init and destroy in String PMC, TT #895
21:52
Whiteknight NotFound: ping 21:57
NotFound pong 22:01
Whiteknight NotFound: TT #895 is a great idea. I think we can make some changes in the GC to make the allocations more efficient too 22:02
NotFound Whiteknight: nice
Whiteknight so we can allocate the attribute structures from pools instead of manually allocating them from malloc 22:03
are you going to make a branch for that?
NotFound Whiteknight: have you looked at my nopaste with a work in progress?
Whiteknight no
NotFound "NotFound" at 213.96.228.50 pasted "Patch: centralize allocation of pmc attributes, unfinished" (495 lines) at nopaste.snit.ch/17451
Whiteknight: I'm doing some cleanings towards that goal, with that in place I'll try to evaluate if it can be done without a branch. 22:05
But when done, the way to allocate the attributes becomes an implementation detail of the pmc allocation, and can be changed without affectiong any pmc. 22:06
Whiteknight Okay. I'll fiddle with the GC a little bit and see if I can create a more efficient allocation algorithm for you to use
dalek rrot: r40365 | NotFound++ | trunk/src/pmc (8 files):
[cage] clean init and destroy on several pmc, TT #895
22:13
bkuhn Hey, can I ask a question about PAST ? 22:23
NotFound bkuhn: the only risk is that nobody can answer ;) 22:24
bkuhn ok. I'm wondering if there is a reason that PAST::Block() doesn't do a newclosure in the generated PIR code. 22:25
This all started because I decided to work on pynie, and I noticed lambda closures didn't work (failed tests).
So I looked at the PIR being generated, and it seems clear that lambda expressions in Python need newclosure. 22:26
In pmichaud's talk at OSCON, I noticed that he said PAST::Block() would generate a closure.
I was hacking the Actions.npq in pynie to force-generate a newclosure at the right time, and indeed it seems this is what Rakudo does as well, actually. So I guess that's right, but I wanted to ask. 22:27
22:27 bacek joined
NotFound I think that you need a pmichaud for that. 22:32
bkuhn haha. I figured I might. :) 22:33
NotFound pmichaud: ping 22:35
bkuhn Actually, no need to bug him. I'm getting close to having a patch anyway. When I post it to pynie, I'm sure he'll tell me the answer in that context. ;) 22:37
(i.e., either my patch is right, or I misunderstood how to use PAST::Block())
NotFound bkuhn: maybe both ;) 22:38
22:39 rg joined 22:43 kid51 joined
dalek rrot: r40366 | NotFound++ | trunk/src/pmc (24 files):
[cage] set PMC_data to NULL in destroy on several pmc, TT #895
22:50
bkuhn Here's a question the folks around might have an answer to, as it's purely procedural: I notice that the pynie sources have no CREDITS file. I know you all recently pulled the languages stuff from the main Parrot sources. So I was wondering, would it be useful to submit a patch to Parrot removing Pynie-related credits from parrot and a patch to Pynie adding them into a file CREDITS for Pynie? 23:07
dalek rrot: r40367 | NotFound++ | trunk/src/dynpmc (3 files):
[cage] set PMC_data to NULL in destroy on several dynpmc, TT #895
23:08
Tene sad that unicode in parrot curses is broken. :( 23:09
NotFound bkuhn: better ask in the mailing list, maybe removing people from the CREDITS file can be seen as rude. 23:10
Whiteknight NotFound: I have the GC stuff ready, easier then I expected 23:11
bkuhn NotFound: yeah, but the plan is to put them in the correct credits file. :) Anyway, I think I'll do the first part first... submit a patch to Pynie that brings the right credits to it.
NotFound bkuhn: good idea
purl NotFound: Good Idea: Throwing a surprise party for your father. Bad Idea: Throwing a surprise party for your grandfather.
Whiteknight when you're ready to make the switchover, I'll have my patch ready (I'll post it to the ticket when I get it cleaned up more)
Tene bkuhn: make sure to explicitly notify pmichaud of the pynie patch. afaik, he doesn't watch pynie at all. 23:12
bkuhn oh, ok. Tene: what's the best way to notify him?
NotFound Whiteknight: I'm thinking about adding a flag to the PMC, to let them ask for the service. That way we don't risk to break anything during the transition.
bkuhn I was going to put a patch into launchpad, which seems the right way currently...
Tene bkuhn: email
Whiteknight NotFound: a flag is a very good idea 23:13
pmichaud NotFound: pong 23:21
NotFound pmichaud: bkuhn had a question that I think you can answer 23:22
pmichaud about pynie?
bkuhn Yeah, although I just submitted a patch. :) 23:23
NotFound about PAST
bkuhn pmichaud: bugs.launchpad.net/pynie/+bug/407838
I took a look at pynie and noticed lambda closures weren't working.
I was wondering if there was a reason that PAST::Block() doesn't do a Parrot newclosure opcode. 23:24
I looked at the Rakudo sources, and noticed you seem to do it inline when you need it, so that's what my patch does.
But I didn't know if that was the "right way"
I remembered you said that PAST::Block() was for closures in your OSCON talk.... 23:25
... so I was wondering if I missed something.
pmichaud bkuhn: PAST::Block() tends to use "capture_lex" instead of newclosure 23:26
bkuhn Yeah, I noticed that.
pmichaud newclosure == capture_lex + clone
(or vice-versa, can't remember which)
bkuhn Right, I read that in the docs.
(it's the way you said it the first time)
for lambda expressions, you have to do a newclosure
pmichaud so, as long as something is capture_lex, then any clone acts like the same as doing "newclosure"
including assignment/copy 23:27
bkuhn hrm, then I wonder why lambda closure tests were failing in pynie.
pmichaud pynie might be doing binding instead of copy or assignment 23:28
anyway, one can always use :pirop('newclosure') to force a newclosure
as opposed to making PAST::Block always do it (which might be inefficient for some languages)
bkuhn Right, that makes sense.
I ended up doing this: my $closure := PAST::Op.new(:inline('%r = newclosure %0'),$past); # which was probably overkill. 23:29
where $past was the PAST::Block() generated for the lambda expression.
(I'm still learning the PCT, as you probably notice. :) 23:30
pmichaud: Anyway, I am going to offer a few patches on pynie. Is putting them in Launchpad bugs the right way to do it? 23:32
pmichaud bkuhn: we should be able to get you a commitbit to the pynie repository
bkuhn oh, cool. That was fast. :)
pmichaud checking 23:33
looks like pynie-dev on launchpad is correct
bkuhn ok, I'll put what I do in there for now. I'm in no hurry for a commitbit ... not sure how much time I'll have to contributed, but I didn't feel like doing normal work today so I started taking a look. 23:34
But I'll obviously take one if it's being offered. ;)
pmichaud okay, that sounds good. We need to find a good leader for that project (assuming it's not allison)
bkuhn My heart says "YES, PLEASE" by my head says: "DON'T COMMIT TO SOMETHING YOU DON'T KNOW IF YOU HAVE TIME FOR" :) 23:35
23:35 AndyA_ joined
pmichaud well, the README still lists me as project lead, but that really needs to be passed to someone else :-) 23:35
bkuhn hahaha
Tene I've been idly looking at it for months. I've been waiting for pcc_rewiring to land so that I can work on objects.
pmichaud bkuhn: do you have a google account? 23:36
bkuhn pmichaud: yeah, I don't use it often. Lemme look it up.
Tene bkuhn: you can register any email address as a google account, fwiw 23:37
bkuhn Yeah, but I didn't want to give Google my 'real one'. :)
pmichaud: Bradley.Sif@gmail.com seems to be it.
pmichaud okay, you're a committer. You can of course submit to launchpad if you prefer 23:38
bkuhn pmichaud: what's easier for you?
pmichaud well, I'm not tracking patches to launchpad at the moment, so if you submit there it'll be interesting to see who picks it up 23:39
bkuhn hahah
pmichaud if it goes for a week and nobody has applied it, then you could apply it yourself :)
bkuhn well, it sounds like submitting to launchpad is making extra work for either you or allison.
pmichaud it makes work for someone, yes :)
bkuhn pmichaud: I also notice there is no LICENSE file there. I assume it's supposed to be Artistic-2.0 (although the Google code project is GPL|Artistic). I assume no one brought over the license file when you moved it out of the languages dir from Parrot? 23:40
pmichaud bkuhn: that's a safe assumption. Feel free to add one. 23:41
bkuhn ok
pmichaud: while you are add it, can you approve me for the launchpad group so I can get on pynie-dev mailing list? (I submitted an "application") 23:43
pmichaud looks like you were approved already 23:44
bkuhn oh, ok. thanks
pmichaud maybe allison or bsdz got to it already
it does show that you applied an hour ago
bkuhn yeah that's why I figured no one had approved. 23:45
pmichaud looks like Allison took care of it (from email notification) 23:47
allison++
dalek rrot: r40368 | whiteknight++ | trunk (5 files):
[TT #895] Add some new experimental functions to the GC to help with automatic management of fixed-size structure allocations. Untested. Testing these things depends on future changes described in that ticket. Will be removed if not used and properly tested when that ticket is closed
23:51
Whiteknight NotFound: ping again 23:52
purl I can't find again in the DNS.
pmichaud time for sleep -- see you all tomorrow
bkuhn later.
Tene: can you send me to something to read that would help me understand why you are waiting for pcc_rewiring to work on object support in pynie? 23:53
Whiteknight purl msg NotFound check out r40368. Contains the GC functions to support TT #895. Should be straight-forward to use in your work. Let me know if you have any questions
purl Message for notfound stored.
bkuhn I am very new to the current state of Parrot, etc. so I am trying to learn all I can. 23:54
And if I hack on Pynie, it would be good to know good reasons to wait to do certain things. ;)
23:55 Zak joined
NotFound Whiteknight: be patient ;) 23:55
Whiteknight Patient? Me? Nope. The functions are already committed. use them at your leisure 23:56
NotFound Whiteknight: before using msg, I mean
Whiteknight oh, I'm not going to do that either :) 23:57
NotFound Well, msg is cheap anyway 23:58
purl Message for is stored.
NotFound purl: stupid bot
purl stupid bot is bad programmer, no cookie!