www.parrot.org | planet.parrot.org | 1.5.0 "TEH PARROTZ!" Released! | Feature freeze over, coders start your engines!
Set by moderator on 18 August 2009.
00:00 patspam joined, payload joined
Whiteknight not that I can see, no 00:01
and the PObj_is_special_PMC, which appears to be useless now that PMC_EXT is not present 00:02
dalek tracwiki: v22 | coke++ | BranchDescriptions 00:03
tracwiki: rerun script.
tracwiki: trac.parrot.org/parrot/wiki/Branch...ction=diff
darbelo Whiteknight: Set the flag for everybody! Then *all* PObjs will be special! 00:10
Whiteknight at the moment, I think that's what is happening in the branch
and if everything is special, then nothing is special 00:14
and we can cut out about a million unnecessary conditionals 00:15
allison it was intended for timely destruction, but never really implemented 00:16
I'm in favor of ripping it out if that'll make it easier to actually implement timely destruction 00:17
Coke are we guaranteeing TD? 00:18
bacek_at_work tt795_kill_parrot_sub_structure branch can be removed now. I don't have parrot's svn checkout to do it now. Anyone looking for cheap karma? 00:19
allison Coke: no, at the moment we're not offering it, but we'll likely never guarantee it 00:20
Whiteknight allison: I think so, at the very least, it's more overly-complicated underly-documented stuff that people will have to wade through before we can add "real" high-priority marking
allison Coke: (it's more like a hint that TD is desirable)
Whiteknight: agreed 00:21
Whiteknight but that's a different task for a different day, today I need to get this branch mergable
allison aye
dalek rrot: r40645 | whiteknight++ | branches/pmc_sans_unionval (12 files):
[pmc_sans_unionval] remove all last traces of the PObj_is_PMC_EXT flag
00:22
allison my pet peeve for the day: get_results should never, ever, ever have been the "documented" interface for getting parameters in an exception handler
(she says as she puts in a hack to make it work until the next deprecation point) 00:23
jonathan allison: I've always found that rather odd.
Whiteknight allison: agreed, that whole thing never wasright 00:24
Whiteknight has a million things to say about the current state of exception handlers, but now is not the time to bitch about them all 00:26
plus, if I have nothing nice to say...
jonathan That said, exceptions are a bunch more capable now than they once were.
(e.g. resumable, can set a handler for a certain type of exception, etc) 00:27
Whiteknight true, no doubt
allison very true 00:29
dalek rrot: r40646 | whiteknight++ | branches/pmc_sans_unionval (5 files):
[pmc_sans_unionval] remove a few more references to the PMC_EXT structure. rename functions that don't deal with it anymore
jonathan Whiteknight: I have a fear that the merge of this branch will do terrible things to The Worst Dynop Ever. ;-) 00:30
Whiteknight: Though I would suspect I can fix it up easily enough. 00:31
If you find Rakudo won't build though, or that it segfaults, that's almost certainly the cause. (I expect build fail...)
cotto (40646-20667)/(365*2) 00:32
purl 27.3684931506849
kid51 Whiteknight: Know anything about status of pluggable_runcores branch?
cotto kid51, I do.
kid51 cotto: I need to open up some disk space, so I want to delete sandboxes for branches where no one needs me to run 'make test' 00:33
cotto kid51, go ahead and clobber it then. It's not ready for regular testing.
kid51 granted, I can always delete a sandbox now and check it out again later.
cotto (only on your sandbox, of course)
kid51 Yes.
Whiteknight: will you need people to run 'make test' on pmc_sans_unionval ? 00:34
cotto Apparently that number is our average commits/day over the past 2 years.
Whiteknight kid51: in a few minutes, yes 00:35
cotto (40646-20667)/(365*2*24) 00:36
purl 1.14035388127854
kid51 cotto: What were you trying there? 00:37
48 years? 00:38
cotto commits/hour 00:39
Whiteknight kid51: testing can commence after 40647 00:42
dalek rrot: r40647 | whiteknight++ | branches/pmc_sans_unionval (6 files):
[pmc_sans_unionval] more cleanup stuff removing references to pmc_ext
00:43
Whiteknight last graph I saw showed parrot's commit rate growing at an increasing rate, so this year probably had a higher hourly average then last year did
cotto I'm sure it did. 00:44
Whiteknight actually, I need to update it from trunk 00:45
kid51 Whiteknight: I will kick off smolder tests on Linux/i386 and Darwin/PPC, then head off for dinner. So look on Smolder in 20-40 minutes for results. 00:46
Updating a branch from trunk? 00:49
purl rumour has it Updating a branch from trunk is risky business
Whiteknight yeah, I need to update the branch from trunk
especially since two branches have just landed in trunk today that affect the GC in some way
yeah...lots of merge conflicts already 00:53
w00t
01:00 hercynium joined
Whiteknight just updated from trunk, failed assertion breaks the build 01:06
er, just updated trunk 01:07
ah nevermind, I think I had a local modification that screwed it up, trying again 01:08
cotto I wonder how long it'll be before Parrot switches to git. 01:11
payload i allways have to type "git svn rebase" ^^ it's sooo annoying 01:16
Whiteknight I still can't use SVN correctly 01:23
NotFound: ping 01:26
dalek rrot: r40648 | whiteknight++ | failed to fetch changeset:
[pmc_sans_unionval] merge from trunk r40530:40637. Exposes one strange test failure, so need to track that down
01:28
dukeleto cotto: I am holding my breath.... 01:43
Whiteknight++ on the release today 01:44
Whiteknight thanks! 01:46
02:19 smash_ joined 02:25 rhr joined
kid51_at_dinner Smolder test of pmc_sans_unionval branch at r40647: smolder.plusthree.com/app/public_pr...ails/26333 02:36
kid51 That's on Darwin; there's a similar result for Linux up there as well. 02:37
02:41 janus joined 03:25 TiMBuS joined 04:59 michaelnussbaum08 joined 05:15 beta joined
beta Hey. I see the Native Call Interface is still a draft. How would you communicate with C code without the NCI? Sorry, I am rather new to the parrot VM :P 05:21
cotto beta, it depends. NCI is incomplete but usable to some extent. You can also make a new PMC. 05:27
beta yeah.. I just created a template pcm (but it kind of scares me the template is 800+ lines)
*PMC 05:28
cotto Don't worry about that. The core stuff is like 5 lines. The rest is VTABLE functions, many of which you won't need to implement. 05:29
What's your goal?
beta I was hoping to create a wrapper for a simple C robot library we use in a robotics competition (our robot brain runs linux) 05:30
dukeleto you can always right a dynop as well. they are actually not very hard at all
s/right/write/
cotto A robot running Parrot? That's freakin' awesome! 05:31
beta I have already created a binding for the Java VM using the JNI, but the parrot VM seems to support many more languages
05:31 michaelnussbaum08 joined
beta thanks :) I will look up dynops.. brb 05:32
cotto language maturity will probably be an issue
dukeleto is there any spec as to what a PASM program should exit with? currently I am seeing a valid PASM script return a non-zero exit code by default, which usually means an error in unix-land
the simple one line pasm script "set I0, 42" exits with a non-zero value 05:33
cotto beta, rakudo is the most mature language. I'm sure you could do some interesting stuff with it on a robot. 05:34
beta cotto: are there any others that are production ready?
we won't be doing anything too amazing 05:35
cotto Lua and Partcl (tcl) are closest, but I know that partcl has major speed issues.
beta ah
cotto You could use straight PIR or nqp.
beta yeah
dukeleto that is what I was thinking. PIR is quite a nice language
michaelnussbaum08 Hi, not sure if this is the right place to go but I want to help out on parrot. I've been reading the parrot documentation and it looks really interesting. I'm new to all of this, I've been learning C from K&R and know a little C++ but that's it, and this is would be my first open source project. Can I get some advice on how to get started? Sorry again if this is out of place! 05:36
cotto It might be too low-level, depending on what you want to do.
beta I was hoping to support as many as possible.
1 sec, let me look up some of this dynops stuff 05:37
dukeleto michaelnussbaur: you are in the right place
cotto michaelnussbaum08, figure out a goal first.
Parrot is a huge project, so it's easy to get lost if you don't have a specific goal in mind (at least until you get familiar with it). 05:38
dukeleto michaelnussbaum08: do you like writing tests? docs? debugging odd errors? porting to new platforms? 05:39
cotto beta, if you're interested in writing a GC, we could use another one.
s/beta/michaelnussbaum08/
beta A garbage collector??
purl a garbage collector is supposed to free buffers like that. Whether it currently actually does it is a different story
beta ah
dukeleto beta: yes
cotto you'll get really good at debugging if you don't go insane 05:40
beta I just started browsing through parrot's code a few days ago.. I'm not sure If I am ready for a project that large using parrot ;)
05:40 barney joined
dukeleto michaelnussbaum08: we have a ticket system on trac.parrot.org, and we have beginner tickets that we lovingly call "cage cleaner" or "cage" for short: trac.parrot.org/parrot/query?statu...;report=18 05:41
sorry for the ginormous link
blame trac :)
beta tinyurl!
purl somebody said tinyurl was better because its shorter than makeashorterlink :) or tinyurl.com/
beta purl: beat you to it :P
purl beta: excuse me?
michaelnussbaum08 that's the thing, I really don't know, this being my first attempt and all, I'd give anything a shot. Cool, I'll check out the cage cleaner
beta purl: ? 05:42
purl beta: i haven't a clue
dukeleto michaelnussbaum08: which OS is your dev environment?
beta dammit! It is a bot isn't it
michaelnussbaum08 os x, i've been using vim and xcode
beta I feel like such an idiot when I inadvertently talk to bots -.-
treed Lots of OS X folks about. 05:43
treed sometimes gets the urge to set up a dev environment on his W7 partition, just so that I can make Cardinal's Rakefile work on Windows. 05:44
But... that's a lot of work, and I have more important things to deal with.
Yes, purl is a bot. 05:45
I think the convention hereabouts is that bots get +v. 05:46
beta yeah, sorry :P I am pretty tired
05:48 nathanmccauley joined
TonyC pushes purl down the stairs 05:48
purl dodges and laughs as TonyC loses balance and crashes down the stairs.
beta damn, good bot 05:49
purl thanks beta :)
beta damn!
that is fantastic!
NotFound purl: nice bot, have a cookie
purl NotFound: what?
beta I made a bot for our robotics channel, and it doesn't even compare to purl
dukeleto michaelnussbaum08: icanhaz.com/hottest_parrot_tickets is a list of the most recently changed tickets
botsnack
purl :)
dukeleto that may give you a feel for what people are working on right now 05:50
beta dukeleto: is there a template generator for .ops? 05:54
that is what a dynop is right?? :P
michaelnussbaum08 ok, so, for ticket 606 it says data structures in the parrot core need pruning. To do this I would go to parrot/src/runcore/core.c and see what is extra?
beta michaelnussbaum08: just don't remove something important :P
dukeleto michaelnussbaum08: in theory, yes. Although I would say that a ticket like that may need you to get a bit more familiar with the inner workings of parrot. But that is what reading core.c does :) 05:55
michaelnussbaum08 lol right, but is that the right idea?
dukeleto michaelnussbaum08: a good start may be for you to look at things in examples/, make sure they work on your system, edit them and make them do something slightly different, etc... 05:56
michaelnussbaum08: for instance, examples/opengl doesn't seem to be working on OS X, if you could figure that out, it would be awesome
michaelnussbaum08: trac.parrot.org/parrot/ticket/924 05:57
beta I despise OSX development... I feel that apple had to make everything wildly different because they could
michaelnussbaum08 cool, thanks for the direction, i'll take a look around 05:58
dukeleto beta: I just use the OS, I am not an Objective-C groupie :) But yes, apple does fucked up things with compilers
treed is happy about macruby.
I just wish it would develop faster.
beta I did some iphone work, and it was hell
treed (Ruby ported to run on the ObjC runtime, with some nicer bindings for core APIs.)
beta dukeleto: so I just make my functions as ops.. no magical levers I need to pull? 05:59
dukeleto beta: copy math.ops or obscure.ops in src/dynoplibs and edit those. they are relatively small 06:00
06:00 uniejo joined
dalek rdinal: 66a059a | treed++ | Rakefile:
Miscellaneous changes/fixes to the Rakefile.

  * Main targets have descriptions.
  * As a result, the main targets can be listed with 'rake -T'.
  * Tests now generate cardinal.pbc on demand, without depending on it.
  * Tests output the full task name with namespace when running.
