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