Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets.
Set by moderator on 22 June 2010.
00:10 patspam joined
darbelo Wait. When did I get a Tapir commit bit? 00:11
dukeleto: ping 00:12
cotto_work time to go home 00:15
00:15 Andy joined
dalek pir: 3bb8c2e | darbelo++ | CREDITS:
Add myself to credits.
00:16
00:21 davidfetter joined 00:22 arnsholt joined 00:25 jjore joined
darbelo tell me more german 00:27
wrong window.
purl I love you too, dad.
00:27 Khisanth joined 00:31 slavorgn joined
cotto ohai' 00:31
00:32 patspam joined 00:33 theory joined 00:41 eternaleye joined
dalek rrot: r47770 | tcurtis++ | failed to fetch changeset:
Sync with trunk and regen manifest.
00:41
cotto parrot git? 00:42
purl parrot git is repo.or.cz/w/parrot.git or github.com/leto/parrot
darbelo msg whiteknight Plumage fixed for parrot HEAD. Spread the word! 00:48
purl Message for whiteknight stored.
kthakore darbelo: ok! 00:50
darbelo: can I do plumage parrotSDL ?
bacek_at_work aloha, cotto 00:52
darbelo kthakore: Not really. You have to teach plumage how to fetch, build, install, etc. your project.
That's done by writing a small json file in a predefined format. 00:53
kthakore darbelo: how?
darbelo: I have it
darbelo purl plumage?
purl i guess plumage is the future Parrot module ecosystem. It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at gitorious.org/parrot-plumage/parrot-plumage and the design docs are at trac.parrot.org/parrot/wiki/ModuleEcosystem
kthakore darbelo: github.com/kthakore/parrotSDL/blob/...otSDL.json
darbelo: now how will people get it? 00:54
darbelo For now we just ship a few with plumage, or have people manually download. japhb has plans for a central repo and lots of automagic stuff.
japhb kthakore, In other words, send your .json to one of us with a commit bit, and we'll happily add it to the repo. 00:55
darbelo For now just dump it into your plumages metadata/ dir and do plumage test <name of the json file>
kthakore japhb: you want me to give you a commitbit to parrotSDL? 00:56
japhb: what is your github account?
japhb: also here is the .json github.com/kthakore/parrotSDL/blob/...otSDL.json
darbelo And on that note. I depart in the search for foods.
japhb kthakore, I don't have much time, sadly. That's why Plumage has been not getting good attention recently.
kthakore japhb: ok
japhb kthakore, pushed. 00:59
kthakore japhb: yay!
japhb If you happen to know any companies interested in having Plumage and want to pay for my Plumage grant, let me know. ;-) 01:00
kthakore japhb: I have 20 dollars
japhb Heh.
kthakore is that a grant?
ok food 01:01
01:03 abqar joined
tcurtis bacek: NQP appears to break if Capture provides array. 01:04
bacek_at_work tcurtis, hmm... Strange 01:05
tcurtis As a specific example, ext/NQP-rx/src/stage0/nqp-setting.pir will have [] in a number of places where it should have some other namespace, which produces some imcc syntax errors. 01:08
dalek rrot-plumage: 118d332 | japhb++ | metadata/parrotSDL.json:
[metadata] Add parrotSDL.json; kthakore++
01:10
cotto clever girl? 01:11
clever girl is www.youtube.com/watch?v=LvLu9Nfd_SU
bacek_at_work tcurtis, I'll try to look at it tonight. 01:12
01:12 ash_ joined 01:23 rurban joined
tcurtis pmichaud: ping 01:39
dalek rrot-linear-algebra: a4211ba | Whiteknight++ | src/pmc/nummatrix2d.pmc:
when looping, we should do row first. Other cleanups and changes for consistency
01:40
rrot-linear-algebra: 63787f8 | Whiteknight++ | (2 files):
Add 1.5 metric crap-tons of new vtables. Also, add stub tests. I think we can
cotto git++ 01:42
dalek rrot: r47771 | tcurtis++ | branches/gsoc_past_optimization/src/pmc/capture.pmc:
Capture provides hash. NQP breaks if Capture provides array.
01:47
cotto Is there a slicker way of writing for/if in nqp? 01:50
tcurtis cotto, what do you mean?
01:51 plobsing joined
cotto for (@a) { if $_.foo { ... } } 01:51
tcurtis No idea. 01:53
sorear next unless $_.foo might work 01:57
bacek_at_work cotto, you can use "postfix" if afaik
cotto I'll make it work first, then make it all shiny. 01:58
bacek_at_work cotto, fair enough :) 02:00
cotto bacek_at_work, is there an easy way to turn on PIRATE debugging? 02:01
s/?/ output?/
bacek_at_work cotto, which part?
cotto pbc generation in this case, but I'm not sure how in general either 02:03
ash_ plobsing: i am testing my nci changes on linux (ubuntu 10.04) it's building fine, but not all of the nci tests are passing, i am looking into that right now 02:04
bacek_at_work cotto, for PBC I'm usually just change setting DEBUG flag. 02:06
proper way is implementing CLI handling in PIR::Compiler.
just didn't have time to do it.
cotto ok
pmichaud tcurtis: pong 02:10
tcurtis pmichaud: do you know why NQP breaks if Capture "provides array"?
pmichaud likely because NQP or the regex engine depend on "does array" to distinguish arrays of match objects from individual match objects 02:11
tcurtis Okay, thanks. 02:18
cotto Is that the best way to differentiate between an array of match objects and an individual match object, given the other constraints at work in nqp? 02:28
pmichaud at the moment, yes. isa checks don't quite work because there's not a common base class for arrays. 02:32
...and I never ran into a place where I needed a Capture or Match to be marked as "does array"
02:35 janus joined 02:45 cognominal joined 02:58 ash_ joined
dalek rrot: r47772 | tcurtis++ | branches/gsoc_past_optimization (14 files):
Refactored ACCEPTS and ACCEPTSGLOBALLY logic from PAST::Pattern to Tree::Pattern.
03:09
03:19 rurban_ joined 03:39 LoganLK joined
dalek rrot: r47773 | tcurtis++ | branches/gsoc_past_optimization (10 files):
Start moving non-PAST-specific patterns to Tree::Pattern subclasses.
04:27
04:35 s1n joined
dalek rrot: r47774 | tcurtis++ | branches/gsoc_past_optimization (7 files):
Move PAST::Pattern::Any to Tree::Pattern::Any.
04:44
Coke Pct question - tcl has a syntax for variable expansion, $hash(key) - what the hell do I put into the action for that to do a hash lookup? 05:07
did anyone ever point out that you /can/ loadlib from NQP? 05:09
tcurtis Coke: to do a hash lookup? If I'm correctly understanding you, github.com/perl6/nqp-rx/blob/master...ns.pm#L729 is how NQP-rx does it. 05:10
Coke (you have Q:PIR { # ANY PIR YOU WANT })
ah, I was looking in the PAST docs. =-)
tcurtis: ok. I fail to see where the key is specified there. 05:11
tcurtis Coke: Frankly, neither do I... 05:12
Coke (and if <EXPR> is the key (which it looks like it is), then where is the hash itself?
tcurtis Ah. We need to look in the "variable" action, I think. 05:13
Or not... I'm not sure. Misread that alternative. 05:14
Coke ah, no, that does help. 05:16
danke.
dalek rrot: r47775 | tcurtis++ | branches/gsoc_past_optimization (7 files):
Move PAST::Pattern::Transformer to Tree::Pattern::Transformer. It only works on PAST's though.
05:17
tcurtis Glad I could help. 05:26
05:36 fperrad_ joined
Coke of course, I'm just cargo culting this stuff. *sigh* 05:45
... and it doesn't work. =-) 05:46
Giving up for tonight. zzzzzzzzz
dalek rrot: r47776 | tcurtis++ | branches/gsoc_past_optimization (4 files):
Fold PAST::Pattern::Node into PAST::Pattern since it's the only remaining subclass(other than its subclasses).
05:49
cotto bacek_at_work, what's next. ;) 06:32
dalek r: 3570a38 | cotto++ | src/POST/Key.pm:
first shot at a POST::Key implementation
06:37
r: a8d868a | cotto++ | (6 files):
implement to_pbc for POST::Key, add a basic test
r: e02c600 | cotto++ | (5 files):
minor code and English fixes
06:43
cotto looks like desugaring of $P0['foo'] = 3 needs some love 06:48
nope. set_keyed and get_keyed are definitely nyi 06:50
bacek_at_work cotto++, it's in Actions.pm :) Feel free to implement them 07:06
cotto in progress 07:07
though there's an inconsistency between kc and pc that's not entirely obvious
bacek_at_work excellent! Looks like we can have almost functional PIRATE by the end of the week!
cotto gets out the rum 07:08
dalek rrot: r47777 | tcurtis++ | branches/gsoc_past_optimization (6 files):
Added a stub PCT::Pattern class.
07:44
rrot: r47778 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library (2 files):
Move PAST::Node.match and .subst methods into PCT::Node in the file PCT::Pattern.pbc.
rrot: r47779 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library (2 files):
Move PAST::Pattern.attr into PCT::Pattern, along with the accessors corresponding to PCT::Node "attributes".
07:51 cosimo joined 07:56 clinton joined
dalek rrot: r47780 | tcurtis++ | branches/gsoc_past_optimization/runtime/parrot/library (2 files):
Move check_attribute, check_children into methods on PCT::Pattern. Rename check_node_attributes to

Add check_pct_node_attributes.
08:17
rrot: r47781 | plobsing++ | branches/dynop_mapping (3 files):
Actually remap ops.

examples. Larger exmples/tests are still extremely segfaulty.
cotto bacek, my latest commit to PIRATE adds a failing test. The Actions.pm code should work, but I'm not sure how to get PIRATE to generate the kc and pc at the right time. 08:32
dalek r: 8bad9b7 | cotto++ | (3 files):
add tests and broken support for set_keyed and get_keyed
cotto My morning brain may be smarter.
the test is the last one in t/03-pbc/01-basic.t 08:34
tcurtis Good night folks. 08:42
purl and bots!
tcurtis bacek: I refactored PAST::Pattern a lot tonight. It's to the point where most of its functionality can easily be extended to any tree-like structure. Tomorrow, I'll work on some helpers for making that even easier for PCT::Node subclasses. I'll also have to change PAST::Walker/Transformer to support other types better(but this really needed to be done anyway), but it will hopefully be ready for use optimizing POST in PIRATE no later than Friday. That's not 08:44
guarantee, though.
cotto That was pretty darn quick. 08:47
bacek aloha, humans 08:50
cotto o hi.
bacek tcurtis++, cotto++, (world domination)++
dalek rrot: r47782 | cotto++ | trunk/src/packdump.c:
[pbc] output element numbers in hex to make it easier to trace through pbc dumps
08:51
bacek cotto, I'll look at failed test later tonight. 08:53
cotto great
my remaining brain cells are on strike demanding more down time 08:54
bacek have a good night 08:55
plobsing urg. won't be able to get dynop_mapping into a reasonably working state tonight.
plobsing sleeps 08:56
cotto good idea 08:57
tomorrow is almost certain to come
bacek cotto, still around? 09:13
dalek r: 3499a7b | bacek++ | (3 files):
Change key.type to 'kc'. Add workarond for ConstTable Keys handling. Remove one
09:18
purl dalek: that doesn't look right
09:39 muixirt joined 09:53 TiMBuS joined
dalek tracwiki: v10 | jimmy++ | CageTasklist 09:59
tracwiki: No CPAN
tracwiki: trac.parrot.org/parrot/wiki/CageTas...ction=diff
kudo: b043847 | moritz++ | src/Perl6/Module/Loader.pm:
emit more awesome error message when importing a symbol would override an

Previously that died with "Multiple declarations of lexical $symbol". Next step: don't die when using the same module twice (don't know if that's going to be quite as easy...)
10:08 lucian joined 10:34 gaz joined 10:46 bkuhn joined
nopaste "bacek" at 192.168.1.3 pasted "cotto: Keys Grammar changes." (15 lines) at nopaste.snit.ch/21505 11:35
bacek msg cotto I broke pirate. Catch me (tomorrow) to discuss handling of "keys". See nopaste.snit.ch/21505 for proposed grammar changes to simplify out lives.
purl Message for cotto stored.
11:53 dalek joined, whiteknight joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34547), fulltest) at r47782 - Ubuntu 10.04 amd64 (g++) 11:59
whiteknight good morning, #parrot 12:04
moritz good localtime()
does parrot have any IPv6 support?
whiteknight hello moritz, how are you today?
moritz: not that I am aware 12:05
moritz fine, thank you
whiteknight I've never done any IPv6 socket work, is it difficult?
moritz I don't think so; I guess it's just like ipv4, but with different API calls in the background 12:06
whiteknight I'll have to look into it. Parrot definitely *should* have IPv6 support, if it doesn't already 12:07
moritz somebody on perlmonks suggested some concentrated effort on perl 5: www.perlmonks.org/?node_id=846021 12:08
whiteknight ...it actually looks relatively easy to add IPv6 support 12:18
I don't see anything in the sockets implementation here that looks tied to IPv4. It might be worthwhile to test it to see if IPv6 works 12:24
moritz has a working ipv6 tunnel at home 12:25
12:25 eirik joined
szbalint t-online gave me a native block. Maybe I should set it up finally. 12:26
moritz szbalint: they do that? and actually route it? 12:30
it seems parrot has no real networking tests - or am I just missing something? 12:31
szbalint yes, it's working. currently opt-in, but they are planning to make it default enabled for most customers by end of the year 12:33
12:34 bluescreen joined
moritz cool 12:34
I'll have to ask them
szbalint (this is .hu I'm talking about, might vary for .de or .at) 12:36
multinationals suck :)
13:09 JimmyZ joined
whiteknight purl msg bubaflub: more contributors are always welcome! If you tell me your github username I'll add you as a committer to PLA 13:12
purl Message for bubaflub stored.
13:13 hercynium joined
dalek rrot: r47783 | khairul++ | branches/gsoc_instrument (10 files):
Added test for Probe class + interface updates.
13:15
13:29 patspam joined 13:41 anon08 joined
anon08 Hi. Looks like the link to NQP at parrot.org/languages is either broken or doesn't point to anything. 13:42
moritz anon08: thanks for letting us know 13:43
NQP is discontinued; the new link should point to nqp-rx on github 13:44
anon08 yw
13:44 anon08 left
moritz updated. 13:45
13:59 bubaflub joined 14:02 patspam joined 14:06 gbacon joined 14:23 theory joined 14:29 hercynium joined 14:30 whiteknight joined 14:31 estrabd joined 14:48 plobsing joined
dukeleto ash_: don't merge master, merge the upstream branch (on github) 14:49
ash_ dukeleto: alright 14:57
14:59 lucian_ joined
dukeleto ash_: upstream is a mirror of parrot trunk. master has merge commits 15:00
ash_: some content, different commit histories
ash_ i'll try to switch it to upstream instead of master 15:01
15:16 PacoLinux joined 15:22 davidfetter joined
dalek TT #1689 created by NotFound++: is_tty or isatty? 15:30
TT #1689: trac.parrot.org/parrot/ticket/1689
rrot: r47784 | NotFound++ | trunk/src/pmc (2 files):
implement isatty method in Handle, fix it in FileHandle and improve Handle POD
15:44 hercynium joined 16:01 jan joined
dalek rrot: r47785 | NotFound++ | trunk/t/pmc/orderedhashiterator.t:
some more OrderedHashIterator tests
16:03
16:08 cotto joined
cotto ~~ 16:09
bacek, you around
?
16:29 cognominal joined 16:36 hercynium joined
darbelo reads the bakclog 16:39
NotFound Ooooppss... wrong commit message- 16:50
dalek rrot: r47786 | NotFound++ | trunk/src/pmc (2 files):
trailing space
16:52
17:24 gbacon joined 17:33 whiteknight joined 17:34 hercynium joined
cotto_work hello 17:45
whiteknight hello cotto_work
17:47 slavorgn joined 17:57 patspam joined
cotto_work msg bacek Ping me when you're up and let me know what you're thinking about PIRATE? 18:16
purl Message for bacek stored.
cotto_work s/?/./
18:17 lucian joined
dalek rrot-linear-algebra: f5a1faa | Whiteknight++ | (3 files):
Add freeze/thaw to Complex- and PMCMatrix2D. Add tests for freeze/thaw that the
18:21
rrot-linear-algebra: dac680b | Whiteknight++ | (3 files):
Some fixes to NumMatrix2D and flesh out most of the new test methods. Total is
sorear whiteknight: Hi 18:25
purl hey, sorear.
sorear whiteknight: I'm curious - if you know - how did linear algebra come to matter? 18:26
whiteknight sorear: what do you mean?
sorear Why is so much scientific computation these days expressed in terms of giant matrices?
18:30 dmalcolm joined 18:32 ambs joined
whiteknight sorear: for a number of reasons. The big two are because it tends to be easy to model complex systems as matrices, and because it tends to be very efficient to manipulate matrices on computers 18:33
a polynomial equation, for instance, can be turned into a vector and combined together using vector convolution. Then dot-product that against an array of values and you get your answer 18:34
systems of linear differential equations can likewise be converted into a matrix format and solved that way using computers 18:35
sorear mm 18:36
NotFound And bug matrix operations are paralelizable
s/bug/big
whiteknight yeah, that's what I mean by efficient. When you start talking about vectorized CPU instructions (SSE, MMX, etc) those are specifically designed for matrix operations 18:37
plus, anything with graphics (bitmaps) are all huge matrix equations
cotto_work clock?
purl cotto_work: LAX: Wed 11:37am PDT / CHI: Wed 1:37pm CDT / NYC: Wed 2:37pm EDT / LON: Wed 7:37pm BST / BER: Wed 8:37pm CEST / IND: Thu 12:07am IST / TOK: Thu 3:37am JST / SYD: Thu 4:37am EST /
whiteknight a 1024x768 display is treated internally like a 1024x768x4 matrix, and what you see on the screen is calculated as a functin on that matrix 18:38
18:51 patspam joined 18:53 patspam joined
tewk who wrote (link?) the excellent rant on why pointing newbie contributors to reams of docs, faqs, procedures and policies is absolutely the wrong way to build community? 19:06
whiteknight tewk: no idea. I know what you're talking about but I don't remember who wrote it
cotto_work sounds promising. I'd like to see that if either of you find a link. 19:09
19:10 LoganLK joined
tewk mst wrote something similiar but I don't think it was him. 19:16
dalek rrot: r47787 | chromatic++ | trunk/src/pmc/default.pmc:
[PMC] Added a quick constant string pointer check to Default PMC's isa as a
19:19
19:20 patspam joined 19:24 patspam joined, Coke joined
Coke accidentally dropped his connection. whoops. 19:25
Coke hopes he didn't miss anything. =-)
atrodo Just the magic that made parrot fast 19:27
cotto_work boy did you ever
no
t
atrodo "return 1;" 19:28
cotto_work we could totally get "hello world" optimized with something like that.
atrodo i love NQP's "Confused" error 19:31
cotto_work That's good. You'll see it often. 19:32
atrodo does that indicate the parser has failed? 19:33
cotto_work If you get an error, the parser has probably failed. 19:34
Coke Confused is the generic "i can no longer parse this", yes. 19:35
pmichaud: it was not quite working. I am close. :P
19:36 davidfetter joined
dalek kudo: f3d8af8 | moritz++ | src/Perl6/Compiler.pir:
make @*INC writable, by popular request (RT #75956)
19:37
parrot: 30cc7d4 | (David Fetter)++ | html/ (3 files):
Added some slides.
atrodo So, Confused eq "atrodo has no idea what he's doing".
cotto_work feel free to nopaste your code or otherwise share it here 19:38
atrodo i'm almost to that point. 19:39
which itself may help by making me think through the problem more
dalek nxed: r518 | julian.notfound++ | trunk/winxedst1.winxed:
add 'using extern' namespace scoped to mean pir '.loadlib'
19:40
cotto_work it often works that way
atrodo the more perl6 i learn, the more magical it is. 19:41
cotto_work It took me a while to get to like nqp, but I love it now that I know it well enough to get a little work done.
atrodo Aye, i suspect that'll happen to me. 19:42
moritz the pir:: support in nqp makes it very effective for parrot stuff
atrodo unrelated, does nqp support twigil's? specifically $^ ? 19:45
moritz no, I think only the * twigil 19:46
19:46 s1n joined
atrodo kthakore> My next YAPC session is the game one you were talking about the other day 19:47
Coke My only problem with NQP is a lack of PAST undersatnding. 19:50
(my lack, not nqp's)
kthakore atrodo: yay! 19:54
atrodo: have fun
purl Don't do anything I wouldn't do!!!
atrodo Looks like the recording equipment is in this room. I'm not sure if that question was ever answered for you 19:55
cotto_work That's an important step, but I don't think videos from either of the past two YAPC::NAs were ever posted. 19:56
atrodo The YAPC coordinators were complaining about that, so hopefully they do a better jobs 19:57
cotto_work Here's hoping. 19:58
kthakore cross fingers
atrodo There have been some really good ones, but then, I don't have any frame of refrence
kthakore atrodo: btw you can be on #sdl to ask real questions as robhas not learned the new SDL stuff going on right now :) 19:59
robert
cotto_work pmichaud's lolcat history of Perl 6 lightning talk is great.
atrodo He didn't do that :(
kthakore atrodo: what?
atrodo sorry,t hat was towards cotto_work 20:00
kthakore atrodo: fine then *hmph*
cotto_work I'm sure you'll find plenty of other awesomeness.
atrodo cotto_work> I have 20:01
20:05 Coke joined, Psyche^ joined 20:08 Coke joined
dalek rrot: r47788 | tcurtis++ | branches/gsoc_past_optimization (3 files):
Add a helper function for more conveniently defining subclasses of PCT::Pattern anduse it to define PAST::Pattern::Control.
20:08
20:34 tcurtis joined, estrabd joined 20:36 estrabd joined
dalek nxed: r519 | julian.notfound++ | trunk/winxedst1.winxed:
refactor Namespace.getpath to Namespace.getpath and RootNamespace.getpath to
20:42
moritz tcurtis: I've just tried to add an optimization stage to rakudo 20:45
along the lines of your second-newest blog post
tcurtis: it dies with "load_bytecode" couldn't find file 'PCT/Pattern.pbc'
tcurtis: should that file be installed, and isn't?
atrodo gist.github.com/450522 # That gives me a confused. 20:47
I suspect, that the problem is not with the code itself, but the fact that it's the second time I've tried to compile something
tcurtis moritz: I'd been doing some refactoring and hadn't yet updated what should be installed. Sorry about that. I'll commit a fix in a moment. 20:48
cotto_work atrodo: that's a single line of commented-out code
moritz tcurtis: no hurry, I'll go to bed now anyway
atrodo cotto_work> you are correct
cotto_work I wouldn't expect much from it.
atrodo A blank string will not phase it, but once it has any content, it gets confused 20:49
cotto_work what is this "it" you're talking about? nqp is perfectly happy with that comment.
tcurtis moritz: Expect to find it working when you wake up. Also, please let me know how you find the API. 20:50
atrodo it is nqp compiler in an embedded situation
Time to make a test case, see if it's me or someone else. 20:51
dalek kudo: 11cbd4f | util++ | (3 files):
Change dynops build from deprecated ops2c.pl to new NQP-based ops2c
20:52
purl dalek: that doesn't look right
cotto_work It's nice to see a deprecation go smoothly for a change. 20:54
no pain, no sudden changes, just "This thing is deprecated. Please switch to this other similar thing within the next three months." 20:57
21:04 whiteknight joined
tcurtis moritz: fix commited. 21:05
There's currently not any way to find any but the first method with a given name in a class's MRO, right(from PIR or HLL, at least)? 21:09
cotto_work tcurtis, I know that Rakudo implements something like that. 21:10
I'm syre it could be exposed if it'd be useful and if it's not already accessible. 21:11
dalek rrot: r47789 | tcurtis++ | branches/gsoc_past_optimization/MANIFEST.generated:
Fix installation.
21:14
rrot: r47790 | coke++ | trunk/runtime/parrot/library/SDL.pir:
Remove random debug output noticed by quietfanatic++
tcurtis looking at rakudo to see how they implement nextwith/nextsame now. 21:16
kthakore Coke: yay! 21:17
Coke: can't you just import github.com/kthakore/parrotSDL there?
Coke: it fixes all the tests
NotFound Can someone add parrot-mysql metadata to plumage? 21:18
japhb NotFound, sure, send me the json and I'd be happy to. 21:19
NotFound japhb: code.google.com/p/parrot-mysql/sour...mysql.json 21:20
japhb NotFound: Pushed, enjoy! 21:22
NotFound Thanks
japhb bp 21:23
er
np
NotFound Happy to see plumage working again 21:24
japhb DITTO
Many thanks to darbelo++ for that
cotto_work bp != np 21:25
darbelo bp != p ? 21:26
japhb On so many levels
dalek rrot-plumage: 76c38f9 | japhb++ | metadata/parrot-mysql.json:
[metadata] Add parrot-mysql.json, NotFound++
21:30
21:59 Hunger joined
cotto_work clock? 22:12
purl cotto_work: LAX: Wed 3:12pm PDT / CHI: Wed 5:12pm CDT / NYC: Wed 6:12pm EDT / LON: Wed 11:12pm BST / BER: Thu 12:12am CEST / IND: Thu 3:42am IST / TOK: Thu 7:12am JST / SYD: Thu 8:12am EST /
bacek good morning, humans 22:13
cotto, ping :)
whiteknight good morning, bacek
cotto_work hio bacek
I was just wondering if you were up yet.
bacek whiteknight, aloha
22:13 s1n joined
bacek cotto_work, I am. 22:13
cotto_work What great and lofty plans have you for PIRATE? 22:14
22:14 patspam joined
bacek cotto_work, demistify keys. 22:14
cotto_work yarly
bacek I don't quite understand how imcc select proper op...
cotto_work I was hoping it'd make sense to you. 22:15
bacek basically, there is 4 ops which accept keys - delete, exists, defined and set
cotto_work I guess I underestimated imcc.
and new?
purl new is the constructor method of Wx::App
bacek nope, "new" accepts pmc
purl, forget new
purl bacek: I forgot new
cotto_work Oh yeah. It can accept a kc and pretend that it's a pc. That confused me. 22:16
bacek cotto_work, it was one of the reasons behind change Grammar.
Did you see nopaste?
cotto_work yes
bacek ok. 22:17
My current idea - separate keyed ops into different category and parse them early.
rule labeled_instruction { <label>? [ <keyed_op> || <pir_instruction> || <op> ] } 22:18
keyed_op will create Key with .type('kc') 22:19
op will use <namespace_decl> and create Key with .type('pc')
(Last thing - figure out what the heck is "kic") 22:20
make sense?
cotto_work Sure.
Does desugaring keyed set/get present a problem? 22:21
bacek cotto_work, nope. Desugaring should create Key.type('kc')
cotto_work So we just need Key.type to be mutable. 22:22
That's not quite what I meant.
We need to be able to set it.
bacek Yes. 22:23
There is still dark area about other types. We have 4 of them - "k", "kc", "ki" and "kic"...
cotto_work If kic is just a keyed int constant, that's pretty trivial to deal with 22:24
bacek when we should emit it?
cotto_work beats me
whiteknight ki is an intger key
[1;2]
k is a key with other crap too
[1;"foo"]
bacek not kc? 22:25
whiteknight int ops, it's INTKEY and KEY
cotto_work I think kc is a key constant, i.e. somewhere in the constants table
bacek cotto_work, yes. It's how pirate treat them now.
whiteknight c is constant, yes 22:26
bacek so, set $P0, [1], $S0 -> set_p_kic_s?
cotto_work and it's consistent with what i've found trolling through bytecode
whiteknight Personally, I don't know how k ever gets called since all keys are constant
cotto_work There's an easy way to find out.
bacek set $P0, [1;2], $S0 -> set_ki_s
whiteknight if the are not constant and generated at runtime, they would be p
or, maybe it's the other way around 22:27
but I don't know how anybody would differentiate between k and kc (or ki and kic)
bacek whiteknight, there is no way to distinguish "a[b] = c" vs "a = b[c]" if keys aren't constants. 22:28
whiteknight maybe the difference is the contents of the key
bacek both will be set_p_p_p
whiteknight so [1;"foo"] would be k, but [$I0;$S0] would be kc
bacek other way round
whiteknight yes, other way
I'm certain that's it 22:29
I suspect it's only the first element of the key that's counted
bacek yes. But how you can express non-constant keys in pir?
cotto_work bacek, that code generates set_p_kic_sc
whiteknight so [1;$S0] would be kc, while [$I0;"foo"] would be k 22:30
cotto_work $P0[1] = 'asdf'
whiteknight yes, [1] would be kic
sorear We haven't gotten rid of keys yet?
cotto_work same for $P0[1;2] = '...'
bacek sorear, trac.parrot.org/parrot/ticket/903
[1;$S0] and [$I0,"foo"] both kc 22:31
cotto_work same for $P0[1;'2'] = 'asdf'
bacek cotto_work, [1;'2'] is kic???
cotto_work nm. kc 22:32
whiteknight bacek: yes, I would suspect so
try it to see, but that's what I think
cotto_work I should just make a table
bacek basically [] always generate k*c.
(I suspect it)
whiteknight bacek: there's only one way to find out 22:33
NotFound [1] isn't a key, get_..._keyed_int
bacek whiteknight, NOOOO. I don't want to look at IMCC code again.
sorear ...allison wants to KEEP multidimensional hash lookups? eew.
bacek sorear, yeah... 22:34
We should use it only for namespaces, not Hashes.
cotto_work NotFound, [1] goes to get_x_keyed and that (possibly, depending on the PMC) goes to get_x_keyed_int 22:35
NotFound bacek: how do you know the difference if you only have $P0 ?
bacek NotFound, ?
purl it has been said that NotFound, is there any reason to keep RT#50092 open?
NotFound bacek: $P0['x';'y'] -> $P0 can be a hash, a namespace... 22:36
nopaste "cotto" at 192.168.1.3 pasted "a table" (6 lines) at nopaste.snit.ch/21522
bacek NotFound, yes. It's up to particular pmc to decide how to handle it... 22:38
cotto_work, thanks! 22:39
So, there is just single optimization inside imcc to select kic when key is single int
cotto_work, what about $P0[$I0]?
cotto_work set_p_ki_sc 22:40
as you might guess
bacek yes :)
cotto_work though I'll eat my hat if anything uses it
(fun fact: I don't have a hat on) 22:41
bacek it's better not to have it
loop: $P0[i] = 0; if i<100 goto loop
quite common pattern
.local int i 22:42
cotto_work cotto-- #brain turn on plz
bacek cotto++ # whatever :) 22:43
So, plan is:
1. Separate keyed_ops in grammar.
2. Create Key in Actions with type 'ki' for single int Register, 'kic' for single int Constant, 'kc' otherwise 22:44
3. Change op to have <namespace_decl> instead of pir_key
4. namespace_decl.ast will produce Key with type 'pc' 22:45
Correct?
NotFound bacek: that's a bug in imcc, it allows nonsensical namespace declarations. 22:46
bacek NotFound, e.g.?
cotto_work I'm not entirely clear on the difference between namespace_decl and pir_key, but yes.
NotFound bacek: .namespace [ 0 ]
bacek cotto_work, namespace_decl accepts strings only.
cotto_work Ok. So something silly like $P0 = new [0;1] won't parse. wfm 22:47
That makes sense.
bacek NotFound, this bug doesn't exists in pirate :)
NotFound cotto_work: Silly? Is a two-dimensional array access.
Uh, no, didn't see the new. 22:48
bacek ~/src/pir (master)$ head -1 t.pir
NotFound But then you can't use it for keys.
bacek .namespace [ 0 ]
~/src/pir (master)$ ./installable_pir --target=parse t.pir
Confused at line 1, near ".namespace"
NotFound, step 1 in plan - separate keyed_ops :)
NotFound I'm confusing myself, better goto bed X-) 22:49
bacek and now it's time for dayjob for one silly robot. 22:50
c u
cotto_work bye
I'll hack on what I can tonight. not sure what time will be like
apart from being linear and moving forward at a mostly-fixed rate according to the laws of relativity 22:51
whiteknight HATES imcc error messages 22:52
especially when combined with NQP
error:imcc:syntax error, unexpected PREG, expecting '(' ('$P452')
in file 'EVAL_1' line 64029477
darbelo hates imcc errors
darbelo hates imcc
whiteknight syntax error ... somewhere 22:53
cotto_work darbelo: may I suggest a bit of PIRACY?
whiteknight ^ that's a quote from goddamn IMCC
darbelo whiteknight: Youa re using a op that got removed :)
whiteknight: Yes, that's not what the error says. That's still your problem. 22:54
whiteknight did anybody put together a list of the ops that actually got removed?
darbelo grep for '$P452' and see what is at the beggining of that line.
you can start the list with that one ;) 22:55
tcurtis whiteknight: probably something to do with pir:: 22:56
whiteknight, for example, if you do pir::fish or some other non-existent op, it'll do that iirc.
dalek nxed: r520 | julian.notfound++ | trunk/winxedst1.winxed:
fix silly mistake in MultiStatement
22:57
cotto_work We have OpLib. That should be entirely evitable.
NotFound darbelo: yeah, and imcc is doing a marvelous job helping locate it X-)
cotto_work though dynops complicate the matter
as always 22:58
NotFound cotto_work: OpLib supposedly uses the current active op set, so it should be able to do the work. 22:59
tcurtis did not notice that darbelo had already said essentially what I said.
whiteknight did index_i_s_s disappear?
cotto_work NotFound, yes but we care if the op is defined at runtime not compiletime.
darbelo src/ops/string.ops:=item B<index>(out INT, in STR, in STR) 23:00
src/ops/string.ops:=item B<index>(out INT, in STR, in STR, in INT)
NotFound cotto_work: if you load the dynop after compliling it you can't compile it X-)
darbelo whiteknight: Is this code you are working with anywhere I could find it? 23:02
whiteknight kakapo build fails with those cryptic build errors I showed earlier. PLA doesn't even configure, setup.pir silently exits somewhere inside fperrad's distutils routine 23:03
cotto_work (silent failure)--
NotFound Welcome to dynop hell 23:04
nopaste "darbelo" at 192.168.1.3 pasted "Try this" (12 lines) at nopaste.snit.ch/21523 23:05
23:05 Hunger joined
darbelo I don't have blas on this box anymore, so nopaste.snit.ch/21523 is the best I can do with the PLA setup.pir. 23:05
whiteknight darbelo: yeah, I did that already. Turns the IMCC parse errors into the silent failure inside distutils 23:07
darbelo Odd. 23:08
NotFound whiteknight: You can read parrot version from config instead of using sysinfo 23:10
darbelo That too. 23:12
But I don't think that's te issue here.
NotFound darbelo: loading a dynop currently always can be.
In fact, it is! 23:13
darbelo Dammit, wasn't this solved already?
NotFound darbelo: is workarounded, not solved. 23:14
.sub 'system_linker_settings'
.param pmc config
- $S0 = sysinfo 4
+ $S0 = config['os']
if $S0 == "linux" goto have_linux
Uh... config isn't what I believed it was... 23:16
nopaste "NotFound" at 192.168.1.3 pasted "Fix for PLA setup.pir" (24 lines) at nopaste.snit.ch/21524 23:20
NotFound whiteknight: ping 23:23
dalek rrot: r47791 | tcurtis++ | trunk/compilers/pct/src/POST/Node.pir:
Remove redundant POD for POST::Node.result
23:25
nopaste "tcurtis" at 192.168.1.3 pasted "codetest failure in trunk" (15 lines) at nopaste.snit.ch/21525
bacek_at_work aloha,
tcurtis I don't know what pccmethod_deps.t tests, so I'm not sure how to fix that. 23:26
bacek_at_work cotto_work, btw, we don't need Key.keys. We can just push parts into it (for consistency with all other classes)
cotto_work wfm\\ 23:27
I figure that since we have a subclass, why not make it different from its parent. ;) 23:28
bacek_at_work :)
23:31 athomason joined
cotto_work I guess without .keys, the only reason for POST::Key to exist as a separate subclass is for mmd. 23:33
it'd be a good idea to note that in the source code 23:34
bacek_at_work cotto_work, wfm
23:38 patspam joined
NotFound msg whiteknight pasted "Fix for PLA setup.pir" (24 lines) at nopaste.snit.ch/21524 23:40
purl Message for whiteknight stored.
cotto_work clock? 23:47
purl cotto_work: LAX: Wed 4:47pm PDT / CHI: Wed 6:47pm CDT / NYC: Wed 7:47pm EDT / LON: Thu 12:47am BST / BER: Thu 1:47am CEST / IND: Thu 5:17am IST / TOK: Thu 8:47am JST / SYD: Thu 9:47am EST /
23:49 Coke joined
mikehh tcurtis: BTW ran some tests on gsoc_past_optimization branchearlier - 23:54
gsoc_past_optimization branch: All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r47782 - Ubuntu 10.04 amd64 (g++) 23:55