06:02
06:02 MikHel joined
dukeleto beta: you just have to add your *.ops file to the OPS_TARGETS variable in config/gen/makefiles/dynoplibs.in 06:02
beta k
what is the difference between in and invar? 06:03
dukeleto beta: then type "make" in src/dynoplibs to generate the proper files. Dynops are new and exciting and I don't pretend to know everything about them. But they seem easier to me than creating a new PMC, which seems like a PITA
beta: in is a value, invar is a variable 06:04
beta kk
ty
dukeleto beta: I asked exactly the same question the first time I looked at those things :)
beta :P
06:06 uniejo joined
beta =item B<abs>(invar PMC) 06:07
is that a comment?
or is it necessary? :P
I was reading somewhere that = is a comment
dukeleto beta: it is POD, Plain Old Documentation 06:08
beta ah
dukeleto beta: you can run perldoc on the file to read it
beta doxygen!
purl doxygen is probably sorta annoying me. or www.stack.nl/~dimitri/doxygen/
beta :( 06:09
dukeleto beta: you will soon learn that purl is quite witty. Don't get to full of yourself, purl.
purl OK, dukeleto.
beta that is incredible... who coded purl? 06:10
I give him a tip of my hat
dukeleto beta: a thousand rabid monkeys
purl, who is your creator?
purl purl's creator is lame.
beta lol
dalek rrot: r40649 | allison++ | branches/pcc_arg_unify (3 files):
[pcc] Fixup passing exception object to exception handler to work with

to allow 'get_results' to fetch the argument. Will be deprecated in the next cycle.
06:11
beta It seems like the parrot VM itself is very matured, but none of the languages are :P
I seriously wasn't expected the plethora of tools or bots you guys have 06:13
*expecting
treed Working on the languages. :-P
There's just a lot of work in reimplementing (or implementing, in the case of Rakudo) an entire language.
beta yeah
treed There are only really the three of use working on Cardinal. 06:14
beta So are most of the languages a limited subset of their bigger brotherS?
*brothers
treed And we all started recently, so we're still kinda figuring out the lay of the land.
beta or, for instance, does the Java implementation support all of the standard library?
treed My concentration thus far has been on figuring out how to really get the basics complete, so as to enable work on other things more effectively.
beta yeah
treed Well, I'm only really qualified to speak about Cardinal, which is the Ruby implementation. 06:15
beta ah
treed It's very alpha right now.
the parser is largely complete, but there are a lot of things wrong with it
You can't use exceptions, for instance.
beta ah
treed It's also hideously slow.
If you run the test suite straight up, it takes 8-9 minutes.
beta And parrot is capable of everything necessary?
treed If you precompile to PIR and just run them straight on the VM, skipping the parsing step, it's like 30 seconds. 06:16
mostly.
Tene treed: if you want to get exceptions working with Parrot now, just have the exception hierarchy be a separate tree and stuff them into the exception's payload, and unpack them in your exception handlers.
It will work in Parrot today.
fwiw.
treed One problem I ran into while trying to implement exceptions is that Parrot doesn't allow you to throw subclasses of parrot;Exception.
Tene: I was considering something like that.
I wasn't sure what the timeline was for getting the exception thing working. 06:17
Tene treed: it will at least be after the pcc rewiring stuff lands.
treed Which is when?
Tene iiuc
dukeleto beta: define everything :)
Tene Whenever Allison finishes it.
treed nods.
I'm really considering ditching P6object more these days.
beta dukeleto: ?
treed It's really seems more appropriate to Perl than anything else. 06:18
allison treed: you should, it's not really meant for other languages
Tene treed: I thought that you decided to ditch it ages ago.
treed It seems like most of what it does is ensure that objects have .WHAT and .HOW and stuff.
dukeleto beta: you asked if parrot was capable of "everything necessary "
treed Tene: I was still waffling, after your speech on "improving" it.
Tene Ah.
I didn't mean to make a speech.
beta does the guy that made the lolcode implementation hang out here? I would like to congratulate him for the most hilarious google tech talk ever 06:19
treed But, it really doesn't give us much that I couldn't reimplement in short order, and it's holding some things back.
dukeleto beta: there is a continual give and take between parrot and the languages that run on it. rakudo often reports bugs to parrot and we fix them as soon as we can
Tene Just that "be appropriate for other languages to use" is one of pmichaud's goals for it, so if you're interested in helping him in that, it's valuable to him to have another language use it.
beta dukeleto: I don't know.. It just seems like it wants to be everything :P
treed But what does it intend to do that I can't do with, you know the opcodes built into parrot.
Tene beta: I did the majority of the work in the lolcode impl. 06:20
beta Oh.. were you the one that did the google talk?
Tene treed: given that it's implemented in parrot opcodes... nothing.
beta: no.
beta ah
treed So, I'll probably get around to replacing it this week.
06:20 nathanmccauley joined
treed Then I can merge the iss34 branch. 06:21
Tene beta: I did give a talk on implementing parrot languages, but at a local LUG, not at google: www.opensourcetv.tv/video/15.html
treed He also gave one at Penguicon.
beta well he is responsible for me knowing that parrot exists :P
treed was at that one; is probably why he ended up working on Cardinal.
beta Tene: blasted X server! 06:22
:D
Tene beta: yeah, that was awesome.
beta I have the same problems -.-
Tene beta: you should have seen my selinux presentation. selinux was *completely* hosed on my laptop.
I couldn't give any demos at all.
beta lol 06:23
Tene It was hilariously bad.
treed Yeah, that was pretty bad.
cotto beta, the way I'd describe Parrot atm is that we know what we should have done and are trying to get there.
beta cotto: Well it certainly looks extremely promising 06:24
treed agrees with that.
More devs would help, I'm sure.
cotto beta, that's why I'm here.
I'm excited.
Parrot 3.6 is going to be amazing. 06:25
beta Hmm.. It would be pretty interesting to implement this in my "game engine" I am working on... You could script your game in your favorite language
Tene That's one of the things I'm doing. :) 06:26
beta blast! beat me to it!
treed recalls one game engine built on .NET.
beta C++ is the only way to go for 3D :P 06:27
beta throws flmaebait
*flamebait
NotFound treed: I'm almost sure that throwing subclasses of Exception is ready to work, but the throw opcode doesn't allow it, and I prefer to wait for the pcc branch to land before trying to change it.
treed NotFound: *nod* 06:28
pcc is?
Tene parrot calling conventions.
purl i guess parrot calling conventions is probably my best bet. But I don't know if anyone's done tests yet.
NotFound Calling conventions
purl Calling conventions are far easier, which would help with debugging, and PIR allows for far easier use of registers
treed Are they being changed or just fixed? 06:29
NotFound I'm also thinking about allowing to throw anything. If the thing isa Exception just use it, if not create a Exception and put the thing as his payload. 06:30
treed Seems reasonable.
NotFound Yes, but maybe hard to understand and debug. 06:31
Tene AFK sleep
beta I think I am going to do likewise
You can expect me here permanently :P
Tene nice to have you. :)
cotto beta, will do 06:32
beta unfortunately I have started turning off my primary computer to conserve power.. but when I am online I will be in here ;) 06:33
06:33 beta left
treed also heads to sleep. 06:39
06:39 szabgab joined 06:57 TiMBuS joined 07:10 jrtayloriv joined 07:12 chromatic joined 07:16 beta joined
beta nvm.. I'm back 07:16
can't sleep
purl Python'll eat me...
cotto wb 07:17
beta dukeleto: ping 07:18
:( 07:19
cotto he might take a while to respond. 07:20
beta k
I am trying to add my dynop tot he makefile.in for dynops
cotto what's your question? Maybe someone else can answer it? 07:21
beta doesn't look very straightforward
*to the
hmm... nvm 07:22
cotto beta, look into tools/dev/mk_language_shell.pl
beta do I have to re-run configure with the files in place? 07:23
cotto I don't know how up-to-date it is, but it'll set you up with some template stuff for creating dynops
beta I think I have a test ready. I just need to compile it
cotto are you modifying the makefile templates? 07:24
beta I haven't yet
I've added my dynop tot he src/dynoplibs subdir 07:27
*to the
But I can't see any easy way to modify the makefile.. it appears to be hard coded?
07:28 HG` joined
cotto bb in a few mins 07:29
beta k
cotto back 07:32
beta k
cotto I'd recommend trying the mk_language_shell.pl script with --with-ops
beta k
cotto You'll also want to run make install-dev and run Configure.pl with --prefix=/where/to/install/parrot 07:33
(except Configure.pl comes first)
beta I've already done that.. do I need to do it again?
cotto no
beta k 07:34
cotto actually, I can try this before telling you to do it
beta I think it worked 07:35
It generated a shared object
after making the generated files 07:36
cotto That sounds promising. It looks like mk_language_shell is goofy 07:41
beta indeed
so now should I just delete all other files other than the dynops files?
cotto nm. mk_languge
_shell works fine. I just invoked it incorrectly. 07:42
Yeah. Just clear out whatever you don't need.
beta cool
07:42 bacek joined
bacek o hai 07:43
beta I have great ideas for the LOLCODE implementation and the robotics integration.. for example "MEH MOTOR IT MOVES 100" 07:44
cotto beta, you'll go far here.
beta :P
cotto A LOLCODE/Parrot-powered robot would be the best thing I've seen in the last several months. 07:45
beta Can do :P
Maybe I will port the rubiks cube solving robot I worked on witha friend to lolcode 07:46
*with a friend
cotto possibly year, even
beta eh.. Our robots aren't too amazing. We go for logic rather than size 07:47
jrtayloriv
beta They aren't too impressive to look at
dalek rrot: r40650 | NotFound++ | trunk/src/packfile.c:
[cage] don't use /* inside C comments
07:48
NotFound dreams with Mazinger-Z powered by parrot-LOLCODE
beta we had our robot move across the board with a pathfinding algorithm last year. It was quite intersting 07:49
*interesting
ttbot NotFound: Parrot trunk/ r40650 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/73681.txt 07:51
cotto beta, that hardly matters 07:53
beta It isn't that much of a problem when you are talking to intelligent people, but many people think we are battlebots :/ 07:54
botball.org/
07:55 athomason joined
cotto yeah. There's alway some marketing involved. 07:55
NotFound I'm fighting again with the same old problem: headerizer doesn't work before make completes, and make fails because of lack of headerizing
cotto NotFound, can't you do a little bit of manual headerizing to bootstrap it? 07:56
beta cotto: The best part of the entire program is that our new brain runs linux 07:57
NotFound cotto: yes, I can write functions declarations by hand, but supposedly headerizer is here se we don't need to write them ;)
cotto Yeah. It violates laziness, but Parrot's not quite perfect just yet. 07:59
It'll take at least a week or two to get there. 08:02
chromatic perl tools/build/headerizer.pl src/subsystem/file.o
NotFound The problem is that I'm in the highest laziness mood because of the heat.
cotto NotFound, how hot is it? 08:04
NotFound cotto: 28-29 ĀŗC at 10:00 AM 08:05
Not very much, but I'm used to a colder climate 08:06
nopaste "NotFound" at 213.97.96.43 pasted "Decoupling initialization step, p" (117 lines) at nopaste.snit.ch/17590 08:09
beta cotto: bmcdorman.wordpress.com/ -- Am I making the correct assumptions about Parrot VM in my post?
NotFound Forget the title typo 08:10
purl NotFound, I didn't have anything matching title typo
cotto beta, looking... 08:12
beta it is the first post
err... the last one.. the top :P
NotFound chromatic: Can you take a look at this patch? 08:13
cotto There isn't a Perl 5 implementation for Parrot atm and Parrot is actually pretty old.
It's only recently (last couple years) that it's become more active. 08:14
beta ah
cotto There's also no Java implementation (afaik) and the js and C versions aren't currently under active development. 08:15
beta that sucks...
purl The rock is now off. 08:16
beta updated
NotFound There is a jave bytecode converter, but looks stalled since some months ago. 08:17
cotto I understand it. I've worked on Pipp ("Pipp is Parrot's PHP"), but I'm waiting until Parrot is faster and more mature before really investing in Pipp. 08:18
beta cotto: thanks 08:20
cotto In the meantime, I'm doing as much as I can to help Parrot get there. 08:21
chromatic NotFound, everything makes sense to me code-wise. 08:22
Although I wonder if calling class_init with pass == 1 makes more sense from init.... 08:28
NotFound chromatic: this is just a first step towards solving some problems I had when trying to use auto attrs for Sub and Hash 08:29
The idea is to do vtable initialization in an earlier step, and the remaining core PMC initialization later. 08:30
chromatic How about that later is "When we create a new PMC of that type"? 08:31
NotFound That is the problem, is not easy to locate when the first PMC gets created,
Or do you mean to lazy initialize the core PMCs? 08:33
chromatic Yes.
cotto I really like the idea of lazy PMC initialization.
chromatic Let me try a stupid hack. 08:34
NotFound I'm not sure if that can be done without potentially slow if's
chromatic Sure it can, if we're clever.
cotto we seem to have a few clever people around here
chromatic By disabling the "Register all MMDs for core PMCs when starting Parrot" pass -- at least for the big four PMCs (BigInt, BigNum, Complex, and Integer), Parrot starts 8.74% faster. 08:35
cotto chromatic, by "Parrot starts" do you mean hello world or just initialization? 08:36
chromatic Hello, world. 08:37
purl rm -fr /
NotFound And if that changes allows us to use auto attrs in Sub and Hash PMCs, we can expect further speed improvements.
cotto chromatic, is RetContinuation just an optimized case of Continuation? 08:42
chromatic Yes. 08:43
beta damn.. time flies 08:52
can't believe it is 4 AM
chromatic We can't be quite that lazy with Integer, but I sped up "Hello, world!" by 6.546%. 08:53
NotFound chromatic: Do you think that patch can be commited right now without risk of breaking things? 08:54
Well, not more risk than usual, I mean ;)
chromatic Mine? No.
Yours? Yes.
NotFound Ok
bacek NotFound: it's only 4 weeks before release. O, wait...
chromatic Mine's just a silly proof of concept. 08:56
dalek rrot: r40651 | NotFound++ | trunk (3 files):
[core] some decoupling between core initialization steps
08:57
chromatic We could somehow avoid registering NCI methods and MMD for PMCs until something has created them. 08:59
ttbot NotFound: Parrot trunk/ r40651 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/73749.txt 09:04
chromatic We already check flags in get_new_pmc_header, but that helps start up time at the expense of runtime. 09:05
We could define alternate init/init_pmc vtable entries, then swap in the normal pointers after we've initialized them once. 09:08
No runtime penalty, but a bit of complexity in the PMC generator.
I wouldn't do this for dynpmcs, unless it's super easy and automated. 09:09
Food for thought.
cotto chromatic, what about pmcs created with pmc_new_noinit? 09:10
chromatic I don't know. I hope we don't do that very often. 09:11
Ideally they only get called from a clone OR they get init called soon after. 09:12
We might see 15% startup improvement and modest runtime improvements (fewer registered methods and MMD variants). 09:17
It's probably only a couple of days of off and on work.
cotto sounds about right 09:20
09:27 cotto joined 09:43 payload joined 09:56 mokurai left 10:08 mj41 joined 10:19 kj joined 10:57 masak joined
mikehh bah - I had to drive down to Forfar in Angus this morning - it's about an hour and a half south of Aberdeen - totally unnecessary 11:23
the person who insisted I go was not even at the meeting - the person I normally deal with agreed it was unnecessary - we work fine with 'phone, email and irc, ssl etc 11:26
I hopr they appreciate the bill for 3 hours travel time + milage + the 1 hour meeting time 11:27
hope :-}
11:57 whiteknight joined 11:58 whoppix joined, quek joined
whiteknight Gerd Pokorra? 11:59
purl Gerd Pokorra is doing rpms
moritz seen gerd?
purl gerd was last seen on #parrot 14 days, 16 hours, 12 minutes and 38 seconds ago, saying: Bye [Aug 4 19:40:38 2009]
12:14 nopaste joined
mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40651 - Ubuntu 9.04 amd64 (gcc) 12:15
rakudo (b9c79c2) builds on parrot r40651 but FAILs make test (all) 12:16
dalek kudo: 352acd2 | jnthn++ | t/spectest.data:
Add S13-overloading/typecasting-long.t to spectest.data - passes in full.
12:18
12:19 ruoso joined
bacek whiteknight: ping 12:25
whiteknight bacek: pong
bacek whiteknight: 2 news. Bad and good. Which first? 12:26
whiteknight bad
bacek initialisation of PMC in Parrot relying on working Parrot. Including Parrot_Context 12:27
#0 0xb7d46f4f in pmc_new (interp=0x8f10040, base_type=44) at src/pmc.c:124
124\t PARROT_ASSERT(interp->vtables[base_type]);
whiteknight so...what does that mean?
bacek (guess what "44" means)
whiteknight 44 == enum_class_Context? 12:28
bacek To initialise Context PMC we need working Parrot, which uses Context PMC, which ...
see "recursion"
44 is Context... 12:29
whiteknight Then something is not right, because we shouldn't need Context to exist in order to initialize
is this all happening in the branch?
bacek (gdb) bt 12:30
#0 0xb7d46f4f in pmc_new (interp=0x8f10040, base_type=44) at src/pmc.c:124
#1 0xb7d0d2fd in Parrot_alloc_context (interp=0x8f10040, number_regs_used=0xb7fab14c, old=0x0)
at src/gc/alloc_register.c:236
#2 0xb7d0d457 in Parrot_set_new_context (interp=0x8f10040, number_regs_used=0xb7fab14c) at src/gc/alloc_register.c:196
#3 0xb7d0d575 in create_initial_context (interp=0x8f10040) at src/gc/alloc_register.c:120
#4 0xb7d20922 in make_interpreter (parent=0x0, flags=0) at src/interp/inter_create.c:156
#5 0xb7d005d5 in Parrot_new (parent=0x0) at src/embed.c:118
#6 0x080488e7 in main (argc=3, argv=0xbfacc944) at src/main.c:51
Sorry for nonopaste
It is in branch. My version of branch
whiteknight Okay so then the ordering is not right. We should be initializing PMC types before we create the initial context 12:31
bacek indeed
mikehh rakudo - tests segfault
bacek Whanna good news?
whiteknight yes please 12:32
bacek There is no Parrot_Context struct in my local copy anymore. And it compiles :)
whiteknight Actually, I don't think we need to create an initial context at all
bacek++ !!! 12:33
bacek I'm going to commit very-f*cking-big-piece-of-code
whiteknight excellent, I look forward to seeing it 12:34
bacek I'm too tired for "perfect history"
whiteknight I'm worried about JIT, JIT relies heavily on knowing the structure of Parrot_Context to find registers
bacek jit is b0rked 12:36
whiteknight yeah, but no surprise there
bacek anyway, I've put C++ comments in code where I cut corners 12:37
whiteknight ok
bacek So it will be easy to find them with make codingstd_test (or how it's called)
if you don't mind I'll dcommit my changes right now. 12:38
It will screw branch. 12:39
badly...
whiteknight that's fine 12:40
I'm looking forward to seeing it :)
mikehh partcl at r602 builds on parrot r40651 - make test 1 additional failure - t/cmd_info.t - Failed test: 35
bacek *incoming*
mikehh bacek: make codetest 12:41
purl make codetest is part of test :-)
bacek mikehh: too early. svn is slooooow. 12:42
Ah... I misread it...
mikehh I usually run make codetest TEST_JOBS=5 and maybe prove -v on the failing tests
dalek rrot: r40652 | bacek++ | branches/context_pmc2 (79 files):
Bring branch up-to-date with master.
12:45
whiteknight 79 files? bacek are you a robot?
rrot: r40653 | bacek++ | branches/context_pmc2/src/ops/core.ops:
wip
rrot: r40654 | bacek++ | branches/context_pmc2 (11 files):
wip
rrot: r40655 | bacek++ | branches/context_pmc2 (23 files):
wip
bacek 79 for merge from trunk :) 12:46
whiteknight oh, okay. that's not so bad the
then*
bacek hail robots! 12:47
mikehh I still think we should allow c++ style comments - c compilers that do NOT allow then shouldn';t be used anyway
dalek tracwiki: v94 | whiteknight++ | WikiStart 12:48
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
bacek mikehh: +1
purl 1
bacek < purl-- >
mikehh the C99 standard does allow them and we are now in 2009 12:50
bacek o wait... purl is robot... purl++
mikehh: "WATER IS FINE" :)
12:51 MikHel joined
whiteknight I don't think we currently "support" any compilers that are so old anyway 12:52
mikehh C89 is 20 years old - maybe we should use K&R
whiteknight all the entries we have in PLATFORMs should build fine with //
jonathan whiteknight: wrong. 12:53
whiteknight: MS VC++ chokes on //
whiteknight no?
purl Maybe.
whiteknight oh, I wasn't aware of that
jonathan (If you feed it a .c file.)
Yeah, 'fraid so. 12:54
whiteknight grumbles something about microsoft under his breath
jonathan has had to fix the build once or twice in the past, though not for quite a while since people are quite good at using /* ... */ consistently these days. :-)
bacek MS? VC??? Welcome to future! There is F# around the corner.
mikehh I tried it on mono :-} 12:55
bacek cufp.galois.com/2008/slides/SymeDon.pdf 12:58
veeery good presentation about MSR
(may be not so good, but I like it so much) 12:59
anyway, $bed time 13:06
see you soon
13:06 bacek joined, bacek left
mikehh hmmn - those commits by bacek have not got through to my email yet - usually they get there before dalek post them here 13:19
posts
whiteknight they were to a branch. you get emails about changes to branches? 13:25
mikehh sure eg r40647 13:30
13:32 rdice joined
mikehh actually the last one I got was r40649 13:32
nothing since then
13:33 payload joined
mikehh messages 13:41
Coke mikehh: where in the UK are you? 13:58
mikehh Aberdeen in NE Scotland 13:59
Coke so much for popping in if I ever get to leeds =-) 14:00
mikehh he - I got some friends in Leeds 14:01
Coke my boss works there.
keeping hoping to make it out to see the office. =-)
mikehh if youi are ever in this part of the world - please let me know 14:02
actually I got to go and retrieve my grandsons from school - it's less than a five minute walk 14:04
dalek rrot: r40656 | NotFound++ | trunk/src (5 files):
[pmc] set auto_attrs flag on Sub and derived PMCs
14:07
ttbot NotFound: Parrot trunk/ r40656 darwin-thread-multi-2level make error tt.ro.vutbr.cz/file/cmdout/73800.txt 14:14
dalek rrot: r40657 | whiteknight++ | trunk/docs/project/release_manager_guide.pod:
[RELEASE] gerd++ is going to take release 1.9
Coke gerd? 14:15
purl gerd is, like, gastroesophageal reflux disease (or something that makes you want to vomit, c.f. the Perl debugger internals)
whiteknight Gerd Pokorra 14:16
purl i think Gerd Pokorra is doing rpms
Coke gerd is also Gerd Pokorra
purl okay, Coke.
14:22 Andy joined
Coke is bummed that perl's 'make test' doesn't respect TEST_JOBS 14:22
ttbot whiteknight: Parrot trunk/ r40657 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/73849.txt 14:23
Coke tries to "use more blogging" for parrot. 14:32
www.savagechickens.com/2009/08/kweschun.html for the lolcode fans 14:34
dalek kudo: 0bc70da | jnthn++ | src/parser/actions.pm:
Initial fix to allow fail() to work in subs with return type constraints. Will need review when we handle lower-cased types, or maybe if we can move ACCEPTS from P6object into Rakudo now after the release and tweak it to do the right thing. Anyway, it's a working solution for now.
14:41
kudo: 33e3839 | jnthn++ | src/setting/Any-str.pm:
ord should fail if passed a string of zero length, not die.
14:43 Psyche^ joined 14:45 nathanmccauley joined 14:57 bluefeet joined 14:59 bluefeet left
dalek website: coke++ | Perl 5.10.1 RC2 15:03
website: www.parrot.org/content/perl-5.10.1-rc2
15:06 quek left
mj41 since r40656 ( NotFound ) MacOS is also broken tt.ro.vutbr.cz/buildstatus/pr-Parrot/rp-trunk :-( 15:07
15:07 quek joined 15:18 quek left
masak I seem to have a problem building bleeding-edge Parrot. 15:23
gist.github.com/170402 15:24
15:31 hercynium joined
dalek rtcl: r603 | coke++ | trunk/runtime/builtin/info.pir:
fix [info globals] wrt fq ns.

mikeh++ # reporting breakage.
15:32
15:35 nathanmccauley joined
dalek kudo: 96f54dd | jnthn++ | t/spectest.data:
S29-conversions/ord_and_chr.t needs ICU, so mark it as such.
15:37
kudo: 9729b05 | jnthn++ | src/parser/actions.pm:
Add a few :viviself's to resolve various Null PMC exceptions (4 individual RT tickets closed by this).
kudo: 201ffc2 | jnthn++ | src/ (4 files):
Final push on converting new ['Failure'] to '!FAIL'(). Allows RT#58646 which set out this task to be closed.
Coke poor jhorwitz. 15:50
masak poor jhorwitz? 15:54
dukeleto yes, I am seeing the latest parrot as b0rked as well
masak acutally, the commit that broke Parrot (r40656) was made by NotFound. 15:55
dukeleto gist.github.com/170421 . I am trying a "realclean" but it looks like others are having the same issue 15:56
masak trac.parrot.org/parrot/ticket/934 # moritz++ 15:59
dalek TT #934 created by moritz++: PGE build leads to assertion failure on MacOS X?
dukeleto a realclean makes it build, but then I see the a similar error to masak's, but on a different test: gist.github.com/170424
16:03 theory joined
NotFound What platforms? Linux i386 builds and run fine. 16:03
dukeleto i am on OS X
Coke masak: he wasn't listed as a bigwig!
dalek rrot: r40658 | dukeleto++ | trunk (3 files):
[TT #834] Add functions for testing exit codes to Parrot::Test and add tests for the exit opcode
16:04
masak Coke: not sure I follow. 'bigwig'?
Coke recent blog post. 16:05
er, email.
moritz masak: see parrot-dev mail about call for release managers
Coke masak: you having trouble with trac? 16:06
masak?
purl masak is _not_ my best friend! or the cause of much confusion for purl or my worst nemesis or the anti-purl or out to get you or greatly tired of purl or *the* purl hater in #parrot
Coke what's your email addy?
masak Coke: I did last time I trid logging in.
Coke: cmasak @ gmail.com
s/trid/tried/
Coke masak - reopened the ticket with OSUOSL from the last time this happened with petdance. 16:07
Andy which happened?
moritz trac infinite redirects 16:08
dukeleto is trac.parrot.org timing out for anyone else?
Coke dukeleto: no 16:09
16:10 jjore joined
dalek TT #834 closed by dukeleto++: exit opcode doesn't set process return value 16:10
ttbot dukeleto: Parrot trunk/ r40658 darwin-thread-multi-2level make error tt.ro.vutbr.cz/file/cmdout/73924.txt 16:11
Coke is ttbot reporting old failures as new failures?
dukeleto: if I create an empty foo.pir with just a main sub that does nothing, the exit value is 0 16:12
dukeleto Coke: yes. but if you use a pasm script, Parrot::Test detects the exit value as 1, which is incorrect 16:14
Coke oh, the bug is in the test harness, not parrot?
dukeleto Coke: that is what I am thinking right now. ./parrot foo.pasm; echo $? gives me the right answer 16:15
Coke right.
k.
dalek TT #935 created by dukeleto++: PASM and PBC exit codes not correctly detected by Parrot::Test 16:18
rrot: r40659 | NotFound++ | trunk/src (5 files):
[pmc] revert r40656 until fixing some platform problems
16:19
ttbot NotFound: Parrot trunk/ r40659 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/73978.txt 16:23
16:32 jjore joined, nathanmccauley joined
whiteknight bernard? 16:36
bernhard? 16:37
purl bernhard is mailto:Bernhard.Schmalhofer@gmx.de
Coke bernard is see: bernhard 16:38
whiteknight don't enable my typos! 16:39
Coke cotto: is the profiling core in a state where I could get anything useful out of it, even if it's not callgrindable?
dalek rrot: r40660 | whiteknight++ | trunk/docs/project/release_manager_guide.pod:
Add bernhard++ for the 1.8 release in November
whiteknight how do you like that Coke? I filled up the whole roster 16:40
Coke whiteknight: excellent.
whiteknight well, through 2009 anyway
ttbot whiteknight: Parrot trunk/ r40660 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/74038.txt 16:44
Coke ttbot? 16:45
purl rumour has it ttbot is TapTinder build bot owned by mj41 and reporting tt.ro.vutbr.cz/buildstatus/pr-Parrot/rp-trunk build errors
16:45 payload joined
Coke msg mj41 it would be nice if ttbot kept track of when a particular failure mode started so newer commits were not blamed. 16:45
purl Message for mj41 stored.
Coke msg mj41 failing that, leaving off the committer of the given message is probably a good idea. 16:46
purl Message for mj41 stored.
16:51 ttbot joined
mj41 Coke: Mo enough time to hack on TapTinder (ttbot) next month or so. Need $work, $money :-(. I remove committer name from messages. Anybody wants to hack on TapTinder? :-) 16:56
Coke is it in a repo somewhere? 17:03
if you post the url here, I'm sure someone'll consider patches.
17:12 mikehh joined
Coke guesses that today is jonathan's rakudo day 17:19
dalek kudo: 2731d20 | jnthn++ | src/parser/actions.pm:
Make sure a multi foo() { ... } gets special variables and other init done properly, just like something that went through routine_declarator does.
17:20
jonathan Coke: How'd you guess that? ;-) 17:21
Coke wonders how much a tcl day would cost! 17:22
dalek tracwiki: v97 | fperrad++ | Languages
tracwiki: update Parrot version to 1.5.0
tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff
Coke is getting an out of memory error on this: 17:25
test expr-old-15.8 {precedence checks} {expr 2ne1ne1} 0
it's trying to allocate 2M when it dies. bah. 17:26
17:28 joeri joined
Coke hurm. PGE issue; I have a grammar where [expr 1+2] works, but [expr 1ne2] fails. any idea why the WS is an issue there? 17:29
joeri ne2 is parsed as an identifier? 17:32
Coke dunno. I don't have an easy way to dump the parse tree. 17:33
dalek rrot: r40661 | allison++ | branches/pcc_arg_unify/src/call/pcc.c:
[pcc] More documentation on exception handler argument passing hack.
17:34
particle coke: link to the grammar source?
Coke code.google.com/p/partcl/source/bro...ression.pg 17:35
17:36 chromatic joined
Coke I need some sort of GC debug output that shows me where all my PMCs are. 17:37
NotFound Coke: located my problem with partcl make spectest: the call to svn info fails with my locale 17:38
Coke ah, that sounds familiar. 17:39
NotFound Well, not the call itself, but the parsing of the results 17:40
LANG=C fixes the problem
particle rakudo: say 'ab' ~~ /^a<*bc>$/ 17:42
polyglotbot OUTPUT[Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.␤main: Packfile loading failed␤]
particle rakudo: say 'tr' ~~ rx/:i ^t<*rue>$/ 17:43
polyglotbot OUTPUT[Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.␤main: Packfile loading failed␤]
particle kicks polyglotbot 17:44
moritz particle: don't kick the bot, kick the build script :)
particle coke: --target=parse would be really helpful 17:47
there's not enough info in your grammar file, need to look at pct::grammar, too
it's likely ltm, but hard to say 17:48
notice that exprws is overridden, but the consequences are unclear without more digging
Coke particle: here is no PCT here. 17:49
particle you set token exprws { \\s* } # used in a manual override of optable ws in code 17:50
where is your optable code that calls exprws? 17:51
it's likely parrot code, not yours. and maybe i mean pge, not pct 17:52
dalek kudo: 2e4bc03 | jnthn++ | src/pmc/perl6multisub.pmc:
Make the multi-dispatcher narrowness analysis a little bit smarter about arity. Before, it did not really account for slurpiness and optionals. This keeps all current tests passing, and deals with a couple of the issues in RT where things were being called as tied when they should have been disambiguated. Of note, a non-slurpy now wins over a slurpy if it can bind.
17:56
nopaste "coke" at 72.228.52.192 pasted "memory utilization on simple for loop in partcl..." (235 lines) at nopaste.snit.ch/17598 18:02
Coke that doesn't look atrocious. I wonder what is causing the heavy using in the expr spec test. 18:04
dalek rrot: r40662 | mikehh++ | failed to fetch changeset:
[cage] set svn properties on t/op/exit.t
18:06
Coke "heavy usage" 18:07
dalek rrot: r40663 | NotFound++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
[pmc] move _temp_multi_func_list to a narrower scope to not create it until pass 1
18:10
ttbot Parrot trunk/ r40662 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/74120.txt
whiteknight NotFound: ping 18:12
NotFound pong
whiteknight hey I'm getting a problem on the pmc_sans_unionval branch after I merged from trunk with your auto_attrs changes
NotFound Just one? That's good ;)
18:14 cottoo joined 18:15 hercynium joined
NotFound whiteknight: Can you try with r40663? It can potantially solve some initialization related problems. 18:16
ttbot Parrot trunk/ r40663 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/74154.txt 18:17
whiteknight r40663? that's in trunk? 18:20
oh never mind, I see it here
NotFound whiteknight: yes
whiteknight yeah, I'll update tonight and see if that fixes it 18:21
NotFound Looks like this change gives use some speed improvement :)
whiteknight really? how much?
purl i think really? how much is that?
NotFound Totally subjective, I'm not good benchmarking 18:22
chromatic Which change is this?
NotFound chromatic: r40663
chromatic What kind of benchmark would show it best?
Startup? 18:23
purl Startup is, like, taking over 45 seconds
NotFound make test looks faster, that's all
18:23 mikehh joined
NotFound Yes, the impact, if there is one, must be at startup 18:23
chromatic Benchmarking now. 18:24
whiteknight it's amazing how when you say "speed improvement" chromatic appears out of thin air to talk about it
japhb whiteknight, maybe he has 'speed' as a highlight phrase in his IRC client ... 18:27
NotFound Nest time I'll say "amazing speed improvement" and benchmarl chromatic
It must come in less than a minute to set a new record 18:28
chromatic 0.046% speed improvement... sorry! 18:34
NotFound Definitely I'm very bad with speed things
mikehh All tests PASS (pre/pos-config, smoke, nqp_test, fulltest) at r40662 - Ubuntu 9.04 i386 18:36
chromatic It improved hashing very slightly.
One fewer collision I think.
That's just an order of insertion/fetching.
18:37 mokurai joined
NotFound Anyway, the reason of the change wasn't speed but simplify order of initialization 18:38
chromatic I wonder if building up the MMD table and then walking it is more complex than we need. 18:39
NotFound I don't have a good understanding of how MMD works 18:40
cotto Coke, the profiling runcore itself produces a profile just fine, but to use it for anything nontrivial you'd probably end up writing your own post-processing script. 18:42
Coke do you have a sample profile?
even being able to see how many times .sub FOO is called would be awesome. 18:43
cotto Ok. You could certainly get that kind of info.
just a sec 18:44
dalek kudo: cf27952 | (Kyle Hasselbacher)++ | docs/ (2 files):
[docs] bare bones 2009-08 announcement and release_guide update
18:45
kudo: c52d1e6 | (Kyle Hasselbacher)++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
cotto Coke, mksig.org/parrot/parrot.pprof.gz 18:46
run parrot with -Rprofiling and the output will be in parrot.pprof 18:47
Coke what's the first column? 18:49
purl the first column is a primary key
Coke F(ile), S(ub), PC ? 18:50
er, s/PC/op number/ ?
dalek kudo: 5a85869 | pmichaud++ | docs/announce/2009-08:
Small fix to release announcement.
18:51
cotto F:foo means that control flow moved into that the file foo
S:bar means control flow moved to sub bar
The first number is the line number in the given file (info from imcc) 18:52
the second is execution time in ns
18:54 nathanmccauley joined
Coke thanks. let will actually rip out a ton of useless profiling code. 18:54
"that will let me..." 18:55
18:57 mokurai joined
cotto If it helps, that's awesome. 18:58
Hopefully it'll become more useful in the next week or so.
whiteknight cotto++ 18:59
profiling is teh R0XX0R
particle what's left on the todo list, cotto?
profiling is the square of all premature evil.
whiteknight funny, because Parrot is filled with prematurely optimized evil, and hasn't had a decent profiler ever 19:00
I'm hoping that two evils make a good
Infinoid If it doesn't, does it mean evil is an imaginary number? 19:01
mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r40663 - Ubuntu 9.04 i386 (g++)
cotto particle, the only part left is to figure out how to map between Parrot's CPS and the boring old call/return format that Callgrind expects.
particle ah, just the madness. no problem. 19:02
O_o
cotto There's never a shortage of madness.
19:02 allison joined
cotto Actually, it wouldn't hurt to see if Callgrind is smart enough to deal with Parrot without some goofy translation. 19:03
particle sigh, my client's code causes 8k lines of output via Test::Perl::Critic --theme=pbp 19:04
cotto Well, it's keeping you employed. 19:05
particle indeed! 19:08
whiteknight so many jobs for good programmers are created by bad programmers 19:09
particle i wouldn't know. 19:10
whiteknight I could make a killing as a consultant, following around a few certain ex-coworkers and cleaning up their messes
:)
dalek kudo: bf4976f | moritz++ | docs/announce/2009-08:
more release announcement fiddling
19:17
kudo: 1c93b6b | moritz++ | docs/ChangeLog:
[docs] more ChangeLog updates
Coke cotto: running that against the spec test for 'for', I get a memory panic. 19:18
(after generating a 2577962 line parrot.pprof.)
Just fyi. 19:19
cotto fun 19:21
Coke trying with a much smaller tcl file. =-)
cotto After all the time I've spent breaking tcl, it's only fair that you'd return the favor. 19:23
Coke is it possible that the profiler has a leak? is it keeping anything allocated as it goes? 19:26
(smaller test file completes normally.)
ok. tcl for loop that prints out the numbers from 0 to 19 results in > 100K sub invocations. 19:27
19:27 MoC joined
Coke (granted, that includes PGE, TGE, and init.tcl) 19:28
chromatic Can you put that somewhere for download? gzip it perhaps? 19:29
Coke feather.perl6.nl/~coke/ 19:30
pmichaud chromatic: We're thinking of using PDX.pm for the August release -- did you want to reserve that name for when you're doing the release, or is there any reason you would prefer we not use PDX this month?
Coke cotto: does that print C-based subs too?
chromatic I have no strong preference.
Coke or just PIR?
purl just PIR is, like, causing me headaches. The target format
pmichaud is there anything you'd like us to say or not say about PDX in the release announcement? ;-)
Coke forget just PIR
purl Coke: I forgot just pir
Coke chromatic: the tcl for that is:
nopaste "coke" at 72.228.52.192 pasted "simple tcl" (3 lines) at nopaste.snit.ch/17600 19:31
cotto Coke, no. It only prints pir subs 19:34
nopaste "coke" at 72.228.52.192 pasted "top 20 or so sub invocations on that tcl,." (23 lines) at nopaste.snit.ch/17601 19:36
Coke cotto: ok. will there be a way to get a combined callgrind output for C + PIR? 19:37
dalek kudo: 112f146 | pmichaud++ | docs/release_guide.pod:
A few more release updates.
Coke my first impression is that I can't make a dent in TGE/PGE. 19:38
ahhh. S:Grammar;substitution is probably really tcl. 19:41
(which is #4 on that list.) 19:42
cotto: any chance we can get the full namespace on that output? 19:43
(and you're going to regret showing me this, no doubt. =-)
chromatic: you get that .gz?
Tene particle: ping 19:44
particle: the gf and I will be up near seattle next week, if you're available to socialize some evening.
particle I R! 19:45
Tene I just found out about this surprise class yesterday evening.
Normally I'd give more warning.
chromatic No gz here, Coke.
particle monday or tuesday is better, i have guests coming in wed-fri 19:46
Coke feather.perl6.nl/~coke/parrot.pprof.gz
cotto Coke, it should be showing the full ns already
Coke cotto: I'm seeing "S:Grammar;substitution"
Tene Is youre cell phone number still the same? If so, I'll just call you on Mon. or Tue.
Coke I /think/ that should be "S:TclExpr;Grammar;substitution"
cotto Hmmm. I'll need to dig into that more. 19:48
particle tene: yes, talk to you then 19:53
tene: next tuesday is the pafo annual meeting, in seattle 19:57
you'll probably miss it, it's 2pm iirc
Tene Yeah, I'll be teaching then. I could send the gf, though. ;) 19:58
pmichaud phone 20:03
dalek rdinal: 3004f32 | (Joeri Samson)++ | src/parser/grammar.pg:
Remove unused rule
20:07
rdinal: 686f030 | (Joeri Samson)++ | src/builtins/say.pir:
Make puts and friends return nil
rdinal: c87038c | (Joeri Samson)++ | :
Merge commit 'origin/master'

  \tsrc/parser/grammar.pg
chromatic Coke, looks like command in Grammar is expensive. 20:15
Lots of calls to Text::bracketed.
20:21 ash_ joined
Coke chromatic: danke. 20:26
20:28 bacek joined
dalek rrot: r40664 | fperrad++ | trunk/PLATFORMS:
[PLATFORMS] update
20:30
chromatic I wonder if you changed your braced_word rule if it would make a difference. 20:31
dalek tracwiki: v98 | fperrad++ | Languages 20:34
tracwiki: more update
tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff
ttbot Parrot trunk/ r40664 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/74247.txt 20:35
mikehh rakudo (112f146) builds on parrot r40663 - test,pir segfaults - Ubuntu 9.04 i386 (g++) 20:46
Coke chromatic: changed it how? 20:53
(hand rolled my own text bracketed?)
chromatic Right. 20:55
mikehh partcl r603 builds on parrot r40663 - make test passes all sub-tests but exits the same 6 tests with attempt to access code outside of current code segment - Ubuntu 9.04 i386 (g++) 20:57
20:57 hercynium joined
mikehh anyone need any tests performed on Ubuntu 9.04 i386 before I reboot to amd64? 21:00
21:03 beta joined 21:05 theory joined
mikehh if I can get Virtualbox or kvm to work with my wireless connection I won't have to reboot all the time 21:14
cu soon
Coke mikehh++ 21:24
chromatic: Perhaps effort would be better spent improve text::bracketed?
(mainly because I'm more comfy working in PIR than in P6 rules)
er, balanced. 21:25
looks like we could, e.g. pre-calculate the closing bracket character. 21:27
(and no, it is bracketed. whoops)
21:31 mikehh joined
treed How do you use addparent? 21:38
That is, what are you supposed to pass as arguments?
21:39 hercynium joined 21:41 cotto joined 21:45 joeri left
jonathan treed: The opcode? 21:48
purl the opcode is probably not dual lived
dalek kudo: 9520b46 | jnthn++ | docs/ChangeLog:
ChangeLog tweaks and additions.
treed Yeah.
jonathan addparent child, parent
Where both are Class PMCs.
treed do newclass and get_class both return Class PMCs? 21:49
jonathan treed: Yes. 21:50
treed Huh. 21:51
Something with that is failing because it was to get_string on a Null PMC.
jonathan Pretty sure they do, anyway.
Oddness.
treed excproto = newclass 'CardinalException'
$P0 = get_class 'CardinalObject'
addparent excproto, 'CardinalObject'
jonathan Not addparent excproto, $P0 ?
treed Oh, that's been in there. 21:52
Or, was.
I've been trying different variations.
Forgot to set it back to original.
Are you only allowed to addparent once? 21:54
Tene treed: check to see if $P0 is null after get_class. 21:55
jonathan treed: No, multiple inheritance is supported. 21:56
purl okay, jonathan.
jonathan purl: you fail it
purl cries
treed The get_class for parrot;Exception is returning null.
jonathan \\o/
treed pets purl.
purl bites!
treed Ouch.
jonathan treed: You'll learn about purl. She's kinda...special.
treed: Are you doing it from within your HLL? 21:57
treed Yeah.
If I do $P0 = get_root_namespace ['parrot';'Exception']
instead
then it's not null
but then I get 'Parent isn't a Class'
jonathan OK, and if you do $P0 = get_class $P0 at that point?
That is, look up the namespace, then get the class associated with it. 21:58
Tene treed: then get_class the namespace
treed Then neither returns null, but I still get an error about get_string on a null pmc.
chromatic Coke, small patch to PGE coming.
treed Ah, but that's in NilClass. 21:59
Okay, so that was the problem, thanks.
nopaste "chromatic" at 72.87.39.97 pasted "Minor PGE optimization for Coke" (20 lines) at nopaste.snit.ch/17603 22:01
chromatic If that works, you should allocate one fewer PMCs for each call to bracketed which fails. 22:02
jonathan, that might be interesting for Rakudo too. 22:03
jonathan chromatic: Looks interesting for anyone using that part of PGE I guess. :-)
chromatic I don't know if you call that as often as Tcl does (for good reason) but if you call that rule and it fails often.... 22:04
22:16 bacek joined
bacek Good morning 22:21
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
22:25 Whiteknight joined 22:29 kid51 joined
beta good day bacek 22:29
bacek g'day beta
beta Unfortunately my school starts tomorrow, so I must prepare some stuff
c ya
bacek Whiteknight: looks like git-svn screwed on merge from trunk. 22:31
actually "dcommit" did..
dalek TT #914 closed by allison++: email2trac test 22:37
22:41 rg joined 22:52 Limbic_Region joined
dalek kudo: 8924df4 | jnthn++ | src/ (2 files):
Implement $obj.Foo::bar() method calls. Patch courtesy of John Harrison (__ash__++).
22:52
kudo: 9a6eeaa | jnthn++ | CREDITS:
Add __ash__++ to the CREDITS file.
rrot: r40665 | bacek++ | branches/context_pmc2 (50 files):
THE BIG COMMIT.
22:54
jonathan informative commit message fail 22:55
;-)
bacek msg Whiteknight r40665 is actual THE BIG COMMIT :)
purl Message for whiteknight stored.
jonathan otoh it scared me into looking at the review, so maybe it's a win.
bacek jonathan: irclog.perlgeek.de/parrot/2009-08-19#i_1407809 22:56
:)
$dayjob time. See you! 22:57
22:57 allison joined
jonathan bacek: see you, bacek! :-) 22:58
Whiteknight bacek: okay 23:01
jonathan Sheesh, it *is* a big patch.
23:01 gravity_ joined
beta is purl's source available? Id love to study it 23:02
nvm, purl told me 23:03
Whiteknight back in my day, our commits were twice as big 23:10
and we had to commit them uphill both ways
23:10 ruoso joined
Whiteknight in other news, our commits had hills 23:11
23:14 davidfetter joined
Infinoid Whiteknight: And we had to use svn, raw 23:17
Coke chromatic: I see nothing wrong with that commit; gonna commit it? 23:18
pmichaud actually, our commits were cvs 23:23
Coke pmichaud: did you see chromatic's minor optimization nopaste? 23:24
pmichaud No
Whiteknight our commits were scribbled on the back of a napkin and sent by carrier rat
Coke 18:01 <+nopaste> "chromatic" at 72.87.39.97 pasted "Minor PGE optimization for Coke" (20 lines) at nopaste.snit.ch/17603
(slightly better on fail.)
pmichaud +1 23:25
purl 1
pmichaud actually, much better on fail
it's been a long time since I looked at that function anyway, I don't doubt it could be made better still :)
Coke apparently that's where tcl spends a LOT of time. =-)
pmichaud yes, currently "fail" is far more common than "succeed" in grammars. This is why LTM is so key to getting a performance improvement 23:26
23:26 mokurai joined
pmichaud it lets you bypass a lot of "fail" 23:26
Coke testing, will apply c's patch shortly. 23:27
Whiteknight TEH FAILZ! 23:28
dalek rrot: r40666 | whiteknight++ | branches/pmc_sans_unionval (189 files):
[pmc_sans_unionval] undo r40648, the messy merge from trunk. However, that one complex.t failure still exists. Will try to find the source of that now
23:33
rrot: r40667 | coke++ | trunk/runtime/parrot/library/PGE/Text.pir:
Minor optimization - don't create a PMC if we don't need it.
23:39
ttbot Parrot trunk/ r40667 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/74309.txt 23:42