Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: merge tt_389_fix and one_make branches | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 23 January 2010.
00:03 abqar joined 00:36 payload joined
japhb dukeleto, Plumage's t/harness.pir does not WFM with current Parrot. Are you working in there? 00:45
dukeleto, nevermind, fixed and pushed 00:53
dalek rrot-plumage: d609393 | japhb++ | (2 files):
Use [Getopt;Obj] rather than Getopt::Obj
00:56
01:20 hercynium joined 01:54 TiMBuS joined
dalek rrot-plumage: c7ef85b | japhb++ | src/lib/Plumage/Project.nqp:
[LIB] Plumage::Project: Fix braino with smoke action prereq path
02:01
japhb fperrad++ for the bug report on that, btw 02:03
02:03 kid51 joined 02:06 theory joined
mikehh kid51: ping 02:12
kid51 mikehh pong 02:13
mikehh kid51: is the missing use warnings in lib/Parrot/H2inc.pm deliberate 02:14
perlcritic complains
kid51 Hmm, interesting, I didn't know we had a check for that.
We can certainly put it back in. 02:15
I guess I'm thinking of certain discussions I've had on $job ...
... where many people argue that 'use warnings' should go in calling programs but not in modules.
OTOH, the sort of people who argue against that tend to argue against tests, against branching in version control systems, etc, 02:16
mikehh been there :-} 02:17
kid51 restoring.
dalek rrot: r43584 | jkeenan++ | branches/one_make/lib/Parrot/H2inc.pm:
Add 'use warnings' to keep perlcritic happy.
02:23
mikehh btw it's perlcritic.t test 125 - that just leaves Coke's XXX in tools/dev/checkdepend.pl - the rest of the tests pass 02:30
kid51 Yes, Coke is aware of them and, I think, hopes to resolve the TODO before merging. 02:31
Does anyone know how we run PASM these days? 02:32
If so, can you comment on TT #644? 02:33
Coke kid51: ./parrot foo.pasm 02:36
kid51: what was the point of pulling out all those functions into a .pm? 02:37
(just what was in the commit msg?)
kid51 Yes
Coke ok. makes it very annoying to actually work on the script.
kid51 This works: ./parrot examples/pasm/hello.pasm 02:38
Coke (for me)
kid51 Do you have more work to do on it? If so, I'll revert.
Coke Probably. also probably not worth reverting.
kid51 So, apropos of TT 644 and the examples in examples/pasm/*.pasm ... 02:40
... I get meaningful results with hello.pasm, trace.pasm, and fact.pasm -- but just get a hang with cat.pasm. 02:41
Coke kid51: ... did you read the pod for that test? 02:42
s/test/example/
kid51 Am just looking at it now.
okay I got it 02:43
Coke ... look at that email to parrot-dev, we have examples of 1/2 already, and 3 smells almost like nqp-rx. 02:49
kid51 The one from atex.way?
kid51 wishes C were a "more common language" for *him* 02:50
Coke easy enough to learn. =-) 02:51
kid51 The problem is that the textbooks only take me to the advanced beginner level. Parrot demands an advanced level. The problem is finding ways to get to and through the *intermediate* level. 03:01
chromatic I'm sure we could find some small tasks for the interested. 03:02
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#31878), fulltest) at r43584 - Ubuntu 9.10 amd64 (g++ with --optimize) 03:08
kid51: you could review the code - some is quite good, although a lot needs refactoring 03:11
kid51 I've done a little of that. I think one of the problems is that we are so macro-ized that it's difficult the see the C 03:12
mikehh yeah - one of the reasons I am very wary of C macros 03:13
chromatic I haven't found that to be too problematic her. 03:14
*here
The PMC attribute accessors aren't great macros, but otherwise they seem reasonably sane.
mikehh emphasis on seem :-} 03:16
chromatic Jim's a good programmer. I don't know any reason he couldn't do some C stuff. 03:18
mikehh I agree with that
nopaste "kid51" at 70.85.31.226 pasted "Is this sufficient to get 'make hello' working again?" (27 lines) at nopaste.snit.ch/19351 03:21
kid51 for tonight, would settle for getting a little make syntax down 03:22
chromatic kid51, that should work, but we could also use pbc_to_exe. 03:30
kid51 And the syntax for that would be ...? 03:32
chromatic Copy the syntax for the pbc_to_exe target. 03:34
kid51 That would be the one that starts: examples/pasm/hello.pbc 03:37
Well, that's all I can do tonight 03:38
kid51 must sleep
purl $kid51->sleep(8 * 3600);
plobsing hi, I've been having some GC problems. 03:46
specifically, I can't imagine a situation that you'd want to run mark/sweep when you are already running mark/sweep. 03:47
chromatic Agreed. 03:49
03:49 cconstantine joined
nopaste "plobsing" at 69.172.121.171 pasted "[backtrace] GC called from GC" (35 lines) at nopaste.snit.ch/19352 03:50
chromatic That's fun. 03:51
plobsing I know why this particular instance is failing, but it highlights a bigger issue
this instance fails bc interp.iglobals is gone when we try tracing in the inner GC 03:52
03:52 cotto joined
plobsing but more importantly: why can this happen? 03:52
should we have a flag to prevent it re-entering?
chromatic I think this can only happen during global destruction. 03:57
plobsing but if a destructor tries to allocate memory, it could trigger a GC run. 03:58
in fact, it is likely to trigger a run, because we're out of memory (which is why we are running GC)
am I mistaken somewhere?
chromatic Hm. That's plausible. 03:59
I wonder how performance would look if we allocated a new pool *prior to* reclaiming old headers. 04:00
plobsing my idea was a flag, set when we're running GC, that switches us over to something like infinite memory GC until we're done 04:13
basically, allocate the new pool on demand
is that possible?
plobsing doesn't really understand the GC all that well 04:21
Coke I don't think the purpose of 'make hello' was to just print 'hello', was it? 04:42
(i thought it was to test the old 'exe' stuff. 04:43
(though if that's going away...)
cotto That's a very inefficient way to print something. We should be using echo. 04:49
chromatic plobsing, it's possible but I'm not sure it's worthwhile. 05:06
In the sense that "Hm, that could add complexity."
It may fall out of what we need to do to add generational GC though.
05:30 dalek left, dalek joined 05:33 Jimmy_Zhuo joined
cotto hi Jimmy_Zhuo 06:15
Jimmy_Zhuo hello 06:24
purl privet, Jimmy_Zhuo.
Jimmy_Zhuo cotto 06:25
chromatic I may have just found a 7.118% GC performance tuning. 06:49
06:56 bacek joined
nopaste "chromatic" at 72.87.39.97 pasted "bacek: modest patch to decrease number of GC runs" (69 lines) at nopaste.snit.ch/19354 06:57
chromatic I think we have to tune the replenish level some more, but this approach seems promising. 06:59
dukeleto chromatic: do you need some benchmark runs with that patch? 07:17
chromatic dukeleto, I'd like to see them, yes.
dukeleto chromatic: which benchmarks? the gc ones, or others? 07:18
chromatic Anything you can run.
I expect a 2-8% improvement.
dukeleto ok 07:20
07:20 JimmyZ joined
chromatic Meanwhile let me think of algorithmic improvements. 07:22
dukeleto msg japhb please lend some tuits on gitorious.org/parrot-plumage/parrot...dd265e1e80 07:48
purl Message for japhb stored.
07:52 fperrad joined 08:11 iblechbot joined
japhb msg dukeleto got it, will take a look in the morning. 08:39
purl Message for dukeleto stored.
08:40 cognominal joined 08:48 cotto joined 09:01 payload joined 09:05 mikehh_ joined 09:15 cotto joined 10:13 cognominal joined 10:16 BooK left 10:18 bacek joined
bacek o hai 10:57
mikehh, ping? 10:58
dalek rrot: r43585 | bacek++ | branches/orderedhash_revamp (40 files):
Sync branch with trunk
11:00
11:36 jsut_ joined 11:51 gaz joined 12:04 payload joined 12:35 bluescreen joined
Coke msg cotto - I think the branch is at a good merge point right now. You? 13:00
purl Message for cotto stored.
Coke (we need someone to update it with changes from trunk, then have andy D. and windows folks test it. 13:01
13:06 tetragon joined 13:15 ruoso joined
mikehh bacek: you still there 13:16
bacek mikehh, barely. Can you retest packfile.t failure at r43585?
yak...
13:16 mikehh joined
mikehh bacek: woking on it 13:22
bacek mikehh, thanks
13:27 jsut joined
mikehh bacek: make corevm/make coretest, make world/make test passes on both g++/gcc (with --optimize) 13:33
bacek hooray!
mikehh++
mikehh running a fulltest on gcc
13:42 bluescreen joined
mikehh bacek: btw I have a script that will sort out svn properties after you merge if there are any problems 13:44
bacek mikehh, ok, thanks
13:44 payload joined 13:45 jsut_ joined
bacek mikehh, dcommiting now 13:50
mikehh, MANIFEST.SKIP will probably require regenerating
r43586
Coke bacek: yup. committing... 13:53
bacek Coke, thanks 13:54
Coke I am not looking forward to merging one_make. 13:55
bacek: make test on trunk is ok.
bacek Coke, I tested before commiting :)
Coke yah, but you're using git! 13:56
bacek That's why I can test before merge! :) 13:57
dalek rrot: r43586 | bacek++ | trunk (11 files):
Merge branch orderedhash_revamp into trunk
13:59
rrot: r43587 | coke++ | trunk/MANIFEST.SKIP:
regen per bacek++'s request.
Austin Amazon is offering a special deal on ukelele's. 14:02
moritz Austin: www.youtube.com/results?search_quer...at+britain :-) 14:03
Austin That's horrifying. 14:04
moritz they are quite cool IMHO :-)
Austin "Shaft" done by Ukelele's.
Forget Haiti. Great Britain needs help.
purl Austin, I didn't have anything matching haiti. great britain needs help
Austin Which quite naturally (!!!) leads to youtube suggesting the ukelele version of "Bohemian Rhapsody" 14:07
moritz--
Coke bacek: full test is also fine. 14:12
bacek Coke, on which platform? 14:14
Coke something linuxy 14:16
hurm. checkdepend.pl --dump is borked in one_make branch
ah. no, it's just very verbose with the 'diag' 14:19
14:19 cognominal joined
dalek TT #1080 closed by whiteknight++: segfault in Parrot_HashIteratorKey_get_string 14:32
15:01 PacoLinux joined 15:04 iblechbot joined 15:09 mikehh joined, payload joined, bubaflub joined 15:40 payload joined 15:42 Psyche^ joined 15:47 preflex joined 15:54 Andy joined 16:03 darbelo joined 16:37 plobsing joined 16:40 payload joined 17:03 whiteknight joined 17:07 clinton joined
cotto Coke, my only concern is that checkdepends needs to be significantly smarter to avoid some of the false positives it's catching now. 17:09
NotFound Parrot Version 2.0.0 Configure 2.0 | Copyright (C) 2001-2009, Parrot Foundation. 17:10
Must not be 2001-2010 ? 17:11
darbelo Only if we edited in 2010. Which I think we did.
whiteknight good morning, #parrot 17:15
Coke cotto: do you think we should try to fix all deps before mergeback, or that we're in an OK state right now? (i.e. no worse than trunk) 17:17
cotto The dependencies aren't bad. It's just checkdepends that's goofy. 17:22
As long as that's made clear, merge away!
Coke checkdepends is optional and is only used by folks hacking on the build process, not ``real'' developers. 17:37
ok. if no one beats me to it, I'll try to do the merge tonight.
git folks: is the code for github something you could drop in an internal network and run for internal usage? 17:43
particle use gitorious 17:45
you can even integrate it with trac, or other request trackers 17:46
dalek rrot: r43588 | NotFound++ | trunk/src/pmc/fixedpmcarray.pmc:
[pmc] return self in FPA sort method, TT #1414
TT #1414 closed by NotFound++: Change ??A .sort() methods to return self
particle and for display of your repo in a browser, see cgit 17:47
dalek nxed: r369 | julian.notfound++ | trunk/t/harness:
fix deprecated Getopt usage
17:50
17:52 mikehh joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#31898), fulltest) at r43587 - Ubuntu 9.10 i386 (g++ with --optimize) 17:53
japhb Sanity check: How does one add a method to all *Array PMCs from PIR? I could swear it used to work to insert the method in namespace ["Array"] but that seems to be broken now. 17:56
darbelo japhb: Could be TT#389 related? 17:59
whiteknight pmichaud: ping
japhb darbelo, tt389_fix is still unmerged though, yes? 18:04
darbelo Oh. Nevermind then. 18:05
cotto_w0rk Coke, github offers their software for internal use but it's really expensive. 18:08
Coke gitorius is fine. Just wanted a free option to pitch to the admin team here if I can convince anyone to go git. 18:10
well, once 389 hits, it's not going to be doable that way anyway, is it?
18:11 joeri joined
Coke so you might as well figure out if there is a "right" way. 18:11
japhb Coke ... and that would be why I asked. ;-)
I was merely saying to darbelo that it seemed the TT did not affect my current problem. 18:12
Coke I am not sure there is a way to do that, btw. 18:14
(aside from the old way which we no longer want.)
i would have guessed an op named "_method", and see no obvious candidates.
I think the right answer might be to make it a global multi that DTRT when passed a core class as an arg, or to subclass the ones you care about, add the method, and hll-map them. 18:15
darbelo The *Array PMCs don't seem to share a common ancestor, which makes 'altering them all in one go' unlikely to be correct.
japhb Too bad we can't just add a method to the array role. 18:16
Coke ah, but there are at least 2 distinct types of array role. and it's not really a role anymore, more of a does, which doesn't mean anything. =-) 18:17
s/anymore/anyway/
but yes.
you wouldn't be adding 'reverse', would you?
japhb why yes, funny you should ask. ;-) 18:20
dukeleto hola 18:23
japhb o/
dukeleto japhb: are you hacking away at getting reverse() to work? 18:26
japhb dukeleto, yes
dukeleto japhb: it doesn't seem to be used in plumage right now, is it needed?
japhb: although, knowing how to do it would be great
japhb No, but: 1) it represents a general problem, so I'd rather fix it than ignore it, as you said, and 2) Util.nqp might be moving into NQP-rx, so it will actually be useful there. 18:27
Coke japhb: there is a version in partcl with a note that suggest pushing it back upstream. 18:31
(if you just want to steal that version)
dukeleto japhb: sounds good
japhb link?
purl or "Link is ... like ... this pointy eared goblin that walks around in midi-music land with a letter opener attacking circles and things and wooing princesses but not bannon, you know?" or preaction is Error.
pmichaud whiteknight: pong 18:32
Coke github.com/partcl/partcl/blob/maste...st.pir#L59
dukeleto japhb: plumage also has the latest tapir, with bail out support and out of order test detection
Coke (though ours is in PIR)
whiteknight pmichaud: I would like to look at adding optimization stages to PCT. I was wondering if you could point me in the right direction about how to do that
Coke (and will suffer from the same problem you have now, how to add a method.) 18:33
oh. use the add_method method.
(duh! =-)
japhb dukeleto, what do those features mean?
Coke ... but then it needs to be manually added to every *Array class, yes? 18:35
Non-destructive reverse in NQP: gitorious.org/parrot-plumage/parrot...qp#line162 18:37
18:37 gaz joined
pmichaud whiteknight: I'm not sure what direction is the right one. It would depend on the optimizations. 18:38
whiteknight what I'm looking at initially is a way to collapse nested PAST::Blocks so they don't create separate lexically-scoped functions 18:39
pmichaud whiteknight: you'd also have to make sure they aren't ever used as an rvalue 18:40
(i.e., as a closure)
dukeleto japhb: it understands 'Bail out!', which will halt a test file
japhb: and it will notice if tests run out of order and fail the file
whiteknight pmichaud: well, I'm envisioning a "buyer beware" optimization step that languages which know the risks can choose to load
for instance, Matrixy doesn't really support closures, so it could optimize those nested scopes away with abandon 18:41
Coke japhb: yes. all those classes are different anyway.
see previous rant about lack of common ancestor.
japhb Is there an existing sub in parrot's Test::More that does the bailout, or should I just go with 'say("Bail out!")'
?
pmichaud whiteknight: my suggestion would be to make a branch and experiment with different things there
whiteknight: then propose a patch or design update
japhb Coke, yeah, I'm completely with you on that rant
whiteknight pmichaud: isn't there a way to load in an optimization stage at runtime? 18:42
pmichaud: do optimizations stages need to be built-in to PCT, or can they be loaded externally?
pmichaud whiteknight: sure -- just change the list of stages in PCT::HLLCompiler
or you can derive a subclass of PAST::Compiler or POST::Compiler and use those
whiteknight okay, are there any examples of how to do that?
pmichaud or.... there's lots of ways to do it.
no, no examples yet. 18:43
whiteknight gotchar
Coke it might be nice if someone disproved that the various array classes were faster or not, so we could kill the variants.
japhb Actually, why *don't* the *Array classes inherit from Array?
whiteknight I'm really trying to push the development of PCT and PAST-level optimizations
Coke japhb: they were written so long ago, I'm not sure the answer even matters.
18:44 plobsing joined
Coke (it might, but I suspect it's tied to "different implementations so we can be faster/smaller/better) 18:44
japhb Coke, ah ... I was worried that it might be something like "We found out PMC inheritance is really slow, so we decided to not do that in core PMCs"
18:45 cognominal joined
whiteknight japhb: the Array PMC is lousy, and I thought it was deprecated 18:45
Coke japhb: the array classes predate tthat.
japhb We really need some way of saying "These N PMCs are implemented differently, but there are methods that apply to all of them and don't directly touch implementation details (e.g. by being implemented entirely in terms of other methods or vtables)" 18:46
whiteknight japhb: roles 18:47
PerlJam PMCs have role support now?
or is that just wishful thinking?
japhb But didn't Coke just say earlier that roles didn't work?
Oh wait, technically he said 'does' doesn't do anything
Coke roles might work; I don't think any core pmcs use them.
whiteknight PerlJam: "for some value of role"
japhb sticks a fork in his leg just to distract himself from the mental agony 18:48
Coke we already cannot rely on "does" for anything meaningful, so I hesitate to add more there.
pmichaud whiteknight: I'll be happy to see some prototypes of pct and past-level optimizations, but I'm also wanting to make sure their development doesn't interfere with rakudo development much (especially over the next three months) 18:49
especially since it's unlikely that rakudo will be able to take much advantage of them
whiteknight pmichaud: sure. Hence my desire to make them hot-pluggable so people only load them when they know they want them 18:50
Rakudo could steer clear of optimizations that harm it's generated code integrity
pmichaud right, hot-pluggable has always been the intent
and hot-pluggable per-language
actually, even hot-pluggable per-compile
japhb Anyone object to a TT basically saying "It's unreasonably painful to add a method to all array PMCs"? Or should I start a parrot-dev thread first? 18:53
darbelo Aicket it *and* mail the list. 18:54
s/Aicket/Ticket/
japhb And I guess I'll call that option C 18:55
Coke I object. why do you want to do that? =-) 19:00
(I don't really object.) 19:01
japhb Well all right then. ;-)
19:12 ash_ joined
whiteknight plobsing: ping 19:12
is there any way on Trac to see a list of comments I've made to tickets 19:15
?
because I made a comment on a ticket the other day, but forgot which ticket it was and I can't find it
19:19 theory joined
dalek TT #1416 created by japhb++: Unreasonably painful to add a method to all *Array PMCs 19:24
ash_ www.infoq.com/presentations/click-c...n-hardware just found this, my friend recommended it, its from one of the Java VM developers, just thought i'd pass it along, its talking about CPU's performance, caching, etc. 19:26
19:36 particle joined
plobsing whiteknight: pong 19:44
whiteknight plobsing: can you take a look at #1147?
plobsing ah that one. 19:46
yeah, with libjit_framebuilder shelved again (gc issues), I'm going to try taking smaller steps 19:47
I have a plan, which I'll lay out at #ps tomorow
thats probably step 2 or 3
btw those changes were included in libjit_framebuilder 19:48
whiteknight okay, can you take ownership of that ticket? 19:50
plobsing done 19:52
whiteknight w00t. plobsing++
20:07 ash__ joined 20:18 particle joined 20:49 bluescreen joined
Coke seeb chromatic? 20:52
seen chromatic?
purl chromatic was last seen on #parrot 13 hours, 29 minutes and 51 seconds ago, saying: Meanwhile let me think of algorithmic improvements.
21:05 ash_ joined 21:08 ash_ joined 21:11 payload joined 21:12 ash__ joined 21:14 ash__ joined 21:15 eternaleye joined 21:39 spinclad joined 22:01 plobsing joined 22:20 particle joined, joeri left 22:34 mikehh joined
GeJ Good morning everyone. 22:46
bacek G'Day GeJ 22:47
GeJ G'Day bacek 22:48
darbelo Mornin'
dalek rrot: r43589 | bubaflub++ | trunk/src/pmc/fixedpmcarray.pmc:
fixed typo (welcome to the future)
22:55
rrot: r43590 | bacek++ | trunk/DEPRECATED.pod:
Remove OrderedHash from DEPRECATED.
TT #1403 closed by bacek++: [DEPRECATED] OrderedHash PMC 22:58
darbelo Hm. There goes *that* idea. 23:27
dalek TT #1330 closed by plobsing++: [PATCH] deprecate "v" to denote empty nci pararameter list 23:30
23:36 ash_ joined 23:37 kid51 joined
cotto_w0rk msg Coke If you end up merging one_make tonight, just make sure to add a note to checkdepends.pl so that people don't try to fix things that aren't broken. 23:38
purl Message for coke stored.
darbelo ... nor break things that aren't fixed, but don't think that is as likely. 23:39
Coke cotto_w0rk: turns out I'm still at work. probably not going to happen. 23:40
turns out it's really boring localizing a webapp. =-) 23:41
cotto_w0rk orly?
purl YA RLY.
Coke (bonus boring points for having it be an app for tax returns.)
cotto_w0rk You're making me sleepy.
darbelo collapses.
23:42 Whiteknight joined
dalek TT #1417 created by doughera++: src/pmc/oderedhash.pmc errors 23:47
cotto_w0rk There's a good chance I'll have some time tonight for the merge. 23:49
23:51 payload joined 23:54 ash_ left
bacek bah, chromatic beat me on #TT1417 23:54
darbelo Don't worry bacek, we have plenty more bugs for you to fix ;) 23:55
bacek darbelo, no way!