Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-01-08

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 jferrero joined #perl6
00:08 stevan_ mncharity: pong
00:30 Khisanth [particle]: how can it be anonymous and named at the same time? :)
00:30 [particle] stevan_: ping
00:30 [particle] Khisanth: that's precisely the point
00:30 [particle] it's an ambiguity
00:36 Limbic_Region joined #perl6
01:10 zgh_ joined #perl6
01:12 stevan_ [particle]: I have collected many of the moose slides here -> http://www.iinteractive.com/moose/ (sorry damn freenode wont let me speak over /msgs)
01:12 lambdabot Title: Moose - A complete modern object system for Perl 5
01:12 stevan_ they are all quite incestuious, so feel free to borrow anything you like I am sure no one will mind :)
01:13 [particle] that'll do, thx
01:14 stevan_ :)
01:14 lyokato_ joined #perl6
01:15 stevan_ [particle]: my current favorite for a "quick" talk is Chris Prather's "Intro to Moose" he pulled all the good bits from the previous talks and smushed it into a 20-30 min  I think
01:16 stevan_ [particle]: if you end up putting it online, please pass on the URL and I will post it here too :)
01:16 [particle] roger, wilco
01:30 ting joined #perl6
01:32 meppuru good night
01:32 ispy_ joined #perl6
01:40 ting joined #perl6
01:41 muixirt2 joined #perl6
01:41 ting joined #perl6
01:44 Schwern joined #perl6
01:52 ispy_ joined #perl6
01:58 Schwern joined #perl6
02:01 Squern joined #perl6
02:09 cnhackTNT joined #perl6
02:11 Squern joined #perl6
02:21 Squern joined #perl6
02:23 RiXtEr joined #perl6
02:23 RiXtEr Can someone ask in #perl why i am banned from there? I would really appreciate it..
02:25 RiXtEr buu, are you around?
02:26 japhb joined #perl6
02:28 lambdabot joined #perl6
02:32 Squern joined #perl6
02:44 RiXtEr_ joined #perl6
02:46 agentzh joined #perl6
03:06 buu RiXtEr: Nope.
03:07 RiXtEr buu,why not?
03:10 buu RiXtEr: You are unbanned.
03:10 buu Wait, no, I was lying.
03:10 RiXtEr i am able to get in now
03:10 buu HA HA I WAS LYING ABOUT LYING
03:10 buu FOOLED YOU.
03:11 agentzh left #perl6
03:38 Limbic_Region buubot: be glados =~ lying
03:38 buubot Limbic_Region: Sorry, no quotes matched the search term: lying
03:38 Limbic_Region buubot: be glados =~ joking
03:38 buubot Limbic_Region: Sorry, no quotes matched the search term: joking
03:38 Limbic_Region buubot: be glados =~ kidding
03:38 buubot Limbic_Region: I'm not kidding now. Turn back or I WILL kill you. I'm going to kill you, and all the cake is gone.
03:38 Limbic_Region not the quote I was hoping for
03:38 Limbic_Region buubot: be glados =~ pretend
03:38 buubot Limbic_Region: Remember when the platform was sliding into the fire pit and I said 'Goodbye' and you were like (deep male voice) 'NO WAY!' (normal voice) and then I was all 'We pretended we were going to murder you'? That was great!
03:47 drbean joined #perl6
03:51 Limbic_Region sorry, I thought I was in another channel
04:03 alester joined #perl6
04:16 * mncharity is somewhat bemused by recent conversations.
04:17 mncharity none the less, woot!  specifically,
04:17 RiXtEr left #perl6
04:21 mncharity @tell fglock epiphany.  Consider a possible path to a very rapid, low risk, p6 bootstrap.  Call it kp6rb.  Sort of kp6 + ruby introspection + redsix.  Say kp6's p6 code were hand transliterated into ruby.  That ruby code could (1) run directly, at full speed.  And because you can get an ast from ruby code, you can also (2) get a *kp6 ast* from it too!  And thus (3), also regenerate the p6 code.
04:21 lambdabot Consider it noted.
04:23 mncharity @tell fglock We thus escape incremental bootstrap hell.  Since you can get the ast without p6 parsing, compiler and backend development no longer depends on the front-end working.  Since you can run directly, all development no longer depends on the compiler and backends working.  And since we have an alternate ast source, front-end development no longer depends on having a compiler and backend working.  Things decouple.  Development is unshackled.
04:23 lambdabot Consider it noted.
04:26 mncharity @tell fglock The decoupling also means development can go in parallel, using as many people as we can get.  And since the ruby code is intentionally simple and p6-like, even while writing ruby, most of the developers need only know simple p6.  We could get by with only a couple of ruby folks for infrastructure.
04:26 lambdabot Consider it noted.
04:28 Auzon You know, I feel sorry for anyone trying to explain the complete development process of Perl 6 from start to finish (once it is finished) ;)
04:32 Tene Auzon: didn't you hear?  you were nominated to compile the history.
04:33 Auzon Heh
04:34 mncharity @tell fglock Basically, we use ruby as a proxy for p6.  And write a p6 implementation in it.  Bootstrap becomes a flexible thing, something to do incrementally when convenient, rather than a constant burden.  So that's the idea, no doubt poorly explained and glossing over issues.  Questions, comments, etc, all most welcome.
04:34 lambdabot Consider it noted.
04:34 Auzon Can't it just be interpreted instead?
04:36 mncharity Auzon: was that a question for me?
04:36 Auzon Oh, nope.
04:37 mncharity drat :)
04:37 Auzon It was regarding Tene's comment about me being the one to compile the history
04:37 Tene ><
04:37 Tene mncharity: can't it just be interpreted instead?
04:37 Tene mncharity: that better?
04:37 mncharity lol
04:37 mncharity re can't it just be interpreted instead?,
04:37 Auzon hah. I don't even see how that'd apply, but...
04:40 mncharity the big challenges of implementing p6 are, the regex engine, the parser, the runtime, and the lack of spec.  also
04:41 Limbic_Region why do you think those are big challenges?
04:41 Limbic_Region pge is a pretty good engine
04:41 mncharity the compiler and emitter if you are doing real, full p6.  but if you are just worrying about bootstrap, and have a nice oo language as a backend target, then the backend is relatively less painful than the other challenges.
04:43 Limbic_Region mncharity - nevermind, after reading backwards I see you are talking about general problems
04:43 mncharity Limbic_Region: I didn't mean _current_ challenges.  Yes, we now have a collection of engines good enough to be used for a bootstrap.
04:43 Limbic_Region and not so much what huge hurdles still need to be faced
04:43 mncharity right
04:43 Limbic_Region I just happened to be flipping through my channel windows and saw that
04:43 mncharity :)
04:43 Limbic_Region should have read some more for context
04:44 mncharity the biggest current are perhaps
04:44 Limbic_Region 1.  longest token matcher
04:44 Limbic_Region 2.  lack of up to date tests
04:45 mncharity lack of spec, parser, integration/bootstrap pain
04:45 Limbic_Region when perl6 can parse correctly STD then you will have your parser
04:45 Limbic_Region I don't really see lack of spec as a hurdle
04:45 mncharity I don't mind old tests.  A working but out of date p6 would be a dandy environment to write an up to date p6.
04:45 Limbic_Region the spec is mostly going under refinements
04:46 Limbic_Region where do you see holes?
04:46 mncharity re spec
04:46 Limbic_Region mncharity - the test point was 2 parts - lack of tests and out of date
04:47 Limbic_Region mncharity - since anything that passes the test suite is considered official perl 6 - the test suite needs to be extremely comprehensive
04:47 Limbic_Region despite how large it is now, it still is far short of the mark
04:48 Auzon Is there a TODO list for the test suite? I was hoping to contribute to that sometime if there's a list of stuff
04:49 alester joined #perl6
04:49 Limbic_Region Auzon - there was a project to align tests with the synopses.  I am not sure if it is still active, but that would point to what tests need updating (because the spec has changed) and what tests need writing (because there is no tests linked to that portion of the synopsis)
04:49 zgh hey andy
04:49 mncharity re spec, we don't have a language reference manual.  we sort of have a collection of language design policy decisions.  the kind of thing which might be the "backstory" section/inserts in a reference. figuring things
04:49 zgh have i thanked you for ack lately?
04:49 alester zgh: Not that I recall.
04:50 zgh thanks for ack
04:50 zgh been using it since your lightning talk at oscon
04:50 Tene alester: thanks for ack.
04:50 alester you're welcome.
04:50 Limbic_Region mncharity - can you point to a language reference manual for another language so I can relate to what you are saying?
04:50 alester zgh: Glad I got a user out of that.
04:51 mncharity out about the language require a detective story exercise.  and then asking here or p6l when, invariably, even many simple obvious questions cant be answered from sNN.  the reason spec is an obsticle is
04:51 zgh alester++
04:51 Auzon hm, I should reinstall ack...
04:51 Auzon the use of real Perl patterns made it worth it :)
04:51 xwrn joined #perl6
04:51 zgh there's a ruby clone now, but I'll have none of it ^_^
04:52 alester Have we ever met, zgh?  Your name doesn't ring a bell.
04:52 zgh even though I'm now a rails developers *ducks*
04:52 alester zgh: rak is missing key features, too.
04:52 zgh i'm zack hobson we met when I worked for Shopzilla
04:52 xwrn joined #perl6
04:52 alester ah, ok
04:53 zgh now geni.com, mostly the same software team though
04:53 mncharity because with a reference, one could hand a random any-language programmer the reference, and say, here, implement this.  or any part of this.  but now, one has to join in an incremental language design process.  which I'm not knocking, but that's why spec is there as a major challenge for implementation.  because refining design and improving sNN is an unavoidable part of doing implementation at present.  Though much less than in the distant past. audreyt
04:54 * mncharity backlogs
04:55 * Limbic_Region wanders off to try and get some sleep
04:55 Limbic_Region TTFN all
04:55 mncharity Limbic_Region: re point to a language reference manual,
04:55 mncharity err, drats.
04:59 mncharity @tell Limbic_Region The CL manual.  The ANSI C standard.  Um, it's more like _most_ languages have more of a reference manual than p6.  Than p5 even.
04:59 lambdabot Consider it noted.
04:59 mncharity zgh: ahhh, a ruby developer...
05:01 mncharity have you seen http://svn.pugscode.org/pu​gs/misc/pX/Common/redsix/ ?  It's quite different in approach from what would be done now, but it was inspiration, and perhaps some bits might be scavanged for the runtime.
05:01 lambdabot Title: Revision 19374: /misc/pX/Common/redsix
05:02 xwrn joined #perl6
05:03 mncharity zgh: basic introspection idea is a ruby2ruby derivative (ruby2p6) .
05:04 zgh that does sound interesting
05:06 zgh i think parrot is a probably more important than perl6 in the long run
05:06 zgh i like to think that it's just syntax anywau
05:07 zgh er, anyway
05:07 mncharity re parrot...  I better leave it as "no comment".  My estimation is the opposite of yours (p6 importance >> parrot).
05:07 * zgh is inspired to svn up parrot and poke around in languages/perl6 &
05:08 mncharity zgh: there are some nice pure ruby projects which could be done an would help
05:09 mncharity eg, doing a real version of the redsix kludge for taking StringScanner and wrapping it to permit user code to be part of the pattern.
05:10 mncharity that would give ruby regexps what p5 already has with (?{...}) and friends.
05:10 mncharity and provide the foundation for grammars in ruby.
05:11 mncharity another, less useful to the ruby community, would be a multi with p6 multimethod dispatch semantics.
05:12 mncharity zgh: still there, or eaten by parrot?
05:12 zgh a little of both
05:12 mncharity :)
05:13 zgh i'm an experienced perl5 (and to a lesser extent ruby) programmer, but I still feel a bit out of my depth in parrot
05:13 zgh it makes me want to finish my CS degree
05:14 mncharity or just read more CS papers :)
05:16 mncharity another of-general-use ruby project might be a pure-ruby multiple inheritance capability.  one which didn't depend on evil.rb.  but... that one's not critical path for the kp6rb effort.
05:19 zgh that's do-able as long as you don't care about syntax
05:19 zgh i haven't seen evil.rb though
05:21 mncharity the ruby2ruby mutant (ruby2kp6ast probably (with separate kp6ast->p6), rather than a ruby2p6), and some DSL hackery to set up the p6(looks-like-ruby) developers, seems the big ruby-side sink.  until you start working on a real ruby backend runtime (as distinct from the kp6-ish ruby runtime).
05:22 mncharity evil.rb is cute, lets, for instance, classes serve as modules, but it's now unsupported, losing functionality (#become() is gone, snif), and doesn't work on 1.9.
05:24 TimToady if ruby is ~4x slower than p5, how is that gonna help a bootstrap, when the main feature of the p5 bootstrap is its blazing lack of speed?
05:24 pugs_svn r19375 | rhr++ | [Unicode.pm] process DerivedCoreProperties.txt, begin casing algorithms
05:24 mncharity ruby2ruby/ParseTree don't work on 1.9 either, but using 1.8 for kp6rb, and 1.9 (with real lambdas) as the target for a hypothetical (and entirely separate issue) backend, doesn't seem a problem.
05:24 zgh yeah I'm not enthused about working with the existing ruby interpreter for something like this
05:24 zgh i'd much prefer to use perl6 ^_^
05:25 zgh on parrot
05:26 zgh it'll be tempting to implement many of the parrot languages in perl6 i expect
05:26 mncharity TimToady: ruby oo is close enough to p6 oo to be used directly, at least for a bootstrap where one is using a limited p6 dialect.  redsix was faster than pugs for several weeks, until audreyt applied additional hs magic.  Even then, it was within a few 10's% I fuzzily recall.
05:27 zgh since perl6 will probably be the first complete HLL on the platform
05:28 mncharity and re ruby is ~4x slower than p5, I suspect that does not refer to oo in ruby vs p5.  My understanding is ruby oo is significantly faster than p5, let alone p5+Moose.  it's just that ruby uses oo everywhere, so when p5 can avoid oo, it's faster.  no avoid oo on this project, at least until we have not just a compiler, but a wizzy compiler.
05:28 mncharity *avoid_ing_
05:28 TimToady troonuff
05:29 zgh mncharity: really? i hadn't thought of that
05:30 kanru joined #perl6
05:31 mncharity zgh: re "really?", err, which part?
05:31 zgh certainly p5+moose is slower, but I always imagined that would put it on par with ruby ^_^
05:31 zgh although I haven't used the new faster moose even
05:31 mncharity ah, no.
05:32 mncharity p5 oo is rather slow.  and in ruby, being the common case, it gets lots of optimization attention.
05:32 zgh sure that makes a lot of sense, I had never considered it since I always did OO in perl5 anyway
05:33 zgh but now that I think about it perl5 was much easier to optimize...
05:34 zgh er is, I only say was because I don't write much perl5 anymore
05:38 mncharity hmm, s/faster than pugs for several weeks/...for a while/.  I've the fuzzy recollection of an "oh, drat, well, that window was rather short".  like a week or two.
05:43 mncharity ruby is also much better than p5 for metaprogramming.  comparable to CL imho.  and since it's common practice, it's much more robust than when you try to play similar games in p5.
05:43 zgh that's very true
05:43 zgh although my memories of metaprogramming in perl are fond
05:46 mncharity yeah.  but it usually doesn't take me long to hit, drat, I really want macros.  and then, hmm, the Filter::Simple bug is still there.  and here I am again contemplating writing a more macro-ish wrapper for Filter.
05:48 mncharity followed sometimes by I wish I could use this code as data, maybe I should be using CL or scheme here.  as in this kp6rb case.  a similar CL/scheme bootstrap path has been available.  it's just they are so verbose, it hasn't been -Ofun, at least for me.
05:49 zgh code-as-data needs to cross the gap syntax wise, it seems like all the languages that do it are schemes and lisps
05:49 zgh me no likee the parens
05:50 zgh that's one of ruby's faults for sure
05:50 zgh all the metaprogramming but no code as data
05:51 TimToady well, look at it this way, if there were some language that was close to what we want in p6, we probably wouldn't want p6 so much...
05:51 zgh TimToady that's why I'm here
05:51 mncharity re syntax gap, anything with an exposed parser and ast can do it.  java, ruby, etc.  p5 even, though because using B is a bit painful and limited, and not done much, it ends up not robust.
05:51 mncharity TimToady: indeed
05:52 mncharity oh, yeah.  re want p6 so much.  which brings us back to could kp6rb be a way to get it soonish.
05:56 mncharity zgh: with ripper in 1.9, the assorted node reflectors (ParseTree, Nodewrap, RubyNode), it's getting to the point where ruby has code as data.  ruby just as other ways of dealing with the same kind of issues a lisp would use that for.  so they are less mainstream than they might be.  though some things like Heckle(sp?) use them.
05:56 mncharity *has
05:56 zgh yeah 've seen that but always considered it experimental
05:57 zgh i guess now that meta is part of the culture I've gotten spoiled and want code as data as part of the culture as well
05:57 mncharity getting there, slowly, I think.
05:57 zgh also there is something about the approach taken by the lisps, something pure that I feel ruby hasn't learned
05:57 zgh but it seems so close
05:58 zgh but for expressiveness perl6 is going to blow the doors off
05:58 zgh but purity isn't really something perl strives for
05:58 mncharity (aside: Heckle is a testing tool, a test coverage checker - it mutates your code - if your test suite then *doesn't* fail, you are obviously failing to test whatever part of the code ceased to work due to mutation)
05:59 zgh it's a clever idea, i've used it a few times
05:59 zgh part of the problem is that you can't really produce nice little red-to-green completion graphs for heckle
05:59 zgh it's less satisying ^_^
05:59 mncharity re purity, expressiveness, agreed
06:00 mncharity :)
06:00 Auzon re the green/red charts, I definitely agree :)
06:00 zgh those guys have some other interesting code tools as well
06:02 zgh i think code testing as an art is making juge strides in the ruby community
06:02 zgh juge? huge.
06:05 mncharity basically kp6rb would be like using a p6 implementation snatched from the future, but with "use Ruby;" unavoidably set, and only partial language coverage (perhaps bigger than kp6, but most likely smaller than pugs), and likely some quirks (10%/60% kind of effot/result tradeoff - eg macros, but no lexically scoped macros).  and then one just writes ruby-style p6 implementation, to avoid the "use Ruby;", and address coverage and correctness.
06:05 zgh that sounds super interesting but fragmented.
06:05 zgh is this an ongoing effort?
06:06 mncharity But the neat thing is there is no "big switch day".  One can keep on using kp6rb in parallel with whatever evolves from it, until you simply don't want to bother anymore.
06:06 mncharity re ongoing effort, it's an idea from this morning.
06:07 zgh i looked in the few pages of logs that I have for this channel but I don't see much else about kp6rb
06:07 zgh what is it exactly?
06:07 zgh aha
06:07 mncharity re fragmented, how so?
06:07 zgh from this morning okay
06:07 zgh i see
06:07 zgh mncharity re fragmented only the description
06:07 mncharity re what is it, best description is my @tell to fglock a few (err, lots of) minutes ago.
06:07 meppuru joined #perl6
06:08 zgh mind repeating it here?
06:08 mncharity http://irclog.perlgeek.de/​perl6/2008-01-08#i_173739
06:08 lambdabot Title: IRC log for #perl6, 2008-01-08
06:09 mncharity I'm happy to repeat, get comments, answer questions, ramble, etc.
06:09 zgh wow
06:09 zgh that's a really good idea. the bootstrap argument is an excellent lever
06:11 mncharity re fragmented, yeah, that was an odd description.  its basically "write a simple p6 implementation in ruby, and oh, by the way, most of the usual bootstrap challenges vanish".
06:11 zgh i think if I had to choose between ruby or haskell as a bootstrap language the choice seems obvious...
06:13 mncharity haskell will make a very nice backend langauge at some point.  some things like STM, are vastly more straightforward to get working in haskell than elsewhere.  basically "big non-local stuff" is easier to do there.  with enough hs type wizards, it would even be plausible as a bootstrap language.  but without them... well, non-strictly typed was a requirement as I looked for languages which might simplify bootstrap.
06:13 IllvilJa joined #perl6
06:14 mncharity a haskell backend will let us play very magical games with p6.
06:15 mncharity haskell as a bootstrap language, because of its clarity, was also excellent for pushing language design.
06:18 mncharity but re wow, that's a really good idea, thanks! :)  appreciate the feedback.
06:19 zgh just the ideas re bootstrapping are compelling by themselves
06:19 zgh ruby also happens to be an excellent language for the purpose
06:20 zgh although writing perl6 in perl6 is what i look forward to most
06:21 mncharity indeed
06:25 pugs_svn r19376 | rhr++ | [Unicode.pm] begin grapheme cluster stuff
06:30 mncharity re compelling by themselves, after lots of bouncing off the walls, design space's maze of twisty little passages, there was definitely that nice "have found the right representation - problem simplifies" feeling as it started to look like it might be a real.  love those moments. :)
06:31 mncharity zgh: so, interested in hacking? :)
06:35 zgh mncharity: sure
06:37 mncharity (hmm, the ircbot ate my audreyt++ fglock++ re "Though much less than in the distant past.")
06:38 mncharity re sure, :) !
06:40 mncharity I think the immediate task graph looks like:
06:43 bwisti joined #perl6
06:44 bwisti joined #perl6
06:49 alc joined #perl6
06:59 mncharit1 joined #perl6
07:04 mncharit1 sigh.  partition.  missing text following "I think the immediate task graph looks like:" was:
07:04 mncharit1 create directory in pugs, start planning/overview doc, create rb class to abstract creation of kp6 ast (eg, methods bind, call, whatever), ast for same, ast->p6 emitter, ruby2ruby derivative which uses kp6 ast creation object; transliterate kp6 .p6 files, most complex first, into rb; milestone 1 - actually see good p6 coming out the pipe
07:04 mncharit1 that will address the risk that ruby2ruby has "doesn't quite work on things we care about" gotchas.
07:04 mncharit1 sound plausible?  thoughts?
07:05 mncharit1 actually, ast for same is just transliterated kp6 code
07:05 mncharit1 hmm.  will talk with fglock tomorrow.  see what he thinks.  there are both perl and ruby user group meetings tomorrow.  conflicting.  not sure which would be better to go to to get volunteers. :)
07:05 mncharit1 I don't really have the heart for a long, drawn out, lonesome exercise.  I'd like to do real project management, perhaps even more than fglock has been doing, gather enough people, and just nail it.
07:05 mncharit1 so I guess the first task is really a project planning exercise
07:05 mncharit1 end of day.  g'night all &
07:06 mncharit1 end of missing text
07:06 mncharit1 sound plausible?  thoughts?
07:06 mncharit1 :)
07:07 zgh sounds plausible
07:07 zgh i have to say g'night as well
07:07 mncharit1 right.  it was nice talking with you.
07:08 pugs_svn r19377 | rhr++ | [Unicode.pm] rename %is to %category, arrayish interfaces to strings
07:08 zgh nice talking to you too, keep in touch
07:08 mncharit1 will do
07:08 * zgh &
07:10 devogon joined #perl6
07:18 mncharit1 &
07:49 asprillia joined #perl6
08:03 iblechbot joined #perl6
08:07 charsbar joined #perl6
08:19 Aankhen`` joined #perl6
08:28 LCamel joined #perl6
08:32 rindolf joined #perl6
08:38 franck___ joined #perl6
08:54 braceta joined #perl6
09:03 jisom joined #perl6
09:20 masak joined #perl6
09:20 spinclad @tell mncharity plausible, fascinating, and very shiny.  must find some ruby references and join the -Ofun.
09:20 lambdabot Consider it noted.
09:23 ebassi joined #perl6
09:24 penk joined #perl6
09:25 cj_ joined #perl6
09:31 ludan joined #perl6
09:32 ludan hello
09:44 kanru joined #perl6
09:46 pen1 joined #perl6
09:49 ruoso joined #perl6
10:00 njbartlett_ joined #perl6
10:10 chris2 joined #perl6
10:34 jferrero joined #perl6
10:41 njbartlett_ joined #perl6
11:40 alc joined #perl6
11:47 Aankh|Clone joined #perl6
12:38 njbartlett_ joined #perl6
12:54 njbartlett__ joined #perl6
12:58 lisppaste3 joined #perl6
13:03 pugs_svn r19378 | ruoso++ | [yap6] Some notes on the ROADMAP, making some steps more clear
13:06 fglock_ joined #perl6
13:16 iblechbot joined #perl6
13:33 cmarcelo joined #perl6
14:07 jferrero joined #perl6
14:16 mj41 joined #perl6
14:29 alester joined #perl6
14:37 rdice joined #perl6
14:59 njbartlett_ joined #perl6
14:59 * ruoso wonders why is this so quiet today..
15:00 jhorwitz joined #perl6
15:01 Psyche^ joined #perl6
15:02 meppuru joined #perl6
15:10 iblechbot joined #perl6
15:17 rlb3 joined #perl6
15:28 pmurias joined #perl6
15:30 stevan_ joined #perl6
15:47 ispy1 joined #perl6
16:09 meppuru joined #perl6
16:20 nitro25 joined #perl6
16:21 jjore joined #perl6
16:29 barney joined #perl6
16:30 Psyche^ joined #perl6
16:53 nitro25 left #perl6
16:57 zamolxes joined #perl6
16:59 polettix joined #perl6
17:07 jferrero joined #perl6
17:22 pugs_svn r19379 | ruoso++ | [yap6] include/yap6_stack.h -> defining the lowlevel operator identifiers. This is way too crazy...
17:47 qmole /1333//3/2
17:47 qmole er, oops
18:03 bwisti joined #perl6
18:12 tobeya joined #perl6
18:18 pugs_svn r19380 | ruoso++ | [yap6] one stronger advise on the evilness of the 4 stack manipulation operators.
18:18 pugs_svn r19381 | rhr++ | [Unicode.pm] process HangulSyllableType.txt, implement UAX #29 Grapheme Cluster Boundary Determination
18:20 jjore-w joined #perl6
18:27 pugs_svn r19382 | rhr++ | [Unicode.pm] fix isGCBHangulSyllable
18:43 ruoso I had just noticed that the semantics of $dog.^methods() is different from the semantics of ^$dog.methods(), and even more different than $dog.HOW.methods()
18:43 ruoso $dog.^methods() keeps a relation to the $dog object, while the other two doesn't
18:44 ruoso consider I have
18:44 ruoso my $a = $dog.HOW();
18:44 ruoso $a.methods;
18:44 ruoso The thing is, the metaclass could be generic to more than one prototype
18:45 ruoso and in my $a = $dog.HOW(); $a.methods(); I lost the link to the $dog prototype
18:46 ruoso unless $dog.HOW() returns a proxy object to $dog that always calls everything with "^"
18:46 ruoso $a.methods would make the proxy object to call $dog.^methods.
18:47 ruoso but on the other hand, $dog.HOW would be usefull to get the real metaclass
18:48 ruoso even being a generic one
18:50 ruoso considering yap6, where every method is dispatched to the metaclass, the metaclass would know when it's a metamethod, when its name starts with the "^" sigil
18:50 lunatic joined #perl6
18:51 pmurias joined #perl6
18:51 ruoso and in methods like "methods", use the invocant to realise the prototype
18:51 pmurias ruoso: i think $dog.^methods is syntax sugar for $dog.HOW().methods
18:52 ruoso pmurias, not sure...
18:52 pmurias swimming&
18:53 ruoso look for method ^count in S12
18:54 pmurias looking it defines a method ^count for the class metaclass instance
18:54 pmurias s/looking/looked, /
18:55 pmurias &
18:56 ruoso joined #perl6
18:57 ruoso the thing is... what's the point in having both prototype and metaclass if the metaclass can't be generic?
19:01 jhorwitz_ joined #perl6
19:03 ruoso TimToady, in $dog.^methods, is $dog still the invocant?
19:03 ruoso if so, implementing $dog.HOW as a proxy object seems reasonable
19:04 ruoso as it would keep passing $dog as the invocant
19:05 ruoso which makes it possible to have generic metaclasses.
19:15 gast_test joined #perl6
19:21 jisom joined #perl6
19:22 pugs_svn r19383 | rhr++ | [Unicode.pm] clean up grapheme_cluster
19:23 TimToady certainly the metamethods have to have some way to access the actual object
19:23 TimToady and .HOW is really just a namespace changing macro
19:24 TimToady (method namespace, not package namespace)
19:25 ruoso TimToady, muuuuuuuch better
19:26 ruoso so the metaclass can be generic and $dog.HOW may return a proxy
19:27 pugs_svn r19384 | rhr++ | [Unicode.pm] grapheme_cluster: handle Controls correctly
19:28 TimToady or we just require that all metamethods take an additional first arg that is the actual object, if not supplied by ^ or HOW
19:29 ruoso hmm... that's a spec thingg
19:29 ruoso :)
19:29 ruoso that's a very reasonable thing actually
19:29 TimToady just wondering about the efficiency of enforcing proxy creation unnecessarily
19:29 ruoso yeah...
19:29 mncharity joined #perl6
19:30 ruoso that was my first option, but then I realised the spec doesn't enforce that
19:30 TimToady in fact, the spec is intentionally completely vague about what hides behind .HOW
19:30 TimToady and .HOW can mean different things in different scopes, even
19:30 ruoso but calling convention on HOW must be specced IMHO
19:31 TimToady .HOW is just the abstraction macro, it's not a real method
19:31 ruoso but...
19:31 ruoso my $a = Dog.HOW;
19:31 ruoso how can a macro affect that?
19:32 TimToady well, maybe the macro is really .HOW.foo
19:32 TimToady like ^foo
19:32 TimToady and bare .HOW is different
19:33 ruoso hmm
19:33 ruoso if the spec say that I may be unable to do: my $a = Dog.HOW; $a.methods; without passing Dog as the invocant
19:33 TimToady and you have to call $a.methods(Dog)
19:33 ruoso or Dog:
19:33 ruoso actually
19:33 ruoso $a.methods(Dog: )
19:33 * [particle] flails his arms with intentional vagueness
19:34 ruoso [particle], the thing is that it isn't that vague now
19:34 TimToady maybe metaclass methods are really mmd
19:34 TimToady with "two invocants"
19:35 ruoso hmmm
19:35 ruoso actually I was wrong
19:35 TimToady or maybe we only generate the proxy for bare .HOW
19:35 ruoso Dog should be the first parameter, not the invocant
19:35 TimToady that's what I said
19:35 ruoso yes yes
19:35 * ruoso changes his mind too easily
19:36 ruoso TimToady, but anyway... I think proxy for bare .HOW may be ok
19:36 TimToady me too, but when I do it most everyone else seems to change their mind along with me.  :)
19:37 [particle] when you put it that way... you're right!
19:37 TimToady what about when I don't put it that way?
19:37 ruoso but... after all... I lost myself... did we got to a consensus or not?
19:38 [particle] lol
19:38 ruoso and which was it?
19:38 TimToady general .HOW requires proxy, but easily optimized away on direct call
19:38 ruoso ok... I'm fine with that
19:39 ruoso which seems that the current spec is ok
19:39 * [particle] likes general .HOW's chicken
19:40 TimToady mmm, tastes like parrot
19:40 ruoso anyway... so, in yap6 everything is dispatched to the metaclass
19:41 ruoso that realises using the invocant which is the object
19:41 [particle] :)
19:41 ruoso and decides if run the code itself or if tries to resolve the method in the prototype according to the "^" sigil
19:43 ruoso TimToady, but still, the "Class methods" section in S12 seems to imply that the metaclass may not be generic
19:44 ruoso a metaclass method will be available to all objects dispatched by the same metaclass
19:44 ruoso and not only that class
19:45 ruoso actually I think that section should even warn that not all metaclasses will be open and non-final...
19:45 ruoso that declaration regarding a closed and final metaclass should give an error
19:47 ebassi joined #perl6
19:48 * ruoso home &
19:51 lorn joined #perl6
19:57 Shillo joined #perl6
20:00 Auzon joined #perl6
20:16 TJCRI joined #perl6
20:16 mncharity fglock: ping?
20:16 lambdabot mncharity: You have 1 new message. '/msg lambdabot @messages' to read it.
20:16 dlocaus joined #perl6
20:16 dlocaus @seen fglock
20:16 lambdabot I saw fglock leaving #perl6 29m 43s ago, and .
20:16 Auzon @seen Auzon
20:16 lambdabot You are in #perl6. I last heard you speak just now.
20:16 mncharity spinclad: :)
20:17 mncharity lol
20:17 mncharity @seen lambdabot
20:17 lambdabot Yes, I'm here. I'm in #friendly-coders, #fi.muni.cz, #curry, #scannedinavian, #gentoo-haskell, ##logic, #xmonad, #unicycling, #perl6, #parrot, #jtiger, #haskell-soc, #haskell-overflow, #haskell-blah,
20:17 lambdabot #scala, #haskell, #ghc and #darcs
20:17 Auzon Nice
20:17 [particle] can you kick that bot from #parrot? there shouldn't be a #parrot on freenode
20:18 Auzon Where should #parrot be, out of curiosity?
20:18 moritz_ Auzon: irc.perl.org
20:19 mncharity [particle]:  i've no idea
20:28 mncharity [particle]: @leave #parrot ... but I don't have the privileges
20:29 moritz_ @operator
20:29 lambdabot Unknown command, try @list
20:29 moritz_ @list
20:29 lambdabot http://www.cse.unsw.edu.au​/~dons/lambdabot/COMMANDS
20:30 mncharity @tell dons from #perl6, re lambdabot "[particle]: can you kick that bot from #parrot? there shouldn't be a #parrot on freenode".  There's only one person there, plus lambdabot.  The real #parrot is on irc.perl.org.  fyi.  Thanks for the wonderful bot.
20:30 lambdabot Consider it noted.
20:30 [particle] mncharity++
20:33 mncharity Maybe it's a channel about birds, and they like lambdabot? ;)
20:35 dlocaus left #perl6
20:37 tobeya joined #perl6
20:48 mj41__ joined #perl6
20:52 pmurias joined #perl6
20:54 ispy1 left #perl6
20:59 pmurias mncharity: does ruby have named parameters and an efficient way to autovivification correctly
21:00 pmurias s/correctly/efficiently/
21:10 pmurias as i percive it kp6 is blocking on a lack of a vm which can run p6 fast enough
21:11 pmurias withought cutting on features and correctness
21:12 moritz_ aye
21:12 moritz_ that's why ruoso++ is working on yap6, right?
21:14 pmurias mncharity: yes
21:16 spinclad (yes it's a channel about bird?)
21:16 spinclad *birds
21:17 spinclad moritz_: yes aiui
21:18 * spinclad & again
21:18 pmurias moritz_: cutting on completness isn't that bad, but cutting on correctnes isn't nice at all
21:18 moritz_ pmurias: aye ;)
21:23 blindfish joined #perl6
21:30 Ben_Hwa joined #perl6
21:30 Ben_Hwa Oh my God!  Turn to the News!  President Bush was just assassinated in Israel!
21:31 * Tene suspicious.
21:31 * Auzon is skeptical
21:32 Ben_Hwa ok just turn on the news
21:32 Ben_Hwa omg
21:33 Tene Google News does say stuff about bush visiting israel and predictions of violence.
21:34 Auzon Nothing on CNN. Nice try though
21:34 Ben_Hwa its all over fox news
21:34 Ben_Hwa probably hasnt brok on cnn yet
21:34 Auzon Find me a link
21:34 Ben_Hwa fox news! you know, fox news?
21:34 Ben_Hwa its like right on the front page duh
21:35 wolverian um, no.
21:36 Auzon Seriously. Do crazies just like this channel?
21:36 Tene Perhaps.
21:36 wolverian well, it's listed on the channel list.
21:37 wolverian and not private
21:37 Auzon Maybe we're a fairly large channel.
21:37 [particle] bush gave a speech on the economy today in the rose garden at the white house.
21:39 chris2 joined #perl6
21:48 pmurias maybe they like channel names with a 6 in them?
21:49 moritz_ now I know why some folks want to rename perl6 ;-)
21:55 thoughtp1lice joined #perl6
21:56 ludan joined #perl6
21:56 TJCRI joined #perl6
21:56 ludan hi
21:57 Auzon Hi
22:01 pbuetow hi
22:03 mncharity pmurias: moritz_: I suggest neither features nor correctness are key objectives when doing a bootstrap.  rather, developability is the sole critical need, of which fast enough is one component (vis kp6), and hackability is another (vis pugs hs, and "keeping everything working while doing a self-hosted bootstrap" vis kp6).
22:04 mncharity actually, keeping everything working vis pugs hs too.
22:06 pmurias mncharity: it would be possible to write a fast perl5 backend for kp6 if those are your criteria
22:06 pmurias in a short amount of time
22:06 pugs_svn r19385 | rhr++ | [Unicode.pm] fix grapheme_cluster again, use a regex state machine for %ps_to_pe
22:07 mncharity then why do you say kp6 is blocked?
22:08 pmurias mncharity: it won't get you very far in the long term, unless you find a suitable backend (avar is interested in trying cl)
22:09 jferrero joined #perl6
22:10 renormalist joined #perl6
22:11 renormalist joined #perl6
22:12 mncharity "long term"?  my impression is the current goal is to have something no less capable than pugs (ie, can run and largely pass t/ ), but written in p6.  with grammar work being the next blocker, itself being help up by backend speed, and perhaps slowed by self-hosting (not sure).
22:13 mncharity it seems likely that very little code which is written before that point with end up in a p6 release.  rather, it's all bootstrap cruft, and the only interesting criteria is does it help us get there.  no?
22:15 pmurias mncharity: you'll get blocked on by some stuff in t/
22:15 pmurias such as autovification
22:17 mncharity if pugs hs had gotten one step further, and had usable oo, we would long ago have used that to write a p6 implementation of p6.
22:17 pmurias mncharity: but if you are prepared to sacrifice correctness you will get pretty far quite fast
22:18 mncharity pugs and kp6, and I suggest anything with a chance of succeeding, is willing to sacrifice correctness to get far fast. ;)
22:19 mncharity re autovification, I don't understand why you think it difficult, eg,
22:19 pmurias mncharity: i started work on a new faster kp6 perl5(Perl5V6) backend but got blocked by lack of time and not knowing how to do autovification and proper calling conventions fast
22:19 pmurias mncharity: perl5 autovification is subtly diffrent
22:19 pmurias different
22:20 mncharity class Hash; def av(k); exists?(k) ? self[k] : self[k] = Value.new end    or some such
22:21 pmurias mncharity: foo($hash{bar})
22:21 mncharity bootstrap shouldn't require autovification.  calling conventions, and mmd, are perhaps more of an issue.  but one
22:21 pmurias mncharity: if you go for all positionals it's easiy
22:22 mncharity advantage of the kp6rb approach, is one can use different conventions for the ruby p6-ish source, and any p5 or ruby or cl backend.  the former
22:22 pmurias mncharity: if sub foo ($arg is rw) {...} is autovifies if sub foo ($arg is ro) {} not
22:22 mncharity can be fast but restricted, the latter whatever, and you simply don't switch over to using the latter until you are comfortable with its performance.
22:23 Auzon Is the bootstrapping problem the execution speed?
22:24 pmurias Auzon: the bootstraped compiler is too slow with the current backend
22:24 pmurias mncharity: it will be fast but incorrect
22:24 mncharity re positionals, sorry, language noise, rb uses [] for hash lookup too.
22:25 pmurias mncharity: i meant calling convention are easy, sorry
22:27 pmurias you could try completing the new perl5 backend (KindaPerl6::Visitor::Emit::Perl5V6)
22:27 mncharity hmm, maybe we need the exercise of creating a consensus document, describing where we are, what is holding us up, and what the challenges we face going forward are.
22:27 mncharity as a way of creating collective focus and understanding of what we need to do to win
22:28 pmurias i have to sleep now& (time zones--)
22:28 pmurias g'night
22:29 mncharity oh, drat
22:29 mncharity thanks for banging on the idea
22:32 mncharity Auzon: http://irclog.perlgeek.de/​perl6/2008-01-05#i_172914 and 23:19
22:32 lambdabot Title: IRC log for #perl6, 2008-01-05
22:32 mncharity so I don't know if speed is critical or not
22:34 * Auzon takes a look at STD.pm
22:36 mncharity re kp6rb, it may well be the right thing is to instead do a faster kp6 p5 backend.  or refactor the grammar.  or something else.  I simply noticed a strikingly sweet sweet-spot, and that another xmas has passed us by.
22:37 mncharity potentially sweet sweet-spot.  still insufficiently tested to be sure it just doesn't smell nice, but taste aweful.
22:38 Auzon This would be a whole lot easier if my text editor understood Perl 6 :P
22:38 mncharity http://svn.pugscode.org/pugs/src/perl6/STD.pm
22:38 mncharity which editor?
22:38 Auzon I have it checked out, I'm just trying to get some syntax highlighting
22:39 Auzon I usually use Kate, but I'm reaching for Vim now
22:39 mncharity i believe there is a vim mode...
22:39 Auzon yep. Just looking on how to use it
22:39 Auzon I'm not a Vim wizard :-/
22:40 mncharity ./util/perl6.vim
22:40 mncharity ah
22:40 mncharity sorry, i've no idea (emacs)
22:40 Auzon :P
22:40 Auzon I think I can figure it out in a minute
22:42 Auzon eh, I'll just turn it off for now
22:53 Auzon Can anything (Pugs, KP6, etc) start to parse STD.pm?
22:54 Auzon well, parse and use
23:26 mncharity Auzon: not yet
23:26 mncharity bbl &
23:33 TimToady actually, pugs can parse it, if you run it through the cheat script
23:33 TimToady was actually up to parsing 42+1 until I got sidetracked onto the longest token matching
23:34 Auzon Isn't that enough to start writing a Perl 6 equivalent with Pugs to bootstrap it?
23:34 [particle] then try 1+1 :)
23:45 mj41____ joined #perl6
23:55 istarex joined #perl6

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

Perl 6 | Reference Documentation | Rakudo