|
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... | ||