parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
chromatic src/ops/*.c didn't get rebuilt? 00:00
00:00 Limbic_Region joined
kj builds fine on windows too 00:01
bedtime here. good night 00:02
dmknopp it built! make realclean did the trick 00:04
sorry for the confusion, thx all
chromatic I suspect that touch src/ops/*.ops would have worked too.
Good to know that that fixed things though.
00:06 tetragon joined 00:09 AndyA joined
Coke chromatic: is 123 lines of PIR with a load_bytecode of PGE.pbc small enough? 00:58
can still duplicate it sans tcl's PMCs.
msg chromatic 70 lines is as low as I can go. Enjoy. =-) 01:18
purl Message for chromatic stored.
chromatic 70 lines is good. 01:29
02:21 ab5tract joined 02:32 petdance joined 02:43 Hunger joined
Coke whee! 02:46
it was definitely a PITA coming up with that; but better me than you. =-)
Coke plays some assassin's creed.
chromatic Aha, MMD autoboxing works now. 02:47
Coke +1 02:50
purl 1
Coke purl, +1 is <reply>
purl i already had it that way, Coke.
chromatic Running the tests now.
One failure, but I'll penalize autopromotion by one point of distance, and that failure goes away. 02:54
Life is good.
Coke chromatic++
Life++
karma monopoly?
purl monopoly has karma of 1
chromatic You're going to love the code, too. 03:00
Stupidly simple.
Coke simple is good
chromatic You're going to hit yourself in the head with the nearest blunt implement and say "They let THIS guy fix bugs? Why, I could fix GC bugs myself if this is all the brainpower it takes to fix bugs!" 03:01
dalek r32211 | chromatic++ | trunk:
: [MMD] Allowed autoboxing of primitives into their corresponding PMCs when
: calculating MMD Manhattan distance -- at a penalty of one point of distance.
: Parrot's calling conventions handle autoboxing already. The one point penalty
: prioritizes any subsequent multi variants which handle the primitives directly.
: See RT #60124.
diff: www.parrotvm.org/svn/parrot/revision?rev=32211
Coke oh, you mean the fix for my GC bug? I thought you meant r32211
chromatic I did mean that. 03:03
Coke well, it looked straightforward; doesn't mean I could have done it. =-)
chromatic Sure you could. I've seen you type. You can do it! 03:04
particle chromatic++
i hate production release nights. 03:05
chromatic Yes, but Heroes is on tonight.
particle especially when your SA is in philly and the world series is on and his team is ahead
Coke our big production release was just pushed back into at least December, if not January 03:06
I have mixed feeligns.
particle my client does web stores for lots and lots of companies. they don't do any releases from 1nov to 1jan
so everybody's trying to get them in NOW 03:07
ab5tract particle: no worries, game got delayed
particle yeah, i know, which is why he's finally doing the work :)
ab5tract tho they might resume it later, i guess
Coke ... world series? really?
particle yeah, game 5
Coke sips a diet grape ginger ale.
particle shoot, we need a PDS2008 attendees page 03:08
ab5tract PDS? 03:22
purl PDS is, like, Palin Derangement Syndrome
ab5tract lol purl thanks
Tene Parrot Developer Summit
Coke no, PDS is Parrot Developer Summit 03:26
purl okay, Coke.
cotto chromatic, I've got a nice minimal PIR segfault, but it's over my head to debug. Should I post here or file a ticket? 03:37
particle TICKET. 03:38
Tene cotto: SOP seems to be to show chromatic if he responds here and post a ticket if he doesn't.
Tickets are always better than not tickets, though.
particle :)
chromatic I'm hungry. Tickets are better.
cotto ok 03:39
nopaste "cotto" at 96.26.202.243 pasted "PIR segfault with exceptions and multi VTABLE functions" (35 lines) at nopaste.snit.ch/14407
chromatic Could have been worse. Could have said IMCC. That would have been worse.
cotto I'll file a ticket then. 03:40
chromatic Except division by zero, which does touch IMCC.
Though it's not a compile-time division by zero. Okay, you're lucky.
Guess: exception['message 03:41
Guess: exception['message'] is an empty string.
Hm, it isn't. 03:42
cotto nope. It works fine if I use say instead of calling the sub.
chromatic Here's a fun one.
Change cause_sf to take a PMC instead of a string.
purl chromatic: that doesn't look right
chromatic too many arguments passed (3) - 1 params expected 03:43
current instr.: 'cause_sf' pc 35 (cotto_seggie.pir:25)
called from Sub 'main' pc 32 (cotto_seggie.pir:21)
cotto I saw that too, but it made me scared.
chromatic Guess: the exception handler isn't clearing parameters when you call a function from it.
Which explains some other problems we've seen elsewhere.
particle that'd be my guess
chromatic Including at least one Coke found.
But now I want pancakes, and that's all I can think about. 03:44
cotto a different, but tastier, stack 03:45
Tene what do you like in your pancakes?
particle heresabunnywithapancakeonitshead.com/
ah, production release done. time for something not involving electrons & 03:46
Tene adds electrons to particle's pancakes. 03:49
03:57 Psyche^ joined
bacek chromatic: what the difference between "throw_from_c" and "throw_from_op"? 03:59
Parrot_ex_* 04:00
chromatic bacek, NotFound knows better, but I think throw_from_op uses the same runloop.
bacek chromatic: thanks. Next question ;) 04:01
Currently continuation added to exception by "op throw". Is it possible to add continutation in "ex_throw_from_c"? 04:03
bacek trying to implement junction auto-threading...
chromatic I would think so, but you don't know if you're going to enter another Parrot runloop from there. 04:12
use.perl.org/~chromatic/journal/37753 04:13
04:13 tetragon joined
Tene bacek: I looked at that, but couldn't figure out how to make a continuation there. 04:14
bacek: as it's specced, throw_from_c should be able to resume at the level of a C instruction, which you SHOULD be able to do by returning from throw_from_c, but when I tried that things broke badly. 04:15
bacek Tene: me either...
Tene There are some weird ghosts in the exception code that need to be cleaned up. I started writing some notes on it that I should turn into tickets but haven't yet. 04:17
bacek I've already submitted #60166... 04:19
Tene Don't worry, there are still more. 04:20
bacek Tene: :) 04:21
Tene The weird one that I remember is exceptionhandler.pmc's invoke(). It accepts a 'next' argument and then does nothing at all with it. 04:23
04:28 Zaba_ joined 04:29 Debolaz joined 04:59 Ademan joined 05:21 tetragon joined 05:49 TimToady joined, diakopter joined 07:13 uniejo joined 07:16 tetragon joined 07:33 tetragon joined 08:11 iblechbot joined 09:05 Bzek joined 09:12 bacek joined 09:21 tomyan joined 09:52 kj joined 10:00 barney joined 10:43 bacek joined 10:58 tewk_ joined 11:08 bacek joined 11:39 gaz joined
barney How do I check whether a String PMC starts with a digit ? 11:57
bacek hi there
11:59 cognominal joined
dalek r32212 | bernhard++ | trunk: 12:05
: [Pipp] Fix var_dump() for dumping arrays.
diff: www.parrotvm.org/svn/parrot/revision?rev=32212
kj barney: from PIR or C? 12:12
barney from PIR 12:20
Currently I make a copy to a string register and call is_cclass 12:21
kj Maybe it'd be good to access such functionality through methods 12:29
but maybe that's question for #ps tonight
12:29 jan joined
Zaba_ #ps? 12:31
purl #ps is probably a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
12:47 tetragon joined 12:51 cognominal joined
Coke the whole "should this code be a vtable/PMC method/opcode/C function thing needs a thunk, I think. 13:07
(to followup on barney)
barney Yes, I'm just looking at the Pipp data types. 13:10
Currently these are plain PMCs, but I'm wondering whether I should work with classes, as Rakudo does 13:11
13:13 gryphon joined 13:14 particle joined
Coke I think at the moment that depends on whether you'd rather implement code in PIR or C. 13:17
Tcl went with PMCs mainly because that's what the original Perl5 PMCs did. I have no idea if I'll keep them. 13:18
barney I try to keep close to Rakudo, but I fear that e.g. PHPs OO is unlike Perl 6s OO. 13:31
szbalint w\\h\\a\\t d\\o y\\o\\u m\\e\\a\\n? 13:32
barney proposed § as namespace separator in PHP 13:34
Perl 6s OO seems to be much more prototype based. OTOH I haven't looked at the PHP reflection API yet 13:35
13:53 jhorwitz joined 13:58 grim_fandango joined
Coke installs google earth on his iphone. spifff. 14:00
cognominal got a problem with an iphone and learnt a magic incantation to reboot it. pushing the lower button and the sleep button together 14:09
coke, there is no way to pick a pin in a place in the iphone google earth 14:10
at least non I found 14:11
s/non/none/
dalek r32213 | bernhard++ | trunk: 14:12
: [Pipp] added 2 Perl 6 code samples,
: used for comparing the PAST generated by Pipp and Rakudo.
diff: www.parrotvm.org/svn/parrot/revision?rev=32213
14:14 gmansi joined
Coke cognominal: nope, seems to be more for viewing. I was happy to guess the "zoom out" control, though. 14:15
(reboot) yup.
cognominal do you know the technical reason why Apple choose to use reference counting instand of true garbage collecting on the iphone? 14:16
less memory trashing?
I suppose the set of fast memory is limited on a iphone 14:17
Coke presumably because "that's how they do it on the mac"?
ISTR obj-c is all about the ref counting.
cognominal Coke, nope, cocoa now support true GC
Coke then you know more than I. 14:18
cognominal my knowledge is partial thus dangerous
Coke maybe mdiep knows.
cognominal may be that only for 64 bits 14:19
Tene So they just need to add more bits to the iphone.
cognominal I just got a multitouch book cause my older book died.
14:19 Andy joined
cognominal apparently time machine did not get me back everything :( 14:20
Coke tries to build Padre. 14:27
moritz Coke: a piece of cake... once wx is built ;) 14:29
14:33 bacek joined
Coke cpan, 'install Padre' barfed at some point. seeing if I can track down where. (strawberry) 14:46
14:57 bacek joined
Coke meh. not worth it. 14:58
15:04 kj joined
pmichaud barney: currently the way to test if a string starts with a digit is is_cclass 15:25
Does the Parrot wiki have a "recent changes" page or something like that? 15:27
barney TNX, WRT is_cclass 15:30
www.perlfoundation.org/parrot/index...nt_changes 15:31
pmichaud I meant the one on parrot.org, sorry.
Coke pmichaud: www.parrot.org/admin/content/node is the closest I can find. 15:32
pmichaud Access denied
purl Access denied is not cool on my main page
pmichaud You are not authorized to access this page.
Coke you have to login. 15:33
pmichaud I am logged in.
Coke ah. then you have to be an admin! =-)
digging...
purl somebody said digging was when someone has made a stupid comment and then blindly tries to defend it, sprouting crap in the process
Coke does www.parrot.org/rss.xml work for what you need? 15:34
pmichaud that only seems to cover articles, not the wiki.
Coke forget digging... 15:35
purl Coke: I forgot digging
Coke pmichaud: drupal.org/node/217264 doesn't give me hope. 15:37
pmichaud Coke: okay, was just curious. 15:38
I might create a RecentChanges page that says "we don't have one".
Coke looks like there's a RecentChanges module which we don't appear to have installed.
I don't think I have perms to install modules on the site. 15:39
at least, I don't see a big red button that says "click here to install" 15:41
pmichaud Maybe it's blue. 15:42
Coke Allison probably knows who to talk to.
PerlJam parrot.org is drupal? 15:44
15:47 cosimo joined
Coke innit? 15:48
purl wicked!
15:48 davidfetter joined
PerlJam I dunno. But purl's right if so. 15:50
oh, it's clearly drupal. I must have been blind until just now. 15:54
particle coke: mailto:support@osuosl.org
dalek r32214 | bernhard++ | trunk: 15:55
: [Pipp] Add a Makefile target 'make smolder_test'.
: Fiddle with Parrot::Harness::Smoke in order to allow overriding
: the project id and the report file.
diff: www.parrotvm.org/svn/parrot/revision?rev=32214
particle is dealing with production F-UP, so can't help more
barney mpeters++ for adding Pipp to the smolder server, smolder.plusthree.com/app/developer...reports/10 15:56
Coke jhorwitz: I see from digging through email that you've done more than edit a wiki page in drupal; can you followup on patrick's request? 15:59
jhorwitz hasn't been paying attension, and scrolls back... 16:00
Coke something RSS or otherwies that shows recent changes to the site. 16:02
perhaps, say, the RecentChanges module.
jhorwitz i (or OSU) should be able to install that module. hopefully the access issues aren't a big deal. 16:03
Coke 'tag, you're it' 16:04
16:05 hercynium joined
Coke jhorwitz++ 16:08
jhorwitz hm, a tag and some unearned karma. i guess i should actually do this... :)
16:11 Lorn joined
dalek r32215 | bernhard++ | trunk: 16:30
: [codingstd] remove trailing whitespace
diff: www.parrotvm.org/svn/parrot/revision?rev=32215
16:33 chromatic joined
allison Coke: I have permissions to install drupal modules in parrot.org, what do you want added? 16:45
Tene allison: he wanted 'Recent Changes' 17:04
allison Tene: ok, thanks 17:05
Croke chromatic++ 17:06
allison++
chromatic Eh? 17:07
purl Eh is this right though?
Croke email.
and chromatic++ # in anticipation of GC bugfixen. 17:08
purl: no, eh is <reply>Speak up, sonny! 17:09
purl okay, Croke.
chromatic Trade you a GC bugfix if Allison fixes the "Where did these extra parameters come from in the exception handler?" problem. 17:10
Or Jonathan. Don't say I'm not flexible.
NotFound What extra parameters? 17:11
chromatic cotto posted an example here last night (or this morning, for you Old Worlders). 17:12
Let me find it.
nopaste.snit.ch/14407
Change cause_sf to take a PMC instead of a string.
purl chromatic: that doesn't look right
chromatic I traced things down to src/inter_call.c, where init_call_stats gets the number of incoming parameters wrong. 17:13
I *think* that's because interp->params_signature is incorrect, but that's as far as I could get before I wanted pancakes and decided to fix Test::More's MMD. 17:14
NotFound I was looking at a maybe related problems: catching exceptions seems to leak memory. 17:16
chromatic We do seem to leak contexts somewhere (again).
NotFound Yes, I was thinking the same.
chromatic How's your Valgrind-fu? 17:17
NotFound Bad
chromatic Here's your chance to learn!
NotFound I hope that when introduced throw_from_op_args will be easier to catch the problem 17:18
I'm working on it now. 17:19
chromatic It should clean up things.
17:25 johbar joined 17:35 ambs joined 17:36 cjfields joined 17:44 ambs left 17:48 rdice joined 17:55 ruoso joined
Croke #ps? 18:04
purl somebody said #ps was a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
Croke time?
purl time is 18:04:17 2008 and (did you mean "clock"?) or flowing like a river
Croke clock?
purl Croke: LAX: Tue 11:04am PDT / CHI: Tue 1:04pm CDT / NYC: Tue 2:04pm EDT / LON: Tue 6:04pm GMT / BER: Tue 7:04pm CET / IND: Tue 11:34pm IST / TOK: Wed 3:04am JST / SYD: Wed 5:04am EST /
NotFound utc? 18:07
purl rumour has it utc is date -u or the timezone you use if you don't have a 1mm penis
Croke msg purl utc?
purl Message for purl stored.
dalek r32216 | pmichaud++ | lex: 18:12
: [core]: set outer_ctx in invoke, switch newclosure to be clone+capture_lex
diff: www.parrotvm.org/svn/parrot/revision?rev=32216
18:21 masak joined
pmichaud #ps in 7 18:23
Tene But... but I don't have anything to report yet? 18:28
svn rm languages ; svn commit
masak ouch.
cotto svn undo 18:29
pmichaud #ps in 0. 18:30
18:42 gaz joined 18:52 Lorn joined
nopaste "tene" at 160.79.186.34 pasted "remove old 'don't invoke an EH more than once' check" (20 lines) at nopaste.snit.ch/14410 19:11
dalek r32217 | chromatic++ | trunk: 19:18
: [runtime] Updated Test::More and Test::Builder to use PMCs for all MMD
: dispatchy arguments. This should make the code more robust for HLL use.
: However, it did necessitate some changes in a couple of tests to make them
: smarter, as dispatch is now more correct in Test::More. In particular,
: t/pmc/n_arithmetics.t now uses a second optional parameter to is() to specify
: the expected precision of a float comparison. This interface may change.
diff: www.parrotvm.org/svn/parrot/revision?rev=32217
19:25 johbar joined
Croke ponders offering a bounty to fix his GC bug. 19:27
chromatic I already have paper towels. 19:29
Croke Am I that transparent? 19:32
chromatic When you get down to a 32" waist, yes. 19:33
dalek r32218 | kjs++ | trunk: 19:34
: [pirc/new] when including files, let Parrot search wherever it is defined to be searching. In order for this to work, you must run pirc from parrot root directory, not compilers/pirc/ directory.
diff: www.parrotvm.org/svn/parrot/revision?rev=32218
jhorwitz contemplates a PIR cookbook wiki 19:39
moritz jhorwitz: you could integrate that with the parrot wikibook
jhorwitz very true... 19:40
purl very true... is it avoidable though? Would escaping it work?
jhorwitz escapes purl
Tene purl: forget very true... 19:41
purl Tene, I didn't have anything matching very true
dalek r32219 | kjs++ | trunk: 19:50
: [pirc/new] nicer layout for -E preprocessing option; instructions are nicely formatted + print operands.
: This option can be used for pretty-printing ('pirtidying').
diff: www.parrotvm.org/svn/parrot/revision?rev=32219
Tene allison: any idea why ExceptionHandler's invoke() accepts a *next argument but doesn't do anything with it? 19:51
allison all invokes accept a *next argument 19:52
Tene Ah.
Right.
Clever.
spinclad (half-thought from #parrotsketch: C< name = push_eh; ... pop_eh name; >; would this allow surer track of which eh to pop?) 19:54
chromatic I'd almost rather see DISABLE THIS EH SOMEHOW. 19:55
Tene disable or remove?
chromatic Either/both. 19:56
Or disable all exception handlers immediately, and force people to reactivate them if they want them to stay active.
Branching around in code and hoping to get the push_eh/pop_eh pairs right for every possible path through the call graph seems like a recipe for leaks to me. 19:57
Tene There was also discussion of "all properly-scoped EHs are cleared at scope exit"
pmichaud "disable this eh" is really just a method on the eh, yes? 19:58
Tene it would be nice if there was a way to get the EH from itself.
pmichaud that sounds like a .get_results feature. 19:59
Tene yeah
chromatic The only scopes we have in Parrot right now are compilation units.
spinclad 'pop/remove this eh' doesn't sound like an eh method, though
chromatic and look there, free Spanish lesson from native polyglots.
pmichaud correct, pop isn't something we do on an eh, it's something we do on the eh list 20:00
spinclad chromatic: spanish lessons are on topic today, too, i notice
chromatic I don't like push/pop as a metaphor anyway. It makes exception handlers sound like a stack, rather than something where dispatch works. 20:01
allison scoped EHs works now
they're stored in the context
so, they're GC'd when the context is no used
chromatic: agreed that push/pop is the wrong metaphor 20:02
NotFound And there is also the public relations impact of having things called push and pop and talks about stackless ;) 20:03
allison chromatic: I originally planned to eliminate pop_eh and change the name of push_eh to 'add_eh', but the transition was too hard
NotFound, it's not actually a stack anymore, it's an array stored in the context
NotFound: they're just still called push/pop 20:04
NotFound allison: yes, but the names gives wings to bad critics.
Croke no point in renaming opcodes until we rename ALL of them.
allison NotFound: these are definitely on the list to be renamed
chromatic Look, a big thud fallacy!
allison NotFound: once we've completed the transition, I'd be happy to see the rename done 20:05
Croke I don't know what means, but I am a fan of the name. =-)
allison should be a quick transition
Croke (and I was kidding, btw.)
allison (maybe a branch, maybe just a patch)
chromatic It just seems to me that if we have typed exceptions, a stack is completely the wrong metaphor. 20:06
dalek r32220 | kjs++ | trunk:
: [pirc/new] remove ugly code that folds constants for math ops, if we find out they don't exist: They should exist, or the user shouldn't write them/compiler shouldn't generate them. Fake ops are eeeeevil!
diff: www.parrotvm.org/svn/parrot/revision?rev=32220
chromatic Handlers of the same time could stack (nested scoping is fine), but we shouldn't expose the details of that implementation any more than saying "Scoped exception handlers get called innermost outward" and leave it at that. 20:07
Croke $I1 = add_eh $P1; del_eh $I1
allison chromatic: one possiblity (and it's how the C functions work now), is that the 'pop_eh' equivalent takes a PMC argument, which is the same handler PMC that was pushed
add_eh $P1/del_eh $P1
chromatic That seems cleanest to me. 20:08
spinclad 'handlers of the same type'?
chromatic Two handlers that handle EXCEPTION_ILL_INHERIT but defined in different scopes, for example.
NotFound allison: but with push_eh label we don't have the handler pmc available. 20:09
allison NotFound: yes
spinclad allison: if $P1 already has an eh (from last iteration, say), would 'add_eh $P1' del it?
pmichaud I'm thinking anyone who wants to do more than a simple handler shouldn't be using the push_eh label syntax for it.
either that or we should do: $P1 = new_eh label, type 20:10
allison I'd be more inclined to add '$P1 = add_eh <LABEL>' than to mess about with integer indexes
chromatic Integer indexes are too easy to lose.
Or fake.
Croke 'sfine.
chromatic crashy crash crash
allison pmichaud: ah, great minds think alike :) 20:11
pmichaud allison: I've had the advantage of chatting about this with Tene++ a little bit. :-)
allison spinclad: no, adding an exception handler just adds it to the array, you can add the same exception handler as many times as you want
pmichaud "add the same exception handler" -> "invoke the same exception handler"
20:11 mberends joined
NotFound I like the idea of making the created handler available 20:12
allison pmichaud: both
pmichaud afk, gotta get dinner groceries for tonight. 20:13
Croke Should we support PIR sugar for discarding unwanted OUT values from opcodes? 20:14
spinclad allison: good, then a HLL could generate its 1e6 eh's (for its own good purposes) and store them as it likes 20:15
20:16 Psyche^ joined
dalek r32221 | kjs++ | trunk: 20:17
: [pirc/new] add comments and remove old structure definition.
diff: www.parrotvm.org/svn/parrot/revision?rev=32221
chromatic More PIR sugar?
We have opcodes which have side effects?
kj PIR's sweet enough? 20:18
particle Croke: something like ($I0 :unused) = isnull $P0 ?? 20:19
kj why would you invoke the op in that case?
particle please don't address the fact that isnull is not the best example
kj ok, maybe bad example..
sorry :-) 20:20
chromatic I can't think of a good example.
particle :P
me neither
kj I can't see the benefit
chromatic You'd need an op which has an effect and a side effect, and you'd call it only for the latter.
particle ($S0, $I1 :unused) = $P0()
Croke subclass? 20:21
kj what can the pir compiler do with that information?
Croke the new add_eh?
particle it's a hint to the alligator
spinclad i know! make register -1 in each class be a write-only discard register!
kj that's a good reason 20:22
chromatic I don't believe we do return count checking now anyway.
Croke particle: for method calls, it doesn't matter. I'm thinking opcodes only.
chromatic That's not an op anyway.
particle c: no, we don't, but we should
Croke: you mean for invoke?
spinclad ($I-1 :unused, $S0) = $P0()
chromatic You're thinking $I0 :unused = paint_house $P1
which gets all of the equipment and paints your house
but you don't care if it paints your house 20:23
you're only calling it to get out your ladder
</subtle>
kj hehe
particle damn. my neighbor *still* has my ladder.
kj ENOLADDER
spinclad mine too! 20:24
do they know each other??
allison Croke: it would have to be a separate opcode anyway, because it wouldn't have a valid destination register to assign to
kj what allison sais 20:25
says
was just typing that... but in silly wording
particle cheers on the dow
spinclad so +I+ should call $I-1 = paint_house $neighbor to get my ladder back.
s/+/*/g 20:26
thanks, chromatic, that's a plann! 20:28
Croke allison: sure it would. it'd be a register would be free to be override by PIR in the next opcode. 20:29
not really needed, of course; we can always just do $P99 = foo_op and just ignore it. 20:30
kj Croke: and it'd be only for ops, not invocations?
yeah,but $P99 would be allocated
Croke yes. you can already ignore the return value of an invocation.
and if it were never used after that, the register could throw away the value anyway. 20:31
or reuse the real register.
kj well, kinda. But say you want the nth return value, you need to store the first n-1 return values as well
spinclad .local pmc dummy; dummy = paint_house $neighbor; dummy = something $else
Croke ... opcodes don't have n return values.
kj Croke: i was talking invocations 20:32
you said you can ignore values; if I want to ignore all return values except the 3rd, for instance
spinclad .local pmc dummy :unused
kj still need to store the first 2: (foo, bar, baz) = sayhi()
Croke kj: sure. 20:33
kj if i'm only interested in 'baz'
allison I'm inclined to say, just use $P99. The register allocator can already detect that the register isn't used again and reclaim it on the next line
spinclad (_, _, baz) = ...
.local pmc _ 20:34
allison Croke: I've been ripping out so many custom dispatch hacks from core Parrot, that I'm wary of adding new ones
kj I was just pondering on whether I should give writing a register allocator a try..
*today
allison Croke: they end up being more maintenance pain than they are benefit
Croke yup. only a half-hearted suggestion.
allison Croke: I certainly understand the pull 20:35
chromatic kj, it's not as difficult as it sounds. 20:36
allison (so it's more of a "That'd be cool. Um... well, maybe not.")
chromatic ... provided you know how to break a compilation unit into basic blocks.
kj <rhetoric>have you seen imcc's reg. alloc??!!
yeah, well, I read a paper some time ago on a different scheme 20:37
allison kj: "Mom, Dad, don't touch that. It's pure evil!"
spinclad welll, that's one that's more difficult than it sounds
kj it was not a coloring scheme, but a linear one
coloring can take several iterations I believe.
www.cs.ucla.edu/~palsberg/course/cs...arscan.pdf for the itnerested lurker :-) 20:38
20:38 Lorn joined
NotFound And bits have no colors, they are not quarks ;) 20:40
dalek r32222 | julianalbo++ | trunk: 20:44
: add 'Parrot_ex_throw_from_op_args' function and replace 'Parrot_ex_throw_from_c_args' with it in a lot of opcodes, see RT#60166
diff: www.parrotvm.org/svn/parrot/revision?rev=32222
r32223 | kjs++ | trunk: 20:47
: [pirc/new] I have zero-tolerance policy regarding missing function documentation. Enforce it.
diff: www.parrotvm.org/svn/parrot/revision?rev=32223
20:48 jsut|work joined
Croke error:imcc:syntax error, unexpected '\\n', expecting '(' in file 'EVAL_16548' line 3 20:50
that's a lot of generated PIR 20:51
kj partcl-generated?
Croke mmm.
kj I thought EVAL_ starts at 1... 20:52
Croke ayup
bacek morning everybody 20:55
NotFound++ # for r32222 :)
NotFound bacek++ for opening a can of worms ;) 20:57
bacek NotFound: btw, why we need throw_ex_from_c ? 20:58
kj prints the linear scan register allocation paper and starts reading...
NotFound bacek: for throwing from c ;) 20:59
bacek NotFound: :) but can it be replaced with from_op? E.g. in MMD. 21:00
NotFound bacek: will be good to replace it wherever possible. 21:01
But I think that replacing it in functions that can be called from an unknown depth of C functions is risky. 21:03
bacek NotFound: got it. Next question - is it good or bad idea always specify continuation in "build_eception_from_args"? As interp->code->base.data 21:04
msg moritz Pm ask not to close #60168 till final fix :) 21:05
purl Message for moritz stored.
moritz argl
bacek afk #prepare kids for school 21:06
allison NotFound: yes, throw_from_op is only useful when you're actually in the op, all other locations in C code should use 'throw_from_c' 21:07
21:08 Limbic_Region joined
moritz bacek: (if you backlog...) re-opened the ticket, and adjusted subject. Thanks for noticing. 21:08
NotFound allison: in some cases a helper functions that takes the continuation address as argument can use it, I suppose. 21:09
allison NotFound: potentially, yes, but keep in mind that 'throw_from_op' doesn't actually run the exception handler 21:10
NotFound But maybe the easy searchability is more valuable.
allison NotFound: it only returns the address of the exception handler, and relies on whatever code it returns to to execute the handler 21:11
NotFound: so it's really not recommended for general use
NotFound: there's just too much complexity in ensuring that whereever it's used, the code immediately returns to the calling op and does nothing else before executing the handler 21:12
NotFound: this is something the ops you modify will have to consider too. 'throw_from_op' and 'throw_from_c' aren't semantically equivalent 21:14
NotFound allison: that is usually the reason to modify them. 21:15
allison NotFound: yes :) What I mean is, 'throw_from_op' doesn't have the same effect of immediately halting all other behavior until the exception is handled 21:16
NotFound allison: I know, don't worry too much.
allison 'k, cool
Croke to see parrot blow up, grab partcl, change the parent class of src/class/tclconst.pir to "TclString" instead of "String" and then 'make test'. whee 21:30
pmichaud moritz: 2 failures are in S03-operators/arith.t
moritz I've added two failing tests recently, but they are both TODO'ed 21:32
(the last two)
Croke (ton of "outside of current segment" errors)
->
21:54 TiMBuS joined
pmichaud the last two tests of arith.t are failing with "no bigint lib loaded" 22:34
chromatic I thought we skipped those when Parrot::Config doesn't have GMP. 22:35
pmichaud sorry, in rakudo.
t/spec/S03-operators/arith.t 22:36
I suspec the 'todo' should be 'skip'
*suspect
22:50 dmknopp joined
dalek r32224 | julianalbo++ | trunk: 22:55
: replace remaining throw_from_c inside opcodes with throw_from_op except a few deprecated ones
diff: www.parrotvm.org/svn/parrot/revision?rev=32224
23:17 tetragon joined
Tene Huh. 23:22
In NQP: 23:23
our @?Foo; @?Foo.push(1); say(@?Foo[0]);
23:23 ruoso joined 23:55 chromatic joined 23:58 apeiron joined
Tene pmichaud: looks like PCT breaks badly if I set :namespace() on a block to a subclass of ResizablePMCArray 23:58