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