% allison has joined #parrotsketch % chromatic has joined #parrotsketch % pmichaud has joined #parrotsketch % jonathan has joined #parrotsketch hi gang hi hi Parrot sketch roll call! here here * particle waves here * obra pokes chip (7 days and 9 hours idle ;) thanks very much for wrangling things in my absence. let's get cracking allison: how's things? good This week I had a revelation. It's not an entirely new idea, but it is a new "zen" focus for me. The most important thing for Parrot right now is not elegant theory, but cold, hard functionality. .oO( Amen! ) To take the IO subsystem as an example: while it's an elegant solution to implement synchronous IO as a layer over asynchronous IO or vice versa, all we really need for a 1.0 release is a working set of synchronous and asynchronous IO opcodes. The two sets of opcodes can be implemented entirely independently for now. We're defining the interface, and can refine the guts later, as long as we... ...keep the same interface. Woo Which leads to the I/O PDD I'm about to check in. pragmatism++ .oO( yippee! ) It resolves some open questions. But mainly I want to fill in any remaining missing opcodes and then just implement it. EOR What are you hacking on for the next week? The next PDD Exceptions/Events Neat. I mean Events/Threads chromatic: what's new in your world? I checked in some thoughts on the external API. Most of them are philosophical, but there are some API changes. I'm not sure precisely how to accomplish them from C; I wonder if there's a good way to shadow functions. It seems like what Parrot needs internally and what embedders need may start to diverge, at least in terms of providing a sane interface to the rest of the world. I'll keep working on it though. That's it. ok. pmichaud: what's new in your world? I know you were working hard to start getting to easily parallelizable tasks. Yes, and still working on that. % smash has joined #parrotsketch This week $job caught most of my time; the folks I work for have asked me to join them on a (highly likely) grant proposal that will be very lucrative if funded (i.e., lots of $$$ for relatively little time expenditure) so, since the proposal deadline is this week, I had to prioritize a bit on that. We're finishing up the proposal today/tomorrow Some decisions have been made about where to go with PAST and PGE stuff, for one, we'll be starting by using a lot of traits in the .pg files to specify PAST compilation it turns out to be very convenient to compiler writers to be able to specify those items in the .pg files directly, yet doesn't interfere too much with extensibility or parseability in perl 6 we're also going to be putting a lot of smarts into PAST itself, to minimize the amount of work needed by language implementers of course, any language will be able to break out of the defaults and implement its own translation components; the idea is to take care of the common things that lots of languages deal with and leave the special cases to special cases EOR what could be done tobest help accelerate things? (sorry my net had died) I just need time at the moment :-( as soon as I can get the initial PAST in perl6 there will be a ton for others to do (and by initial I mean *initial*) ok jerry? ~ stole perl5 sprintf tests for parrot sprintf (t/op/sprintf.t.) many failures, todo, and skip remain. need to classify these tests a bit better. ~ applied many small patches to get our source closer to the new coding standards (thanks goes mostly to paul cochrane) ~ continuing discussion with pmichaud about PAST, etc. ~ next: continuing sprintf test improvements, and reviewing, modifying, and applying the win32 patch for Parrot::Embed submitted by Francois Perrad .end having fun? YES woot leo? * tried to used threads in sdl/mandel.pir - no answer so far on the errors I got % Coke has joined #parrotsketch * sent out another design proposal re classes based on native C structures * I'm sorry to mention that $designer response is currently approaching zero * I've started hacking the postgres interface: - created tests (there was no test at all, and even load_bytecode failed) - fixed most of NCI interface - created OO interface with Pg, Pg;Conn and Pg;Result classes - implemented also NoteiceReceiver callbacks ;-) * hacking postgres shows some current shortcomings of parrot: - constant handling (how to create these from C headers) - can't subclass C structures to parrot classes - need object finalizers for e.g. Pg;Result objects - should call PQclear() on object destruction - I've implemented that, but it needs more thoughts * I'm still not aware of any policy regarding parrot library namespaces, that is, which namespace should PGE, Pg et al actually populate * fixed event handler invocation, mainly reentrancy problems * cleaned up most of CGP core regarding unneeded/unwanted pointer casts ^D * pmichaud reserves one question/comment. Ditto. what's next for you? likely more core cleanup like the CGP one switch core needs same treatment . nod jonathan? what's new? Not been a good week for finding time to do stuff, but... * I'm going to the Chicago Hackathon, to hack on Parrot stuff for 3 whole days. May sleep now and then too. ;) * Did some fixes in the .Net translator * Now passes all the tests it does on Win32 on Linux/x86 too * Found and RT'd a packfile code segfault, hope to investigate soon if nobody beats me to it Blocking on... * Feedback on the bytecode PDD * Feedback on my two new reference PMCs proposal Going to be in Spain with work for the next 3 weeks, but will try and find time for Parrot and to make #parrotsketch. Nice. Once you're back, what's the top of your hitlist? If the new reference PMCs are approved, implementing those and switching .Net translator to use them. Want to get more .Net translator stuff done too. *nod* If bytecode PDD stuff is approved, I'd quite like to start hacking on the fallout of that too. Coke: you around? real life intruded this weeek, but I'm currently working on moving any build steps out of custom perl scripts and back into the makefile. (this basically means moving perl to run the build steps to perl to *generate* the build steps. same amount of code, but easier to maintain). working on ops at the moment, hope to have a commit within a week or so, as real life allows. Current goal is "make -j 2". (that's it) Cool Who'd I miss? Kevin? idle for 4+ days So. question time. First one from me. Allison, what sort of ETA should Jonathan and Leo expect for responses to their current round of proposals? I'll work on them this week. I've been pouring all my brain energy into IO I'd like to schedule a phone call with both of them. (separate phone calls) *nod* I suspect that even very preliminary "This looks good / this looks crazy" would help get things going. I've done that much, but it needs more detail. *nod* jonathan/leo: poke allison out of band to figure out good times? sure Will do. ah. ok. leo's comment suggested otherwise. *nod* ok. next up, I think was patrick * pmichaud wonders if it's the "looks good" or "looks crazy" part that needs more detail ;-) re: namespaces for pge and pg -- my understanding at the moment is that pge at least belongs in its own namespace "looks crazy. recommend ditching the dark sunglasses and shaving regularly" and I've been working toward that end. The primary item is being able to import things out of the pge hll namespace, but I think we know how to do that now (based on discussions of last week) I suspect that many libraries that are expected to be used by multiple hll's will have to do a similar thing so, pg probably falls into that case I'm also a little concerned about potential naming confusion between pg, pge, and .pg files -- but not enough to do anything more than mention it here :-) pmichaud: parrot or root namespace ? eoc pge is going to go into a pge hll namespace I still don't know how we're dealing with classnames in that instance, but I'm going to go ahead and move pge and if things break we'll have more reasons to resolve that particular issue I'm using [foo;bar] class syntax and it's working is that [parrot;foo;bar] or [foo;bar] ? is pg something different than pge? postgres leo introduce some postgress stuff this week, named (IIUC) 'pg' s/ss/s/ Pg := postgrs Pg := postgres perldoc Pg ah, I saw that, I was just thinking of it as postgres probably best to make it postgres Pg is known in perl5 If we're stuck with a single top level namespace, it's gonna get awfully crowded. indeed . o O { Better port RT before parrot gets realtime extensions } db::pg? DBD::? DBD implies something related to DBI. yep, something like this DB implies debugger ;) well, talk it over on the dbi2 list "naming is hard" For the low level interfaces, I wonder if [NCI;Pg] is better. allison: I believe this is 100% unrelated to DBI DB;Pg and yep database::relational::postgress :-) this is dan's old native call wrapper around libpg? s/::/;/g if it's NCI, then NCI::Postgres obra: yes, but I fixed it NCI::Pg is too confusing I'd sort of expect NCI::lib_nameofwrappedlib_ but really, I don't care what color this bikeshed is nci::lib_++ It's not always libpg; it could be pg.dll or something depending on platform. the color doesn't matter as long as there's a color policy .oO ( what color should the color policy be? ;-) pmichaud: pulsing neon stripes $designer says green or $othercolor let's go with [NCI;lib_postgres] / postgres.dll, etc. ok. next up was chromatic libpq is the documented name for it Leo, I haven't seen any mail about your NCI problems; were these in commit messages, or did I miss a message? Q? and the NCI abstracts the .so / .dll whatever thingy yep that's confusing chromatic: which NCI problems? oh, pg is "postgres query" The C structure and constants problems. pq, that is C structures are in a design .pod sent to allison Oh, that one. Thanks. constants was discussed recently, e.g. how to get constants from libpq-fe.h into .pasm if c has time, I'll go over it with him this afternoon I've posted sock_gen.c to deal with socket constants but any interface needs some C constants (defines or enums) ## .include 'postgres.pasm' .const int CONNECTION_OK = 0 (from t/library/pg.t) I've a remark re IO pdd ok. go for it. then we should probably break I'm against IO opcodes - I prefer methods. E.g. HTTP;Daemon;ClientConn ought to inherit from ParrotIO/ParrotSocket I can't do that with opcodes - method would work fine or IOW - opcodes are only nice with PMCs, if the vtable virtualizes the call, which isn't the case with I/O There's an interesting interaction between IO layers and PMCs... seems like that may still be up in the air a bit. see also other quirks like in the first io test: t/pmc/io.t layers are orhogonal to that IMHO we'll do opcodes for the common operations, and methods for anything more complex (also methods for the simple pieces, as an alternative) $P0 = new .Undef / read $S0, $P0, 42 bang my question is, should we even have layers or should we move to more straightforward inheritance inheritance would work fine re "$P0 = new .Undef / read $S0, $P0, 42" fine, but you shouldn't have to do the new first ? read only works with existing ParrotIO objects above crashes as it should nope 2 alternates one takes a PIO object $S0 = $P0.'read'(len) # works or gives method not found $S0 = read $P0, len just segfaults that's fine make the opcode call the method and it doesn't work at all with: cl = subcölass 'ParrotIO', 'MyIO' allison: why the opcode then? sanity I don't see any sanity with that Parrot is an object oriented assembly language, but it also has a procedural interface for common operations that would create method call wrappers, disguised as opcodes yup exactly Seems pretty consistent with existing Parrot to me. tons of code duplication for argument passing nothing wrong with that it might be consitent with existing praxis, which doesn't mean that it is sane ;) you're focusing on the code, but the primary measure of sanity is that of the users indeed - and no compiler will use io opcodes - they will use methods or functions * obra wonders if this might be better on the list. it is important to take the step of not entirely reimplementing I/O operations in the opcodes but adding a shim of code to emulate method calls as opcodes is worth the cost it's too early to say "X will be used in Y way and not in Z way" we'll move it into discussion of the I/O pdd after I check it in this afternoon ok. anyone else have anything on fire? if not, I'll see y'all next week the opcode would first have to sanity-check each IO pmcs (if it doesn 'ParrotIO' - then setup argument/result pointers - the call a method - no thanks ;) later discussion See you all next week. see you - thanks cya % chromatic has left #parrotsketch /part % pmichaud has left #parrotsketch % smash has left #parrotsketch % Coke has left #parrotsketch % obra has left obra!~jesse@diesel.bestpractical.com % obra has joined #parrotsketch % jonathan has left #parrotsketch % allison has left allison!~chatzilla@sub17-30.member.dsl-only.net % allison has joined #parrotsketch