Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-13

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced