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: review experimental features for promotion or removal, fix 'make html', pre-release testing.
Set by moderator on 8 July 2010.
ash_ tcurtis: my original plan was to make an llvm based runcore that unrolls the runloop and runs the various llvm optimizations over that, but that is probably more than I can finish in the time we have left, so I am not sure of whats going to happen to that, i might start and just keep working on it after the GSoC ends 00:04
ping Coke 00:05
tcurtis ash_: sounds interesting. 00:06
ash_ i have been thinking, it might be easier, and along the same lines to do the same thing in pbc_to_exe
then it doesn't require the llvm
and it would make creating the llvm version that does it at runtime easier 00:07
00:18 dduncan joined
kid51_at_dinner make fulltest PASS on both linux/i386 and darwin/ppc at r48075 trunk 00:38
dalek rtcl-nqp: 5fefe08 | Coke++ | (3 files):
basic [upvar]
00:42
tcurtis pynie? 00:45
purl somebody said pynie was code.google.com/p/pynie/ or a Python implementation for the Parrot virtual machine or not on nqp-rx
Mark tcurtis: thnx for the heads-up 01:15
tcurtis Mark: I'm also going to try and go through the tutorial and update it for NQP-rx. 01:16
cotto_work It's all kinds of fun to think about the code behind this: www.kivasystems.com/demo/index.html 01:19
Note that the bots follow bar code stickers. The tracks incidental effects of their bacek-like precision. 01:20
s/tracks/tracks are/ 01:21
tcurtis almost wants to work in warehouse automation now. 01:26
I like the subtle awesomeness of how when the inventory pod is there, a laser pointer indicates the item to be put in the shipping pod. 01:30
cotto "little or no worker training" = very yes 01:42
tcurtis Soon, they will replace the workers with more robots. 01:43
cotto "Go away before I replace you with a robot and some Perl." 01:45
01:55 plobsing joined 01:58 jsut_ joined 02:35 eternaleye joined 02:47 janus joined
cotto seen allison 03:06
purl allison was last seen on #parrot 4 days, 6 hours, 6 minutes and 38 seconds ago, saying: NotFound: that removes the roadblock, so someone can work on it when inclined [Jul 8 20:59:36 2010]
03:13 hercynium joined 03:18 Chandon joined 03:27 khairul joined
khairul cotto: ping 03:34
cotto khairul, pong 03:36
dalek rrot: r48076 | khairul++ | branches/gsoc_instrument (7 files):
Added documentation.
03:45
rrot: r48077 | khairul++ | branches/gsoc_instrument/src/dynpmc/instrumentvtable.pmc:
Lowercased vtable groups.
NotFound cotto_work: actually winxed stage 0 written in C++ is a lot faster at compiling than the self-hosted stages, but the generated code is faster with the later. 05:47
Also, winxed programs can be as faster as hand-written pir. 05:49
cotto Shouldn't the generated code be the same speed? 05:53
NotFound cotto: should, but the self-hosted compiler has more optimizations. 05:54
cotto is tcurtis to blame?
NotFound No, winxed generates pir, doesn't uses past or post. 05:55
cotto I guess it wouldn't.
NotFound Stage 0 is not parrot based, so it's the only way. 05:57
05:58 uniejo joined
cotto though you'll get some for free once PIRATE is viable 06:01
NotFound Hope so, but anyway the stage 0 isn't feature complete, is mainly a bootstrap too, you are not supposed to use it for real programs. 06:04
s/too/tool
And stage 1 needs to do its own optimizations, to be able to know during compiling if expressions used to initialize consts can be optimized-out. 06:06
06:28 baest joined 06:48 jsut joined 07:20 fperrad joined
dalek rrot: r48078 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] more links
07:35
07:50 rv2733 joined 08:10 arnsholt joined 08:39 arnsholt joined 08:53 muixirt joined 09:01 clinton joined
bacek aloha, humans 09:10
muixirt hi bacek 09:16
bacek hi, muixirt 09:17
nopaste "muixirt" at 192.168.1.3 pasted "splint warning: false alarm?" (11 lines) at nopaste.snit.ch/21984 09:23
muixirt bacek for you :-)
bacek muixirt, false alarm. Strings are allocated from GC and doesn't require explicit deallocation. 09:27
muixirt bacek so bufstart is freed/reused by the GC? 09:28
bacek muixirt, yes
muixirt bacek: is there a simple rule to differentiate these two types of pointers/chunks of memory? 09:35
bacek PMC and STRING are GCable.
muixirt and all other objects are not? 09:36
bacek Buffers too, but I would like to get rid of them. They are basically strings.
nopaste "muixirt" at 192.168.1.3 pasted "pir string test memory/gc issues" (15 lines) at nopaste.snit.ch/21985 10:49
10:51 jsut_ joined
muixirt bacek: that is interesting! in the middle of the loop of the pasted example emory usage drops significantly (according to top). explanation? 10:52
s/emory/memory/ 10:53
bacek "pool compacting" 10:54
$S0 = $S0 . $S1
parrot's string are immutable. 10:55
So there is allocation of new string for lhs $S0.
But!
GC compacting is kind of independent
so, you can't "predict" when GC will be kicked off 10:56
muixirt and the loop seems to slow down 10:57
11:00 jan joined 11:27 AndyA joined 11:34 gaz joined 11:35 bkuhn joined
dalek kudo: ae4538a | moritz++ | src/core/Bool.pm:
Bool.Str
11:40
11:51 he joined 11:52 whiteknight joined 11:53 kid51 joined
whiteknight good morning, #parrot 12:00
moritz Good morning, Mr. Withworth
bacek moritz, +1 :) 12:11
12:11 lucian joined 12:24 fperrad joined
whiteknight good morning moritz, bacek 12:25
how are you guys today?
moritz I've had better days 12:26
12:37 ruoso joined 12:56 particle joined 13:00 Essobi joined 14:01 bubaflub joined 14:06 gbacon joined 14:08 whiteknight joined 14:13 plobsing joined 14:21 tcurtis joined 14:26 bubaflub joined
dalek nxed: r546 | NotFound++ | trunk/winxedst0.cpp:
minimal support for float in stage 0
14:44
nxed: r547 | NotFound++ | trunk/winxedst1.winxed:
optimize + for float const in stage 1
14:54
rrot: r48079 | khairul++ | branches/gsoc_instrument (7 files):
Code changes as suggested by cotto++.
15:02
cotto_work ~~ 15:08
dalek nxed: r548 | NotFound++ | trunk/winxedst1.winxed:
optimize == and != for string const in stage 1
15:13
nxed: r549 | NotFound++ | trunk/winxedst1.winxed:
codingstd fix
cotto_work nice diff, khairul 15:22
sorry. misspelled khairul++ ;)
khairul :) 15:23
15:26 patspam joined
dalek nxed: r550 | NotFound++ | trunk/ (2 files):
optimize / for int and float const in stage 1
15:28
15:30 whiteknight joined
cotto_work khairul, is there any reason you're using pir::set__IP($x) instead of +$x? 15:43
Instrument::Probe has a couple instances 15:44
khairul there were some that didn't work when i used +$x instead.
cotto_work really
khairul those should be in probe.nqp
cotto_work I'll have to dig into that
15:47 theory joined 16:13 eternaleye joined 16:15 whiteknight joined 16:19 skv_ joined 16:25 hercynium joined 16:43 zostay joined
cotto_work khairul: it looks like the build broke in your branch 16:44
khairul i'll try rebuilding. 16:45
cotto_work actually it may be a dependency issue 16:48
the serial build looks ok
khairul rebuilding works find on my mac. 16:49
cotto_work make sure that src/dynpmc/instrumentgc.dump and src/dynpmc/instrumentvtable.dump depend on src/dynpmc/instrumentstubbase.dump 16:57
khairul done. 17:08
tcurtis Does PGE-style "{*} #= key" work with NQP-rx? 17:12
moritz tcurtis: I think so, but it's deprecated 17:13
cotto_work yes
nqp uses it internally in one place
well, two
tcurtis is trying to rewrite the Squaak tutorial for NQP-rx. 17:14
cotto_work tcurtis++
that's much needed
dalek rrot: r48080 | khairul++ | branches/gsoc_instrument/src/dynpmc/Rules.in:
Added .dump file dependencies.
cotto_work I'd put that on my todo list if my tuits weren't shot this week.
Coke tcurtis++ 17:15
cotto_work but someone actually doing a thing is worth much more than a bunch of people with it on their todo lists
17:16 AndyA_ joined
moritz tcurtis: if you do, please don't mention #= key 17:16
it's gone from Perl 6, so in time it will go from nqp-rx too
tcurtis moritz: alright. I'll just use proto.
moritz alternatives include 0) protos 1) smaller tokens that don't need that 2) <.helper> rules with their own action method 3) embedded NQP blocks that set contextual variables 17:17
17:18 AndyA_ joined
moritz tcurtis: if you need any help with the squaak tutorial, shout 17:18
(not that I know PCT any better than you do... but maybe Perl 6, in parts) 17:19
speakiing of which... I have a problem in Perl 6 + PIR which is the same in NQP, so I better ask here 17:29
I want to get an attribute for an object at a particular class level 17:30
so, for example if B inherits from A, and both have a '$!foo' attrib, I want to be able to obtain both the class A and class B level attribute
I know that in PIR I can do that with a key 17:31
a la $P0 = getattribute $P1, ['A'], '$!foo'
can I do the same with pir::getattribute__MAGIC(...) somehow?
cotto_work the MAGIC is documented in compilers/pct/src/PAST/Compiler.pir 17:32
moritz so I guess I need some kind of Q 17:34
or is Q only for (set|get)_pmc_keyed? 17:35
Coke pir::getattribute__PQsS($P1, 'A', '$!foo') ?
Q is for anything that takes a key, I thought, but Iunno.
moritz Coke: but will that work for class names with :: in it? like Regex::Match? 17:36
Coke moritz: if something else is turning that into a real key, you'll have to, to.
*too
if Regex::Match is really ['Regex'; 'Match'], e.g.
moritz yes, it is
Coke: thanks, I'll try it... but first I have to unbreak what I broke right now... :( 17:37
pmichaud I'm concerned about jnthn/bacek's fix for TT #1631 17:39
17:55 theory joined 17:58 patspam joined
atrodo whiteknight> ping 17:59
whiteknight pong 18:03
how are you today, atrodo?
atrodo I'm doing fine, how about yourself?
18:03 hercynium joined
pmichaud Coke: ping 18:05
whiteknight atrodo: I am doing well 18:06
atrodo Good. I just wanted to ping you real quick to make sure you had seen my take on allison's lorito email ( github.com/atrodo/lorito ) 18:07
whiteknight no, no I had not
I'll look it over now. Thanks! 18:08
tcurtis atrodo++
atrodo Sure. I was going to send a note to parrot-dev, but I hadn't had time yet
cotto_work I'd encourage you to weigh in. The discussion seems to have died down. 18:09
atrodo I will, it's getting enough time to sit down to actually write the response, which should be soon 18:11
pmichaud 17:35 <Coke> Q is for anything that takes a key, I thought, but Iunno. 18:16
Not exactly.
Q is for "keyed aggregates"
(which is why I didn't choose 'k', which would be for "keys") 18:17
Coke pmichaud: pong
pmichaud parrot really has two types of keys -- it has keys that can be standalone operands, and keys that are part of some other aggregate
Q is for the latter. we don't have one for the former yet.
Coke k. 18:18
pmichaud but that's not the source of my ping :)
moritz what I want is getattribtute ["Some";"Class"], $P0, '$!foo' with pir:: syntax
pmichaud moritz: afaik, PCT doesn't support that syntax yet except via :inline
because we don't have a good mechanism for supporting ["Some";"Class"] 18:19
moritz :(
Coke if we're going to keep keys, we really need literal & dynamic keys. 18:20
pmichaud Coke: Agreed.
Coke at least then we could construct a Key at runtime to pass in.
pmichaud and we really need to decide if Key is something Parrot is going to keep.
there's been discussion that ['Some';'Class'] would really end up being a constant RSA
Coke keys don't have to be strings, though, but sure, an RPA is fine. 18:21
pmichaud well, I suspect that $P0[key1;key2] may not survive long.
which would leave only the bare case, and those are almost always constants. Anything else can be better constructed using non-keys. 18:22
18:22 cosimo joined
Coke I'm not sure why we support multilevel keys that way. (rather than just doing N single keyed entries) 18:22
pmichaud anyway, my question for Coke is in capacity as release manager :)
Coke shoot.
pmichaud (multilevel keys -- because it was expected to be faster)
r48074 introduced a "fix" to resolve TT #1631 18:23
whiteknight multi-level keys are only "faster" because there is an easy mechanism for storing them as constants in bytecode
pmichaud however, the fix changes a fundamental behavior of exception handlers in PCT
whiteknight if we were better about storing array literals as constants, they would be faster
18:23 Andy joined
pmichaud by my reading, we should have a deprecation notice for that 18:23
worse...
purl worse is, like, better
whiteknight purl forget worse 18:24
purl whiteknight: I forgot worse
pmichaud the "fix" is actually incorrect. PCT before r48074 was exhibiting the correct (and designed behavior)
whiteknight purl worse is <reply>worse? Worse? I can't possibly get any worse!!
purl OK, whiteknight.
Andy Has anyone heard back from Coverity with scan credentials? 18:25
pmichaud I guess I'm trying to decide where I step in and say "too bad for Rakudo, this fix is wrong so I'm reverting it". :-|
whiteknight pmichaud: wrong in what way?
(I'm just coming in to this discussion, forgive the ignorance) 18:26
pmichaud whiteknight: no problem, it's new -- I only brought it up this morning.
Coke if the fix is causing other breakage, I'd revert it. If you can post some code that breaks post-patch-application, that would seem sufficient.
pmichaud I don't know if the fix causes other breakage.
I do know that it's very possible that there would be languages or systems that would rely on the correct "unfixed" behavior.
Tene pmichaud: it breaks resuming from a handled exception.
looks like, at least.
Coke (this would especially help decide if we're breaking existing behavior as opposed to fixing a bug slightly the wrong way. 18:27
pmichaud Tene: right, I meant any "actual" breakage. I know that it breaks the design of PCT exception handlers -- I don't know if anyone was using that design.
Coke I'd rather not argue from the DarkPan, but provide a sample of code that fails to work properly with the patch.
pmichaud I suspect I can do that relatively quickly. 18:28
just a moment.
Coke that said, if you think the fix is wrong, It's basically you vs. jonathan, which is basically a rakudo thing. I haven't heard any other hll folks asking after that ticket.
pmichaud jnthn++ on #perl6 said to go ahead and revert.
Coke 14:27 <@jnthn> Go ahead and revert it
heh. 18:29
there you go. =-)
pmichaud he had been looking at it as a bugfix, but it's not a bugfix.
Tene If you want to pass through exceptions of some sort, that's what we have rethrow for.
pmichaud Tene: right
jnthn I guess I don't grok the design.
Tene also what we have can_handle or whatever method on exception handlers for, but iirc, subclassed exception handlers don't work right?
pmichaud jnthn: you grok the notion that a Perl 6 CATCH block could be invoked multiple times within the same outer closure, yes? 18:30
Tene Oh. Warnings.
purl hmmm... warnings is just a magical bitmask, iirc
Tene Warnings are automatically resumed.
jnthn pmichaud: Yes, that bit makes sense.
pmichaud: I meant the bigger picture though.
Tene So you catch a warning and ignore it by resuming, or logging, or whatever.
pmichaud Tene: correct
but catching a warning cannot remove the exception handler -- it has to remain for other subsequent warnings from the same outer block 18:31
Tene That's a case where resumable exceptions are actually used.
pmichaud Tene++
anyway, I'll revert.
jnthn Introspecting the continuation to find out if we threw from there feels wrong to me too.
Tene jnthn: we could add that behavior to the can_handle method of ExceptionHandler if we really want that to be a parrot default. 18:32
pmichaud I'd feel less bad about keeping the r48074 change if we were more than a week from a supported Parrot release.
jnthn Tene: It'd seem to me that if an exception is thrown from within an exception handler, that exception handler should be automatically excluded from consideration when looking for a handler. 18:33
Coke pmichaud: can always sneak it back in after. ;)
Tene We could even guard it with a flag in the EH that you have to enable, to keep compatibility.
jnthn Tene: Is there a case that breaks?
Coke pmichaud: speaking of exceptions; any way to farm out the NQP-RX update that would eliminate parrot-style control exceptions?
pmichaud Coke: well, whatever ends up in Parrot is what ends up in Rakudo Star :-)
Tene jnthn: If you want to catch warnings and log them your own way, you can only catch the first warning with this change. 18:34
pmichaud Coke: you mean eliminate the return exceptions?
18:34 joeri joined
jnthn Tene: No no, I wasn't asking what my patch breaks 18:34
Tene jnthn: if you want to exclude an EH from the search, that's what the can_handle method of EH is for; don't just remove the EH entirely.
Coke pmichaud: yes.
Tene Ah. I misread, then.
Coke (partcl-nqp has some breakage pending resolution of that issue.)
nothing super critical atm. 18:35
Tene jnthn: I can't think of any cases where you want an EH to catch exceptions thrown from itself, no.
pmichaud Coke: that's going to need to be post-Rakudo Star, I think.
jnthn Tene: Yes, that's what I was asking about. :-)
tcurtis It would be nice if there were pop_eh_i and push_eh_i ops. CATCH { } could pop and store the handler somewhere and resuming the exception would just push_eh first.
Tene I'm not confident at all that I'm exhaustively aware of all possibilities and use cases, though.
jnthn Me either, but it feels like at least a better default. 18:36
pmichaud I'm still not entirely convinced that eliminating the return exception is the correct thing to do, unless we can also properly pessimize it.
Coke pmichaud: wfm. (that's why I asked about the farming out instead of just asking you to do it. =-)
pmichaud: doesn't have to be eliminated, I just know that that was one way to fix the issue that partcl-nqp has with nqp's usage/handling of those excpetions.
pmichaud Coke: the more likely fix is that we figure out how we want to attach return exceptions to the lexical routine in which they were created. 18:37
Tene pmichaud: gather/take is another use of resumable exceptions, fwiw. I could imagine a control construct that intercepts take exceptions and does something with the payload, and then rethrows.
pmichaud and prevent the return handlers from catching any exceptions other than the lexically nested ones.
Coke note that this isn't just [return], but also [break] and [continue] 18:38
pmichaud Coke: yes, same issue there (for lexical-ness)
Coke but let's wait until next month. =-)
pmichaud we'll also want a way to handle "next LABEL" and "redo LABEL" in Perl 6, which also needs this same mechanism.
Tene I have a proof of concept for that working on my old laptop somewhere, if it's of use to anyone... 18:39
18:39 mikehh joined
Tene I wonder if I can find it... :( 18:39
Hmm. Looks like old laptop is off at home, so can't get to it from here. I'll try to look for it tonight. 18:40
18:40 davidfetter joined
jnthn pmichaud: On the topic of deprecation notices for this supported Parrot release... 18:41
pmichaud: Worth considering a possible blanket notice on p6object? 18:42
pmichaud jnthn: I wouldn't plan for p6object to go away yet
jnthn pmichaud: I'm not sure on timescales, thus the "possible"
pmichaud: I guess p6object needn't go. (more)
pmichaud p6object will certainly still be around after the October release 18:43
the earliest it could possible disappear would be January
jnthn pmichaud: My point is more whether nqp-rx would be using it, for example.
pmichaud and I suspect it'll be around even then
Coke pmichaud: I was looking at [proc] in partcl-nqp, and wanted to update the args handling code. I think I'm going to write the args handling code in /tcl/ and just prepend it to the source of the procedure and avoid trying to do it all in past. evil?
jnthn pmichaud: OTOH, nqp-rx has its own repo and deprecation policy.
pmichaud I'm hoping that whatever you/we come up with will be able to work with p6object as well (more)
jnthn pmichaud: I am *very* worried that I'm going to run into deprecation policy stuff, anyway. 18:44
pmichaud i.e., someone could have p6objects and newp6objects and things would work out okay -- they're just two implementations of a similar API
(thinking) 18:45
jnthn pmichaud: I'm not far enough along yet to have anything too solid.
pmichaud jnthn: right. and since we're on 3-month deprecation cycles, I think we're likely to be okay.
Unless you think nqp-rx will be switching to the new system before October.
jnthn pmichaud: Not so - if I work to the grant schedule it would be.
pmichaud which, I suppose is very possible.
I'm fine with adding a notice that nqp-rx and pct may be switching to a new underlying metaobject api. 18:46
jnthn +1
purl 1
pmichaud (or however you want to phrase it)
jnthn
.oO( /kick purl )
pmichaud most people aren't likely to be having to deal with things at that level anwyay.
jnthn pmichaud: Right, I agree.
pmichaud: And it'd be kinda sad not to have got a notice in that lets us move nqp-rx and PCT to a new underlying meta-object API and implementation, and not be able to reap the advantages I expect it can deliver. 18:47
pmichaud yes, add the notice.
jnthn OK, thanks, will do so.
pmichaud updated TT#1631 18:52
dalek rrot: r48081 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
Revert "[pct] Emit a missing pop_eh to fix TT#1631."

  (CATCH block) should not automatically remove the block from
catching future exceptions. This reverts commit 946fbea64de09972e47576accba82cfe479a8ebc.
18:54
Coke I haven't read the notice, but notices that "this will change" are vastly less helpful than "this is how you write code in the new world order." 18:55
just fyi.
cotto_work +1
purl 1
tcurtis See the recent dynops change and the chaos that ensued. 18:56
pmichaud Coke: ideally, "this is how you write code" will be unchanged in the new world order 18:57
Coke: but at this time we can't exactly guarantee that
PerlJam jnthn: blog about the new meta-object API and its advantages when you get a chance :) 18:59
pmichaud PerlJam: see news.perlfoundation.org/2010/07/hag...eta-m.html :-) 19:00
tcurtis jnthn: if your core meta-model implementation doesn't support multiple inheritance, please don't move NQP to it without implementing multiple inheritance on top of it for NQP.
tcurtis doesn't want his code to break.
pmichaud NQP will continue to have multiple inheritance.
PerlJam oh! jnthn++ pmichaud++ (Ian Hague)++ :-)
pmichaud the deep core may be single inheritance, but it'll have multiple inheritance on top 19:01
jnthn tcurtis: I thought I explained this yesterday?
tcurtis: Anyway, what pmichaud++ said
Maybe it wasn't you who asked. :-)
pmichaud: #phasers ;-) 19:02
tcurtis jnthn: It was me. But your responses yesterday sounded more like "languages that want multiple inheritance can implement it on top of it" than "Don't worry; your multiple inheriting P6object/NQP classes will still work." :) 19:06
jnthn tcurtis: Ah, I was not quite complete enough then. :-) 19:08
tcurtis: I shoulda then defined NQP as a language that wnated it. ;-)
tcurtis: I expect the level that doesn't handle it will rarely be used by folks directly, fwiw.
tcurtis: And it's still speculative that it won't anyway. :_) 19:09
19:13 LoganLK joined
tcurtis has a segfault. 19:33
nopaste "tcurtis" at 192.168.1.3 pasted "ooh... segfault." (18 lines) at nopaste.snit.ch/21994
tcurtis On tracing, the last op the trace displays is "add P1, P2, 1". P2 being 60983 at that point. 19:40
cotto_work #ps in 50
19:41 bubaflub joined 19:45 chromatic joined
bacek ~~ 19:56
Good morning, humans.
cotto_work ~~ 'bacek' 19:57
chromatic aloha
bacek tcurtis, GC vs C stack issue.
chromatic, aloha
tcurtis, PObj_mark is recursive. And you created a veery-long CallContext chain with .tailcall. 19:58
tcurtis bacek: why does it work with intvals? 20:02
bacek tcurtis, because intvals aren't GCable.
tcurtis, increase loop length by about factor 100.
or try to put "sweep 1" just before .return. 20:03
tewk_ GC shouldn't use the c stack for its mark stack.
chromatic It shouldn't, but migrating to a non-recursive (and a resumable) GC is a lot of work. 20:04
dalek kudo: f0dbe32 | moritz++ | (3 files):
get rid of match-bool cheat
20:06
kudo: b196d2d | moritz++ | src/core/Mu.pm:
A Mu.perl which dumps attributes of custom classes

because it doesn't quite work, and because Rakudo doesn't understand initialization of parent attributes anway.
kudo: 66ca1a7 | moritz++ | docs/ChangeLog:
add some ChangeLog entries
20:08 khairul joined 20:11 lucian joined
Coke wonders what the best way to find the past for a sub with a single slurpy @args is. /me guess write it in NQP and run it through --target=past. 20:20
cotto_work that's pretty easy 20:21
tcurtis Coke: looks like PAST::Var.new(:scope<parameter>, :isdecl(1), :slurpy(1)); 20:22
20:23 AndyA joined
dalek nxed: r551 | NotFound++ | trunk/winxedst1.winxed:
predef two args atan in stage 1
20:23
Coke tcurtis: how do I name it? =-)
dalek kudo: 97c91c6 | moritz++ | (2 files):
remove Safe.pm. It was not working anyway, and screwed up innocent programs
Coke actually, that doesn't matter. danke.
bacek Coke, *@arg? 20:24
tcurtis Coke: :name<somename>
Coke bacek: yah. pretty much every tcl sub has to be *@args, because parrot's parameter error handling doesn't let me override what I need to. (so i have to take everything and sort it out inside the sub)
bacek Why not :call_sig (as in rakudo)? 20:25
Coke be nice if parrot gave a hook for a block that could be invoked on a sub if there was a signature mismatch.
bacek: does that let me override the error message when the sub is invoked with the wrong # of args?
tcurtis Coke: I don't there is a wrong # of args if you do call_sig. 20:26
It gets all the args to the sub IIRC.
bacek Coke, yes. Basically parrot will give up and put responsibility on arg passing to HLL
cotto_work :call_sig is more like "Here, you deal with it."
chromatic #ps in 5
Coke bacek: "how"?
purl "how" is probably different for different languages
bacek .param pmc sig :call_sig 20:27
it will be CallContext object available for introspection.
Coke bacek - ok. is that substantially different that just taking in a .param pmc args :slurpy ? 20:28
bacek Coke, yes, it will contain named params as well 20:29
Coke (note that tcl doesn't really have non-positional named parameters, so that doesn't matter to me.) (they're named, but it's the position that matters)
bacek: ok. so no difference. =-)
bacek :)
chromatic #ps in 1 20:30
Coke grabs a koohii and hurries back.
20:34 wendar joined, wendar left, eternaleye joined
moderator 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: review experimental features for promotion or removal, fix 'make html' (talk to Coke), update tutorial (talk to tcurtis), pre-release testing. 20:42
Coke ARGH. trac.parrot.org is overcaching again. 20:43
moritz any objections to removing the GSOC Students: start here to from the topic? 20:44
I hope they've already started :-)
moderator Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | Priorities: review experimental features for promotion or removal, fix 'make html' (talk to Coke), update tutorial (talk to tcurtis), pre-release testing. 20:45
moritz waited long enough :-) 20:45
particle coke: if i know what's wrong, i can harrass #osuosl
atrodo 23 seconds is long enough these days?
moritz atrodo: depends :-)
Coke particle: edit a page. save your changes. taken to a page with no login creds with your changes not visible. 20:49
it's their caching tool, they're probably overaggressively caching portions of trac.
particle varnish--
dalek tracwiki: v172 | coke++ | WikiStart 20:56
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
tracwiki: v173 | coke++ | WikiStart
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
tracwiki: v1 | coke++ | ResolveExperimentals
tracwiki: trac.parrot.org/parrot/wiki/Resolve...ction=diff
tracwiki: v2 | coke++ | ResolveExperimentals
tracwiki: trac.parrot.org/parrot/wiki/Resolve...ction=diff
tracwiki: v3 | coke++ | ResolveExperimentals
tracwiki: convert some from pod to wiki
purl I don't know how to convert some from pod to wiki.
dalek tracwiki: trac.parrot.org/parrot/wiki/Resolve...ction=diff
particle coke: trac-side or drupal-side?
dalek kudo: 615dfc9 | (Timothy Totten)++ | (6 files):
Temporal/Date modifications and refactoring.

