% coke has joined #parrotsketch % coke is now known as Coke % obra has joined #parrotsketch % allison has joined #parrotsketch % pmichaud has joined #parrotsketch Hello hiya hi We're chipless today hio hello, all . o O { Parroteer roll call } I refuse to wear the beak. leo_, tewk, you around? leo's probably not available. did you see his paste from yesterday? I did not. (we had a server outage) % davidfetter has joined #parrotsketch % mdiep has joined #parrotsketch can you repaste it for posterity, particle? sure. please let me paste mine first, as it's in my copy buffer :) it's been a quiet parrot week. i applied a cage cleaners patch, and skipped a couple win32 threads tests post scm-merge. i haven't gotten to anything on my todo list. .end 1013:19| leo_: 01I don't know yet, if I can report from Birmingham, so just in case I paste 1013:19| leo_: 01a few items today: 1013:19| leo_: 01* [stm] add native atomic support to x86_64 1013:19| leo_: 01* [String] implement S.to_int(base) method 1013:19| leo_: 01* was generally thinking about paarrot (PMC) structures re sharing (in the presence of STM/threading) - this needs a lot more braneinput 1013:19| leo_: 01^D thanks ok. particle, coke, pmichaud, then allison * mdiep is here now too - add some more (contested) syntax to our makefile.in files. that's it. slow week sorry. "particle, then pmichaud, then allison, then mdiep" particle already reported slow week for me, also. Did more work on converting pge and tge, but still little to show publicly for it. should have that rectified soon end of report sorry. I missed particles's above leo - Between travel, conferences, meetings, and getting sick, it's been a light couple of weeks on the Parrot side for me. - On Saturday I spent some time talking to Miguel de Icaza about Mono and Parrot. His comment: Architecting a virtual machine is much harder than simply implementing one. My response: It's also more fun. He thinks the register-based virtual machine is a mistake, and slower than a stack-based one. I disagreed, and he suggested writing a paper on it. I'll add that to my todo list. :) I also talked with him a bit about the I/O PDD. His thought was the same as mine several months ago ("Why not do async I/O with threads?"), but in the intervening months I've come to the conclusion that threads are far too heavyweight for I/O. - At the moment I'm wrapping up my slides for a YAPC::EU talk on PGE & TGE tomorrow afternoon. .end mdiep: how's things? Spent a lot of time thinking about PMCs and about variables in Tcl. Not much to report besides that. I do have a couple questions though. ^D ok. and with that. question time. Matt: what's on your mind? First, I'd love to get feedback on the message I sent to the list a couple nights ago Second, it's been said that writing PMCs sucks. I'd like to hear how people feel that that could be improved. mdiep: what was your message about -- I don't seem to have it in my inbox...? pmichaud: http://www.nntp.perl.org/group/perl.perl6.internals/34780 mdiep: is it possible for an implementation that wants to hide the builtins to just implement null stubs? for the Ruby example, could it turn 'mergesort' into an error somehow? pmichaud: I don't know if that's possible with PMCs right now, but it's definitely an option hmmm... methods on the default base class doesn't seem like the right place for quicksort and mergesort presumably it's already going to grab things from AbstractPMCArray, doesn't seem like too much of a stretch to also say that mergesort throws an exception FixedPMCArray already has a sort method, so I was looking at extending that to support different algorithms. I don't have a problem with taking a different route though. (writing PMCs sucks) documentation, the fact that it's mostly C, except not: pmc2c.pl could do a lot more to simplify things, I think. seems to me that the easier approach is to have an easy way to import generic methods into a class space well, how about a sort method, with alternate base classes that do 'sort' as a quicksort or mergesort? rather than building them into the base class Coke: if you have any examples of things you think pmc2c.pl could do for you, I'd like to hear them patrick, composition, yes that's on the wishlist we keep coming back to it simplify syntax. allow mixins from other subs. have a better build system that integrates with make instead of avoiding it. "from other PMCs"... which I think is what patrick is saying. wishlist -- as in, we can't really do it now? not AFAI K if I have a method PMC, and I install it as a symbol in a class' namespace, does it not become a method for that class? I guess not it's a dynamic VM, so dynamic additions to PMCs make sense I guess what I'm trying to say is, I'm willing to put some work into pmc2c.pl and try to make PMCs suck less. but I'm not sure what they'd look like ideally. but, PMCs, at least the low-level ones, are statically compiled C code yes, I see (at some level) if I did a find_method for a C-compiled method, what do I get? And can I then install that thing into another class space? mdiep: you could start by pulling together a list of all the things people don't like at the moment mdiep: that'll give us a better idea what problems we're trying to solve mdiep: (writing PMCs) To date I have only written one PMC class, and I thought it was pretty painless. But it was also a very simple PMC. perhaps now that I've got people thinking about it a bit, I can send a message to the list and get some responses aye do you have any old messages/IRC threads where people said writing PMCs sucks? BTW, I know of two PMC classes that might be useful to have written er, three (1) Capture (combination of array+hash) (2) CodeString (3) Scalar (2) can't be done as of now because PMCs can't handle :slurpy, :optional, or :named. I'll be sure to add that to the list of "things that suck" allison: Dan S. used to say it and I've heard chromatic quote him from time to time i believe pmc's now handle :slurpy and :flat, thanks to woggle. but i may be mistaken mdiep: aye, it's the "why" we're looking for chromatic is on a train at the moment, but I'll pick his brain later this week my last question: we're thinking about starting to use a lot of dynamic opcodes in Tcl for things like variable access. is that the route that the compilers should take? more detail? seems better than macros, at this stage as in, defining your own opcodes? allison: yes which we've already done with 5 or 6 of them. huh... and that works better than methods on Tcl PMCs? this handles all the error checks that we have to do at every stage allison: this is for things like looking up variables -- versions of find_lex and get_*_global that throw Tcl specific errors oh, hmmmm not something I anticipated I can see why you're doing it though for looking up an element in a hash, we have three different errors: if the hash doesn't exist, if the variable isn't a hash, and if the element doesn't exist the implication is that you're going to be wrapping quite a few opcodes with your own error throwing versions it's a lot of PIR yeah, it seems like way too much work for writing a compiler and at the moment, "a lot of PIR" tends to be slow. =-) it'd be nice if we could abstract it away (speaking of slow, how is the pge-version of the tcl grammar coming along -- any results to report?) so one Tcl operation is sometimes equivalent to 30-40 lines of PIR well, if it's generated PIR, that's not a big deal allison: yes, it is, because it's slow. we are using PGE completely. it's slower than our old parsing method (85s vs. 140s here) is the opcode library significantly faster than the PIR operations? at least notionally, they're doing the same thing under the hood perhaps I should look at the grammar a bit and see if I see any optimizations allison: I haven't written this up as an opcode yet, so I don't have a benchmark. but I could try to put one together. that would be useful so to answer your question: it's not what I would have expected compiler writers to need to do PIR methods are pretty slow at the moment if it's really necessary to load new opcodes to implement Tcl, we may need to re-examine some basic assumptions perhaps more fine grained exception classes and handling are needed yeah, I think that's the right way to head it sounds like our exception mechanism isn't really what the HLLs need yet but go ahead and experiment, because we'll never know until we try it okay. I'll try to get a benchmark and send it to the list however you implement the opcodes may give us an idea of how the core opcodes should work and allison can think some more about exceptions :-) :) Ok. What's next? . o O { that's all this week } If not, I'll catch y'all next week have fun, everyone. thanks thanks all % pmichaud has left #parrotsketch thanks % allison has left allison!~chatzilla@host81-138-173-237.in-addr.btopenworld.com % mdiep has left mdiep!~matt@pool-71-115-179-176.gdrpmi.dsl-w.verizon.net % mdiep has joined #parrotsketch % mdiep has left mdiep!~matt@pool-71-115-179-176.gdrpmi.dsl-w.verizon.net % Coke has left #parrotsketch % PerlJam has joined #parrotsketch % davidfetter has left davidfetter!~davidfett@start.fetter.org % allison has joined #parrotsketch % mdiep has joined #parrotsketch % mdiep has left mdiep!~matt@c-71-205-191-164.hsd1.mi.comcast.net % mdiep_ has joined #parrotsketch % mdiep_ has left mdiep_!~matt@c-71-205-39-103.hsd1.mi.comcast.net % mdiep_ has joined #parrotsketch % mdiep_ has left mdiep_!~matt@c-71-205-39-103.hsd1.mi.comcast.net % mdiep_ has joined #parrotsketch % mdiep_ has left mdiep_!~matt@c-71-205-39-103.hsd1.mi.comcast.net