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