Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-16

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 pmichaud (and sooner rather than later)
00:00 jonathan I'd like it if that place was rakudo.org becuase it's easy to remember.
00:00 pmichaud would rakudoperl.org be an okay substitute if rakudo.org doesn't work out?
00:00 jonathan Yes.
00:01 cognominal pmichaid, can you twit on rakudoperl with the url of an new entry on parrot planet?
00:01 cognominal pmichaud!
00:01 purl pmichaud is http://www.pmichaud.com/ or "Patrick R. Michaud" <mailto:pmichaud@pobox.com> or in charge of toaster experiments
00:01 pmichaud cognominal: sure
00:01 jonathan But I'd be disappointed if we can't co-operate with whoever owns rakudo.org to make that what we want it to be.
00:01 pmichaud whoever owns rakudo.org == Andy
00:01 Casan while I do not feel my say is to weigh anything on this, on behalf of users like me I can say ++ to the same sentiments of jonathan, they are in par with my wish list
00:01 cognominal twit is my new RSS :)
00:01 lathos Worst case you can have *.rakudo.org
00:02 jonathan OK, I knew Andy managed it, wasn't sure on ownership.
00:02 pmichaud Andy owns it.
00:02 lathos www can be just the blog, other subdomains can be other stuff.
00:02 pmichaud it would be better if www is the site, though.
00:02 jonathan lathos: No.
00:02 pmichaud i.e., not the blog.
00:02 jonathan lathos: See comment above.
00:02 lathos Sure would, that's why I said worst case.
00:02 Casan hummm, but still www.rakudo.org should be the main place, with intro, not blog at first
00:03 pmichaud worst case would be no site at all :-)
00:03 Casan think of an official marketing/business site to support customers.
00:03 jonathan worst case is that we give up on Rakudo on decide to dedicate our lives to the advancement of LOLCODE instead.
00:03 jonathan s/on/and/
00:03 pmichaud actually, worst case would be that www.rakudo.org goes somewhere promoting the anthesis of Perl.
00:03 pmichaud antithesis, that is.
00:03 pmichaud (can't type.)
00:03 Casan jonathan: if you do that I buy you one more beer! :)
00:03 pmichaud I should pivovat.
00:04 jonathan Anyway, Andy has IIRC suggested rakudo.org may become Drupal-based.
00:04 jonathan Which would seem to let us put content there.
00:05 pmichaud if Drupal is fine with you, I think it would be okay with me.
00:05 jonathan And I guess that will give us what we want.
00:05 pmichaud I'd like it to be easy to give out the ability to edit/update content.
00:05 lathos I've been using Drupal for all our sites recently. It's spectacularly flexible.
00:06 pmichaud I don't like Drupal's "wiki", though.  However, github seems to provide a wiki, so if we host rakudo through github then that could provide us a wiki for a while.
00:06 jonathan Drupal seems fine with me.
00:06 jonathan pmichaud: We don't massively *need* a wiki on rakudo.org.
00:06 jonathan IMO.
00:06 jonathan We need a place where people can come, find what's up with Rakudo, find out how to get hold of it, etc.
00:06 pmichaud I think a wiki, or some good way to enable user-contributed content without lots of pre-registration / clearance, is useful.
00:07 pmichaud for example, keeping the "what doesn't work in Rakudo" list up to date.
00:07 jonathan Good point.
00:07 jonathan What are your thoughts on bug tracing?
00:07 jonathan er, tracking
00:07 jonathan ;-)
00:07 pmichaud we're likely to stay with rt.perl.org, I think.
00:08 jonathan Why? (I'm not disagreeing, just curious why.)
00:08 pmichaud it's frustrating at times, but Robert is very responsive in general and hopefully some of those will go away.
00:08 jonathan OK.
00:08 pmichaud *those frustrations
00:08 jonathan The Parrot Trac is...slooooow.
00:08 jonathan But Trac can be unslow.
00:08 pmichaud RT is often slower than trac for me.
00:08 jonathan And it's got a decent wiki.
00:08 pmichaud I do like Trac's ability to create custom reports and associate everything with milestones.
00:08 pmichaud And the wiki.
00:08 purl the wiki is http://dev.catalyst.perl.org/wiki/
00:08 lathos Is it running on mod_parrot?
00:09 AndyA joined #parrot
00:09 jonathan I use Trac on a couple of other projects. I do like it.
00:09 jonathan But yes, Robert++ *is* responsive.
00:09 pmichaud But moritz++ said he prefered to stay with rt.perl.org over trac (for some very valid reasons), so I'm biased towards rt.perl.org at the moment.  (For that and other reasons also.)
00:09 Casan lathos: wishful thinking
00:09 jonathan I'm happy staying with RT too.
00:09 lathos Someone was telling me the other day that trac does an awful lot of unnecessary module reloads (with an associated doubly awful number of library-path-search stats) if it's not running on mod_parrot.
00:09 lathos I mean mod_python of course. Urgh.
00:10 pmichaud I'm being called to dinner.
00:10 pmichaud later, all.
00:10 jonathan lathos: There's a *huge* performance difference between running it without and with mod_python.
00:10 jonathan Later, pm.
00:10 lathos Yep.
00:10 jonathan lathos: In my experience, anyway.
00:10 lathos What do we have at the moment?
00:11 jonathan On parrot.org? No idea. But I fear without mod_python...
00:11 lathos Hmm.
00:11 jonathan That or something else is making it a *lot* less snappy that any other installations of Trac I have.
00:12 Whiteknight Coke here?
00:13 Whiteknight I guess calling himself "coke_away" is a cluse
00:13 Whiteknight s/cluse/clue/
00:13 cognominal pmichaud, you need spectcacular twit photo to about parrot saving the world like http://twitpic.com/135xa   :)
00:14 On tr...
00:15 On s.s..;
00:15 cognominal or at least of the parrot and rakudo tests graphs
00:17 dalek r35608 | Whiteknight++ | branches/morph_pmc_type/src/ops (2 files):
00:17 dalek : [morph_pmc_type] update some files in src/ops/*
00:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35608
00:18 dalek r35609 | simon++ | branches/strings/pseudocode:
00:18 dalek : Ironically, I need to get the length of a string.
00:18 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35609
00:23 coke_away (why move the repository) I am deep in review, but I assume this was covered at the PDS. no?
00:36 dalek r35610 | simon++ | branches (144 files):
00:36 dalek : Merge from trunk
00:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35610
00:41 Whiteknight how are the read-only versions of PMCs named?
00:47 Infinoid well, from the pmc2c output, it looks like Classname => Classname_ro
00:48 Infinoid but I don't see corresponding enum_class_* definitions to support that.
00:50 Whiteknight yeah, they're defined as "enum_class_X - 1"
00:50 Whiteknight thanks Infinoid++
00:51 Infinoid ... really?  they don't look spaced out like that in include/parrot/core_pmcs.h
00:52 Infinoid but if you say "yes", I'll believe you :)
00:57 ask_ joined #parrot
00:58 tetragon joined #parrot
01:03 Whiteknight I was able to get around having to use the string name, but it's a hackish solution
01:03 Whiteknight I'll have to fix it later
01:04 Whiteknight I'm using interp->vtable[enum_class_X - 1]->whoami to get the string name of the mc
01:04 Whiteknight pmc
01:10 dalek r35611 | Whiteknight++ | branches/morph_pmc_type/src/pmc (6 files):
01:10 dalek : [morph_pmc_type] convert files in src/pmc/* to use VTABLE_morph_string instead of VTABLE_morph
01:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35611
01:10 tjh joined #parrot
01:12 particle3 string, not pmc?
01:19 TiMBuS joined #parrot
01:20 tjh left #parrot
01:21 dalek r35612 | Whiteknight++ | branches/morph_pmc_type/src (2 files):
01:21 dalek : [morph_pmc_type] one last fix from bigint.pmc and update src/dynpmc/rational.pmc
01:21 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35612
01:35 dalek r35613 | Whiteknight++ | branches/morph_pmc_type/languages (2 files):
01:35 dalek : [morph_pmc_type] a few stragglers
01:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35613
01:46 Whiteknight particle3, it's just a temp name. I'm going to delete the current morph and rename "morph_string" to "morph" in a minute
01:46 Whiteknight there's method to my madness
01:46 Whiteknight although there isn't always a lot of creativity to my method names
01:53 particle1 joined #parrot
01:54 LimbicRegion joined #parrot
01:55 particle3 joined #parrot
01:55 particle3 left #parrot
01:55 dalek r35614 | Whiteknight++ | branches/morph_pmc_type/src (7 files):
01:55 dalek : [morph_pmc_type] remove the old morph VTABLE, everything is now replaced by my dummy morph_string method
01:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35614
01:57 Limbic_Region joined #parrot
02:04 kid51 joined #parrot
02:10 Coke_away jonathan: ping
02:18 jimmy joined #parrot
02:51 TimToady joined #parrot
02:51 confound joined #parrot
02:51 rhr joined #parrot
02:51 jhorwitz joined #parrot
02:58 dngor joined #parrot
02:58 Limbic_Region joined #parrot
02:58 bacek joined #parrot
02:58 TiMBuS joined #parrot
03:00 ask_ joined #parrot
03:18 * kid51 must sleep
03:18 purl $kid51->sleep(8 * 3600);
03:35 cognominal joined #parrot
03:58 Eevee joined #parrot
04:04 samlh joined #parrot
04:10 purl joined #parrot
04:13 Fayland joined #parrot
04:13 particle joined #parrot
04:26 tetragon joined #parrot
04:27 mib_vm25pu joined #parrot
04:30 petdance joined #parrot
04:33 jhorwitz_ joined #parrot
04:56 dalek r35615 | pmichaud++ | trunk/languages/perl6/src/parser:
04:56 dalek : [rakudo]:  Fix degenerate space before postfix ops.  (RT #60148)
04:56 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35615
05:08 Infinoid so, does trac have a commit rss?
05:17 pmichaud https://trac.parrot.org/parrot/wiki/TracRss
05:30 MariachiElf joined #parrot
05:47 Infinoid hmm, cool.  I could probably log ticket events to the channel too, if people consider it useful
05:52 Infinoid hmm.  one problem is, trac rss doesn't include the list of modified files, which means the nifty branch/focus/whatever detecting stuff will no longer work.
05:52 Infinoid maybe I could do some additional screenscraping to get that info
06:03 GeJ joined #parrot
06:16 Tene joined #parrot
06:23 shorten joined #parrot
06:58 ewilhelm joined #parrot
06:59 ewilhelm hi all.  anyone have input regarding what to tell students about parrot and perl 6 regarding summer of code?
06:59 ewilhelm specifically, what sort of language experience is required or useful (besides perl and C - and how requisite is either of these?)?
07:04 Fayland_ joined #parrot
07:09 mib_vm25pu ewilhelm: I think verybody is sleeping now.
07:10 ewilhelm perhaps they should move west ;-)
07:10 ewilhelm thanks, I have a fairly good idea of what to say I was just hoping to get some specific advice
07:11 clunker3 joined #parrot
07:11 mib_vm25pu It's 07:10
07:12 mib_vm25pu maybe ask it this afternoon.
07:12 ewilhelm so you think eastward would work better then?
07:13 Fayland joined #parrot
07:14 mib_vm25pu I don't know.
07:15 ewilhelm ah, it must be too early for jokes there
07:16 mib_vm25pu C is required
07:16 mib_vm25pu actually, I can't understand the jokes.
07:18 ewilhelm C is required for parrot, but I thought rakudo was more pir
07:19 mib_vm25pu yes, and Compiler Principles
07:21 ewilhelm ah, good point.  thanks
07:22 masak joined #parrot
07:22 mib_vm25pu good morning masak
07:22 masak good morning mib_vm25pu
07:23 masak ...jimmy.
07:23 moritz ewilhelm: for parrot you need C, and learn PIR; for Rakudo, you need Perl 6 and PIR and a bit of C
07:23 moritz ewilhelm: and for Perl 6 hacking you need Perl 6, and patience ;-)
07:23 ChrisDavaz joined #parrot
07:24 ewilhelm students with perl 6 experience might be slim pickings ;-)
07:24 moritz I know
07:24 moritz but they can learn it, provided that they have some perl 5 knowledge
07:25 masak I think Perl 6 is easier than Perl 5 in many ways.
07:26 moritz ewilhelm: do you know of a wiki page where we share Perl 6/parrot SOC project ideas?
07:32 ewilhelm moritz, ATM we only have what's left from last year on the perlfoundation.org/perl5 wiki
07:33 ewilhelm jonathan leto is running the TPF effort, but if you want to start a page just send him a link
07:34 ewilhelm jerry (particle) should be in touch with him and I think will be driving the Parrot Foundation bus
07:34 lu_zero there are easy tutorials for perl6 already or everything has to be learnt the usual way?
07:34 moritz ewilhelm: did I ever say "thank you" for your effort last year? if not, now would be a very good time ;-)
07:34 moritz lu_zero: there are a few tutorials, but most of them don't go very deep
07:36 cotto lu_zero, jonathan has several useful presentation slides at http://www.jnthn.net/articles.shtml
07:37 cotto you can also look at November and a few scripts that people have hacked up (but maybe that's "the usual way")
07:39 ewilhelm has anyone tried to do the qotw in perl 6?
07:39 ewilhelm moritz, I think you did say, and thank you
07:40 ewilhelm http://perl.plover.com/qotw/
07:40 masak lu_zero: the other day I started a documentation effort for Perl 6. but it doesn't help you yet. http://use.perl.org/~masak/journal/38279
07:46 Tene ewilhelm: looks like that's been abandoned since Oct 2004
07:47 cotto masak++ #more perl6 documentation
07:48 masak I have high hopes for that project.
07:51 cotto "psi"?
07:51 purl "psi" is some pseudo-scientific term for "paranormal studies"
07:51 cotto Is that because it's supposed to guess what you're trying to figure out?
07:51 masak cotto: among other things, yes.
07:52 cotto I'm sure there's a terrible pun in there too.
07:53 masak cotto: no, not really. but Ruby has 'ri' for this, so it's natural that Perl Six should have 'psi'.
07:56 ewilhelm Tene, yes, but none of the quizzes have been done in perl 6.  I'm told that the ruby community went through them at some point.
07:59 masak sounds like something that could be done over at perl6-examples, then.
08:01 Tene masak: so you'd be in favor of me spending my Parrot tuits on getting "evaluate using the given lexical environment" working (for repl and eval)?
08:02 Tene I'm pretty sure I know how to do it.
08:02 masak Tene: oh yes.
08:02 Tene masak: also, btw, a nice trick in the current rakudo repl is using global vars.
08:02 masak Tene: yes, that's a good _short term_ solution, I know.
08:03 masak but don't count on selling the GP on that.
08:03 Tene I don't.
08:04 Tene I've been working on lexical invoke in the background for quite a while.  I can start trying to implement it RSN.
08:04 iblechbot joined #parrot
08:04 masak \o/
08:06 moritz http://www.perlfoundation.org/per​l6/index.cgi?summer_of_code_ideas please add ideas for Parrot SOC projects
08:06 shorten moritz's url is at http://xrl.us/becqk3
08:06 Tene I also have a vague idea about getting line continuation and such working.
08:07 masak Tene++
08:07 Tene Involves hacking PGE to emit the right kind of resumable exceptions under the right circumstances, and that's a lot of stuff I'm handwaving over.
08:08 Tene And if I pursue it, the likely outcome is me badgering pmichaud into doing at least half of it. ;)
08:08 mberends joined #parrot
08:09 moritz sounds really simple *cough*
08:09 cotto ++ to whomever had the idea to get started on gsoc early this year
08:10 Tene moritz: you hack on any parrot guts at all?
08:10 moritz Tene: no.
08:10 moritz Tene: I hope you heard my irony ;-)
08:11 Tene Oh, the really simple.
08:11 Tene I get it now.
08:11 Tene That wasn't related to your simple comment.  I was just going to show you where I was looking.
08:12 moritz ah ok
08:13 jimmy joined #parrot
08:14 Tene moritz: if you can harass me about it this weekend, I'll give it a show.
08:14 Tene shot.
08:37 moritz Tene: I'm not online this weekend :(
09:22 wolverian joined #parrot
09:24 barney joined #parrot
09:28 alvar joined #parrot
09:38 Ademan joined #parrot
09:40 namenlos joined #parrot
10:04 tomyan joined #parrot
10:05 braceta joined #parrot
10:22 dalek r35616 | bernhard++ | trunk/t/oo:
10:22 dalek : [codingstd] file_metadata.t
10:22 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35616
10:23 dalek r35617 | bernhard++ | trunk/src/pmc:
10:23 dalek : [codingstd] tabs.t
10:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35617
10:34 bacek joined #parrot
10:35 jonathan Coke: pong
10:37 rdice joined #parrot
10:38 jimmy left #parrot
10:43 gaz joined #parrot
11:15 dalek r35618 | bernhard++ | trunk/languages/pipp/t/php:
11:15 dalek : [Pipp] Add simple namespace tests.
11:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35618
11:19 dalek r35619 | bernhard++ | trunk (2 files):
11:19 dalek : let SVN ignore *.o in sr/atomic
11:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35619
11:33 dalek r35620 | simon++ | branches/strings/pseudocode:
11:33 dalek : Abstract fixed-width encodings into a base class.
11:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35620
11:42 dalek r35621 | simon++ | branches/strings/pseudocode (2 files):
11:42 dalek : Variable string encodings can have their own base class too.
11:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35621
11:46 dalek r35622 | jonathan++ | trunk/languages/perl6/src/classes (2 files):
11:46 dalek : [rakudo] Implement .does method (Any delegates to the metaclass, and we have the implementation there).
11:46 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35622
11:47 dalek r35623 | jonathan++ | trunk/languages/perl6/src/builtins:
11:47 dalek : [rakudo] infix:<but> needs to be aware of ObjectRef, otherwise we end up affecting the original object.
11:47 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35623
11:47 dalek r35624 | jonathan++ | trunk/languages/perl6/config/makefiles:
11:47 dalek : [rakudo] Oops, should have checked updated makefile in a couple of commits ago.
11:47 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35624
11:48 dalek r35625 | jonathan++ | trunk/languages/perl6/t:
11:49 dalek : [rakudo] Add the (now substantially passing) S12-role/basic.t to the spectests. It tests .does in the non-parametric case as well as covering the infix:<but> with ObjectRef bug recently fixed.
11:49 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35625
12:00 rdice joined #parrot
12:00 pjcj joined #parrot
12:10 dalek r35626 | bernhard++ | trunk/languages/pipp/src/pct:
12:10 dalek : [Pipp] Rename NAMESPACED_IDENT to name and define it line in Rakudo
12:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35626
12:24 ruoso joined #parrot
12:25 * sjn wonders if there exists a webpage or tutorial or something that describes all the features available in the bots and such that we can use in the different Perl-related IRC channels
12:30 masak Tene: ping
12:32 ruoso joined #parrot
12:35 lathos joined #parrot
12:38 barney joined #parrot
12:44 moritz sjn: I'm quite sure that such a thing does not exist ;)
12:46 ruoso joined #parrot
12:49 Coke jonathan: I should have just asked you the question. =-)
12:49 Coke using the bytecode annotations, they're tied to the context chain, n eh?
12:53 jonathan Coke: In what senes?
12:53 jonathan Coke: You can look up annotations down the context chain if you wish, via ParrotInterprter.
12:53 jonathan But the annotations themselves are tied to the bytecode.
12:53 jonathan *sense
12:56 dalek r35627 | bernhard++ | trunk/languages/pipp/docs:
12:56 dalek : [Pipp] note a divergence
12:56 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35627
13:01 contingencyplan joined #parrot
13:01 ruoso joined #parrot
13:05 sjn moritz: d'oh!
13:05 Coke jonathan: the annotations are... I hate to say lexical... sticky?
13:05 Coke so I set (file,a.tcl), and then invoke a sub, and check annotations, (file,a.tcl) is still set.
13:06 dalek r35628 | simon++ | branches/strings/docs/pdds:
13:06 dalek : Typo
13:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35628
13:06 Coke and if I set (line,30), and then return from a sub, (line) is ... no longer set? set to whatever it was in the original sub?
13:06 jonathan Coke: Not in the sub you invoked, no, but you can look one level down the call stack to get those annotations.
13:06 jonathan Oh, it's what it was in the original sub then.
13:06 Coke jonathan: when I look at the 'backtrace', it seems to be folded in.
13:07 * Coke checks something.
13:07 jonathan Coke: Beware that annotations have no idea about sub boundaries though.
13:08 lathos OK, I don't know when characters are graphemes and when they aren't. Argh.
13:10 kj joined #parrot
13:10 Coke jonathan: ... so if I say .sub joe\n.annottate 'bar,'baz'.end .sub fred .... .end , the annotation is in fred too, even if I dont' call one from teh other?
13:10 jonathan Yes
13:10 jonathan It's nothing to do with calling.
13:10 jonathan It's entirely to do with bytecdoe.
13:11 jonathan *bytecode
13:12 jonathan It's possible to introduce a directive that says "clear all active annotations" *if* it's needed.
13:13 Coke um.
13:13 jonathan But I kinda figured that compilers are going to be emitting .line directives pretty much at the start of every sub.
13:14 rurban joined #parrot
13:14 Coke you mean .annotate 'line', ... ?
13:14 jonathan Oops
13:14 jonathan Yes.
13:14 Coke I am very surprised by this behavior.
13:14 jonathan Why?
13:15 jonathan They are *bytecode* annotations.
13:15 * Coke reads the pdd.
13:15 kj it's similar to a .namespace directive, which stays in place until you specify a new .namespace
13:16 jonathan Right.
13:16 jonathan Coke: .annotate is described in PDD19, but there's some lower-level details in PDD13.
13:16 ruoso joined #parrot
13:18 Coke jonathan: I'm interested in the "user facing" aspect, so pdd19 is better for me.
13:18 jonathan Aye.
13:19 jonathan Coke: If there's something that could be added to pdd19 that woulda made the behaviour clearer to you, please do add it.
13:19 jonathan It's the usual case of "obvious to the implementor" :-)
13:19 Coke jonathan: let's say I processing foo.tcl, and then I source bar.tcl; I can add a file annotation at the point where I read in each item.
13:20 Coke when I'm done processing bar.tcl, do I have to then explicitly re-annotate with the original file name?
13:20 jonathan What does "source" do?
13:20 nopaste "barney" at 84.154.3.98 pasted "--target=parse broken in Rakudo" (30 lines) at http://nopaste.snit.ch/15324
13:20 jonathan (Sorry, I don't know tcl at all)
13:21 Coke like .include
13:21 jonathan Ah.
13:21 jonathan In that case, yes.
13:21 Coke ew.
13:21 jonathan Do you compile it down to .include?
13:22 Coke no.
13:22 jonathan Ah.
13:22 jonathan Then maybe not.
13:22 Coke everything is interpreted. =-)
13:22 jonathan Ah. :-)
13:22 Coke well, compiled/then/executed.
13:22 Coke so source slurps in the source, compiles the tcl to PIR and invokes it, and then returns.
13:22 Coke hurm. will every invocation of the PIR compiler have its own annotations?
13:23 Coke or does it share annotations with the pbc that invoked the compiler?
13:23 jonathan In that case, you are doing compreg and getting back an Eval PMC and then invoking it, right?
13:23 Coke yes.
13:23 Coke I do that /a lot/
13:23 jonathan So then those annotations will (should!) be in a segment attachted to the bytecode segment in that Eval PMC
13:23 jonathan And should not have any effect on those of the PBC that invoked the compiler.
13:24 jonathan So suppose you do source foo.tcl
13:24 Coke ok. then this might just happen to work.
13:24 jonathan I'd imagine that when you compile foo.tcl you will insert .annotate directives in the PIR that you are going to compile.
13:24 Coke jonathan: [source] is: http://code.google.com/p/partcl/source/​browse/trunk/runtime/builtin/source.pir
13:24 shorten Coke's url is at http://xrl.us/becq22
13:25 Coke (compileTcl is defined elsewhere, but basically invokes the PGE/TGE/PIR/PBC chain)
13:25 jonathan Coke: where can I find the source for compileTcl?
13:26 jonathan Coke: Ah, found what I'm looking for.
13:26 Coke oooh, found a bug. =-)
13:27 jonathan Coke: OK, so in the transforms that produce PIR, that's where you'd want to spit out .annotate directives into the PIR you are generating.
13:27 nopaste "coke" at 72.228.52.192 pasted "this code assert fails" (29 lines) at http://nopaste.snit.ch/15325
13:27 jonathan IIUC what is going on.
13:28 jonathan Coke: Which assert?
13:28 Coke if I comment out the .annotates, that completes with a throw exception.
13:28 Coke src/packfile.c:1575: failed assertion 'dir'
13:29 jonathan Shit.
13:29 jonathan *sigh*
13:29 jonathan Please file Parrot ticket, I'll look into it.
13:29 Coke Sorry. want a t.... k.
13:29 * jonathan is currently patching up the "fun" that sees Parrot doing PMC_sub all over the place without checking it's actually a sub PMC.
13:30 jonathan $P0 = new 'Integer'\ncapture_lex $P0\n # BOOM
13:30 tetragon joined #parrot
13:31 jonathan Coke: It may be something that just shows up in eval...
13:31 jonathan That's my first guess.
13:32 Coke https://trac.parrot.org/parrot/ticket/180
13:32 jonathan Thanks. :-)
13:32 jonathan At lesat it's a nice small example.
13:32 Coke if that works as we expect, then I don't have to worry about keeping track of everything, I just have to setup each compilation unit sanely.
13:33 Coke jonathan++
13:33 Coke In advance of it working, I can probably work on a helper method to reformat the backtrace into something more tcl-like.
13:34 jonathan I *think* that we have the same expectations of what the backtrace should look like here.
13:34 jonathan Just need to fix whatever segvs.
13:36 ruoso joined #parrot
13:36 Whiteknight joined #parrot
13:37 nopaste "coke" at 12.111.36.194 pasted "sample tcl backtrace." (29 lines) at http://nopaste.snit.ch/15327
13:37 Coke jonathan: I'd expect the original backtrace to show a file directive only for the first chunk, and then a file/line for the next chunk.
13:38 Coke if I just put the 'joe' sub declaration at the bottom of the file, the line directive is still in effect.
13:38 Coke ah, I also need a 'command' directive.
13:39 * Coke should put in comment annotations there and follow the logic.
13:39 jonathan Coke: That's what I'd expect, yes.
13:41 nopaste "coke" at 12.111.36.194 pasted "faux annotations." (36 lines) at http://nopaste.snit.ch/15328
13:41 Coke whoops. missed "# command " annotations for the procs.
13:42 Coke guess I my PBC is going to get much bigger. =-)
13:42 Coke s/I //
13:43 jonathan Coke: Annotations are stored reasonably compactly, so it shouldn't be too bad.
13:44 lathos Can someone look at PDD28 and tell me how Parrot_string_grapheme_copy differs from Parrot_string_append?
13:46 Coke lathos: perhaps string_append is ignoring the charset?
13:46 Coke (or encoding. or something other unicodey thing.)
13:47 Coke I dislike all the (was foo) references in that doc.
13:47 lathos That gets you into trouble fast, though.
13:47 Coke lathos: oh, I'm not saying it's a /good/ idea.
13:48 lathos The (was foo) references are annoying but will be helpful when I start trampling on the old code.
13:48 Coke I was merely pointing out some selections of crack you might which to peruse.
13:50 lathos Or I could just get rid of it.
13:51 ruoso joined #parrot
13:52 lathos OK, and *this* no longer makes sense: bufused is the amount of the buffer used in bytes, strlen is the length of the string in bytes. Why would they ever be different?
13:52 pmichaud one might chop a string but not want to reallocate the buffer?
13:52 pmichaud (just guessing)
13:53 lathos At which point you're not using that bit of the buffer.
13:53 lathos Perhaps it should be bufallocated or something.
13:54 lathos Particularly since we don't have anything which actually tells us how big the buffer is.
13:55 dalek r35629 | pmichaud++ | trunk/languages/perl6/docs:
13:55 dalek : [rakudo]: spectest-progress.csv update: 285 files, 6263 passing, 0 failing
13:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35629
13:55 Whiteknight lathos: maybe whoever wrote the documentation (possibly me) didn't fully understand the function
13:55 dalek r35630 | simon++ | branches/strings/pseudocode (3 files):
13:55 dalek : Get chopn_inplace working, and puzzle over strlen/bufused differences.
13:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35630
13:56 lathos Whiteknight: Actually I wrote the documentation. o_O
13:56 Whiteknight oh, I was only guessing. I've written a lot of documentation around here
13:57 Whiteknight the quality's not always great, but my enthusiasm is unbeatable
13:58 lathos I guess the problem was I started with reality (pobj.h), and reality is often nonsensical.
13:59 lathos Oh no, it's worse than that.
13:59 pmichaud jonathan:  (r35623)  in builtins/guts.pir there's a !DEREF sub that will deref a PMC if it's an ObjectRef
13:59 lathos I think strings.c expects strlen to be in characters.
13:59 pmichaud it will even handle chains of ObjectRefs
13:59 jonathan Should we be able to *get* chains of ObjectRefs?
13:59 pmichaud I'm afraid it will happen, yes.
13:59 jonathan But feel free to change, or I will.
14:00 jonathan But currently deep in this subclassable subs "fun"
14:00 pmichaud no need to change immediately, just wanted you to be aware of it.
14:01 jonathan Thanks - it should use !DEREF though for sure if chains can happen.
14:02 pmichaud we might get chains, but I'm thinking they'll never be more than two deep.
14:02 jonathan *nod*
14:02 jonathan Hopefully not. We do try and avoid 'em generally.
14:02 pmichaud and we might be able to fix things to avoid them, but I see that as an optimization for now.
14:02 pmichaud a lot of it will depend on how we end up handling cumulative constraint properties
14:05 ruoso joined #parrot
14:05 namenlos joined #parrot
14:08 Whiteknight anybody here against changing VTABLE_morph to take a string instead of an intval?
14:12 Coke no.
14:12 kj +1
14:12 purl 1
14:13 * Coke sees the magic partcl fairy didn't commit anything again last night.
14:17 dalek r35631 | bernhard++ | trunk/languages/pipp (2 files):
14:17 dalek : [Pipp] Start to treat constants as package vars.
14:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35631
14:18 PerlJam Coke: that's because you didn't leave snacks out for him
14:19 ruoso joined #parrot
14:22 Lorn joined #parrot
14:29 pmichaud I'm against it.
14:29 pmichaud (VTABLE_morph)
14:30 pmichaud I'm not arguing in favor of having VTABLE_morph take an intval, but we should not be using strings to identify classes.
14:30 pmichaud VTABLE_morph should take whatever arguments are accepted by get_class.
14:30 pmichaud wait, this is the VTABLE.  I'll rephrase then.
14:30 pmichaud VTABLE_morph should take a class PMC.
14:31 jonathan Hmm. Only 3 spectest fails as a result of the reblessing. That isn't so awful as I feared...
14:31 pmichaud jonathan: and I would carefully check the tests.  They may be faux passes.
14:32 jonathan pmichaud: I know that I removed one hack where we epicly lied in .WHAT. :-)
14:32 pmichaud heh.
14:32 jonathan But I really want to map Sub to Block not Code.
14:32 pmichaud our lies are catching up to us?
14:33 jonathan That doesn't quite work out though.
14:33 jonathan Well, I removed the code that was telling it. :-)
14:33 jonathan So far I'm only reblessing Sub and Method.
14:33 pmichaud yes, Parrot doesn't give us a way to represent code that isn't a Sub.
14:33 jonathan Don't know if we should re-bless everything else into Block.
14:33 Whiteknight pmichaud, that might be a better solution, yes. I can do that instead if people like it more
14:33 jonathan Or just map Sub to Block.
14:34 jonathan Somehow that didn't quite work out...hmm.
14:34 pmichaud why isn't Sub mapped to Code?
14:34 pmichaud I think it needs to be mapped to Code.
14:34 ruoso joined #parrot
14:34 jonathan Why though?
14:34 jonathan { 42 }.WHAT # Code or Block?
14:34 pmichaud that's a Block.  But we should rebless it into Block, I think.
14:35 pmichaud phrased differently, "Block" implies a lexical scope.  Not every (Parrot) Sub we encounter has a lexical scope.
14:35 jonathan OK, so we should rebless everything.
14:35 jonathan Can do.
14:36 jonathan Actually 5 fails I think.
14:36 pmichaud I don't like the "rebless everything" approach either, but it seems the cleanest overall.
14:36 jonathan But still, not awful.
14:36 pmichaud in terms of what is really happening.
14:36 jonathan It means giving *every* block a loadinit...
14:36 jonathan But we'll cope. :-)
14:36 pmichaud agreed, let me think about it a second more.
14:36 pmichaud every block is getting a loadinit anyway, isn't it?
14:37 jonathan Is it?
14:37 purl it's it!
14:37 pmichaud can you think of any that don't?
14:37 jonathan { 42 } # does that get a loadinit?
14:37 pmichaud immediate blocks might be the only exception.
14:37 pmichaud my $sub = { 42 };   # gets a loadinit
14:38 jonathan Since you can't reference an immediate block, do we care about reblessing them?
14:38 jonathan Is that an immediate or a declaration?
14:38 pmichaud that's a declaration.
14:38 jonathan Right.
14:38 pmichaud good point (reference immediate block)
14:38 pmichaud so no, I don't care about reblessing them for now.
14:39 pmichaud I think all of the others already have loadinit
14:39 pmichaud (because they have signatures)
14:39 jonathan Gah. I fail some Parrot tests anyway.
14:39 Whiteknight pmichaud, so you are saying that we should have morph_p_s and morph_p_p opcodes, to create from either a string or a class PMC?
14:40 jhorwitz joined #parrot
14:40 pmichaud Whiteknight: if the IN argument to morph is intended to represent a type (class), then we need a way to specify the class by its class object
14:40 pmichaud strings are insufficiently precise.
14:40 Whiteknight okay, we can do both
14:41 jonathan Or perhaps precisely insufficient. ;-)
14:41 pmichaud I'll accept both.  Whatever get_class ultimately ends up with.
14:41 pmichaud but the VTABLE_morph should use a class PMC as its argument, I think.
14:41 Whiteknight should I maybe be waiting for get_class to solidify before doing this work then?
14:41 pmichaud you could solidify get_class :-)
14:41 pmichaud that would make me very happy.  :-)
14:42 Whiteknight is there a ticket for that work? I'll get right on it if I have some direction
14:42 pmichaud I'll get you the references.
14:42 pmichaud just a sec
14:42 Whiteknight thanks
14:43 Coke agreed. resolve get_class first, and then use the /same/ mechanism for VTABLE_morph.
14:43 Coke (where the opcodes may present slightly more variants that map to something sane internally.)
14:44 pmichaud my latest post on the subject:  http://lists.parrot.org/pipermail/p​arrot-dev/2009-January/000872.html
14:44 shorten pmichaud's url is at http://xrl.us/becq86
14:44 Whiteknight oh right, I remember this thread
14:44 pmichaud allison says that get_class should accept a Key, String, ResizableStringArray
14:44 pmichaud or NameSpace
14:44 purl well, NameSpace is the internal namespace for things like $c->forward and template paths, anyway
14:44 pmichaud currently this is not the case.
14:44 pmichaud there's a related trac ticket at TT #8.
14:45 Whiteknight do we want it to be able to support any array pmc type as well, or just RSA?
14:45 pmichaud allison has not yet responded positively or negatively to my message, but I'm guessing that since she claims that the opcodes already do certain things it won't hurt for us to make them do what she says they should :-)
14:45 pmichaud I'd like it to support any array type.  But that's really allison's call.
14:46 Whiteknight I'll write it up to be the most general, but comment out the conversial stuff
14:46 pmichaud works for me.
14:46 * Whiteknight smells another branch cookin'
14:46 pmichaud then morph_p_p  can simply do the equivalent get_class operation before passing things to VTABLE_morph
14:47 pmichaud (or VTABLE_morph can do the operation... but I think it's cleaner to say that VTABLE_morph always expects a class PMC)
14:48 ruoso joined #parrot
14:49 Whiteknight okay sounds good to me
14:54 jonathan Woo, Parrot passes core tests.
15:03 ruoso joined #parrot
15:12 Casan joined #parrot
15:13 Casan left #parrot
15:13 Casan joined #parrot
15:16 particle joined #parrot
15:18 ruoso joined #parrot
15:34 ruoso joined #parrot
15:35 Andy joined #parrot
15:47 ruoso joined #parrot
15:50 riffraff joined #parrot
15:50 davidfetter joined #parrot
15:53 Casan joined #parrot
15:56 gryphon joined #parrot
15:57 jan joined #parrot
16:05 riffraff in my tiny language I implemented lexical scope and anonymous functions, but it seems that if I pass a function to another function then at call time it fails to lookup correctly
16:06 riffraff I assume it makes sense because the node I generate is :pasttype('call') :name($name), but I'm not sure how should I invoke the current passed object
16:06 riffraff meaning: I tried Op.new($var,:pasttype('call'),:name('invoke')) and it did not work
16:07 pmichaud it's just call.
16:07 Whiteknight if you're treating subroutines as first-class objects, you probably don't want :pasttype('Call')
16:07 pmichaud no :name('invoke')
16:07 pmichaud Op.new($var, :pasttype('call'))
16:07 pmichaud assuming that $var is the function you want called.
16:08 riffraff ok, I'll try thanks
16:08 pmichaud if you say  Op.new($var, :pasttype('call'), :name('invoke'))  then it will try to call the function "invoke" passing $var as a parameter.
16:08 riffraff yes, which is what I assumed shall happen, having $var has a kind of self
16:09 riffraff this, because I tried a=1; a() and I got "no 'invoke' in Integer" :)
16:12 riffraff Whiteknight, well, using :pasttype('call') was the path of least resistance up to now
16:13 riffraff now I guess I shall switch my calling action to use what pmichaud  said, although I'm slightly worried by what may happen later on this road :)
16:13 Whiteknight ok
16:14 leto joined #parrot
16:15 Tene_ joined #parrot
16:16 ruoso joined #parrot
16:20 hercynium joined #parrot
16:32 dalek r35632 | Whiteknight++ | trunk (2 files):
16:32 dalek : [morph] Update the morph vtable override to take a class PMC instead. This is how it will be in the final version, so make the API match the intended behavior and cleanup the internals later. Also, update the test for this.
16:32 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35632
16:32 jonathan pmichaud: Down to just one last Rakudo spectest fail, and a full set of Parrot passes, before I can commit this stuff. :-)
16:33 pmichaud jonathan: I'm about to commit a small change to Signature.pir
16:33 pmichaud (basically testing &foo params for Callable role)
16:33 jonathan pmichaud: That's fine, shouldn't get in my way. :-)
16:33 pmichaud (actually, it just tests that the argument isa Parrot Sub.)
16:33 jonathan Oh, you maybe shouldn't need to do that after my patch. ;-)
16:33 jonathan (As in, look at it at a Parrot level.)
16:33 jonathan OTOH, language interop...
16:34 pmichaud oh, we'll still end up with subs t... right
16:34 * jonathan stares at tspecS12-methodscalling_sets.t and wonders, huh...
16:35 barney joined #parrot
16:36 Tene_ I realized last night that you can pass data back from an exception handler to the code that threw the exception by stuffing it in the payload.
16:36 pmichaud yes.  :-)
16:37 jonathan pmichaud: Does capture_lex do something smart with multisubs?
16:38 pmichaud yes.
16:38 Tene_ pmichaud: any idea on the feasability of persuading PGE to match as much of a string as it can, but throw an exception if it gets an unexpected EOF, and let the exception handler pass back more text to continue matching?
16:38 jonathan pmichaud: Ah, I see it doing it now, yes...
16:38 pmichaud Tene_: if this is in regards to the REPL loop -- the grammar takes care of that.
16:39 pmichaud (as in, STD.pm already says how to handle that.)
16:39 Tene_ Okay.
16:39 pmichaud We just haven't done anything with it yet (more)
16:40 Tene_ purl: tell masak pong
16:40 purl Tene_: what?
16:40 Tene_ purl: msg masak pong
16:40 purl Message for masak stored.
16:40 pmichaud the line in STD.pm is
16:40 pmichaud | $ { $¢.moreinput }
16:40 pmichaud which says that if we read the end of the string, we call the .moreinput method to go get more input :-)
16:40 Tene_ Ah, nice.
16:40 Tene_ Okay. :)
16:41 pmichaud granted, we don't have an easy way to do this yet, and PGE does need a few changes to support it, but that's the approach I'm likely to take.
16:41 pmichaud and that HLLCompiler and PCT will want to use.
16:43 Tene_ Can you describe what changes PGE would need for that?  I think I could implement it with what's there now.
16:43 pmichaud biggest thing I can think of is that every call to a subrule or closure has to reset the current match's idea of the length of the target string, as it might have changed.
16:44 Tene_ Ah.
16:45 pmichaud that might be all that is needed, but there could be other stuff as well.
16:45 Tene_ Hmm.  Sounds workable.  I feel confident about debugging through that.
16:46 pmichaud well, in STD.pm there's also the case that various constructs have to set a contextual variable to indicate when they expect "more input"
16:46 pmichaud and we don't really have that in place yet.
16:47 pmichaud (nor does STD.pm appear to be setting that contextual variable yet)
16:47 jonathan pmichaud: Ah, found the bug - capture_lex tries to treat multisub as if it's a non-multi a bit too early.
16:47 pmichaud jonathan: feel free to fix.
16:47 jonathan Doing so.
16:47 jonathan It was completely fine before.
16:48 jonathan I've now made it so we blow up with an exception if you PMC_sub something that you can't, and if it can't find an inherited Sub PMC to get one from.
16:48 Tene_ My plan for invoking a sub in the current context is to add a method to the Sub pmc that approximates invoke, but uses the context of its caller instead of creating a new context.
16:48 jonathan Rather than blowing up with a segfault further down the line.
16:48 dalek r35633 | pmichaud++ | trunk/languages/perl6/src/classes:
16:48 dalek : [rakudo]:  Require arguments to &foo to be callable.
16:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35633
16:48 pmichaud Tene_: how will you get new lexicals into that context?
16:48 jonathan (The fact it tries to find the inherited one means subclassing sub now works.)
16:49 Tene_ pmichaud: hm?
16:49 pmichaud Tene_: lexicals in Parrot are intimately tied to the subroutine being invoked
16:49 Tene_ Ah, right.
16:49 pmichaud it's not just a hash that you can add entries to.
16:49 pmichaud i.e., store_lex if there's no outer lexical already defined produces an error
16:49 pmichaud .lex always creates a lexical in the current sub.
16:50 Tene_ Hmm.  I had a solution for that last night...
16:51 Tene_ Bah, should have taken notes.
16:52 Theory joined #parrot
16:52 Tene_ No, I think I did create a new context, and then I did something funny with the lexpads...
16:52 pmichaud ...create a new context?
16:53 pmichaud oh, you mean in C.
16:53 Tene_ Right.
16:53 pmichaud from your method in the Sub pmc.
16:53 Tene_ Eh, we'll see what actually works.
16:53 pmichaud wait, let me think a second more.
16:54 pmichaud here's a question:  What do we want to happen with
16:54 pmichaud > my $a = 5;
16:54 pmichaud > my $a = 6;   # redeclaration error?
16:54 pmichaud or does the new $a simply hide the previous one?
16:55 Tene_ I'd expect a redecl error which becomes just a warning in interactive repl.
16:55 pmichaud okay.  That makes things very difficult.
16:55 jonathan for (i = 0; i < count; i++)
16:55 jonathan VTABLE_set_pmc_keyed_int(interp, unsorted, i, VTABLE_clone(interp,
16:55 jonathan uh, sorry
16:55 pmichaud my $a = 5;
16:56 Tene_ I wouldn't be disappointed by hiding, though.
16:56 pmichaud { my $a = 6; }   # redecl error?
16:56 lathos Hopefully not.
16:56 Tene_ No.
16:56 pmichaud agreed.  Detecting the difference is the hard part.
16:56 pmichaud doable, but it makes the problem much more complex.
16:56 lathos How so? We're in a different lexical scospe.
16:57 pmichaud assuming that each input line is its own lexical scope, that's true for the first case as well.
16:57 pmichaud > my $a = 5;
16:57 pmichaud > my $a = 6;  # different lexical scope
17:00 pmichaud anyway, if we treat it as "hiding" instead of a redecl error, then we might be able to get away with saying that each input line is a nested scope within all of the previous input lines.
17:00 Tene_ ... interesting.
17:00 pmichaud i.e., we do a "set_outer" of each eval line.
17:00 pmichaud prior to executing it.
17:01 jonathan 10,000 lines of REPL use later we have quite some memory usage, but it sounds quite workable. :-)
17:01 pmichaud the other piece that is needed then is a way to inform the compiler of the current lexicals.
17:01 jonathan (Plus anyone doing 10,000 lines in the REPL has bigger issues. ;-))
17:01 pmichaud and iirc, it's not possible to currently iterate over a lexpad.
17:02 Tene_ pmichaud: why can't we use set_outer for eval?
17:02 pmichaud Tene_: we can.
17:02 pmichaud that's not the problem.
17:03 pmichaud the compiler needs to know which symbols are already defined lexicals.
17:03 pmichaud either that or we turn off strict/warnings when doing REPL.
17:03 Tene_ Ah.
17:03 pmichaud but even then we have to have some way of knowing if $a  is lexical or package scoped.
17:03 pmichaud so we can generate the correct code.
17:03 Tene_ Isn't 'no strict' already specced for -e?
17:03 pmichaud (or, we turn all variables in to lexicals, which I've also toyed with.)
17:03 pmichaud *into
17:04 pmichaud It's specced for -e, yes.  I don't know what people would expect from the REPL.
17:04 pmichaud regardless, -e is a somewhat different issue than eval in this respect.
17:05 pmichaud (i.e., knowing which variables have been declared already and which have not)
17:06 Casan joined #parrot
17:07 * Coke ponders again what it would take to switch from pge/tge to pct.
17:08 * Coke has to have written this down at one point. =-)
17:12 Andy Anyone talked to chromatic today?
17:13 pmichaud still only 9am on west coast :-)
17:15 pdcawley joined #parrot
17:15 Andy pdcawley++
17:15 Andy pdcawley++
17:16 pdcawley Hmm?
17:16 Andy I didn't have any place to use your article and didn't have anything to say about it for a Perlbuzz link
17:16 pdcawley What'd'I do?
17:16 pdcawley Ah.
17:16 Andy but then the SD Times crank came out with that turd pile
17:16 Andy so it was great to have.  Thanks.
17:16 * pdcawley has missed the SD times turd pile.
17:19 Andy Oh?
17:19 Andy Perlbuzz.com!
17:19 purl somebody said perlbuzz.com was fine
17:23 dalek r35634 | bernhard++ | trunk/languages/perl6/src/classes:
17:23 dalek : [codingstd] trailing_space.t
17:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35634
17:23 dalek r35635 | bernhard++ | trunk/languages/pipp/src/common (9 files):
17:23 dalek : [Pipp] Eliminate usage of macro GET_CONSTANTS
17:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35635
17:28 particle1 joined #parrot
17:33 tomyan left #parrot
17:34 dalek r35636 | jonathan++ | trunk (4 files):
17:34 dalek : [core] PMC_sub could not check that we actually had something that was a sub underneath, nor did it handle the case where the Sub PMC had been subclassed by a high level class. Lots of code wanted a Parrot_Sub to be handed back by this, and not getting one could lead to segfaults. So this patch plugs those, and also makes it OK to subclass Sub in a high level class and use those subclasses with, e.g. capture_lex and elsewhere. The couple of other seemingly
17:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35636
17:35 dalek r35637 | jonathan++ | trunk/languages/perl6/src (4 files):
17:35 dalek : [rakudo] Re-bless Parrot subs into Block, (Perl6)Sub or Method, so .WHAT answers correctly on them.
17:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35637
17:36 jonathan Those two were some...fun.
17:50 ask_ joined #parrot
17:57 chromatic joined #parrot
17:58 dalek r35638 | jonathan++ | trunk/languages/perl6 (3 files):
17:58 dalek : [rakudo] Parse submethods and bless them into the Submethod class (also added here). Don't do the correct dispatch on them yet.
17:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35638
18:08 slavorgn joined #parrot
18:19 dalek r35639 | bernhard++ | trunk/languages/pipp/t/php:
18:19 dalek : [Pipp] Add TODO test, const in class not named Foo.
18:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35639
18:19 dalek r35640 | bernhard++ | trunk/languages/pipp/src/common (4 files):
18:19 dalek : [Pipp] Use package vars for constants
18:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35640
18:22 alvar joined #parrot
18:23 ewilhelm left #parrot
18:24 Lorn joined #parrot
18:26 davidfetter joined #parrot
18:33 Casan joined #parrot
18:46 register joined #parrot
18:47 dalek r35641 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
18:47 dalek : [Pipp] namespace_statement is now namespace_definition
18:47 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35641
18:48 dalek r35642 | bernhard++ | trunk/languages/pipp (2 files):
18:48 dalek : [Pipp] track the current class in $?CLASS
18:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35642
18:48 * pmichaud works on blessing regexes into Regex
18:53 jonathan Woo
18:54 davidfetter john woo?
18:57 Whiteknight pmichaud, before I start to do any serious digging, what happens when you try to pass an RSA to get_class?
18:58 pmichaud right now?
18:58 * purl puts on her wizard robe and hat
18:58 Whiteknight yeah, right now
18:58 pmichaud I don't remember.  I think it complains that 'xyz' class isn't found.
18:58 Whiteknight I don't have time to look at it really until I get home from work, but I want to know what to expect
18:58 pmichaud just a sec.
18:59 chromatic I think it works.
18:59 chromatic It eventually looks up the namespace per the array.
18:59 pmichaud "get_string() not implemented in ResizablePMCArray"
18:59 pmichaud see the example in TT #8
19:00 chromatic That's an RPA, but he asked about an RSA.
19:00 pmichaud sorry, ResizableStringARray
19:00 pmichaud TT #8 has an RSA.
19:00 pmichaud I just mistyped it here instead of copy+paste as I should have.
19:01 chromatic Okay.  There's code to handle that case, but it must not work properly.
19:01 chromatic NameSpaces are on My List of Hateful Code.
19:01 pmichaud currently it tries to stringify the RSA (Bzzt!) and then look up the name of the class using that string (Bzzt!)
19:02 pmichaud that's part of my  "we should not be using strings to look up classes" ongoing tirade.
19:02 chromatic Right.
19:02 pmichaud it's bad enough that we allow it from PIR, it's worse that Parrot does it internally.
19:02 pmichaud and that Parrot takes things that aren't strings and turns them into strings so that it can do the wrong thing with them.
19:02 MariachiElf joined #parrot
19:03 Whiteknight thanks
19:07 ask_ joined #parrot
19:08 ask- joined #parrot
19:09 braceta left #parrot
19:10 pmichaud okay, Regex isn't a one line change.  Gotta make a PAST::Compiler fix.
19:11 pmichaud :loadinit doesn't currently work on :compiler(...) blocks.
19:11 * pmichaud imagines a good hacky cheat.
19:18 dalek r35643 | pmichaud++ | trunk:
19:18 dalek : [DEPRECATED]: Rakudo is leaving the nest after 0.9.0.
19:18 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35643
19:19 ask_ joined #parrot
19:19 cognominal joined #parrot
19:19 pmichaud hacky cheat didn't work.
19:20 pmichaud okay, I'll work on Regex a bit later.
19:20 pmichaud not hard, but not trivial.
19:21 jonathan pmichaud: Nor's the dispatcher, but I'm getting there on having *something* working. :-)
19:22 jonathan Not dared to run make test yet. ;-)
19:22 pmichaud ;-)
19:22 jonathan Screw it, I'll make test..
19:22 jonathan huh, it all passed...
19:22 pmichaud EPIC FA... oh.
19:22 jonathan Wow.
19:23 pmichaud maybe "make test" doesn't dispatch anything interesting.  :-)
19:23 jonathan Indeed.
19:23 jonathan make spectest has some fails, but that's because I'm not handling PMC inheritance stuff properly yet.
19:24 jonathan I think that's the primary reason anyway
19:24 * jonathan wonders when he's going to run into the evil problem on this task...
19:25 Whiteknight hmm. Parrot_oo_get_class calls Parrot_get_namespace_keyed, which calls internal_ns_keyed (src/global.c:125+) which appears to do The Right Thing
19:25 Whiteknight it doesn't appear to stringify the RSA at all
19:29 pmichaud Whiteknight: look what happens if the class doesn't exist, though.
19:29 pmichaud line 222
19:30 pmichaud I'll grant that Parrot_oo_get_class might be working if the class already exists, as would (presumably) be the case for VTABLE_morph
19:30 Whiteknight ah, I see it now
19:30 pmichaud so if you wanted to wait on TT #8 and resume VTABLE_morph, I could accept that.
19:30 dalek r35644 | fperrad++ | trunk/src/io:
19:30 dalek : [win32] warning gcc 3.4.5
19:30 dalek : src\io\win32.c:230: warning: passing arg 1 of `string_cstring_free' discards qualifiers from pointer target type
19:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35644
19:30 Whiteknight no, if what's happening is what I think is happening, it should be a relatively quick fix
19:31 pmichaud I can add some more tickets for other things that fail with arrays and class identification
19:31 jonathan I/someone so needs to fix Inf/NaN on Win32.
19:32 jonathan I panic everytime I see those fails thinking "oh no, what'd I break"
19:32 pmichaud jonathan: it's okay with me if you mark them as skip/todo.
19:32 pmichaud yes, it lowers our test count -- otoh, we aren't really passing them.
19:32 jonathan pmichaud: It ain't bothering me that much.
19:32 pmichaud (at least not for Win32)
19:32 jonathan pmichaud: And if they don't bother me at all, I'll just never reach the point of being bothered enough to dig in and fix it.
19:33 pmichaud we can fix them when we create our own Num PMCs :-|
19:33 jonathan pmichaud: It'd make sense to fix it at the Parrot level.
19:34 riffraff joined #parrot
19:35 chromatic We need to fix them at the Parrot level.
19:36 pmichaud jonathan: I don't disagree -- otoh, I don't know which will happen first, Rakudo getting its own PMCs or Parrot fixing the ones it has :-|
19:36 pmichaud in some sense I think Parrot's design is predicated around each language building its own PMC types.
19:37 jonathan pmichaud: Even if we write our own, we'll still need to handle that NaN and Inf work differently on Win32.
19:37 pmichaud jonathan: agreed.
19:38 pmichaud although we do have the luxury of declaring that we only work with certain C compilers.
19:38 pmichaud which Parrot doesn't have.
19:38 pmichaud (I'm not saying we should head down that route, but it's a possibility.)
19:38 jonathan I'd really rather not, but yes, it is a possibility.
19:39 Coke you could just fix it rakudo and let parrot know they can steal it.
19:39 jonathan OH YES I DIDN'T BREAK CALLING_SETS.T
19:39 * jonathan has broken that test on a daily basis this week
19:40 * pmichaud increases the probability factor on the "randomly break this test for jonathan" code.
19:41 jonathan Wow. My dispatcher on the first full spectest run broke only two of 'em.
19:42 pmichaud yay
19:42 jonathan Ah, and they are cases where we inherit a method from a PMC.
19:42 pmichaud yummy.
19:42 pmichaud jonathan: (submethods)  btw, I've been wondering if Parrot should support submethods.
19:43 pmichaud as in, directly.
19:44 jonathan Perhaps, but it's a case of how to distinguish them.
19:44 pmichaud I was thinking a flag.
19:44 jonathan And, do any other languages need them?
19:44 pmichaud if there are any flag bits left.
19:44 Whiteknight what type of PMC is interp->class_hash?
19:44 pmichaud it wouldn't surprise me if we end up coming up with languages that need them.
19:45 pmichaud it's just something I've been wondering.
19:45 chromatic Whiteknight, a NameSpace.
19:45 chromatic src/global_setup.c:214
19:45 Whiteknight okay, thanks
19:46 chromatic ack '>class_hash ' src/
19:47 Whiteknight okay, I think I have a fix for get_class! testing now...
19:47 Whiteknight or, at least a partial fix
19:47 Whiteknight for varying definitions of "fix"
19:47 jonathan pmichaud: It wouldn't be too hard to do when we get there.
19:47 jonathan *if we decide we want it
19:50 particle joined #parrot
19:50 silug joined #parrot
19:51 Whiteknight no, I fixed the RSA case, but broke the NameSpace case
19:51 slu joined #parrot
20:00 * Coke wonders if jonathan's recent hacking fixed TT#132
20:02 jonathan Coke: It *may* have.
20:02 jonathan But I wouldn't bargin on it.
20:03 Whiteknight okay, this issue really isn't as difficult as I was envisioning it to be
20:03 Whiteknight get_class should be mostly fixed by this evening, if I can keep my mind on it
20:11 Whiteknight pmichaud, in TT#8, what outputs should each of your two examples have?
20:11 Whiteknight the first one should be "1\n1", right? What about the second?
20:13 Coke jonathan: sadly, no.
20:19 jonathan Ah.
20:19 jonathan Same problem space, different problem.
20:19 ruoso joined #parrot
20:22 * Coke ponders, not for the first time, setting ticket bounties.
20:23 Whiteknight ticket boundaries?
20:24 jonathan No, bounties.
20:24 Coke you mean I won't rust?
20:24 Whiteknight AH! bounties
20:24 Coke </phil a delphia>
20:24 Whiteknight yes, I like bounties
20:24 Whiteknight and what would we get for completing important tickets?
20:24 Coke (esp for those listed here: http://code.google.com/p/partcl/wiki/ParrotIssues)
20:24 Coke Whiteknight: Iunno. a gift card? =-)
20:25 Coke some bucks via paypal?
20:25 Coke something purchased off your amazon wish list?
20:26 chromatic Contributions to my 401(k)?
20:28 Whiteknight chromatic: I'm interested in that book you blogged about
20:28 Coke chromatic: that's harder for me to arrange.
20:28 chromatic Thanks!
20:28 chromatic Coke, you're telling me.
20:30 Coke but I'll give you a ten spot if you fix https://trac.parrot.org/parrot/ticket/66
20:30 Whiteknight chromatic: if you need a proof-reader or reviewer or something, I'd be happy to do that too
20:31 chromatic Coke, did you ever find a PIR version of that?
20:31 Coke chromatic: nope.
20:31 dalek r35645 | jonathan++ | trunk/languages/perl6/src (2 files):
20:31 dalek : [rakudo] Refactor dispatch. This now calls .HOW.dispatch, where we have a custom dispatcher, which will be filled out with more functionality in the future. Contains support for submethods, which appears to work (need to find/enable/write some spectests).
20:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35645
20:31 Coke chromatic: I may go through those tickets this weekend (the partcl blockers) and see if I can reproduce them.
20:32 chromatic That would be lovely.
20:32 Coke git folks: if I want to use git to manage a local repository, how do I set that up?
20:33 Coke I only care if I can get to it from my machine.
20:33 chromatic That should be git init.
20:33 chromatic Beyond that, git doesn't make sense to me.
20:35 * Coke wonders which of the N git ports is actually git. =-)
20:38 nnunley joined #parrot
20:39 Coke chromatic++ # git help
20:42 Coke macport git is git-core
20:48 Tene_ Coke: chromatic is right.
20:50 * Coke has created a local git repository
20:51 jonathan Has anyone had any problems building on x86_64 linux?
20:51 jonathan (Someone on #perl6 trying to build Rakudo gets a segv in miniparrot.exe)
20:51 Coke there's a ticket about that, neh?
20:52 Coke https://trac.parrot.org/parrot/search?q=x86+64
20:53 chromatic jonathan, Allison ran into that yesterday.
20:53 chromatic Something in scheduler initialization.
20:53 jonathan Ah. :-S
20:55 Whiteknight Infinoid mentioned that issue yesterday, but I couldn't duplicate it on my x86_64 Ubuntu box
20:56 PerlJam Coke: How much do you know about git?
20:57 Coke PerlJam: I was given init, and now have status, add, commit, show, and log.
20:57 * Coke just wanted something local so he could track work on some scripts and documents.
20:57 * Coke figures if he has a .git, he can eventually publish them if that matters.
20:57 PerlJam okie.  Just be aware  that "git add" is not the same as "svn add" at all
20:57 PerlJam Coke: do you grok the index?
20:58 Coke nope.
20:58 Coke I presume if I do an add and a commit, it's saved.
20:58 Coke am i wrong?
20:59 Tene_ That's right.
21:00 Coke if so, how is git add not like svn add.
21:00 Coke ?
21:00 pmichaud because it's "git"?  ;-)
21:00 PerlJam Coke: you have to "git add" each change
21:01 Coke PerlJam: I can't just 'git commit' changes?
21:01 PerlJam sure .. after you've added them  :)
21:01 Coke .. so add isn't for /files/ ?
21:01 chromatic It's for commits you can believe in.
21:02 Coke ... ok, then what's commit?
21:02 Coke chromatic: I also don't git it.
21:02 PerlJam you can add files just fine.  It's just that people get confused when they've just don't "git add file; git commit" and then make changes to file again and have to "git add file" again too.
21:03 PerlJam s/don't/done/
21:03 PerlJam (weird typo that)
21:03 Coke ... yes, i'm confused.
21:03 Tene_ "git commit -a" is the same as "svn commit"
21:03 masak joined #parrot
21:03 Infinoid I like stg.  it acts a little more like you'd expect svn to act.
21:03 Tene_ If you want to use it like svn, that's all you need to know.
21:03 Coke Infinoid: unless you expect it to act like svn.
21:03 Coke Tene_: thanks.
21:04 PerlJam Coke: the "index" is a staging area for commits.  "git add" adds content changes to the staging area.  "git commit" commits those changes in the staging area  to the repo.
21:04 Tene_ "git commit" on its own will only add changes in files that you've run "git add" on since your last commit.
21:04 Tene_ If you want to use it like that, you can run "git diff --cached" to see what's been added and what will be added to the commit when you run 'git commit'
21:05 Lorn joined #parrot
21:05 PerlJam svn people are also confused when they do "git add file; git diff" and the diff is empty too
21:06 chromatic Darn tootin'.
21:06 pmichaud jonathan: all method calls now go through dispatch?
21:06 Coke svn people?
21:06 * Coke smacks purl.
21:06 purl Hit me again, Ike!  And next time put some STANK on it!
21:08 jonathan pmichaud: Ish.
21:08 jonathan $foo.bar(...) will
21:08 pmichaud somehow I really feel bad about that.
21:08 jonathan $foo.*bar won't because I'm not sure how to make it do so.
21:08 jonathan pmichaud: It's spec.
21:09 pmichaud what's "spec"?
21:09 purl "spec" is the number of tests in the spectest suite
21:09 jonathan That methods go through .^dispatch
21:09 pmichaud it's spec that every method call has to go through a ....
21:09 pmichaud is that simply the spec on the perl6 wiki or is that actually in a synopsis somewhere?
21:10 jonathan See http://www.perlfoundation.org​/perl6/index.cgi?smop_oo_api but as far as I can gather, what's under the HOW API is to be spec.
21:10 jonathan It's amongst the bunch of "knowhow" stuff that hasn't made it into S12 yet.
21:10 pmichaud it's not part of the "as if" rule?
21:10 * jonathan has badgered a little bit on that but not too much
21:10 jonathan The what?
21:10 purl The is a few features i love in firefox, i will totally love you so. or an article
21:11 pmichaud i.e., an implementation is to behave "as if" that's the spec without necessarily doing exactly that
21:11 chromatic purl, forget The
21:11 purl chromatic: I forgot the
21:11 jonathan Maybe we can cheat somehow. I don't think of a good way off hand.
21:11 jonathan But, why cheat?
21:12 pmichaud because going through an extra level of dispatch this way is slow?
21:12 pmichaud (note: I haven't measured it)
21:12 dalek r35646 | bernhard++ | trunk/languages/pipp (3 files):
21:12 dalek : [Pipp] Put class constants into a namespace.
21:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35646
21:12 dalek r35647 | bernhard++ | trunk/languages/pipp/src/pct:
21:12 dalek : [Pipp] get rid of special case in the 'constant' action
21:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35647
21:13 dalek r35648 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
21:13 dalek : [Pipp] standardize on lowercase token names
21:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35648
21:13 dalek r35649 | bernhard++ | trunk/languages/pipp/src/pct (2 files):
21:13 dalek : [Pipp] remove trailing spaces
21:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35649
21:14 pmichaud because I don't necessarily buy that what appears on the perl6 wiki is spec, absent a declaration from someone that it's so.
21:14 pmichaud s/someone/someone like TimToady/
21:15 jonathan knowhow is in STD.pm and not S12.
21:15 pmichaud I buy that what is in STD.pm is spec, though.
21:16 pmichaud but I don't see 'knowhow' in the wiki
21:16 pmichaud (at least, not in that page)
21:17 jonathan Yes. As I understood it, what is in the HOW API is what you implement, in a metaclass.
21:17 jonathan (e.g. inside the knowhow)
21:18 pmichaud okay, so the class has to follow the API, does that automatically imply the objects must do so as well?
21:18 jonathan I don't understand what you mean by that?
21:18 pmichaud sorry, the HOW has to follow the API
21:18 pmichaud but do the objects always have to go through the HOW?
21:19 jonathan So far as dispatch goes, I believe that's through the HOW.
21:19 pmichaud I already know that parts of the oo API are wrong -- for example, it shows BUILD and DESTROY as being submethod in Object when they're really method.
21:19 pmichaud I just don't want to blindly accept smop's view of how OO should work.
21:20 pmichaud If that is indeed the Perl 6 view, then great, but I'd like to see that specced somewhere (more)
21:20 pmichaud granted, you're doing that particular part of the spec, so you have some latitude to say "this is how it will work".
21:21 pmichaud I just feel like it _really_ disadvantages Rakudo and Parrot.
21:21 jonathan (smop) I don't either - I've already pointed out at least one buy in the HOW API myself (which has been fixed)
21:21 pmichaud I would feel better if dispatch were an opcode or otherwise implemented in C, however.
21:21 jonathan Oh, I expected that we could do a chunk of what I'm doing now in PIR in C.
21:21 pmichaud or if Parrot gave us a way to override method dispatch.
21:22 chromatic <aol>me too</aol>
21:22 chromatic <pmichaud> or if Parrot gave us a way to override method dispatch.
21:22 chromatic (Sorry, just had to get the top posting in there)
21:22 pmichaud okay.
21:22 pmichaud if we go from the understanding that this approach to dispatch is going to be heavily optimized at some point, I feel better about leaving it there.
21:23 pmichaud I recognize we're likely to have to override Parrot's dispatch mechanism at some point anyway.
21:23 jonathan I know exactly how well the way I'm doing it now isn't going to perform.
21:24 jonathan I'd like to get the semantics right _first_ and optimize _later_.
21:24 pmichaud let me summarize it this way:  I want to make sure that the spec isn't being unduly influenced by any particular implementation (including Rakudo/Parrot)  (more)
21:25 pmichaud however, you (and ruoso) are the people primarily working on this part of the spec, and if you think this is indeed the best way to go from a Perl 6 perspective, that's good enough for me.
21:25 pmichaud I just want to make sure we don't pessimize ourselves out of a usable implementation.
21:26 jonathan Sure, I see where you're coming from.
21:27 pmichaud good enough for me.  :-)
21:27 jonathan I'm not coding at the moment with a view to performance.
21:27 pmichaud I don't care about performance too much now, as long as we can eventually get it back.
21:27 pmichaud that's what I want to make sure of.
21:28 pmichaud (on another topic)  -- that's part of what bugs me about some of the mmd changes that went in -- it's lost performance that I'm not sure we'll ever get back, and as such I wish I had known what was being contemplated before it went in.
21:28 pmichaud at least to be able to comment on it.
21:29 chromatic I think we can get them back.
21:29 chromatic We just have to stop treating registers as if they were stacks.
21:30 chromatic ... also stop converting to and from C calling conventions via varargs....
21:30 PerlJam chromatic: when's that going to happen exactly?  :)
21:30 chromatic I'm waiting for the calling_conventions branch to land.
21:30 jonathan Our calling conventions are, currently, _slow_.
21:30 pmichaud from a Rakudo perspective, I haven't seen how the opcode mmd is much help.
21:30 jonathan ERm
21:30 jonathan Our current implementation of the calling conventions...
21:30 pmichaud maybe it helps with other HLLs, but for rakudo, it's just unnecessary overhead.
21:31 jonathan Aye
21:31 jonathan dinner is cooked - back soon
21:34 dalek r35650 | bernhard++ | trunk/languages/pipp/src/pct:
21:34 dalek : [Pipp] some reformating
21:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35650
21:34 pmichaud jonathan: thanks for the info and discussion, btw :-)
21:35 On_office joined #parrot
21:46 jonathan pmichaud: Back :-)
21:48 jonathan pmichaud: I do think there will be plenty of room for improvement in performance.
21:49 jonathan And on the "as if" thing - yes, we can probably skip actually going to .dispatch
21:49 jonathan But I really don't want to such trickery, until we have a pretty complete S12 implementation and tests covering it.
21:49 jonathan *to do
21:49 pmichaud well, as I said earlier, I feel much better about .dispatch if it's not PIR that's doing the dispatch.
21:49 pmichaud I'd feel *really* better if we were also fixing our arguments at the time :-)
21:50 jonathan *nod*
21:50 cotto https://trac.parrot.org/parrot/atta​chment/wiki/PMCUnionDeprecationTask​list/pobj_h_unionval_tracking.diff
21:50 shorten cotto's url is at http://xrl.us/becsvz
21:50 jonathan Yes, but if I go write this in C now it's going to be a lot harder to get a first cut of what we actually need.
21:50 pmichaud agreed.
21:50 pmichaud in other words, we're fine, I just needed to work it through in my head.
21:51 pmichaud I do wonder how much we've slowed down Rakudo, though.  Probably much less than I fear.
21:51 jonathan My thoughts on this are
21:51 * pmichaud bravely performs a commit without spectesting after jonathan++'s changes.
21:51 PerlJam Was there a "optimize" target on the parrot roadmap?
21:52 * pmichaud waits for RT to come up so he can report the correct ticket number in the commit.  (sigh)
21:52 jonathan 1) The dispatch to .dispatch is not so bad - HOW has it right there without walking the MRO.
21:53 jonathan 2) We were walking the MRO anyway in C. We're not re-doing that work again.
21:53 pmichaud oh, that's another question.  Why ClassHOW?  Shouldn't dispatch simply be a method on P6metaobject ?
21:53 pmichaud never mind, they are.
21:53 pmichaud I see that now.
21:53 jonathan They are.
21:53 jonathan But I ponder we may or may not want to subclass P6Object.
21:54 pmichaud I think I would've picked a name other than ClassHOW.  Like Metaobject :-)
21:54 pmichaud we may want to subclass P6Object at some point, yes.
21:54 jonathan I followed a smop precedent on the name, but yes. :-)
21:54 jonathan I think the thinking was <name of package declarator>HOW
21:54 pmichaud it will be interesting to balance between having things in Rakudo and P6object -- I expect us to migrate things back-and-forth there for a bit.
21:54 jonathan Yeah.
21:54 Whiteknight joined #parrot
21:55 jonathan We need to not get in the way of other folks using P6Object.
21:55 pmichaud at any rate, I have no problem with Rakudo adding its methods to P6Object.
21:55 jonathan But equally keep it functional enough.
21:55 jonathan Aye, well, it's not a problem while we don't have a bunch of other languages heavily using and wanting to also customize P6Object.
21:55 pmichaud Since P6Object's purpose is to provide a Perl 6 like OO interface, it's okay if Rakudo customizes it with Perl 6 features :-)
21:56 jonathan True. I don't know how widely applicable you intend it to be.
21:56 pmichaud I'm waiting to see how widely applicable it becomes.
21:56 jonathan e.g. is it in runtime/library for the benefit just of PGE and PCT, or are other languages potential customers for it too?
21:56 jonathan OK.
21:56 pmichaud other languages are potential customers.
21:56 jonathan In that case, let's just poke our stuff in as I have here for now.
21:57 jonathan And if we see it's going to cause issues, we can subclass it.
21:57 pmichaud In many ways P6object is what I would've like to seen Parrot's object system be based on :-)
21:57 pmichaud i.e., prototype-based OO
21:58 jonathan see or have seen?
21:58 pmichaud have seen
21:58 pmichaud I doubt it will happen.
21:58 pmichaud which is why P6object exists, so that I can have the object system I prefer :-)
21:59 jonathan Doesn't mean we can't PMC-ify P6object if we can see it's going to give us wins.
21:59 pmichaud it's more to do with the interface, actually
21:59 pmichaud but yes.
21:59 pmichaud i.e., things like .isa instead of   isa $P0, ...
21:59 pmichaud and being able to call ".new" on a protoobject to get a new instance -- stuff like that.
22:00 chromatic That *does* help give a nice metaclass feel to a language.
22:00 pmichaud with the exception of .dispatch, I don't see the methods in P6object as having to be heavily optimized for performance, as they're (1) pretty short and (2) not called too frequently.
22:00 jonathan *nod*
22:01 pmichaud so, PMC-ifying it doesn't feel like it would be that big a win on its own, unless it evolved to replace the existing Class and Object PMCs
22:01 pmichaud RT slow again.
22:02 jonathan Well, there's an vtable interface to implement.
22:02 jonathan The theory goes that if you wrote PMCs that also implement such an interface, then it should all work out.
22:03 jonathan And you should be able to have interop between different class systems based upon that.
22:03 dalek r35651 | pmichaud++ | trunk/languages/perl6/src/classes:
22:03 dalek : [rakudo]: Change Grammar.ACCEPTS to Grammar.parse.
22:03 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35651
22:03 pmichaud sure, but if someone tries to do   $P0 = new ['Something']   then it doesn't make it through our shiny .new interface.
22:03 pmichaud (yes, we could fix it to redispatch to that.)
22:04 jonathan Does that not go through VTABLE_instantiate?
22:04 * pmichaud sends a message to perlbug-admin@perl.org
22:09 particle1 joined #parrot
22:15 * jonathan procrastinates his journal writing until tomorrow
22:18 * Infinoid considers procrastinating, but puts it off
22:29 dalek r35652 | cotto++ | trunk/src/pmc:
22:29 dalek : [pmc] convert unionval to ATTR in the Capture PMC
22:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35652
22:41 register joined #parrot
22:43 Limbic_Region joined #parrot
22:45 braceta joined #parrot
22:55 iblechbot_ joined #parrot
23:00 dalek r35653 | cotto++ | trunk/src/pmc:
23:00 dalek : [pmc] convert unionval to ATTRs in TQueue
23:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35653
23:06 Tene_ Hmm.  I need to look up that patch Jonathan gave me for examining the loadlib/load_bytecode issues.
23:18 ruoso joined #parrot
23:19 dalek r35654 | Whiteknight++ | trunk/src (2 files):
23:19 dalek : [Core] Some quick-hack fixes for TT#8. ResizableStringArray should now be more usable with get_class.
23:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35654
23:21 Whiteknight pmichaud, when you get a chance check out r35654. It might fix your RSA get_class problem
23:21 Whiteknight need to clean it up under the hood, but should be functionally what you need
23:26 pmichaud I'll look at it, yes.  Thanks!
23:27 dalek r35655 | cotto++ | trunk/src/pmc:
23:27 dalek : [pmc] undoing Capture ATTR conversion, since CallSignature extends it
23:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35655
23:29 TiMBuS joined #parrot
23:44 Whiteknight joined #parrot
23:53 kid51 joined #parrot

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

Parrot | source cross referenced