|
Parrot 1.1.0 Released | parrot.org/ | 325 RTs left | Weekly Priority: Remove Deprecated Items Set by moderator on 28 April 2009. |
|||
| dalek | cnum-dynpmcs: r17 | arbelo++ | trunk/ (2 files): Makefile: decnum.pmc: Trim lines longer than 72 chars. |
00:37 | |
| darbelo | Infinoid++ # making dalek track decnum-dynpmcs | 00:38 | |
|
00:40
bacek_ joined
00:43
eternaleye joined
|
|||
| cotto | Infinoid++ indeed | 00:45 | |
| dalek | cnum-dynpmcs: r18 | arbelo++ | trunk/src/pmc/decnum.pmc: Add substract, multiply and divide VTABLES. |
00:51 | |
| darbelo | cotto: With that in I'm going to hunt down a meal. Feel free to play with it. It might not build cleanly without the patch I sent today, but I haven't checked. | 00:54 | |
| cotto | ok. have fun hunting! | ||
| I wonder why google code isn't sending out email notifications | 00:55 | ||
| chromatic | It's haunted. | 00:56 | |
| cotto | Is it know to act like that? | ||
| chromatic | I've not seen it. | 00:59 | |
| dalek | rrot: r38498 | jkeenan++ | trunk/lib/Parrot/Harness/Smoke.pm: Apply patch submitted by Michael Peters for rt.perl.org/rt3/Ticket/Display.html?id=59978 re revision number in smolder report summary. |
01:01 | |
| cotto | I'll buy haunted. | 01:07 | |
| dalek | tracwiki: v4 | jkeenan++ | SmolderTaskList | 01:08 | |
| tracwiki: trac.parrot.org/parrot/wiki/Smolde...ction=diff | |||
| moderator | Parrot 1.1.0 Released | parrot.org/ | 322 RTs left | Weekly Priority: Remove Deprecated Items | 01:08 | |
| Infinoid | oh hey, dalek worked for once | 01:11 | |
| the Next Unknown is whether the CREDITS aliasing works | 01:17 | ||
| Whiteknight | CREDITS aliasing? | 01:18 | |
| yeah, I'm not getting any email notifications about the decnum stuff anymore | 01:19 | ||
| Infinoid | yeah, it's supposed to autodetect things like "wcoleda" and "Moritz Lenz" and fix them up to "coke++" and "moritz++" | ||
| Whiteknight | I CAN HAZ MOR DARBELO? | ||
| Infinoid++ # That sounds like a cool idea | |||
| cotto | He keeps *saying* he'll blog, but I'm not so sure. | ||
| Whiteknight | shit, I'll blog enough for the both of us | 01:20 | |
| Infinoid | Whiteknight: github.com/Infinoid/dalek-plugins/b...armalog.pm if you want more info. | ||
| Whiteknight | thanks | 01:21 | |
| Infinoid | I'm very resistant to maintaining lookup tables myself, so I'm willing to go to enormous lengths to let more motivated people do it for me. | 01:22 | |
| cotto | Infinoid++ for doing dalek OSS-style | ||
| That's laziness. It's a virtue. | |||
| smolder? | 01:23 | ||
| purl | smolder is sourceforge.net/projects/smolder or web-based smoke test aggregator used by developers and testers to upload (automated or manually) and view smoke/regression tests using the Test Anything Protocol (TAP). or smolder.plusthree.com/app/public_pr..._reports/8 | ||
| dalek | kudo: c0480a5 | jnthn++ | src/classes/Object.pir: list is just a method, and should not get a namespace entry. We need to do this more widely, but this scratches an immediate itch. |
||
| kudo: 902f999 | jnthn++ | src/parrot/ClassHOW.pir: Need to lie about top of the Perl 6 object hierarchy. |
|||
| cotto | kid51++ #revisions on the front page of smolder reports | 01:24 | |
| dalek | kudo: b7b3c60 | jnthn++ | src/classes/Routine.pir: .name method for Routines. |
01:34 | |
| kudo: 71c69d0 | jnthn++ | src/setting/Object.pm: First cut of WALK; doesn't know all of the various orderings, but knows how to handle canonical and super. |
|||
|
02:07
tetragon joined
02:27
darbelo joined
02:35
janus joined
02:42
mikehh_ joined
04:15
petdance joined
|
|||
| dalek | rrot: r38499 | petdance++ | trunk/config/gen/makefiles/root.in: un-break the makefile for nmake. Sorry, particle! |
05:05 | |
|
05:15
iblechbot joined
05:19
nopaste joined
|
|||
| dalek | website: darbelo++ | What are the decnum-dynpmcs and why you want them. | 05:30 | |
| website: www.parrot.org/content/what-are-dec...want-them. | |||
| darbelo | Oh, dalek reports my blog posts too? I feel scrutinized ;) | 05:31 | |
| cotto | we're watching | 05:34 | |
| all the time | |||
| dalek | rrot: r38500 | petdance++ | trunk/config/gen/makefiles/root.in: still organizing splitn flags |
||
| cotto notices an "edit" tab on that article | 05:35 | ||
| time to make some typos | |||
| darbelo | Wait, you can see it too? | 05:36 | |
| cotto | I have editor permissions. | ||
| darbelo | Oh, ok. I thought everyone could see it. | 05:38 | |
| cotto | nope | ||
| none of our thousands of spam users can edit your post | |||
| s/spam/bot/ | 05:39 | ||
| darbelo | Bots. Hmm, do we unleash the velociraptors now or wait until they get complacent and let their guard down? | 05:40 | |
| chromatic | Every patch you take. Every post you make. We'll be watching you. | 05:42 | |
| cotto | no pressure | 05:45 | |
| dalek | rrot: r38501 | chromatic++ | trunk/src/pmc/class.pmc: [PMC] Made Class PMC throw exception on attempt to overwrite a method or vtable other than itself. This speeds up Rakudo startup by 4%. |
06:04 | |
|
06:07
uniejo joined
|
|||
| chromatic | ... and there's an 8.3% startup speedup by removing PARROT_EXPORT from all ops functions. | 06:10 | |
| cotto | speaking of which, whatever happened to the pcc_rewiring branch? | 06:12 | |
| chromatic | allison's still working on it. | 06:15 | |
| Apparently it's difficult. | |||
| allison | well, tedious (replacing a lot of functions) and intricate (everything depends on everything else) | 06:16 | |
| chromatic | Like I said. | 06:18 | |
| dalek | rrot: r38502 | chromatic++ | trunk/lib/Parrot/Ops2c/Utils.pm: [ops] Removed PARROT_EXPORT from generated ops functions, which you shouldn't some 3762 exported symbols from our shared library. |
06:23 | |
| rrot: r38503 | chromatic++ | trunk/src (3 files): [src] Tidied some code; no functional changes. |
|||
| cotto | allison, in the unlikely event that I can help with some of the tedious stuff, I'd be glad to do so. | 06:29 | |
|
06:30
clunker3 joined
|
|||
| allison | the intricate part is what makes it hard to pass off the tedious part | 06:30 | |
| cotto: with two people trudging through the function replacing it would go a lot faster, but it would be much harder to track down when replacing one function causes a problem | 06:31 | ||
| cotto | You'd know best if it's a worthwhile tradeoff. | 06:39 | |
|
06:43
bsdz joined
|
|||
| darbelo | It's official: I suck at blogging. | 07:36 | |
| A slightly-more-serious second post is up. It takes me way too long to finish up this things. | 07:39 | ||
| moritz liked the first one | |||
| darbelo: if you want to optimize for fun, keep the blog postings short, so you don't have to spend too much time on one | 07:41 | ||
| dalek | rrot: r38504 | chromatic++ | trunk (3 files): [mmd] Changed the MMD variant initialization code in PMCs to use STRINGs Parrot startup by 7% and Rakudo startup by 6.32%. |
||
| moritz | chromatic++ | ||
| darbelo | chromatic++ indeed. | 07:42 | |
| The last 48 hours add up to a big speed-up all around. | 07:43 | ||
| moritz, it's not the length that gets me. It's that I can't really keep a consistent writing style, and then I spend a lot of time "refactoring" the text into coherence. | 07:46 | ||
| moritz | darbelo: I solve that problem by not re-reading my posts before publishing them :-) | 07:48 | |
| darbelo: instead I post a link in #perl6 (for Perl 6 stuff) and let them tell me about my errors | |||
| darbelo | moritz, I'm the complete opposite, I typically write a paragraph at a time, and then give the text several passes of editing | 07:51 | |
| cotto | I can tell that someone's been reading chromatic's blog. | 07:52 | |
| chromatic | How's that? | ||
| darbelo | I want a magic-flying-pony-that-pisses-rainbows | ||
| cotto | darbelo used a phrase I've seen a couple times in some of your posts | ||
| chromatic | Candy-flavored flying unicorn? | 07:53 | |
| cotto | "Sharp observers will note" (or something similar) | 07:54 | |
| darbelo | cotto: I don't think I got that one from chromatic. I did steal his unicorn, tho. | 07:57 | |
| chromatic | Nice. | ||
| My unicorn only programs Python. | |||
| darbelo | Well, that explains the flying ( xkcd.com/353/ ) | 07:59 | |
| chromatic | He never has to maintain programs either, because it's hard to type with hooves. | ||
| dalek | website: darbelo++ | decnum-dynpmcs: Week #00 | 08:08 | |
| website: www.parrot.org/content/decnum-dynpmcs-week-00 | |||
| darbelo | cotto, you'll probably notice a lot of 'stolen' phrases, it's part of not being a native English speaker. It's easier to remember stuff I've read than to come up with my own. | ||
| GeJ | Why would one maintain Python programs. They auto-maintain themselves. That's the reason #1 why Perl programmers are leaving to explore Pythonia shores... at least that's what I get when reading slashdot. I should probably double-check on digg, shouldn't I? | 08:09 | |
|
08:10
riffraff joined
|
|||
| moritz | and reddit, please. Especially the comments. | 08:10 | |
| darbelo | Python has superior marketing, and doesn't have a semi-infinite amount of tutorials on the web "teaching" the absolute worst practices of the language. | 08:13 | |
| moritz | that's why we need Perl 6 :-) | 08:17 | |
| darbelo | Yes. But it's still called "Perl", that won't fly. Maybe if you renamed it to "Pyrl 6" it'd sell better. | 08:19 | |
| ;) | 08:20 | ||
| moritz | :-) | 08:21 | |
| I'm fairly impressed by the impact of the iron man blogging challenge | |||
| mst told me that they were so busy adding new subscriptions that they couldn't find the time to improve the platform :-) | 08:22 | ||
| 89 subscriptions atm | |||
| darbelo | Impressive | 08:23 | |
| chromatic | And a sharp criticism of some existing Perl sites. | 08:24 | |
| darbelo | I'm not familiar enough with the existing Perl sites to notice :) | 08:26 | |
| chromatic | Oh, pick a random and plausible sounding URL then look at how it has gone unmaintained. It's a little sad. | 08:28 | |
|
08:30
donaldh joined
|
|||
| GeJ | chromatic: did they ask you to do some editing? | 08:31 | |
| (... for that site you were in charge of, I mean) | 08:33 | ||
| chromatic | They made it clear I was always welcome to donate work to them. | ||
| GeJ | that's rich. | 08:34 | |
| chromatic | I declined. | 08:35 | |
| darbelo | Gotta go. Need sleep. | ||
| moritz | actually that's an improvement. I've heard of people offering help who were turned down | ||
| chromatic | For some reason, they haven't asked about my consulting rate since then. | 08:36 | |
|
08:39
masak joined
|
|||
| GeJ | hej masak | 08:42 | |
| masak | GeJ: halloj | 08:43 | |
| cotto | bacek, what's happening? | 08:48 | |
|
09:33
donaldh_ joined
09:47
cognominal joined
|
|||
| cotto | not much, I guess | 10:36 | |
| bacek | OH HI | 11:03 | |
| cotto: nothing happening... Quite busy... | |||
|
11:04
Gerd joined
|
|||
| cotto | rl happens. I can do that header fix if you won't have time for it in the near future. | 11:04 | |
| bacek | cotto: I'll try to fix it now. | 11:05 | |
| cotto | ok. I'm sleeping soon, but msg me if you want to hand it off | ||
| bacek | One question - is there is any possibility to override non-const vtable method in const vtable? | 11:06 | |
| cotto | otherwise I'll look into adding ATTRs to the pmc compiler | ||
| from where? | |||
| C? pir? | |||
| bacek | from... anywhere | ||
| foo.pmc | |||
| cotto | you mean "can a normal VTABLE function override a RO VTABLE function"? | 11:07 | |
| bacek | something like. | ||
| purl | something like what, bacek? | ||
| cotto | I don't think so, but both normal and ro functions exist in the RO variant vtables. | 11:08 | |
| Why? | |||
| bacek | Can I create ro_set_integer? | ||
| (Why) current handing of RO vtables is overcomplicated. | |||
| cotto | just a bit | ||
| bacek | erm... Looks like a byte from my pov. | 11:09 | |
| cotto | I'm pretty sure that once a VTABLE function gets set to the RO variant, it won't get changed back. | ||
| heh | |||
| bacek | I mean something different. Currently RO.pm supports overriding of _ro_ functions. But it never used | 11:10 | |
| cotto | I guess that could be used if you were working with a RO PMC and used a PIR VTABLE override. | 11:11 | |
| bacek | to override "set_integer"??? | ||
| cotto | .sub set_integer :vtable ... | 11:12 | |
| bacek | welcome to C++ world... | 11:13 | |
| cotto | lawl | 11:14 | |
| bacek | Heh. I misread RO.pm. It's now allowed for RO PMC's :) | ||
| RO.pm always generates "exception stub" for :write methods | |||
| So, I can simplify it a lot | |||
| afk # rl attacs | 11:15 | ||
| cotto | bye | 11:16 | |
|
11:20
donaldh joined
12:18
tetragon joined
12:36
ruoso joined
12:39
rg1 joined
13:26
gryphon joined
13:32
masak joined
13:40
fperrad joined
|
|||
| Infinoid | Hmm, bugzilla.redhat.com/show_bug.cgi?id=499304 looks like the JIT+selinux bug again | 13:48 | |
|
14:00
ruoso joined
14:23
workbench joined,
particle1 joined
14:29
iblechbot joined
14:54
whoppix joined
15:04
clunker3 joined
|
|||
| dalek | kudo: 45fcaee | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 380 files, 11013 passing, 0 failing |
15:15 | |
|
15:20
donaldh joined
|
|||
| dalek | kudo: 871c1e3 | jnthn++ | src/ (2 files): Get .^parents and .^methods a bit more in line with spec; update WALK. |
15:43 | |
| kudo: bd1c1e9 | jnthn++ | t/spectest.data: Add S12-introspection/meta-class.t. |
|||
| kudo: 79eb819 | jnthn++ | src/parser/ (2 files): Get us able to parse module names with colonpairs in (don't do anything with them for now though; this just brings us closer to STD.pm and lets us parse a spectest I want to be able to run). |
|||
|
15:54
Theory joined
|
|||
| NotFound | irclog.perlgeek.de/parrotsketch/2009-05-04 WTF? | 16:08 | |
| moritz | NotFound: what's wrong with that? | ||
| NotFound | Ops, my bad. | ||
| moritz | try a Tuesday :-) | ||
| NotFound | I was looking at spanish-style calendar, monday first X-) | 16:09 | |
|
16:15
kaether joined
|
|||
| kaether | Hi, I was trying to compile Rakudo on HPUX and came across an odd parrot problem. | 16:15 | |
| This gets defined in config.h | |||
| #define PARROT_EXEC_OS_IA64.ARCHREV_0 1 | |||
| (there's a period between the 64 and the ARCHREV) | 16:16 | ||
| "./include/parrot/config.h", line 155: warning #3649-D: white space is | |||
| required between the macro name "PARROT_EXEC_OS_IA64" and its | |||
| replacement text | |||
| Is this an obscure compiler feature to allow . | |||
| 's in #defines or a bug in configure? | |||
|
16:19
Infinoid joined,
kaether_ joined
|
|||
| NotFound | Looks like a bug in configure because an unexpected dot in the architecture name :? | 16:20 | |
| kaether_ | where does that come from (starting to look at Configure...) | 16:21 | |
| spoke too soon.. arch.pm? | 16:22 | ||
|
16:26
kaether_ joined
|
|||
| rg | it comes from config/init/defaults.pm line 73 | 16:33 | |
|
16:33
kaether_ joined
|
|||
| NotFound | How is --verbose-setp supposed to be used? | 16:34 | |
|
16:35
Su-Shee joined
|
|||
| Su-Shee | hi. | 16:35 | |
| NotFound | kaether_: please show us the result of: perl -e 'print "$^O\\n";' | 16:37 | |
|
16:39
kaether_ joined
16:40
tewk joined
16:46
kaether_ joined
16:49
tewk joined
16:53
kaether_ joined
|
|||
| fperrad | bacek, about TT #638 | 16:54 | |
| what is the good fix : | 16:56 | ||
| - remove the call | |||
| - or add the missing generated code | |||
|
17:01
kaether_ joined
|
|||
| particle-nyc | kaether: fix your nick bouncing | 17:06 | |
|
17:08
kaether_ joined
|
|||
| kaether_ | My connection keeps getting reset. This doesn't happen on freenode. | 17:08 | |
| dalek | kudo: 2e2f74b | jnthn++ | src/pmc/p6invocation.pmc: P6Invocation should act more like a mutable iterator; we'll only clone it if we have to. |
17:10 | |
| kudo: cab8784 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION so we get fixes to PCT and .orig in PGE. |
|||
| kudo: c38a2ea | pmichaud++ | : Merge branch 'master' of git@github.com:rakudo/rakudo |
|||
|
17:15
kaether_ joined
17:23
darbelo joined,
kaether_ joined
|
|||
| kaether | ok, I fixed it in config/auto/arch.pm | 17:28 | |
| by adding $archname =~ s|\\.|_|g; after my $archname = $conf->data->get('archname'); | |||
|
17:30
kaether_ joined,
tewk joined
|
|||
| dalek | kudo: ee7d456 | jnthn++ | (2 files): P6Invocation should become more Iterator-ish. |
17:36 | |
| kudo: 663cde0 | jnthn++ | src/ (2 files): Refactor indirect method dispatch, and make $x.@foo form do something along the lines of what we'll eventually want it to. |
|||
| moritz | does parrot's svn work for anybody right now? | 17:41 | |
| darbelo | "could not connect to server" | ||
|
17:41
DietCoke joined
|
|||
| Coke | your parrot humor for the day: | 17:42 | |
| icanhascheezburger.files.wordpress....-today.jpg | |||
| moritz | ;-) | ||
| jonathan | No, svn is f'd up for me too. | ||
| purl | okay, jonathan. | ||
| jonathan | ...win. | 17:43 | |
| moritz | lol | ||
| dalek | rrot: r38505 | pmichaud++ | trunk/compilers/pge/PGE/Match.pir: [pge]: Add .orig method. |
17:44 | |
| darbelo | The cat ate the parrot! OH NOES! | ||
| Oh, svn is back. | |||
| moritz | darbelo: it's called "EATED", not ate ;-) | 17:45 | |
| darbelo | Sorry, I not speak native english :) | 17:46 | |
|
17:59
Aisling joined
18:02
japhb joined
18:05
jderque joined
|
|||
| dalek | rrot: r38506 | jonathan++ | branches/rep6object: Create branch for refactoring P6object. |
18:14 | |
| Coke | pmichaud: ping | 18:16 | |
| jonathan | Coke: pmichaud just said on #perl6 he was afk for a while (lunch etc) | 18:17 | |
| Coke | jonathan: you might know; is the assign/ branch killable? | 18:18 | |
| jonathan | How old is it? | 18:19 | |
| jonathan doesn't recall hearing about this branch recently... | 18:20 | ||
| moritz | jonathan: 5 months | 18:21 | |
| jonathan | Hmm. It can probably go, but I'll leave pm to say for sure. | 18:22 | |
| moritz | wow, we have a branch that hasn't been touched in 3 years | ||
| (nci) | |||
| Coke | yah. I'm going to write a report to dump info about branches, hopefully we can kill or merge some of them. | 18:23 | |
| moritz | Coke++ # cage cleaning | 18:24 | |
|
18:33
fperrad left
18:34
davidfetter joined
|
|||
| nopaste | "Coke" at 72.228.52.192 pasted "what else should we report on?" (12 lines) at nopaste.snit.ch/16486 | 18:53 | |
|
18:56
kaether joined
|
|||
| darbelo | Hmm. My GSoC blog is showing up on the parrot front page. Is that intentional? | 18:56 | |
| Coke | I don't know what the top level "blogs" entry is. | 18:58 | |
| darbelo | www.parrot.org/blog/341 ? | ||
| Coke | I didn't know we had blogs there. =-) | ||
| darbelo | Or maybe www.parrot.org/blog/ ? | ||
| Coke | nothing to worry about. | 18:59 | |
| pmichaud | assign branch can go. | ||
| I don't remember what it was for, or if it was even mine. | |||
| If it is/was mine, it can definitely go. | 19:00 | ||
| darbelo | Coke: Can you add it to planet parrot? | ||
| nopaste | "Coke" at 72.228.52.192 pasted "assign branch stats" (8 lines) at nopaste.snit.ch/16487 | 19:05 | |
| pmichaud | it can go. I think that's when I was doing a bit of refactoring to be able to handle containers more correctly in Rakudo. | 19:06 | |
|
19:07
rdice joined
|
|||
| Coke | cheeze it, it's the pres. | 19:07 | |
| davidfetter | heh | ||
| nopaste | "coke" at 72.228.52.192 pasted "branch stats" (254 lines) at nopaste.snit.ch/16488 | 19:09 | |
| kaether | submitted the patch -- on hpux, perl is built with an architecture of IA64.ARCHREV_0 | 19:12 | |
| which forms an illegal #define id in Configure/config.h | 19:13 | ||
| pmichaud | I'll get rid of some of my branches. | 19:14 | |
| Coke | pmichaud: I just updated trac.parrot.org/parrot/wiki/BranchDescriptions - feel free to rip out ones that you delete, or I'll just get 'em next time I run the script. | 19:16 | |
| dalek | tracwiki: v7 | coke++ | BranchDescriptions | ||
| tracwiki: add copy of report generated by one off perl script | |||
| tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff | |||
| rrot: r38507 | pmichaud++ | branches/rvar: Remove obsolete branch |
|||
| rrot: r38508 | pmichaud++ | branches/rvar2: Remove obsolete branch |
|||
| rrot: r38509 | pmichaud++ | branches/rakudoreg: Remove obsolete branch |
|||
| rrot: r38510 | pmichaud++ | branches/p6strings: Remove obsolete branch |
|||
| Coke | pmichaud: I'm actually re-running it now to grab more output, I'll get it. | 19:17 | |
| pmichaud | okay, great. | ||
| Coke | wow, that's a lot of branches. =-) | ||
| dalek | rrot: r38511 | pmichaud++ | branches/assign: Remove obsolete branch |
19:20 | |
|
19:20
donaldh joined
|
|||
| dalek | tracwiki: v8 | coke++ | BranchDescriptions | 19:23 | |
| tracwiki: rerun - pmichaud++ just removed a bunch of old branches, add in initial commit message for (hopeful) clarity | |||
| tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff | |||
| Coke | msg chromatic Is the headercleanup branch deletable now? | 19:24 | |
| purl | Message for chromatic stored. | ||
| Coke | msg particle is the bundle-parrot branch worth saving at this point? | 19:25 | |
| purl | Message for particle stored. | ||
|
19:29
ilia joined
|
|||
| particle-nyc | coke: stuff it. | 19:35 | |
| purl | bend over | ||
|
19:35
chromatic joined,
Whiteknight joined
|
|||
| dalek | tracwiki: v9 | coke++ | BranchDescriptions | 19:36 | |
| tracwiki: add commit count per author | |||
| tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff | |||
| Whiteknight | chromatic: ping | ||
| chromatic | pong | 19:38 | |
| Whiteknight | chromatic: allison mentioned that there was more GC API work to do now. is there a wishlist/checklist/planning page or something to follow? | ||
| without a plan, I'm liable to fly off on a tangent, do nothing productive, and write a blog post about my travels | 19:40 | ||
| chromatic | Mostly we need to identify an API that all pluggable GCs can implement to make them pluggable. | 19:41 | |
| Whiteknight | okay...Didn't you get something like that together a while back? | ||
| jonathan | chromatic: I never knew that ParrotInterpreter instances were so expensive. It looks like I can replace a lot of them with interpinfo. | 19:42 | |
| Coke | (interp sharing) I don't mind making some information global; I just don't know what information that needs to be. | 19:43 | |
| chromatic | I didn't put anything quite like that together. | ||
| I pulled some ideas together and cleaned up the API somewhat. | |||
| jonathan, we should make the interpreters less expensive. | |||
| There's an interesting idiom in Rakudo's control.pir that could be cheaper. | |||
| $P0 = new 'ParrotInterpreter' | |||
| sub = $P0['sub'; 1] | |||
| something like that. | |||
| purl | i heard something like that. was that true? | ||
| jonathan | chromatic: Yes. Is that one possible with interpinfo? | 19:44 | |
| Whiteknight | Okay, I'll take a stab at a comprehensive API plan then | ||
| chromatic | I don't know what it's doing, but I expect it is. | ||
| Mostly we just need to identify the specific operations we expect from a GC. | 19:45 | ||
| jonathan | chromatic: We can get .CURRENT_SUB | 19:46 | |
| But I think the 1 is caller. | |||
| Which interpinfo doesn't currently give a way to get at. | |||
| chromatic | We should fix that then. | ||
| jonathan | Is ParrotInterpreter creation showing up as a major cost in Rakudo? | 19:47 | |
| chromatic | Bigtime. | ||
| jonathan | That's crazy, because we don't create *that* many... | 19:48 | |
| AFAICT | |||
| Which must mean the individual cost is huge. | |||
| chromatic | Hello, world in Perl 6 creates 16 interpreters. | 19:49 | |
| jonathan | OK, that's in line with the number I'd expect. | ||
| Whiteknight | why does it possibly create so many? | 19:50 | |
| jonathan | But if that's costly, should really be avoidable. | ||
| Whiteknight | what are they even used for? | ||
| jonathan | Whiteknight: We're purely doing it for introspection. | ||
| Whiteknight | so we can't do proper introspection without creating interpreters? | ||
| chromatic | We can avoid most of the cost, but if Rakudo can avoid all of it.... | ||
| Coke | OOC, would using "getinterp" instead of creating a new one? | ||
| Whiteknight obviously don't know much about parrot's implementation of it | |||
| Coke | (work) | ||
| chromatic | As far as I know, getinterp should work. | 19:51 | |
| jonathan | Coke: There's a getinrerp op? | ||
| trying this stuff :-) | |||
| Coke | jonathan: yes. returns the current interpreter. | ||
| pmichaud | I've almost always used 'getinterp'. AFAIK I've never seen the new 'ParrotInterpreter' meme. | 19:53 | |
| ah, and there it is. | |||
| ack ftw | 19:54 | ||
| I suspect those should be getinterps | |||
| moritz | aye | ||
| jonathan | pmichaud: Trying replacing 'em all with getinterp | ||
| pmichaud: It's me to blame. I didn't know about getinterp and didn't realize what new 'ParrotInterpreter' was doing. | |||
| pmichaud | jonathan: no problem :-) | ||
| jonathan | chromatic++ for pointing it out | 19:55 | |
| chromatic | I'm running a startup benchmark now. | ||
| jonathan | chromatic: You've tried replacing them too? | 19:56 | |
| chromatic | Yes. | ||
| jonathan | Got a patch here that is passing the sanity tests...need to run it through spectest too. | ||
| chromatic: running that here. Will let you know how it goes. | 19:57 | ||
| chromatic | 7.62% improvement. | ||
| Runtime improvement should be much better. | 19:59 | ||
| TimToady | phone | 20:00 | |
| jonathan | chromatic: Certainly worthwhile. | 20:02 | |
| chromatic: Do you have much idea where else are our major costs? | 20:03 | ||
| (for startup) | |||
| And how much is just Parrot and how much is Rakudo? | |||
| chromatic | I have a pretty good idea. | ||
| The PMCProxy game is expensive. | |||
| Parrot's startup is still too expensive, but it's 9 million ops. Rakudo's startup is 774 million ops. | 20:04 | ||
| That's CPU ops, not PBC ops. | |||
| pmichaud | PMCProxy itself, or the way in which Rakudo (ab)uses it? | ||
| jonathan | My word, that's crazy! | ||
| chromatic | The way in which Rakudo abuses it. | ||
| pmichaud | just in startup, or in general? | ||
| chromatic | Stuffing methods in there is expensive when it hits the "There's already a method here of that name!" exception. | 20:05 | |
| pmichaud | okay, just in startup. | ||
| I think I can clean that up. | |||
| I'm just looking for properly shaped tuits. | |||
| Whiteknight | thanks chromatic. Layer | 20:06 | |
| later* | |||
| jonathan | pmichaud: We do that in regster IIUC. | ||
| pmichaud: in p6object | |||
| *register | |||
| Which I'm currently in the process of changing enormously. | |||
| pmichaud | ...enormously? | 20:07 | |
| is that because of the Protoobject PMC, or are there other significant changes there? | |||
| (the code in question is actually in add_parent) | 20:08 | ||
| jonathan | pmichaud: Well, the entire Protoobject class goes away for one. | ||
| erm | |||
| P6protoobject | |||
| This has quite a few knock-on effects. | 20:09 | ||
| pmichaud | Yes, I suspect it will. | ||
| I may go ahead and fix it in trunk; if you later replace it that's okay. | |||
| jonathan | pmichaud: I'm working in a branch ATM. | ||
| pmichaud | yes, I saw that. | ||
| jonathan | Though not at the point where I'm ready to commit anything yet. | ||
| Dinner in a moment, will continue later. | 20:10 | ||
| pmichaud | fortunately p6object has a fairly good test suite :-) | ||
| jonathan | Yeah. I fail at library loading at the moemnt. :-| | ||
| ok, nom time, bbs | 20:13 | ||
| PacoLinux | Util: I tested your pbc_to_exe patch with an ancient machine with only 320Mb of ram. To make perl6 the time was over 2 hours (in the step pbc2exe, almost swaping all the time). With your patch applied, the time was less than 5 seconds :) Impressive | 20:30 | |
| moritz | jonathan: I did the s/new 'ParrotInterpreter'/getinterp/g and all tests pass here... should I push? or do you want? | 20:31 | |
| Coke | purl 5 / (2*60*60) | 20:32 | |
| purl | 0.000694444444444444 | ||
| jonathan | moritz: heh, I jsut got the same result... | 20:36 | |
| Util | PacoLinux: Thanks! Unfortunately, Jonathan tried it on Win32 with Microsoft's Visual C compiler, and found that it has limits on the maximum string size (16KB or 64KB, depending on version), so we can't apply the patch as written. | ||
| I am working on a version that builds the needed memory block from 16KB strings at runtime. It is a pain to do in generated PIR, but my preliminary timings show an increase of only 0.01 second load time, so I think the new patch will be workable and just as fast. | |||
| dalek | cnum-dynpmcs: r19 | arbelo++ | trunk/src/pmc/decnum.pmc: Refactor repeated code into the new_if_not_a_decnum() helper function. |
||
| jonathan | moritz: will push | 20:37 | |
| PacoLinux | Util you can use conditional compilation based in the platform/compiler ? | ||
| moritz | jonathan: ok | ||
| Util | PacoLinux: yes, but MSVC/Win32 is also suffering from some kind of overload due to the old byte-array method, so I am hopeful that my patch will also improve things there. | 20:39 | |
| If it all works, then someone *could* write a config test for max-string-size, and have pbc_to_exe use that info, but pbc_to_exe is hoped to go away someday, so I am not stretching my efforts that far. | 20:41 | ||
| chromatic | Sounds reasonable. | ||
| PacoLinux | Util: ok, but in the meantime is a vry good work :) | ||
| Util | thx! | ||
| dalek | kudo: a40974a | jnthn++ | src/ (2 files): Use getinterp instead of new ParrotInterpreter to improve performance. |
20:43 | |
| kudo: 45ddf59 | jnthn++ | src/builtins/ (2 files): Use getinterp instead of new ParrotInterpreter to improve performance (part 2...missed some!) |
|||
| Util | jonathan: that reminds me - yesterday pmichaud said "...jonathan++ also sees it regularly under Win32 (and has to bump up the compiler limits..." | 20:44 | |
| jonathan: what flags are you having to adjust, and to what levels? | |||
| jonathan | The flag is /Zm | 20:45 | |
| See config/hints/mswin32.pm | 20:46 | ||
| Currently run /Zm1500 | |||
| Because the previous /Zm1000 is too mcuh | |||
| erm, | |||
| too litel | |||
| wtf | |||
| *was too little | |||
| That's "percentage of the normal amount allowed" I think. | |||
| But I can't bump it over 2,000. Once I put 2000 it says that's too much! | 20:47 | ||
| dalek | kudo: 35c6746 | masak++ | src/setting/Any-str.pm: [setting/Any-str] implemented .words |
20:49 | |
| kudo: 6b962c2 | masak++ | src/setting/Any-str.pm: [setting/Any-str] changed signature of .comb |
|||
| kudo: 615936e | masak++ | t/spectest.data: [spectest.data] added S32-str/words.t |
|||
|
20:51
clunker3__ joined
|
|||
| Util | jonathon: thanks, that is what I needed! | 20:51 | |
| jonathan: thanks, that is what I needed! (oops, typo-in-name==bad!) | 20:52 | ||
| moritz | Util: typo? don't you have a tab key? ;-) | ||
| Util | moritz: Cool! I m a relative newcomer to IRC and IRSSI, and don't know all the tricks yet. Thanks! | 20:53 | |
| moritz | Util: you're welcome ;-) | 20:54 | |
| chromatic | Oh, you all are going to LAUGH. | 20:57 | |
| moritz | ... but you didn't know about the tab key either? | ||
| chromatic | What happens when you call VTABLE_delete_keyed_int on a RPA? | 20:59 | |
| There's no implementation there, so you get the default version. | |||
| That boxes the INTVAL into an Integer PMC, then calls the VTABLE_default_keyed version. | |||
| In RPA, that unboxes the PMC it receives.... | 21:00 | ||
| Upshot: adding delete_keyed_int to RPA and rewriting delete_keyed to use the int version improves Rakudo startup by 1.34%. | |||
| Util | Oh chromatic, you card you. | 21:01 | |
| chromatic | Avoiding the allocation of 14,743 immediate garbage PMCs is nie. | ||
| nice | |||
| 9% of all PMC allocations in startup even. | 21:02 | ||
| moritz | wow. | ||
| Util | I am impressed. | ||
| chromatic | Now for ParrotIterator. | 21:06 | |
| Util | What is the status of the `:invocant` flag, as documented in docs/pdds/pdd27_multiple_dispatch.pod? | 21:11 | |
| Coke | I don't think it even parses. | ||
|
21:11
contingencyplan joined
|
|||
| Coke | ISTR tripping over it in some sample code when i tried to add the =for PIR markers. | 21:11 | |
| dalek | rrot: r38512 | NotFound++ | trunk (2 files): [configure] replace dots with underscores in archname, TT #645 rrauenza++ |
21:12 | |
| rrot: r38513 | NotFound++ | trunk/lib/Parrot/Configure.pm: [configure] revert an accidental change in 38512 |
|||
| Util | `ack` reports that it still lives in the pirc and imcc compilers, and it is not listed in DEPRECATED. | ||
| Are these, and the docs, just oversights? | 21:13 | ||
| Coke | No clue. | ||
| My assumption is, if it's in the PDD, it's not yet implemented. | |||
| jonathan | chromatic++ # nice win! | ||
| pmichaud | I think it's not yet implemented, but that the PDD itself may be in flux with the other calling convention changes taking place. | ||
| Util | OK, thanks, especially for the last (PDD) line | 21:14 | |
| (Well, thx to both, now) | |||
|
21:15
Whiteknight joined
21:22
donaldh_ joined
21:25
tetragon joined
|
|||
| Coke | I thought the calling convention changes were merely implementation details, not PDD level. | 21:31 | |
| jonathan | chromatic: Turns out that we also fail to add things to the namespace with add_sub when they are an NCI. | 21:34 | |
| chromatic: Should add_sub accept those? | |||
| chromatic | I'm not sure. | 21:37 | |
| jonathan | OK, well, I can detect those and not try anyway. That's probably cheaper than an exception. | 21:38 | |
|
21:40
Su-Shee left
|
|||
| nopaste | "jonathan" at 85.216.157.73 pasted "chromatic - how much does this help?" (24 lines) at nopaste.snit.ch/16489 | 21:41 | |
| chromatic | Checking now. | 21:45 | |
| jonathan | chromatic: It still throws some exceptions, but I'm kinda hoping less... | 21:46 | |
| pmichaud | when would we have an NCI MultiSub ?! | 21:47 | |
| chromatic | 2.8% improvement. | ||
| jonathan | pmichaud: It's not an NCI MultiSub. | ||
| pmichaud: It's probably when we inherit a method from a PMC. | |||
| pmichaud: Those are NCIs. | |||
| pmichaud | yes, but your patch changes the loops to only add MultiSubs (if I'm reading it correctly) | ||
| + $I0 = isa $P0, 'MultiSub' | |||
| + unless $I0 goto method_loop | |||
| jonathan | pmichaud: Yes, but before that we check if there are any entries at all. | 21:48 | |
| pmichaud | I don't understand. | ||
| jonathan | pmichaud: Under the name. | ||
| + $P0 = parrotclassns[$S0] | |||
| + if null $P0 goto add_method | |||
| That is, if there is nothing currently in the namespace under that name, go and add it. | |||
| It's only after that we say "is the thing that's already there a multi-sub"? | |||
| pmichaud | why not check for NCI first, then? | 21:49 | |
| before checking anything else? | |||
| jonathan | We could do that. | 21:51 | |
| Not sure which case happens most often. | |||
| chromatic: Is a 2.8% win worth it? | 21:52 | ||
| chromatic | I think so. | ||
| pmichaud | I do also. | ||
| Whiteknight | jonathan: every win is worth it in the long run | ||
| chromatic | Parrot itself can start over twice in that 2.8%. | ||
| s/over twice/more than two times over/ | 21:53 | ||
| jonathan | OK, I'll spectest the patch and if all passes in it goes. | 21:54 | |
| pmichaud | I think I like the patch the way you have it now better. | ||
| i.e., check for multisub first, then later for NCI | |||
| so, just so I understand this -- generating and catching the exceptions is really expensive? | 21:55 | ||
| darbelo | cotto: ping | 21:56 | |
| cotto | darbelo, pong | 21:59 | |
| chromatic | Less expensive than I thought, but more expensive than it should be. | ||
| pmichaud | because if so... that adds weight to what I mentioned on the call earlier today about needing "leave" to be non-exceptional, and to be able to handle "on exit" semantics. | 22:01 | |
| chromatic | We have trouble measuring the cost of exceptions because we can't easily detect when an exception handler has ended. | 22:02 | |
| pmichaud | Yes, that makes sense. | 22:03 | |
| darbelo | I'm looking at the exceptions for DecNum. I want to go no traps and manual inspection of the status field, thoughts? | ||
| chromatic | That's probably easier, if you're consistent about it in a way that users never have to think about it. | 22:04 | |
|
22:04
mikehh_ joined
|
|||
| cotto | darbelo, so basically you check the status after every operation and possibly throw an exception? | 22:05 | |
| darbelo | Yup. The alternative is getting SIGFPE'd, inspecting the status and throwing. | 22:06 | |
| chromatic | What are the implications for concurrency? | ||
| cotto | chromatic, are you talking to pmichaud or darbelo? | 22:07 | |
| dalek | rrot: r38514 | jonathan++ | branches/rep6object/src/pmc/protoobject.pmc: [rep6object] Very first cut of the prototype PMC; will doubtless need some tweaks. |
||
| cotto | darbelo, that sounds ok as long as the check isn't too expensive | 22:10 | |
| pmichaud | (I think chromatic's question was aimed at darbelo) | 22:12 | |
| darbelo | "if (set.status & DEC_Errors) { Parrot_ex_throw_from_c_args ( /* ... et cetera */" | ||
| chromatic: If we manually inspect the context, none. If we get SIGFPE'd, I'd have to know more about parrot internals than I do right now. | 22:14 | ||
| cotto | That's right. It'll be cheap because you need the decContext for an operation anyway. | 22:18 | |
| Whiteknight | darbelo: That's definitely the way to go. Do not wait for a SIGFPE to do error handling | ||
| cotto | There's a Parrot_sigaction function, but I don't know what caveats it has. | 22:20 | |
| darbelo | cotto: Exactly, the operation sets the status. | ||
| chromatic | I'm not sure how to trap a SIGFPE if you have multiple threads running. | 22:25 | |
|
22:46
chromatic joined
22:47
allison joined
|
|||
| Util | slavorg? | 22:48 | |
| purl | slavorg is probably the bad bot | ||
| dalek | rrot: r38515 | jonathan++ | branches/rep6object/src/pmc/protoobject.pmc: [rep6object] Need to claim that we're an abstraction when the proto-object. |
22:50 | |
|
22:58
ruoso joined
|
|||
| dalek | rrot: r38516 | jonathan++ | branches/rep6object/src/pmc/protoobject.pmc: Stringification of proto should end in (). |
23:00 | |
| cnum-dynpmcs: r20 | arbelo++ | trunk/src/pmc/decnum.pmc: Add a trial implementation for exceptions throwing. |
23:08 | ||
| darbelo | I think I heard Infinoid talk about karma aliases. Is there a way to unify arbelo and darbelo? | 23:12 | |
|
23:15
samlh joined
23:20
donaldh joined
|
|||
| dalek | rrot: r38517 | jonathan++ | trunk/runtime/parrot/library/P6object.pir: Try to avoid exceptions when copying methods out to Parrot classes in P6object, which gives a performance win. chromatic++ for identifying this bottleneck. |
23:33 | |
|
23:35
ilia joined
|
|||
| rg | darbelo: I guess you need get somebody to commit a patch to the CREDITS file, like this: nopaste.snit.ch/16490 | 23:40 | |
| darbelo | Ok. I guess I'll bug cotto about it later :) | 23:42 | |
| Infinoid | darbelo: I can fix that, one moment | 23:44 | |
| karma darbelo | 23:45 | ||
| purl | darbelo has karma of 12 | ||
| Infinoid | karma arbelo | ||
| purl | arbelo has karma of 4 | ||
| Infinoid | darbelo++ | ||
| darbelo | karma purl? | 23:47 | |
| purl | purl has karma of 8562 | ||
| Infinoid | git show | 23:48 | |
| purl | git show is how I've been doing it | ||
| Infinoid | wwe | ||
| darbelo: I haven't actually found out whether this feature of dalek works yet. But in theory, it should re-scrape CREDITS sometime within the next couple of hours and add your karma alias. | 23:49 | ||
| dalek | rrot: r38518 | Infinoid++ | trunk/CREDITS: [CREDITS] Add an alias for darbelo, to consolidate his commit karma. |
||
| darbelo | ok | 23:51 | |
| dalek | cnum-dynpmcs: r21 | arbelo++ | trunk/src/pmc/decnum.pmc: Add context checking to set_string_native. Now it will throw an exception on |
23:52 | |
| cotto | now you know | 23:53 | |
| purl | It does the boots and shoes. | ||
| rg | he said "within the next couple of hours" | ||
| cotto | oh | ||
| darbelo | This night won't be commit heavy, so we'll probably find out tomorrow. | 23:56 | |
| Infinoid | Yeah, it doesn't poll very often | ||
| In the meantime, darbelo++. | |||
| darbelo | I gues I should arbelo-- right? | 23:57 | |
| karma arbelo? | 23:58 | ||
| purl | arbelo has karma of 4 | ||
| darbelo | arbelo-- | ||
| karma arbelo? | |||
| purl | arbelo has neutral karma | ||