Added DateTime::strftime to Makefile.in Changed time-zone to timezone as per spec. Changed DateTime.parse() to DateTime.new() as per spec. Temporal => DateTime, and simplified changes. Signed-Off-By: Moritz Lenz <moritz@faui2k3.org>
20:59
kudo: 6ab7415 | moritz++ | build/Makefile.in:
build everything before we start testing

a 'make' or 'make install' builds modules.
21:02 cognominal joined
Coke particle: trac., not www. 21:09
particle thanks
21:10 whiteknight joined 21:41 bubaflub joined
atrodo (catching up to the parrotsketch log) As I'm thinking it through, I'm guessing that merging strings into pmc's will make some basic things more difficult 21:59
tcurtis atrodo: such as? 22:00
atrodo the main example I came up with was doing a lookup on a pmc. If you don't have strings, it seems that the only way to do it is to either bootstrap another pmc (a String) or with an integer 22:03
tcurtis atrodo: one option for dealing with that is to have a default lookup scheme implemented at the C level. e.g., piumarta.com/software/id-objmodel/objmodel2.pdf 22:07
Also, I think using symbols(i.e., strings with interning) as the keys for method dispatch might be preferable to strings. 22:11
Particularly since we want to get rid of the vtable/method and pmc/object distinction. 22:14
whiteknight atrodo: if you don't have strings, you can do lookup with any PMC key which provides a hashing algorithm 22:16
22:17 AndyA joined
chromatic symbols for dispatch and named attribute access is the right approach 22:18
whiteknight symbols?
purl symbols are often combined in strange way
whiteknight purl forget symbols 22:19
purl whiteknight: I forgot symbols
sorear whiteknight: lisp symbols
interned strings in Java-speak
a symbol is like a string, but they're stored in a weak hash table, so two identical symbols will always be ref-identical 22:20
whiteknight ah, gotcha
sorear if the argument to getattribute is a symbol from the constant table, and objects are indexed by symbols, we only have to do an intptr_t comparison, not a strcmp
chromatic and we can use a sorted data structure for the index if we do a lot of comparison lookups. 22:21
sorear we shouldn't be doing many lookups
$x."foo$bar" is a pretty rare op 22:22
chromatic True.
whiteknight PIC should take care of many of those cases, if we can ever get that project off the ground 22:23
tcurtis PIC?
purl i think PIC is a preprocessor for *roff, like tbl or eqn. or a language for drawing pictures and diagrams or pilot in command or MONKEY or Position Independant Code or Polymorphic Inline Cache or the popular line of Microcontrollers from Microchip or SHOW US THE PORN BITCH
chromatic We could populate most PICs at compile time, if we have a good expiration strategy. 22:24
tcurtis I'm guessing that polymorphic inline cache is the meaning we're using? 22:25
chromatic yes 22:26
atrodo note to self, don't start a conversation right before you have to leave. sorry 22:43
22:44 gbacon joined
Tene I find that very useful, actually. That way, you have a conversation to read when you get back. 22:47
atrodo Tene> That's true, I did, and I have some things to research 22:48
jnthn So adding to DEPRECATED.pod, it'll be "[eligible in 2.11]" for things I add now?
chromatic 2.9, I think.
jnthn k
chromatic or 2.7?
jnthn Wait, what is the current release going to be?
chromatic Post-lunch brainpower lull here.
atrodo I just don't have enough experience with not using strings as lookup keys to have a grasp of how that would work right now
chromatic 2.6
jnthn oh yeah, it's June 22:49
FAIL :-)
chromatic July!
jnthn Oh yes 22:50
...I haven't even post-meal to blame this on.
Oh...months are normally indexed from 1 and releases are indexed from 0. :-) 22:51
chromatic I only remember because we celebrated US independence by blowing up small pieces of it.
jnthn The British sowed that habbit so that after long enough, it would all be blown up, and thus they didn't have to go to the cost of winning the independence war anyway. 22:52
particle i think we mostly blow up small pieces of china now
jnthn
.oO( Dependence day )
22:53
dalek rrot: r48082 | chromatic++ | trunk/src/call/args.c:
[pcc] Reordered switch to improve branch predicts.
23:02
rrot: r48083 | chromatic++ | trunk/docs/project/support_policy.pod:
Explained experimental features more explicitly.
23:03 cotto_work joined
GeJ Bonjour everyone. 23:12
chromatic ca va 23:15
dukeleto NOTE: GSoC midterms are due this Friday July 16th at 19:00 UTC. Mentors can submit them at socghop.appspot.com
GeJ Good evening chromatic. 23:16
dukeleto 'ello
GeJ Heya dukeleto. 23:17
purl dukeleto is mentoring a few peeps. can't remember everyone. sure.
dalek rrot: r48084 | jonathan++ | trunk/DEPRECATED.pod:
Add deprecation notice on PCT's usage of P6object.
23:18
tcurtis Hello, GeJ. 23:19
GeJ Hi tcurtis. 23:21
Coke jnthn: did you mean to remove TT#868 from the DEP? 23:41
also, 2.9 is a supported release. it's either eligible to be removed in 2.7, or 2.10 23:43
jnthn Coke: ? 23:48
Coke: Didn't intend to remove anything, just add.
*confused look* 23:49
Coke: What is the correct "eleigible" line?
*eligible
2.10 or 2.7?
jnthn doesn't know latest dep pol
Coke 19:18 <+dalek> parrot: r48084 | jonathan++ | trunk/DEPRECATED.pod:
you deleted an entry. did you mean to do that?
jnthn No 23:50
gah, how'd I manage that 23:51
Coke jnthn: if I look at the diff, you removed an entry.
Iunno. =-)
jnthn Coke: added back
Coke: Is 2.7 too soon?
Coke as for eligibility release, it's basically "we can remove this from trunk any time after <supported release is cut>, which translate to the next non-supported release version.
jnthn Should it be 2.10?
Coke yes, 2.7 is too soon, because we need a notice in a supported version. 23:52
jnthn Right.
So 2.10
Coke er.
wait. I haven't had any beer yet.
jnthn ETOOLATE # has had beer, just commits crap :-) 23:53
Coke ... I think you can say 2.7.
because the notice will go out in 2.6, it's still /IN/ 2.6, and we don't support 2.7 or 2.8, so it doesn't matter. I think. 23:54
chromatic Sounds right to me, and I have Guinness in the fridge.
Coke yah. that sounds vaguely right. AIGH NO BEER.
Coke switches to dewer's. 23:55
23:56 Psyche^ joined
jnthn Thanks, updated. 23:56