Perl 6 - the future is here, just unevenly distributed

IRC log for #parrotsketch, 2009-05-05

| Channels | #parrotsketch index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:42 eternaleye joined #parrotsketch
06:21 masak joined #parrotsketch
08:00 cotto joined #parrotsketch
11:55 eggyknap joined #parrotsketch
12:10 davidfetter joined #parrotsketch
12:19 contingencyplan joined #parrotsketch
12:45 particle joined #parrotsketch
12:47 Whiteknight joined #parrotsketch
13:54 PacoLinux joined #parrotsketch
13:58 PacoLinux left #parrotsketch
17:02 masak Posting early today, since I'll miss the meeting.
17:02 masak * Submitted ~23 rakudobugs since Tuesday two weeks ago.
17:02 masak * Worked mostly on Web.pm, but also on proto and November.
17:02 masak * Made five small commits to Rakudo -- an upwards trend.
17:02 masak * There's a trickling influx of new people on #perl6.
17:02 masak .eor
17:15 Tene I would post early, but I don't remember if I've done anything worth mentioning in the past week.
17:15 Tene Gave a PCT presentation at penguicon that went rather well.
17:16 Tene KTHXBAI
17:38 Coke joined #parrotsketch
17:38 Coke ~~
17:46 Tene !!
17:48 darbelo joined #parrotsketch
17:49 NotFound joined #parrotsketch
18:01 pmichaud joined #parrotsketch
18:11 fperrad joined #parrotsketch
18:22 particle- joined #parrotsketch
18:25 Util joined #parrotsketch
18:27 chromatic joined #parrotsketch
18:31 chromatic Hello.
18:31 pmichaud Hello.
18:31 fperrad hello
18:31 Whiteknight hello
18:31 NotFound Hola
18:31 darbelo Hello.
18:32 cotto hi
18:32 allison joined #parrotsketch
18:32 chromatic Let's begin.  allison?
18:32 moritz oh hai
18:33 allison Parrot:
18:33 allison - Converted all remaining roadmap items to tickets
18:33 allison - Closed 1.1 milestone.
18:33 allison - Launched Install PDD out of draft.
18:33 allison EOR
18:34 jonathan joined #parrotsketch
18:34 chromatic I've been optimizing startup time.
18:34 chromatic I have a patch (not for applying) which doubles Rakudo's startup speed... but there are some questions about it.
18:34 chromatic I'll keep working on that.
18:34 chromatic Coke?
18:34 Coke yes.
18:35 Coke (not pretyped)
18:35 Coke "make install" is broken, at least on osx, partcl is broken, at least with installed parrots... no real progress fixing anything there.
18:35 Coke I think that's it.
18:36 chromatic cotto?
18:36 cotto * worked on pmc_pct, mostly minor fixes and code that ended up being unnecessary
18:36 cotto * started and merged a branch simplify PMC VTABLE initialization
18:36 cotto - makes vtable initialization happen at runtime instead of pmc2c-time
18:36 cotto - removes PARROT_EXPORT from all VTABLE functions
18:36 cotto - greatly simplifies the pct-based pmc compiler (no resolving VTABLE functions at compile-time)
18:36 Whiteknight cotto++
18:37 chromatic fperrad?
18:37 fperrad * Lua: add the generation of annotations in the bytecode translator
18:37 fperrad * XML parser (SAX like): check some error (well-formed XML)
18:37 fperrad EOR
18:38 chromatic japhb?
18:38 japhb nr
18:39 chromatic jonathan?
18:39 jonathan * Did a Rakudo day on Friday; basically re-did enums.
18:39 jonathan * In the process ripped out of lots of old code. Managed to resolve a bunch of enum-related RT tickets. Hopefully they're much less of a pain point for Rakudo users now.
18:40 jonathan * Waiting to hear about my Hague Grant Application. In the meantime, starting to do stuff to prepare for it.
18:40 jonathan * Spent some time thinking about metaclasses and representations and call lists and so on.
18:40 jonathan * Spent some time looking at smop. Figured out how they're doing some of the metaclass/representation stuff. Mostly figured out the bits that Rakudo should probably follow, and the bits it shouldn't.
18:40 jonathan * Did some changes to P6metaclass to help us get more in line with the spec.
18:40 jonathan * 1 question
18:40 jonathan .end
18:40 chromatic moritz?
18:41 moritz no parrot hacking - just perl 6 {blogging,testing,ticketing}
18:41 moritz eor
18:41 PacoLinux joined #parrotsketch
18:41 chromatic NotFound?
18:42 NotFound * Applied some patches
18:42 NotFound * Fixed some bugs
18:42 NotFound * Help make rakudo build with C++
18:42 NotFound EOR
18:42 chromatic particle?
18:42 chromatic pmichaud?
18:43 pmichaud * Rakudo now passing 11,010 spectests
18:43 pmichaud * Did a lot of work refactoring Rakudo so that it can be in a .HLL
18:43 pmichaud * Still have work to do there
18:43 pmichaud * Switched $*IN, $*OUT, $*ERR in Rakudo to default ot utf8 encoding
18:43 pmichaud * Fixed an error with Any.join
18:43 pmichaud * Fixed bugs with implicit slurpy positionals
18:43 pmichaud * Chatted extensively with jonathan++ about P6object refactors
18:43 pmichaud * Currently working on changing Rakudo's List and Array implementation
18:43 pmichaud EOR
18:43 chromatic Tene?
18:43 NotFound Forgot to say: updated example xlibtest.p6 to use some new rakudo features
18:44 chromatic tewk?
18:45 chromatic Anyone else?
18:45 darbelo me
18:45 * Util here
18:45 Whiteknight me
18:45 chromatic darbelo?
18:46 darbelo GSoC: decnum-dynpmcs
18:46 darbelo * Build infrestructure is mostly usable.
18:46 darbelo * Prototyping some ideas for decContext handling.
18:46 darbelo * First protorype PMC is almost ready.
18:46 darbelo * Spent some time looking at pmc2c internals. Added support for unions as ATTRS. Sent the patch to the list.
18:46 darbelo * Writing blog post for later today.
18:46 darbelo EOR
18:46 chromatic Util?
18:47 Util Last week:
18:47 Util * Fakecutable creation by pbc_to_exe is unnecessarily slow once the .pbc gets the current size of perl6.pbc, due to pathological behavior of GCC on large pre-initialized char arrays.
18:47 Util I should finish the ticket and patch in a few hours. It cuts out most of the time to convert Rakudo's .pbc to fakecutable (90 secs -> 3 secs).
18:47 Util It will be a patch on the ticket for a few days, until at least one person tests it on non-GCC.
18:47 Util Next week:
18:47 Util * Trying Parrot and Rakudo on the new GCC 4.4 release; cage work on any new warnings.
18:47 Util EOR
18:47 chromatic Whiteknight?
18:47 Whiteknight * Started planning for the Asynch IO system. Reading the PDDs, working out examples, etc
18:47 Whiteknight * Writing a series of blog posts about AIO, laying out some key concepts and plans (Coke++ for adding the blog to planet parrot)
18:47 Whiteknight * I'll start putting together some ideas and look for feedback this week to make sure I'm on the right track.
18:47 Whiteknight * Doing some digging and exploring on TT #596, prepping for that project
18:47 Whiteknight * Going to start it after the pcc_rewriting branch lands (allison++ for her work on that so far)
18:47 Whiteknight * Planning and watching, but not a lot of commit activity for me.
18:47 Whiteknight * Trying to get proper build working on Win64. No success so far (TT #628)
18:47 Whiteknight * 1 Question
18:47 Whiteknight EOR
18:48 chromatic Question time.  jonathan?
18:48 jonathan OK
18:48 jonathan I'm going to be adding a PMC shortly that will be used by P6object.pbc
18:48 jonathan This is in turn used by PGE, NQP, PCT etc.
18:49 jonathan Basically, anyone building a compiler with the compiler toolkit would use it.
18:49 jonathan Question is, can this go in as a core PMC or should it be a dynpmc?
18:49 jonathan (The answer also applies I believe to CodeString, current core, and used by PCT, etc.)
18:49 jonathan *currently
18:49 jonathan Since most compilers use the compiler toolkit, it'd seem better to have it core (less load time).
18:49 Whiteknight what does the new PMC do?
18:50 jonathan I'm after a general principal for stuff the compiler toolkit needs rather than specifics, but basically it gives us a more prototype-OO/representationy way to do things.
18:51 allison leaning toward dynpmcs for most things (since we're moving a pile of static PMCs to dyn PMCs), but...
18:51 allison is it generally useful for things other than PCT?
18:51 pmichaud the new PMC will enable P6object to more closely match the Perl 6 metamodel
18:51 jonathan That's a nice way of putting it.
18:51 allison does it replace some of the protoobject PIR classes?
18:51 jonathan Yes.
18:52 jonathan Rakudo will subclass it to add Perl 6 specific behavior that is beyond the scope of PCT.
18:52 allison is it a Proto-type focused drop-in alternative for the Class PMC?
18:52 jonathan It's something that can be object and class like at the same time.
18:52 pmichaud not alternative, more like an abstraction layer.
18:52 pmichaud it's built to integrate well with Class PMC
18:53 pmichaud i.e., we still want compatibility with other Parrot objects.
18:53 jonathan Basically it will subclass the Object PMC, but unlike Object can be directly instantiated and will be backed with a Class PMC (just the way Object PMCs are today)
18:53 jonathan It will have various VTABLE methods that forward to the class PMC.
18:53 allison I'd love to have something that's core, and provides Prototype semantics. It doesn't sound like this is quite it yet.
18:53 allison Can it become that?
18:54 jonathan Only if it becoming that doesn't interfere with what Perl 6 needs it to be.
18:54 jonathan (Which is basically, subclassable to get p6opaque)
18:54 allison sure, that's sensible
18:54 jonathan It is very much down the road of prototype semantics.
18:54 allison mainly, I want it to be usable standalone
18:55 allison so, you can subclass it to add more semantics, but you don't *have* to
18:55 jonathan If you subclassed it and added a clone that also cloned the class and unset its instantiated bit, you'd probably have something prototype-ish.
18:55 jonathan But we can't do that for p6opaque because for that we'd want the normal Object clone semantics I guess.
18:56 jonathan (That or p6opaque can somehow fudge around with the vtable at init time ;-))
18:56 allison can I look at an early version?
18:56 jonathan Not yet, since it hasn't been written. :-)
18:56 jonathan I'm planning to work on it real soonish though.
18:56 allison ah :)
18:57 jonathan I agree it'd be nice to get something more generally useful.
18:57 jonathan (Not that the compiler toolkit isn't generally useful...)
18:57 allison general rule: core PMCs should be applicable to a broad range of uses, if it's language-specific or application specific, then it's not core
18:57 pmichaud since this is core to PGE, PCT, NQP, I'm not sure it qualifies as "language-specific".
18:57 allison so, go ahead and make it core if you plan to make it general
18:58 jonathan It's relevant to PCT, which makes it relevant to every langauge that uses PCT.
18:58 allison pmichaud: aye, but since it hasn't been written yet, PCT etc could use something that's general purpose or language-specific
18:58 allison pmichaud: they'll use whatever jonathan writes
18:59 pmichaud okay, I'll phrase it this way.
18:59 pmichaud The new PMC is general-purpose (or language specific) almost to the exact degree that the existing P6object stuff is general-purpose or language specific.
19:00 pmichaud as noted earlier, it's a replacement for some of the existing P6object stuff.
19:01 jonathan allison: To be honest, it's really hard for me to know if it will be generally useful. I would imagine it's a good starting point for anyone wanting to do prototype OO.
19:01 allison aye, so I'm saying that if we're going to make it core (and I'm in favor of doing it), then we need to clean it up a bit so it is general-purpose
19:01 NotFound Using a name without 'P6' inside will be good for the PR department ;-)
19:01 jonathan NotFound: I was planning it'd take a name with parrot in, and Rakudo would subclass it and call it P6opaque.
19:02 allison jonathan: we've moved away from PMC's named Parrot*
19:02 pmichaud I'm not opposed to eliminating the 'P6' from the name.  But the whole point of the library is to create a metamodel that follows Perl 6 semantics.
19:02 Coke if we're not sure if it's generally useful, why not develop inside rakudo and then port back to core.
19:02 allison I'd say, just ProtoObject
19:02 allison or something like that
19:02 Coke why decide without a spec?
19:02 jonathan Coke: Because it *already* has wider scope than Rakudo.
19:02 Coke ok. that doesn't mean it goes in core.
19:02 jonathan Coke: This is at the PCT level.
19:02 allison the existing P6object is the spec
19:02 allison or at least the prototype
19:02 pmichaud Coke:  it's core to PGE, PCT, and NQP.
19:02 allison so this is second-generation
19:03 allison so, go ahead and make it core
19:03 Whiteknight +1
19:03 jonathan Ok.
19:03 allison as NotFound said, keep out references to Perl 6
19:03 pmichaud Note also that Perl 6 has generally eliminated the term "protoobject", I think.
19:03 pmichaud Which does mean we _could_ use this for Parrot's implementation :-)
19:03 jonathan allison: Once it's in, please do review it and get back to me if there's stuff you're interested in seeing added.
19:03 allison pmichaud: that doesn't mean we can't use it :)
19:04 allison jonathan: will do
19:04 chromatic Shall we move to the next question?
19:04 jonathan allison: And we'll discuss those things and how they impact what PCT needs.
19:04 jonathan (if they do)
19:04 jonathan OK, I have an answer. Next. :-(
19:04 allison yup, sounds good
19:04 jonathan erm, :-)
19:05 chromatic Whiteknight?
19:05 Whiteknight (TT #595) What is the expected behavior when we throw/rethrow null?
19:05 Whiteknight Currently "rethrow null" -> PANIC, "throw null" -> random NULL PMC vtable access
19:05 Whiteknight at the very least we want something consistent. best-case it's graceful and looks intentional
19:05 allison fatal
19:05 allison just make it a fatal error
19:05 Whiteknight fatal? Fair enough. EOQ
19:07 chromatic Other questions?
19:07 cotto 2
19:08 chromatic go ahead
19:08 cotto first: When bacek was working on the PCT-based PMC compiler, he found that method attributes are only used in the rotest pmc.
19:08 cotto Should the new PCT-based PMC compiler honor method attributes (":read", example at src/dynpmc/rotest.pmc:12 )?
19:08 chromatic Are they in the PDD spec?
19:08 chromatic PMC PDD?
19:09 cotto So if they're there, they get implemented?
19:09 chromatic Should be, yes.
19:09 Whiteknight I've never even heard of method attributes
19:09 cotto I don't see them there.
19:10 allison they're not in the current spec, but they are used
19:10 Coke left #parrotsketch
19:10 allison specifically, they're needed by the RO vtable swap
19:11 chromatic Spec first, then implementation I say.
19:12 chromatic Next question?
19:12 cotto So they are needed.  ok.
19:12 cotto o PMCs currently declare 'is_ro', 'has_ro' or 'is_shared'.  Do we want to keep these?
19:12 cotto They're mentioned in the docs, but only is_shared is in a pdd
19:12 cotto (the others are in docs/book/ch07_dynpmcs.pod)
19:13 Whiteknight I only added the references in the book in response to some code examples I found
19:13 allison 'is_ro' and 'has_ro' aren't as useful
19:14 cotto so yes for is_shared, no for the others?
19:15 allison as a quick answer, that'll do
19:15 cotto eoq then
19:15 chromatic Other questions?
19:16 allison What's our priority for the week?
19:16 allison (I have a candidate, if no one else does.)
19:16 chromatic Go for it.
19:17 allison There are two things, maybe 3 in core parrot that are blocking Tcl.
19:17 allison - ldflags, ld_load_flags, and ccflags all refer to "/usr/local/lib" even though 'prefix' was set to something else in the compile of Parrot.
19:17 allison - pbc_to_exe has hard-coded build directory paths (known problem, see TT #495)
19:18 allison - Coke just reported a linking problem on os x, that I haven't looked into yet.
19:19 allison I'd like to get these fixed before 1.3.
19:19 allison they're all related to configuration variables
19:19 NotFound Yes, in my current build in /home/.../insparrot I get: -I/usr/local/include
19:20 pmichaud These are also blocking reasonable 'make install' targets for Rakudo, fwiw.
19:20 pmichaud In fact, Rakudo has basically stalled on this issue until they can be fixed.
19:20 allison are there one or two others who'd be willing to take a look at these issues this week? (in whatever few spare hours you have)
19:21 pmichaud I'm very eager to discuss them with people who want to discuss them.
19:21 pmichaud Parrot's existing "install versus build versions" has a bad smell to me.
19:22 allison aye, that's an ongoing discussion. We have several mailing list threads going. I can work on condensing them into one.
19:23 pmichaud But the problems you're encountering with Tcl are the same ones we encountered with Rakudo.
19:23 allison pbc_to_exe is actually a quick fix, if we can just give it a way of knowing when it's running on an installed parrot versus a build_tree parrot
19:24 pmichaud since there are two instances of pbc_to_exe, that shouldn't be that difficult...?
19:24 pmichaud Or did that disappear?
19:24 allison there are, but they're both using the same hash of config variables
19:24 allison they don't actually have any core functionality differences
19:25 pmichaud but doesn't that hash change for an installed version build copy of Parrot?
19:25 allison in theory, yes. In practice, no.
19:25 pmichaud whenever I've tried it, the hash contents of parrot_config are actually different.
19:25 NotFound I have a related question: did we need to link parrot_config.o ? It can not be linked with libparrot?
19:25 allison pmichaud: they need to be more different
19:25 pmichaud so the install version of pbc_to_exe should link with the install version of parrot_config.o, and the build version of pbc_to_exe should link with the build version of parrot_config.o
19:26 pmichaud I'm fine with making them more different.
19:26 pmichaud But yes, someone using pbc_to_exe shouldn't have to know or care if it's the build or install version.
19:26 pmichaud There's also the possibility that we should be getting rid of pbc_to_exe altogether.
19:26 pmichaud istr that the original intent was to use $0 on the parrot executable.
19:26 pmichaud s/intent/design/
19:27 allison yes, but it's the only way to make language executables at the moment
19:27 allison yup, it's still on my todo list
19:27 pmichaud okay.
19:27 allison about 3 down from the top, at the moment
19:27 pmichaud if that can be made to work, then pbc_to_exe would seem to be obsolete.
19:27 allison there are some language questions to resolve
19:27 pmichaud ah.
19:27 pmichaud okay.
19:27 pmichaud I'll let you just the relative cost/benefits then :-)
19:27 pmichaud *judge
19:28 allison basically, when parrot is running as a language, what should it execute?
19:28 allison it can load the language module (the compiler)
19:28 allison but, should it then call the 'main' routine of that file? passing in the arguments it got on the command-line?
19:29 pmichaud that's what most existing compilers expect, yes.
19:29 pmichaud at least the PCT-based ones.
19:29 allison should be possible
19:30 allison but, we'd still probably want pbc_to_exe for things like parrot_config
19:30 pmichaud there is that.
19:30 pmichaud although parrot_config could also link to the parrot executable, and provide a .pbc file :_)
19:30 pmichaud just like a language :-)
19:31 allison true
19:31 allison so, perhaps getting that working is better than spending time on pbc_to_exe
19:31 pmichaud we're also running into issues where pbc_to_exe is reaching compiler limits
19:32 pmichaud although perhaps Util++'s patch will resolve that
19:32 Util I think my patch fixes the compiler limit issue
19:32 pmichaud Util: for all compilers, or just GCC ?
19:32 NotFound It almost freezes one of my machines when building perl6
19:32 Util Me, too, NotFound, which prompted the patch
19:32 pmichaud Util: because jonathan++ also sees it regularly under Win32  (and has to bump up the compiler limits for those compilers)
19:33 Util pmichaud: I have  not tested non-GCC. I would like to know, though.
19:33 pmichaud Util: well, that's why I'm a little eager to see the patch and understand what it's doing.  :-)
19:34 * Util can't contact nopaste :(
19:34 allison hmmm... if we're using the $0 trick for more than just languages, we might need to rethink having it always look for languages/abc/abc.pbc
19:35 moritz Util: use http://sial.org/pbot/ or so
19:35 pmichaud (I did mention this a long time ago when we were discussing languages. :-)
19:35 allison to something like library/abc/init.pbc or something like that
19:35 pmichaud Yes.
19:35 allison or library/init/abc.pbc
19:36 allison then the init file can set up whatever other paths it needs
19:36 allison or, maybe just init/abc.pbc
19:37 allison (so we have library/, include/, dynext/, and init/ all in the same directory level)
19:39 chromatic Let's go to roadmap review.
19:40 allison the URL is now https://trac.parrot.org/parrot/report/14
19:40 allison #504    packfile pmcs
19:41 allison any update? is this a goal for 1.2?
19:41 allison no update
19:41 allison #565    remove optional features from default config, refactor config probes
19:42 allison any update? is this a goal for 1.2?
19:42 allison (if there are no updates, and no one is working on it, I'm assuming it's not going to make it for 1.2, since it's 12 days away)
19:43 allison #566    export conventions (cross hll)
19:43 pmichaud no updates.
19:43 pmichaud other than we worked more on getting rakudo to play well.
19:43 allison should we move it to 1.3?
19:43 pmichaud I'm not sure.
19:43 pmichaud Maybe decide next week.
19:43 allison sounds good
19:44 pmichaud I'm reluctant to move it to 1.3 because "language interop" is the key point of the July release.
19:44 pmichaud so it seems like we need something in place well before 1.3.
19:44 allison Also: #567 pdd31-hll interop and  #568 hll interop
19:44 allison same thing
19:44 allison (they're kind of all one item)
19:45 pmichaud I can probably draft what I expect Rakudo's export conventions to look like.
19:45 pmichaud And what PCT will be expecting.
19:45 pmichaud This week is a little full for me with $otherjob, but perhaps I can carve some time out for this task.
19:46 allison okay, we'll check back in next week
19:46 allison and, that's the roadmap tasks for the week
19:46 pmichaud I have a priority for next week (I agree with this week's priority)
19:47 pmichaud 1.4 shows "profiling tools".  Given how long it's taken for us to work on this, and its huge importance, maybe we should prioritize that for next week.
19:47 chromatic I can refactor runcores to make it easier to add a new one.
19:48 allison next week will be release prep, how about the week after that?
19:48 pmichaud That's fine.  I just know that it's apparently a big hairy task, and if we wait too long we won't make the 1.4 milestone.
19:48 allison yeah
19:48 pmichaud But beyond that, speed issues are coming to the forefront in Rakudo and Parrot in general, and so we really ought to be working on those.
19:49 allison and even modest profiling tools would be enormously valuable
19:49 pmichaud Exactly.
19:49 pmichaud anyway, I'm fine with it waiting two weeks.
19:49 pmichaud But we ought to start figuring out "who" soon.
19:49 allison for one thing, I'd like a tutorial document on all the profiling chromatic does :)
19:49 cotto I'm happy to help with profiling.
19:49 chromatic I thought I already wrote one.
19:49 chromatic I've identified two or three bottlenecks, but we're waiting on fixes.
19:50 allison chromatic: probably so, if you point it out we can make it more prominent in the docs
19:50 cotto +1
19:50 chromatic Okay, I'll work on something.
19:51 allison that sounds like a wrap
19:52 chromatic Thanks, everyone.
19:53 pmichaud left #parrotsketch
19:53 Util left #parrotsketch
19:54 fperrad left #parrotsketch
19:54 PacoLinux left #parrotsketch
19:56 NotFound left #parrotsketch
20:06 darbelo left #parrotsketch
20:12 chromatic left #parrotsketch
21:52 Whiteknight joined #parrotsketch
22:04 tewk joined #parrotsketch
22:33 cj did I miss the meeting again? :)
22:33 cj allison: o/
22:33 jonathan cj: yes
22:33 cj looks like I've got missing meetings down to an art
22:34 jonathan :-)
22:34 cotto purl in #parrot will tell you the time in UTC if you ask nicely.
22:34 jonathan It's OK, I managed to miss 3 Parrot Sketches in a row by accident...

| Channels | #parrotsketch index | Today | | Search | Google Search | Plain-Text | summary