|
Parrot 0.8.1 "Tio Richie" Released | parrot.org | 24 TT | 648 RT Set by moderator on 10 December 2008. |
|||
| jonathan | The object autovivification syntax works only for literal named types | 00:00 | |
| -- S121 | |||
| er, S12 | |||
| So S12 precludes it. | |||
| ::($dogproto){ :name<Fido> } | 00:01 | ||
| pmichaud | I see that | ||
| jonathan | $dogproto.WHAT{ :name<Fido> } | ||
| Thsoe are supposed to work though | |||
| Which kinda blows up the static analysis. | |||
| pmichaud | no, not really | ||
| .WHAT is static | |||
| jonathan | Oh, yes. | ||
| pmichaud | so is ::($dogproto) | ||
| jonathan | Aha. | ||
| You're right. | |||
| It makes it more complex, but still do-able. | |||
| pmichaud | but I'd *still* prefer not to do it by static analysis :-) | 00:02 | |
| jonathan | It seems like the synopsis makes it possible by static analysis. | ||
| pmichaud | it just feels cleaner in a method form. | ||
| jonathan | *nod* | ||
| pmichaud | oh, wait. | ||
| jonathan | I'm just a tad worried that if we allow the $x{ ... } case, where $x is a proto, we then create ourselves something inconsistent with the spec. | ||
| pmichaud | it can be done statically | 00:03 | |
| that's the purpose of the <postcircumfix> provisions in term:name in STD.pm | 00:04 | ||
| jonathan | Aha. :-) | ||
| Static for the win. | |||
| pmichaud | we just weren't doing it that way in Rakudo (possibly based on an older STD.pm grammar) | 00:05 | |
| jonathan | OK | ||
| pmichaud | okay, I can fix all of this. | ||
| then I can get associative working. | |||
| jonathan | Go for it. :-) | 00:06 | |
| Whiteknight | why is now such an opportune time to arrive? | ||
| pmichaud | and we'll have the "real" version of has $.x = 42; :-) | ||
| jonathan | Yes. | ||
| pmichaud | Nice. | ||
| jonathan | I knew what I'd done as the first cut wasn't quite right. | ||
| pmichaud | btw, did you happen to see what it took to get my ($a, $b) = 3, 4; to work? ;-) | 00:07 | |
| jonathan | But I knew I'd solved the parsing side of it and it just wanted tweaks. I'd yet to figure out the right tweaks. | ||
| No. Not much? | |||
| Or quite a big refactor? | |||
| pmichaud | changing a PAST::Stmts node into PAST::Op( :name('list') ) | ||
| jonathan | lol | ||
| Does that mean my implementation of my ($a, $b) didn't suck entirely? ;-) | |||
| pmichaud | it's still needing a refactor for general signature handling, but the basics were there. | ||
| jonathan | Yes. | ||
| pmichaud | it does have a problem with my ($a, @b) = ... though | ||
| @b doesn't get instantiated as a (Perl6)Array | 00:08 | ||
| jonathan | I've seen that... | ||
| (through people giving examples) | |||
| It may not be a hard fix. | |||
| pmichaud | but we'll handle that as part of the parameter refactor, which I expect to work on this weekend. | ||
| I wanted to get 5k tests done, and we should get hash slices working too while they're "ripe" | |||
| jonathan | Yes. | 00:09 | |
| pmichaud | okay. | ||
| I have to go pick up my daughter, so I'll bbl. | |||
| jonathan | Did you read my grant plan? | ||
| pmichaud | I did, looks great. | ||
| jonathan | OK, great. | ||
| See you in a bit. | |||
| pmichaud | Let's talk about "use" sometime, though. | ||
| I think "use" will eventually fall out of some of the other refactors we're doing now. | 00:10 | ||
| like getting :loadinit stuff to work right | |||
| (oh, I should fix that too this weekend. Hmm. ETOOLITTLEWEEKEND) | |||
| anyway, bbl | |||
| jonathan | yes, let's talk about use when we get chance | 00:11 | |
| weekend for sure :-) | |||
| dalek | r33843 | jonathan++ | rakudoreg: | 00:29 | |
| : [rakudo] Initial work on registering types at compile time and then typename checking against them. Passes most of spectest that we passed before; 3/6 broken tests here are due to us passing stuff before for the wrong reasons or due to incorrect tests that we just got away with before anyway. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33843 | |||
|
00:33
contingencyplan joined
|
|||
| jonathan | Just checked in spectest changes that fix up tests so we only fail 4 test scripts in the branch now. | 00:35 | |
| The third one that needs test fudging changes is assign.t, but I'm scared that the tests it drops (even if we passed them before for the wrong reason) might drop us under 5k. ;-) | |||
| pmichaud | I don't want to fall back under 5k if we can avoid it. | 00:42 | |
| I definitely want to be above 5k on Tuesday. | |||
| jonathan | pmichaud: Yes, that's why I didn't ci it. | ||
| We could lose ~20 tests. | |||
| There's no point doing that until we need to. | |||
| pmichaud | we should be able to pick up that many tests in the next couple of days | 00:43 | |
| jonathan | Like, when I merge. | ||
| pmichaud | right, let's just wait a couple of days | ||
| jonathan | And sicne I think fixing use is a pre-req for merging... | ||
| pmichaud | why is that? | ||
| jonathan | Because we need to run the compiler on the module that we use, at compile time. | ||
| So it's symbols end up in the namespace. | |||
|
00:43
chromatic joined
|
|||
| pmichaud | that already happens | 00:44 | |
|
00:44
Eevee joined
|
|||
| jonathan | It doesn't. | 00:44 | |
| pmichaud | are you assuming that the module is Perl source or precompiled? | ||
|
00:44
AndyA joined
|
|||
| jonathan | Perl source. | 00:44 | |
| purl | perl source is at ftp://ftp.perl.com/CPAN/src/ and don't mess with http: CPAN anything because you can't navigate it. all you get is 'stable.zip' atc which is NOT WHAT YOU EVER WANT | ||
| pmichaud | okay, when that module is compiled as part of the "use" statement, its symbols will end up in the name space | ||
| just as if it had been text in the current "outer" script. | |||
| jonathan | The story went along the lines of... | ||
| use used to be something we did at runtime in its first cut | 00:45 | ||
| And I said hey, that's wrong, we should do it at compile time, and changed that. | |||
| That in turn broke pre-compiled modules, which was more than a little inconveneint for the November guys. | |||
| pmichaud | oh, so 'use' is still happening at runtime? | ||
| jonathan | I didn't have the time/energy/etc to really investigate at the time, but changing it to do it during init load was early enough to solve some problems doing it at real runtime created, but late enough not to break pre-compiled modules. | 00:46 | |
| pmichaud | okay | ||
| jonathan | But essentially we need to | ||
| 1) Do it at compile time but | |||
| pmichaud | so what I'm hearing is that we need to fix loadinit stuff before we do 'use' | ||
| jonathan | 2) Leave something behind in the PIR so that *if* were are in a pre-compiled module we then load it. | ||
| pmichaud | I'm getting very worried about how our current loadinit is structured, and I don't want to just layer more stuff on top of it without doing a refactor first. | 00:47 | |
| jonathan | It's not about loading pre-compiled code, it's about the code doing the loading being pre-compiled. | ||
| Yes, I'd happily see us do it in that order. | |||
| pmichaud | okay | 00:48 | |
| jonathan | Provided we make this branch stay sync'd up somewhat with trunk, I don't mind it we drag it out for a week or so. | ||
| pmichaud | assuming that :subid now implements everything we need to get loadinit cleaned up in PCT (and I can find that out relatively quickly), we can then look at refactoring our loadinit modules in actions.pm | ||
| jonathan | I can do the putting subs in the namespace at compile time and the things that come from that in the branch too. | ||
| pmichaud | I'd also like to fix MAIN | ||
| jonathan | Fix MAIN? | ||
| pmichaud | (there's too much code in the code generation that ought to be part of a common sub.) | 00:49 | |
| jonathan | What's broken? (I know it's incomplete...) | ||
| Ah, refactor MAIN. :-) | |||
| pmichaud | okay, refactor. :-) | ||
| jonathan | But yes, loadinit changes would be good. | 00:50 | |
| pmichaud | I'm trying to avoid the "set a flag somewhere that we check on :loadinit", but it might not be possible to do that. | ||
| flags always worry me, especially when we have things like nested "use" statements. | |||
| jonathan | Do you know how we can have a way in PAST to refer to a sub in the PAST tree, by it's subid, but without actually putting the sub there? | ||
| Oh, I don't think we want a flag - we instead want to ask "is this already loaded". | |||
| pmichaud | it'll be a :register node | 00:51 | |
| jonathan | Because if we were running from source the compiler already loaded it. | ||
| And if not, we need to. | |||
| pmichaud | okay. Part of it is a question as to whether a module's "mainline" should be marked :load, :init, :load and :init, or none of them. | ||
| jonathan | The compiler needs to check if it's already loaded too, in the same place, otherwise we end up with infinite recursion etc... | 00:52 | |
| Oooh. Hmm. :-) | |||
| None of them, but it must be the first sub that gets emitted? | |||
| pmichaud | that doesn't quite work for precompiled code | ||
| because then the mainline never gets executed on load_bytecode. | 00:53 | ||
| jonathan | Ah. | ||
| Yes. | |||
| pmichaud | it's why I was asking at PDS for a way to get a handle on the thing just loaded. | ||
| so I can do $P0 = load_bytecode 'foo.pbc' and then execute $P0() | |||
| jonathan | Like a load_bytecode that returns the first sub of the thingy it loaded. | ||
| pmichaud | or even if it just returned the Eval PMC | ||
| jonathan tires to remember the discussion... | |||
| There isn't an Eval PMC in the load_bytecode case, is there? | 00:54 | ||
| pmichaud | I don't know. | ||
| jonathan | I don't think so. | ||
| pmichaud | Okay. | ||
| jonathan | But we can still know what the first sub was. | ||
| I'm fairly sure of that. | |||
| But...when you merge PMCs what happens... :S | |||
| pmichaud | anyway, I can envision cases where I want to do things at "load time" but not necessarily immediately at :load time. | ||
| jonathan | Yes. | ||
| pmichaud | i.e., load_bytecode, do some other stuff, and *then* execute the mainline of what we just loaded. | 00:55 | |
| The existing flag set doesn't give us good ways to do that, short of passing lots of out-of-band information. | |||
| jonathan | :load is "do it when we are load_bytecode'd", right? | ||
| pmichaud | yes. | ||
| jonathan | OK. | ||
| pmichaud | and if we put :load on our mainline, it has to be the last thing in the module in order for other :load things to occur in the right sequence. | 00:56 | |
| jonathan | In the meantime that'd suggest that we have it as the first sub and also mark it :load. | ||
| Oh. | |||
| pmichaud | See what I just wrote. | ||
| jonathan | How does that play with :outer... | ||
| Hmm. :-) | |||
| pmichaud | But if it's the | ||
| correc.t | |||
| now you see why I was asking for the load_bytecode change. :-) | |||
| jonathan | Why can't anything be simple... :-) | ||
| pmichaud | you've hit the catch-22 right on the hyphen. | ||
| jonathan | OK, maybe I'll implement us a variant of the loadbytecode op. :-) | 00:57 | |
| pmichaud | that's a possibility. | ||
| jonathan | Well, we can have it as a dynop if core are not keen on it, while we see if it helps/works for us. | ||
| pmichaud | The other possibility is to make sure that precompiled module has only *one* :load sub, and it makes sure everything gets done in the right sequence. | ||
| jonathan | *if* the PCT changes happen that allow that, it's another option | 00:58 | |
| pmichaud | oh sure, PCT can do that | ||
| but PCT can't do much if the HLL compiler has generated its own :load pragma'd subs. | |||
| jonathan dares pmichaud to go to #perl6 and type "christmas" ;-) | |||
| Hmm...yes. | |||
| pmichaud | the other thing is that It Would Be Really Nice If the load_bytecode op gave us a way to pass parameters to the module being loaded | 01:00 | |
| jonathan | What would recieve them though? | ||
| pmichaud | yes, we can do it with out-of-band globals, but that seems... icky. | ||
| jonathan | receive, even | ||
| pmichaud | Don't know yet. But we know that :main receives things from its outer environment -- I'm thinking that load_bytecode should have something analogous to :main | ||
| i.e., we have :init and :main for things coming from command line, seems like load_bytecode should have something other than just :load to work with. | 01:01 | ||
| pmichaud doesn't take up jonathan's dare, sadly. | |||
| okay, I have to go forage dinner for the children. | 01:02 | ||
| I'll be back later | |||
| I think we're in agreement that we should clean up our :loadinit situation soonish, though, and that use should wait for that. | |||
| (and soonish means "within a few days", not back-burnered) | |||
| that works for me, as I've been eager to clean up :loadinit anyway (like, pre dec-release) | 01:03 | ||
| that way PCT is in a state where we can really depend on :subid | |||
| afk # dinner | |||
| jonathan | OK, sounds good | ||
| Enjoy dinner | |||
| (One thing that does occur to me is what while all the cleanup and things are great, we shouldn't delay you from hacking on PGE changes for too long. :-)) | 01:04 | ||
| chromatic | LTM | 01:05 | |
| jonathan | Aye. | 01:09 | |
| chromatic: If you get tuits to refactor the MultiSub PMC not to inherit from, but rather have a ResizablePMCArray, I'll add MMD_Cache. :-) | |||
| chromatic | Let's call that a tomorrow problem. | 01:12 | |
| Tonight I want to review opcodes... and make 'class Foo is Bar { ... }' work in bleadperl. | |||
| particle | please do take a look at trac.parrot.org/parrot/wiki/ParrotRoadmap and remind yourselves what remains for the release | 01:13 | |
| i've seen a lot of "this weekend" projects that *aren't* on this list :) | |||
| chromatic | opcode review, PDD 14 review | ||
| particle | time to finish watching "the french connection" and make dinner & | 01:14 | |
| chromatic | THAT'S NOT ON THE LIST EITHER!! | 01:15 | |
|
01:17
allison joined
|
|||
| Eevee | r24325 | particle++ | finished watching "the french connection" and made dinner | 01:20 | |
|
01:35
jimmy joined
|
|||
| Whiteknight | Does anybody here understand the CGP core? | 01:44 | |
|
01:44
AndyA joined
|
|||
| jonathan | Whiteknight: Computed goto? | 01:46 | |
| purl | Computed goto is probably simply evil. but cool as hell or faster at runtime than a JIT that calls back to parrot ops, but much much slower at compile time (really hurting the machine) and can be disabled with perl Configure.pl --cgoto=0 | ||
| chromatic | Instead of a loop and a switch, you goto the address of the next op. | 01:47 | |
| Your compiler has to be smart enough to figure that out though. | |||
| Whiteknight | jonathan, precomputed goto | 01:48 | |
| What I don't understand is the line "goto **(void*)cur_op" | |||
| jonathan | Aha. | ||
| Whiteknight | like it's dereferencing the opcode itself | 01:49 | |
| I understand the computed goto core just fine | |||
| jonathan | I *think* that we compute a the values you would otherwise look up in an array. | ||
| So rather than an array lookup, we instead store, where we would store the opcode number, the memory address that we would look up and jump to in a computed goto. | 01:50 | ||
| Whiteknight | okay, I think I'm seeing that kind of code | 01:51 | |
| jonathan | It's evil. :-) | ||
| Whiteknight | it is evil, but amazing | 01:52 | |
| jonathan | Yes. And fast. | ||
| Whiteknight | I need to understand it if I'm going to write about it in the book | 01:53 | |
| at least some of the readers will see through my bullshit otherwise | 01:54 | ||
| jonathan | lol | 01:55 | |
| :-) | |||
| jonathan is having some light relief from Parrot/Perl 6 hacking and playing with the Google Maps API instead. | 01:57 | ||
|
01:58
bacek joined
|
|||
| lathos | I had some fun the other day with screen scraping / geocoding / Google Mapping to create wedding.simon-cozens.org/map.html | 01:58 | |
| jonathan | Oooh, you're getting married? | 01:59 | |
| Nice! :-) | |||
| jonathan just made travel.jnthn.net/ | 02:01 | ||
|
02:03
jimmy joined
|
|||
| lathos | Neat. Do your photos have geo-information already? | 02:04 | |
| jonathan | No | ||
| But I had them already in sections in an album. | 02:05 | ||
| lathos | Aha. | ||
| jonathan | So it wasn't so much effort to associate the sections with geo-info | ||
| Which then filters down to the photos. | |||
| It's nothing especially clever. | |||
| pmichaud | but it looks cool. | ||
| jonathan | It was surprisingly easy too. | 02:06 | |
| And nice to keep track of how many places I've been. | 02:07 | ||
| (Or haven't been... ;-)) | |||
| pmichaud | I notice that the southern part of the U.S. is notably bare. :-) | 02:08 | |
| jonathan | Yeah. :-( | ||
| Maybe my October break next year should be there. | |||
| pmichaud | nah, go somewhere worth seeing. :-) | ||
| jonathan | I'm torn between there and the middle east. | ||
| I think Peru would be worth seeing! :-) | 02:09 | ||
| pmichaud | there's no zoom on this map :-( | ||
| jonathan | Scroll wheel? | ||
| pmichaud | oh, that works. | ||
| jonathan | But yes, haven't figured out the magic thingy I need to add to the JavaScript to ahve the normal zoom bar appear. | ||
| lathos | map.addControl(new GLargeMapControl()); | 02:11 | |
| jonathan | Oh awesome. | 02:13 | |
| lathos++ # thanks! :-) | |||
| lathos | jonathan: Did you do the Trans-Siberian or something? | ||
|
02:14
davidfetter joined
|
|||
| jonathan | lathos: Yes. | 02:14 | |
| With many stops. | |||
| And much bad Russian. | |||
| lathos | Cool. I've been thinking about doing that as a fun way back to Japan. | ||
| jonathan | It was good. | ||
| I only wished I'd spent more time in the Lake Baikal area. | |||
| Apparently going to the island on the lake is really nice. | 02:15 | ||
| dalek | r33844 | Whiteknight++ | trunk: | ||
| : [Book] Add more information about the CGP core, and some small fixes about the CG core. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33844 | |||
| Whiteknight | i wish I spent any time at Lake Baikal | ||
| jonathan | It's kinda curious going past it on the train. | ||
| "Oh, there's Lake Baikal." ...3 hours pass... "Hey, Lake Baikal is still there." | 02:16 | ||
| Whiteknight | eventually I need to get on a plane and leave north america | ||
| jonathan | Indeed. | 02:17 | |
| Let me know if you're in the Slovakia area. ;-) | |||
| pmichaud: See #perl6 - bug that's probably in the problem space of what you've been hacking on of late. | 02:19 | ||
| davidfetter | Whiteknight, got your passport? | 02:20 | |
| Whiteknight | I do | ||
| davidfetter | and it's valid? | 02:21 | |
| Whiteknight | till 2011 | ||
| davidfetter | heh. so's mine | ||
| i had to get some extra pages | |||
| jonathan | Mine is meant to run out in 2014. | ||
| In reality, I will use the pages before then. | 02:22 | ||
| Key is that I get a new one *before* 2012. | |||
| When they introduce the biometric crap. | |||
| davidfetter | who thought a non-revokable auth token was a *good* idea again? :P | ||
|
03:03
davidfetter joined,
allison joined
|
|||
| Whiteknight | this damn program is too large! How can anybody keep track of all of it? | 03:12 | |
| ETOMUCHPARROT | |||
|
03:28
apeiron joined
03:43
tetragon joined
04:01
elmex_ joined
|
|||
| Tene | jonathan: you didn't add UnderConstructionProto.pir | 04:41 | |
|
05:29
Alias joined
05:43
apeiron joined
05:44
apeiron joined
06:02
MariachiElf joined
06:23
japhb joined
|
|||
| dalek | r33845 | tewk++ | trunk: | 06:38 | |
| : [js] fixed object literals | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33845 | |||
|
06:59
iblechbot joined
07:29
Hadi joined,
Hadi left
|
|||
| Alias hacks on Perl::Dist::Parrot | 07:34 | ||
|
07:43
Theory joined
|
|||
| bacek | rakudo: class Foo { has @.bar is rw }; my $foo = Foo.new; $foo.bar.push("O HI") | 08:08 | |
| polyglotbot | RESULT[1] | ||
| bacek | hmm | ||
| moritz | rakudo: class Foo { has @.bar is rw }; my $foo = Foo.new; $foo.bar.push("O HI"); say $foo.bar.perl | 08:09 | |
| polyglotbot | OUTPUT[["O HI"]ā¤] | ||
| bacek | moritz: it... works. | 08:10 | |
| time to git svn rebase :) | 08:11 | ||
| no... Actually I just missed 'Foo.new'... | 08:12 | ||
|
08:33
dbarth joined
|
|||
| dalek | r33846 | fperrad++ | trunk: | 08:59 | |
| : [pdd22io] | |||
| : Add the method 'isatty' (lost between ParrotIO and FileHandle) | |||
| : The Lua interpreter needs it. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33846 | |||
|
09:00
apeiron joined
09:14
dbarth joined
09:16
japhb joined
09:27
barney joined
09:51
apeiron joined
10:15
alvar joined
|
|||
| dalek | r33847 | bernhard++ | trunk: | 10:22 | |
| : [pipp] merge strings.t into strint.t | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33847 | |||
| r33848 | bernhard++ | trunk: | 10:34 | ||
| : Add testing info to the README. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33848 | |||
| r33849 | bernhard++ | trunk: | 10:40 | ||
| : [codingstd] add SVN properties | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33849 | |||
| r33850 | bernhard++ | trunk: | 10:42 | ||
| : [codinstd] remove trailing space | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33850 | |||
| r33851 | bernhard++ | trunk: | 11:11 | ||
| : [pipp] humble beginnings of a roadmap | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33851 | |||
| lathos | How can I, in PIR, inject code into another namespace? | 11:15 | |
|
11:17
barney joined
|
|||
| lathos | Ah, set_root_global | 11:21 | |
| dalek | r33852 | bernhard++ | trunk: | 11:22 | |
| : Rename overview.pod to pipp.pod | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33852 | |||
| bernhard.schmalhofer@gmx.de | Pipp: | 11:24 | ||
| link: www.perlfoundation.org/parrot/index.cgi?pipp | |||
| r33853 | bernhard++ | trunk: | 11:29 | ||
| : Let svn ignore pipp_test_run.tar.gz | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33853 | |||
| bernhard.schmalhofer@gmx.de | Pipp: | 11:32 | ||
| link: www.perlfoundation.org/parrot/index.cgi?pipp | |||
| lathos | Next question, can I make a key in pure Perl 6? | 11:35 | |
| So I just read through the PDD on keys, to try to answer that question. | 11:49 | ||
| And was horrified to discover that I apparently wrote it. | 11:50 | ||
| But that was a long time ago, a different country, and besides the wench is now safely married off. If someone can explain how to create keys to me, I would be much obliged. | 11:55 | ||
|
12:11
iblechbot joined
12:14
jimmy joined
|
|||
| lathos | Got it. | 12:51 | |
|
12:51
masak joined
|
|||
| lathos | Rock. | 13:03 | |
| package Thing; our %funcs = ( "sqlite3_open" => "itV" ); NCI::wrap($?PACKAGE, "libsqlite3", %funcs, sub ($_) { return $_.subst(/sqlite3_/, '') }); | 13:04 | ||
|
13:22
kid51 joined
13:23
Theory joined
13:40
Whiteknight joined
|
|||
| kid51 | seen barney? | 14:04 | |
| purl | barney was last seen on #parrot 13 days, 23 hours, 4 minutes and 12 seconds ago, saying: will be back tomorrow evening, if there is internet access in Berlin [Nov 29 15:00:47 2008] | ||
| jonathan | Tene: Ah, ooops. | 14:06 | |
| This is exactly the kinda reason why I belong in a branch. :-) | 14:07 | ||
| kid51 | At r33807, all tests were passing for me in languages/pipp. (That was on Darwin PPC.) But at r33853, I get failures in 8 test files. (That was on Linux/i386.) Have others observed the same thing? | 14:08 | |
| dalek | Jeff Horwitz | Parrot: | 14:16 | |
| link: www.perlfoundation.org/parrot/index.cgi?parrot | |||
| lathos | sudoku.pir doesn't work any more. | ||
|
14:19
Whiteknight joined
|
|||
| dalek | Jeff Horwitz | mod_parrot: | 14:22 | |
| link: www.perlfoundation.org/parrot/index...mod_parrot | |||
| r33854 | simon++ | trunk: | 14:25 | ||
| : Correct a couple of calling convention changes. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33854 | |||
| lathos | oofib benchmark takes 25 seconds in Parrot, 1 second in Perl and 0.5s in Python. | 14:31 | |
| dalek | r33855 | jkeenan++ | trunk: | 14:32 | |
| : Merge in testparrottest branch. Refactoring in lib/Parrot/Test.pm; additional tests of that package; some new dummy files used in testing. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33855 | |||
|
14:33
Hadi joined
|
|||
| jonathan | lathos: Things like n1 = n - 1 | 14:34 | |
| On PMCs now take ridiculously long compared to what they once did. :-( | |||
| lathos | That's not going to scale well, then. :( | 14:35 | |
| jonathan | I've whined gently about this before. | 14:37 | |
| It was even worse before we got an MMD_Cache stuck in. | 14:38 | ||
| One benchmark went from 6s before the chance to 280s after. The MMD Cache brought it down to a (still awful) 180s. | 14:39 | ||
| lathos | A perfect example of using caching to hide the underlying problem. | 14:40 | |
| jonathan | But basically, taking args from registers, passing them as C var args, whcn then constructs Parrot Calling Conventions like stuff, which then gets fed to the multi-dispatcher (which does a manhattan dispatch = sorting each call, at least before the cache) which then calls the appropriate thing which turns out to be an NCI wrapping some C code so we then marshall the passed args now in Parrot calling convention style back to a C signature...IS REALLY DAM | 14:41 | |
|
14:42
gaurav joined
|
|||
| dalek | r33856 | jkeenan++ | testparrottest: | 14:42 | |
| : Branch has been merged into trunk and is no longer needed at HEAD." | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33856 | |||
| jonathan | But woo, we unified multi dispatch for subs and opcodes... | ||
| Anyway, I think the appropriate people know I think this is quite the fail, so I'll rant no more. | |||
| lathos | The whole point of a register-based architecture was to avoid all this shit. | ||
| dalek | r33857 | jkeenan++ | testparrottest-33271: | 14:44 | |
| : Branch corresponding to this tag has been merged into trunk; tag no longer | |||
| : needed." | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33857 | |||
| jonathan | Before it was, look up what to call in a 2D array (scales badly on memory, but there are ways to deal with that) and then call it...without doing the C => PCC => C contortions. | 14:45 | |
| jimmy | kid51:3 hours \t bernhard \t Let svn ignore pipp_test_run.tar.gz | 14:49 | |
| dalek | r33858 | jonathan++ | rakudoreg: | 14:59 | |
| : [rakudo] Add file that I forgot to check in to the rakudoreg branch. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33858 | |||
| pmichaud | fwiw, I have the same concerns as jonathan (calling conventions and architecture design) | 15:01 | |
| and, as yet, I haven't seen or understood the purpose of the mmd redesign that was added earlier in the year | 15:03 | ||
| jonathan: ping | 15:07 | ||
| jonathan | pmichaud: pong | ||
| jonathan is full of cold today :-( | 15:08 | ||
| pmichaud | I think we need (Parrot) roles to be able to do vtable overrides. | ||
| jonathan | OK. | ||
| It's not implemented? | |||
| pmichaud | not urgent -- I can work around it for a while, but eventually Failure will need to change the vtable functions when it's mixed in. | ||
| jonathan | OK. It's not hard. | ||
| pmichaud | either that or all of our vtable functions are delegated to method calls, always. | ||
| It doesn't appear to be implemented -- nopaste coming up. | 15:09 | ||
| jonathan | I can quite easily believe it's not. | 15:10 | |
| lathos | Oh, I should check in NCI>pm | ||
| s/>/./ | |||
| jonathan | lathos: I want to see that! :-) | ||
| lathos: I had pondered writing something along those lines myself. | |||
| So very happy to see someone else has taken it on. | |||
| lathos | It's actually very simple. | ||
| dev.simon-cozens.org/6pan/browser/trunk/NCI | 15:11 | ||
| jonathan | I wasn't expecting it to be so bad. | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "vtable functions in roles" (38 lines) at nopaste.snit.ch/14926 | 15:12 | |
| lathos | I could really do with better exception-throwing from some of the built-ins. (loadlib, dlfunc) | ||
| jonathan | lathos: $*EXECUTABLE_NAME - what's this one? | ||
| lathos | Oh, that was me trying to be too clever. | 15:13 | |
| jonathan | :-) | ||
| lathos | $*EXECUTABLE_NAME is Perl 6 for $^X | ||
| jonathan | add_vtable_override() not implemented in class 'Role' | ||
| pmichaud: Yes, that's exactly what I'd expect if it's not implemented. | |||
| pmichaud | right. :-) | ||
| lathos | If you can dyload libparrot back in, then your Perl 6 code has... *interesting* possibilities for playing with Parrot-internal functions. | 15:14 | |
| jonathan | Mwahahaha... | ||
| pmichaud | it's been a while since I did NCI -- so what is NCI.pm doing exactly -- providing a wrapper to NCI subs from Perl 6? | 15:16 | |
| lathos | Sort of, yes. Allowing you to create NCI wrappers without writing PIR. | ||
| pmichaud | cool | ||
| lathos: did you know you can do inline PIR in Perl 6 subs now? | 15:17 | ||
| you might even be able to get rid of Backend.pir :-) | |||
| lathos | e.g.: package Thing; our %funcs = ( "sqlite3_open" => "itV" ); NCI::wrap($?PACKAGE, "libsqlite3", %funcs, sub ($_) { return $_.subst(/sqlite3_/, '') }); | ||
| Oh, neat. | |||
| pmichaud | q:PIR { | ||
| # your PIR code here | |||
| }; | 15:18 | ||
| lathos | Should be able to do that, then. | ||
|
15:18
workbench joined
|
|||
| pmichaud | if you want a return value from the PIR, use %r as a register | 15:18 | |
| lathos | Has that been okayed by @Larry, or is it just for fun? | ||
| pmichaud | the ability to add :PIR adverb to Q() for "domain specific languages" is in the spec. | ||
| This specific DSL is not. | 15:19 | ||
| lathos | Aha. | ||
| pmichaud | but this is how we will (re)write many of the builtin functions for Rakudo | ||
| so that they have "true" Perl 6 signatures but the key guts are directly in PIR | |||
| lathos | Does it get inlined, or does it cause another code block? | 15:20 | |
| pmichaud | inlined. | ||
| lathos | Nice. | ||
| pmichaud | another code block would be { q:PIR { ... } } | ||
| jonathan | I expect it'll turn into a pragma in the future. | ||
| pmichaud | ...pragma? | 15:21 | |
| jonathan | "use PIR;" or whatever | ||
| pmichaud | oh, yes. A module. | ||
| jonathan | Whichever. :-) | ||
|
15:39
jhorwitz joined
15:57
mberends joined
15:58
gaurav joined
|
|||
| jhorwitz | nopaste? | 16:24 | |
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) | ||
| dalek | r33859 | fperrad++ | trunk: | 16:47 | |
| : [pct] | |||
| : Since r33585, PCT::Node is a Capture PMC instead of Capture_PIR. | |||
| : So, remove the method clone from PCT::Node, and put a new one in Capture PMC. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33859 | |||
| r33860 | fperrad++ | trunk: | 16:49 | ||
| : [Lua] | |||
| : - TODO a test | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33860 | |||
|
16:51
peters joined
16:52
davidfetter joined
|
|||
| peters | rakudo: grammar Foo { token foo { 'foo' } }; grammar Bar is Foo { token bar { <foo> | 'bar' } }; if 'foo' ~~ Bar::bar { 'matched'.say; } | 16:55 | |
| polyglotbot | OUTPUT[Unable to find regex 'foo'ā¤Null PMC access in invoke()ā¤current instr.: 'parrot;Bar;bar' pc 556 (EVAL_14:227)ā¤called from Sub 'parrot;Code;ACCEPTS' pc 6443 (src/classes/Code.pir:63)ā¤called from Sub '_block11' pc 49 (EVAL_14:23)ā¤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 | ||
| ..(src/PCT/HLLCompiler.pir:508)ā¤called from Sub 'parrot;PCT;HL... | |||
| peters | looks like grammar rules isn't inherited | 16:56 | |
|
17:00
Hadi left
|
|||
| masak submits rakudobug | 17:03 | ||
| peters | masak++ | 17:04 | |
|
17:05
jimmy joined
|
|||
| jonathan thought we had tests for grammar inheritance... | 17:07 | ||
| Of the passing persuasion. | |||
|
17:07
dbarth joined
|
|||
| masak | ę©äøå„½, jimmy | 17:07 | |
| jonathan: well, I thought we had tests for .end the other day... | 17:08 | ||
| jimmy | ęäøå„½ļ¼masakļ¼ē°åØęÆåęØ1ē¹ | ||
| masak | :) | ||
| yes, I'm thinking backwards. | 17:09 | ||
| it'd be so much easier if the world were flat. | |||
| jimmy | good night, masak, go to sleep now. | 17:11 | |
| masak | sleep well. | ||
|
17:20
gaurav joined
17:31
arthur joined
|
|||
| arthur | hi | 17:31 | |
| www.parrotcode.org/docs/gettingstarted.html doesn't work | 17:32 | ||
| jonathan | That's...odd... :-| | 17:33 | |
| arthur: Here's the source that I think that this page should be generated from: svn.perl.org/parrot/trunk/docs/gett...tarted.pod | 17:34 | ||
| arthur | I got it from google cache, it was just to report it is broken | ||
| jonathan | Aha. Thanks, hopefully someone who as a commit bit on the web stuff will see this in backlog... | 17:35 | |
| jonathan ponders who... | |||
| purl msg Coke I think you have a commit bit on the website or will know someone who does...www.parrotcode.org/docs/gettingstarted.html is rather broken | 17:36 | ||
| purl | Message for coke stored. | ||
| gaurav | jonathan, arthur: That information's on the wiki as well, at: trac.parrot.org/parrot/wiki/NewParr...loperGuide | 17:42 | |
| arthur | gaurav: thx, that explained what I wanted to learn in the first place | 17:44 | |
| s/explained/explains/ | |||
|
17:49
tetragon joined
17:57
peters joined
|
|||
| pmichaud | (from earlier): if 'foo' ~~ Bar::bar { 'matched'.say; } | 18:03 | |
| 'foo' ~~ Bar::bar is wrong. | |||
| pmichaud decides to do something radical to fix it. | 18:04 | ||
| peters | ahh, 'foo' ~~ /<Bar.bar>/ | 18:15 | |
| pmichaud | /<Bar::bar>/ | 18:17 | |
| peters | ok | ||
| jonathan | pmichaud: In my branch, Bar::bar is going to epic fail. :-) | 18:19 | |
| pmichaud | yes, I know, I'm rethinking my "radical" idea based on that. | ||
| peters | S05#Grammars shows an example of using the Perl grammar using a '.' , $parsetree = m:keepall/<Perl.prog>/; | ||
| pmichaud | as in, I might just wait. | ||
| peters: the official syntax for calling rules out of another grammar isn't decided yet. | |||
| peters | ok, thanks | 18:20 | |
| Tene | pmichaud: what format should I provide pdd review in? email? modifications to pdd? | 18:22 | |
| How do I mark "Not implemented" in a PDD? | |||
| pmichaud | Tene: I'd look at other PDDs for examples. | ||
| Tene | Ah, clever. | ||
| pmichaud | as for pdd review -- obvious changes I'd go ahead and check in, and people can comment on the svn diffs in email | 18:23 | |
| things that need discussion or clarification can become tickets or mailing list discussions | |||
| if a ticket, then can commit a link to the ticket in the pdd | |||
| that way someone reading the pdd at least knows there's some discussion about it. | 18:24 | ||
| Tene | There are some parts of PDD24 Events that are not implemented, not fully specced, just vague comments. Post those individually to ML? | ||
| pmichaud | whatever you think is best. | ||
| pdd management is really more an allison thing :-) | |||
|
18:28
chromatic joined
|
|||
| jonathan | -> groceries | 18:30 | |
| dalek | r33861 | pmichaud++ | trunk: | 18:44 | |
| : [rakudo]: spectest-progress.csv update: 240 files, 5005 passing, 0 failing | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33861 | |||
|
18:56
jan joined
|
|||
| jonathan | Living on the edge of 5k! | 18:57 | |
| Tene quickly fails some tests | 19:02 | ||
|
19:11
geof joined
|
|||
| dalek | r33862 | fperrad++ | trunk: | 19:47 | |
| : [dotnet] | |||
| : - update PIR syntax (Bareword method name) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33862 | |||
| jonathan wonders how badly dotnet fails its tests these days. | 19:55 | ||
| chromatic | It should still compile, at least. | ||
|
19:55
bacek joined
19:57
Hadi joined
19:59
Hadi left
|
|||
| jonathan | It does. | 20:08 | |
| purl | if you say so... | ||
| jonathan | IMCC takes its time over it.pir :-) | ||
| Oh, but I need to have mono set up properly to run the tests. :-) | |||
| dalek | r33863 | pmichaud++ | trunk: | 20:09 | |
| : [rakudo]: Remove unused global lookup. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33863 | |||
|
20:10
Hadi joined,
Hadi left
20:11
gmansi joined
|
|||
| dalek | r33864 | pmichaud++ | trunk: | 20:12 | |
| : [rakudo]: Fix problem with null elements passed to print (partial fix RT #61324). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33864 | |||
|
20:42
allison joined
|
|||
| GeJ | Good morning everyone | 21:00 | |
| jonathan | hej GeJ | ||
| GeJ | Heya jonathan. | 21:01 | |
| purl | i think jonathan is mailto:jnthn@jnthn.net or trying to put together a grant application. | ||
|
21:06
Theory joined
|
|||
| jonathan put together a grant application and it was for the win. | 21:06 | ||
| dalek | r33865 | pmichaud++ | trunk: | 21:15 | |
| : [rakudo]: Fix initialization of $/, $0, etc. (RT #57758) | |||
| : * undef objects now return undef when subscripted | |||
| : * reorganized Failure.pir methods | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33865 | |||
| r33866 | pmichaud++ | trunk: | 21:33 | ||
| : [pct]: Refactor handling of subid in POST nodes. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33866 | |||
| Tene | Okay, some notes on PDD24 mailed to the list. | 21:40 | |
| Now to review PDD23 | |||
| jonathan | Tene++ # good review | 21:44 | |
| pmichaud | EMAILBOXTOOFULL | 21:45 | |
| Tene sends pmichaud several offers for free work-at-home credit report diet pills. | 21:46 | ||
| dalek | r33867 | cotto++ | trunk: | ||
| : [imcc] lengthen a couple more arrays so all indexed elements exist | |||
| : (CID #172, CID #173) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33867 | |||
| pmichaud | excellent review, yes. Tene++ | 21:47 | |
| karma Tene | |||
| purl | tene has karma of 334 | ||
| Tene | Ew. pdd23 is very out of date. | 21:48 | |
| Why didn't anyone tell me this before? ;) | |||
| pmichaud | that's why I kinda kept putting it on the "this needs to be fixed" queue. | 21:49 | |
|
21:49
gmansi joined
|
|||
| Tene | If the return continuation is stored with exception['resume'], then the return continuation is stored within ... what? | 21:49 | |
| How to say that in English? | |||
| jonathan | It's not exactly a return cont. | 21:50 | |
| Is it? | |||
| purl | it's it! | ||
| Tene | it's a retcontinuation pmc | ||
| jonathan | Ah, OK. | ||
| Tene | it's not an attribute... | ||
| jonathan | Ah, I guess that *can* work... | 21:51 | |
| So where is the continuation stored that we invoke to resume? | |||
| Tene | in the ['resume'] of the exception object | ||
| jonathan | :-) | 21:52 | |
| Yeah, that sentence is...odd. :-) | |||
| Tene | "The return continuation is stored with the exception object's $what" | ||
| pmichaud | I don't see that sentence. | ||
| Tene | pdd23, search for 'return continuation stored within' | 21:53 | |
| jonathan | "The return continuation is stored in the exception object and you get get hold of it using excpeiont['resume']."? | ||
| pmichaud | call it a "resume continuation" | ||
| Tene nods | |||
| pmichaud | I would also break it into two sentences. | 21:54 | |
| jonathan | "A continuation that, when invoked, will return you to the point that the exception was thrown is stored in the exception object. You can get it using exception['resume']." | ||
| pmichaud | "Active exception handlers ... with I<EXCEPTION> as the only parameter." | ||
| Tene | I'll just try a bigger rewrite. | ||
| pmichaud | (full stop) | ||
| Tene nods. | |||
| pmichaud | A return continuation is stored in the 'resume' slot that can return to the point after the throw. | 21:55 | |
| jonathan | We don't need to call it a resume continuation or a return continuation. Continuation is enough. :-) | ||
| pmichaud | That works too. | 21:56 | |
| jonathan | (Especially as return continuation implies RetContinuation PMC, and I can imagine situations exist where we'd need to upgrade it...) | ||
| Tene | the 'exit' op currently uses its arg as the *type* of the exception to create. | 22:07 | |
| This doesn't look right. | |||
| I think that the exception;death and exception;exit types are supposed to be parrot namespaces, referring to the class hierarchy that should exist eventually. | 22:08 | ||
| I'm changing them anyway, though. They can go back when that's better specced. | 22:09 | ||
| jonathan | We have a type called death?! | 22:13 | |
| Nice! :-) | |||
| Can you catch death? | |||
| If you resume, is it life after death? | |||
| Tene | Would "NOTE: Someone familiar with embedding needs to confirm this" be okay to put as a note in a PDD? | ||
| I'm just committing these changes, not mailing. | 22:14 | ||
| Eh, that should be a mail | |||
| jonathan | Sounds OK. | ||
| But mail it to in order to try and get someone to review it. | |||
| Tene | I'm going to implement auto-resuming nonfatal exceptions soon, and patch rakudo's warn to use it, including the "no EHs right now" optimization. | 22:18 | |
| jonathan | Nice. | 22:20 | |
|
22:21
Whiteknight joined
|
|||
| Tene | Exceptions can give bytecoe annotations in place at the time of throw. Are bytecode annotations working? | 22:22 | |
| 'cos they're NYI for exceptions. | |||
| jonathan | Tene: I added that note only a week or so ago. | ||
| Tene | Ah. | 22:23 | |
| jonathan | I've got a branch where I'm actively working on this. | ||
| (bcanno) | |||
| It's in the goals for the January release. | |||
| I started on it, but I've had a bit more of a Rakudo focus the last week. I'll get back onto it again in the next week. | |||
| Hmm. That branch is an anagram of "no bacon". That's a horrible thought. | 22:24 | ||
|
22:30
Limbic_Region joined
|
|||
| Tene | pmichaud: rakudo architecture question for you. | 22:32 | |
|
22:36
gmansi joined
|
|||
| pmichaud | back. | 22:51 | |
| Tene back too, for a sec. | 23:02 | ||
| PDD23 defines a hierarchy of exception classes. You had issues with this due to inheritance for rakudo's hierarchy of exception classes. | |||
| pmichaud | I didn't really see a "hierarchy" in PDD23 | 23:04 | |
| more like just a set of known classes. | |||
| Tene | How would you feel about each rakudo exception class inheriting from the parrot class and using a Perl6Exception role or whatever? | ||
| Tene nods. | |||
| pmichaud | I don't have a big issue with that, other than it's a lot of classes to start dealing with. | ||
| Tene | Specifically, do you really have issues with what's in PDD23 about the exception classes? | 23:05 | |
| pmichaud | and Rakudo (Perl 6) will likely expect that all of its exception classes derive from a common Exception class | ||
| Tene | Shouhld I take this to the list? | ||
| Tene needs to go rescue friend from locked outside in the snow. | |||
| pmichaud | (which needs to be a Exception that acts like a Rakudo object) | 23:06 | |
| Tene | bbl | ||
| pmichaud | the main issues I have (had) with PDD23 is that there were these "exception types" mentioned but absolutely nothing in Parrot about it. And all my questions about them got warnocked. | ||
| We can make Rakudo work with pretty much whatever Parrot provides, but we have to know what Parrot is providing. :-) | |||
| Tene | The classes there are NYI. I want to get a good design before Iing. | 23:07 | |
| pmichaud | so far we haven't needed the classes. I'm not so sure I need Parrot to define exception classes. | 23:12 | |
| I think perhaps Parrot should stick with a base Exception PMC type, and let the HLLs work out the rest. | |||
| jonathan | I think the problem really is knowing what went wrong and being able to map that. | 23:13 | |
| pmichaud | There are few places where Parrot has gone to a lot of trouble to create PMC types that HLLs won't be able to use | ||
| jonathan | Like, if we're doing IO, we might get various types of thing going wrong. | ||
| File not found. Permissions problems. Blah. | |||
| pmichaud | yeah. I'm not sure I want a FileNotFoundException PMC, a PermissionDeniedException PMC, etc. | 23:14 | |
| jonathan | Oh, me either. But equally I want something a bit more robust than just a string of text. | ||
| pmichaud | my HLL might want that, but I don't want Parrot defining those for me, and me having to figure out how to map them all into my HLL space. | ||
| yes, more robust than a string of text is good. | 23:15 | ||
| jonathan | Good old error codes might even cut it. | ||
| pmichaud | they've worked for a very long time. | ||
| jonathan | At least you can build up a table in your HLL of what they map to | ||
| And then index into it cheaply. | |||
| chromatic | Override the does vtable entry in Exception. | 23:16 | |
| Stuff exception role names in there. | 23:17 | ||
| pmichaud | exception roles definitely works for me. | 23:18 | |
| jonathan | *nod* | ||
| That'd work too. | |||
| pmichaud | yay, pct patches don't fail rakudo spectests. Now to commit!~ | 23:19 | |
| chromatic | Have I mentioned lately how much easier it is to add features to Rakudo than Perl 5? | 23:20 | |
| jonathan | Yay, nice. | ||
| pmichaud | chromatic: and soon to become even easier. :-) | ||
| jonathan: I found another blocker for writing builtins in p6 -- I need a unique :subid generator. | |||
| chromatic | The fact of a proper grammar with semantics makes a huge difference. | ||
| jonathan | chromatic: Not that, because I never got into Perl 5 guts. But I've noticed adding stuff into Rakudo rather than hacking Parrot guts is much easier. | 23:21 | |
| pmichaud | (I can come up with one that will "work" for now, but it's another thing to deal with.) | ||
| jonathan | We needed that for blocks anyway, though? | 23:22 | |
| .sub 'block42' | 23:23 | ||
| dalek | r33868 | pmichaud++ | trunk: | ||
| : [pge]: Switch PGE to use :subid, add 'subid' option. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33868 | |||
| r33869 | pmichaud++ | trunk: | |||
| : [rakudo]: Remove spurious :subid tag from enums.pir. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33869 | |||
| jonathan | Just the same problem in a different place. :-) | ||
| pmichaud | yes. | ||
| jonathan | And it blocks Perl 6 prelude because? | 23:24 | |
| Will we have more than one compilation unit to worry about at a time? | |||
| pmichaud | yes. | ||
| action.pm and Prelude.pm being the obvious ones. | |||
| when they get included into perl6.pbc, we have to make sure the :subid's don't conflict. | |||
| dalek | r33870 | pmichaud++ | trunk: | 23:25 | |
| : [pct]: Have POST pass along the needed :subid value for :compiler nodes. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33870 | |||
| r33871 | pmichaud++ | trunk: | |||
| : [pct]: Have PAST::Compiler start to use :subid instead of :name. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33871 | |||
| pmichaud | either that or we leave Prelude as a separate .pbc.... but I'm not sure I like that yet. | ||
| jonathan | Once upon a time I wrote this thing called a linker... ;-) | ||
| pmichaud | and I've been thinking that Prelude makes more sense separated into separate .pm files instead of all-in-one. | ||
| jonathan | (pbc_merge) | ||
| pmichaud | yes, and every time I tried to use pbc_merge it failed miserably. Probably not your fault, but it never worked for me. | ||
| jonathan | Are there tickets? | ||
| It may have suffered bitrot, though. | 23:26 | ||
| pmichaud | I decided I liked the .include approach better. :-) | ||
| chromatic | I'm sure it has. | ||
| pmichaud | I think it was undergoing bitrot at the time. | ||
| since .include worked, I stopped banging my head on that wall. | |||
| jonathan | If nobody is using it, then it's likely nobody will spot the problems in it. | 23:27 | |
| pmichaud | right. | ||
| jonathan | Though I did think there were some tests... | ||
| pmichaud | anyway, it's probably easier to come up with a unique :subid generator than for me to fix pbc_merge :-) | ||
| jonathan | Anyway, generating unique IDs is probably an easier problem to solave than fixing pbc_merge... | ||
| (Particularly because there's a small talent pool that can fix pbc_merge...) | 23:28 | ||
| pmichaud | correct. | 23:29 | |
| if nothing else I'll just steal a prefix from a time source | |||
| jonathan | (And much of that talent pool feels that bytecode annotations matter more...) | ||
| That'd workish for now. | |||
| Just don't try parallel builds. :-) | 23:30 | ||
| pmichaud | another option is to hash the source | ||
| (e.g., md5sum) | |||
| jonathan | Ah, yes. We have an MD5 implementation for Parrot, IIRC. | 23:31 | |
| pmichaud | yes, although I think it ought to be converted to be object-based. | ||
| jonathan | That's probably not too hard | 23:32 | |
|
23:38
ewilhelm joined
23:50
MariachiElf joined
|
|||