Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-01-15

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 avar hehe
00:02 cmarcelo allbery_b: hmm, Parser.hs:1363 has the only relevant occurence of '->"'...
00:04 putter ok, I tweaked the Implementation section http://en.wikipedia.org/wiki/Perl_6#Implementations   Comments welcome.
00:04 putter re MO, thanks
00:07 Psyche^ joined perl6
00:07 Psyche^ is now known as Patterner
00:09 cmarcelo allbery_b: Parsec defines: "symbol = lexeme . string" and "lexeme p = do{ x <- p; whiteSpace; return x  }". in the whiteSpace trick, aren't we "losing" something ("return x" on lexeme)...?
00:12 allbery_b no, lexeme returns a value in the RuleParser monad already
00:12 allbery_b so it doesn't need to be lifted into the monad with "return"
00:13 avar meh:)
00:13 avar I'm beginning to think it'll never get released:)
00:14 avar putter: Isn't the section on pugs a bit misleading? You'd think from reading it that the pugs/js/perl5/pbc backends all worked equivalently
00:15 cmarcelo allbery_b: I don't get it. We completely lose the result of "string" action (considering the fix).. if not, symbol could be defined just as string >> whiteSpace...
00:15 allbery_b meh.  need some way to fail the parse on "->"
00:16 allbery_b we're not using parsec's symbol.  see Pugs/Lexer.hs
00:16 * allbery_b has reread the above and realized we're not talking about the same thing
00:16 cmarcelo ops.
00:19 putter avar: agreed.  feel free to update. :)   I mainly just wanted to get the funding line in...
00:19 putter let's see, what might it say instead...?
00:19 cmarcelo allbery_b: well, P/Lexer.hs' symbol is different but the same essence: rv <- string s (...) whiteSpace (...) return rv.
00:20 Aankh|Clone joined perl6
00:20 avar putter: if the pbc backend worked 100% for instance we'd probably already have a p6-alpha?
00:20 avar or maybe not
00:20 allbery_b okay, and?  we're not invoking symbol, we're invoking string (so trailing whitespace remains) and then cheching what follows
00:21 allbery_b we *want* whiteSpace to be eaten after that
00:21 putter the js backend is complete up to not handling objects because the existing(?) AST does not support them.
00:21 putter the p5 backend is dead I think.  yes?
00:21 allbery_b not last I heard
00:22 allbery_b mp6 and kp6 both have p5 emitters
00:22 avar putter: not handling objects is a pretty big limitation in p6:)
00:22 putter well, PIL-Run is dead.  do we have anything else which actually... right, but do those take pugs ast's?
00:22 putter my impression is mp/kp6 are standalone.
00:23 allbery_b I couldn't tell you about anything beyond that
00:23 * allbery_b thinks he may have pointies fixed
00:23 putter thus while there have been p5 and pbc backends in the past, the pbc was always a "look, neat!" rather than passing lots of tests, and the p5 is dead.
00:24 avar How is parrot on being able to run perl6 anyway, theoretically
00:24 putter I've not idea.
00:24 putter s/not/no
00:25 cmarcelo allbery_b: could you paste it?
00:25 allbery_b there had been a similar error to the failed test during building the js prelude, but I didnt think anythiong of it until it didn't happen this time
00:25 allbery_b lemme get the test suite past the statements thing to verify first
00:26 allbery_b (running now)
00:26 cmarcelo k
00:26 putter avar: ok, I changed the compiled line to past tense.  "has compiled to..."
00:27 putter any other thoughts?
00:27 pasteling "allbery_b" at 66.93.61.215 pasted "possible fix for pointy blocks?" (6 lines, 283B) at http://sial.org/pbot/22395
00:27 allbery_b test hasn't reached there yet though
00:28 cmarcelo allbery_b: re symbol: now I get. the return value wasn't being used anyway..
00:29 allbery_b my assumption is that if the parse as expr fails it retris as a pointy block, so we need to catch and reject pointy for that to work
00:29 avar tt/w 5
00:30 nekokak joined perl6
00:32 cmarcelo allbery_b: in your paste you're missing the whiteSpace, don't?
00:33 allbery_b statement_control passes
00:33 allbery_b *sigh* that was what I was asking about before.  *what* whiteSpace?
00:34 pasteling "cmarcelo" at 200.232.237.179 pasted "my version with whiteSpace" (13 lines, 518B) at http://sial.org/pbot/22396
00:34 neonse left perl6
00:36 cmarcelo (maybe useful: use "./pugs -Iblib6/lib t/blocks/statement_control.t" when need to test just a file..)
00:36 allbery_b hm, okay, that makese sense
00:37 b00t joined perl6
00:37 Aankh|Clone is now known as Aankhen``
00:38 Psyche^ joined perl6
00:38 cmarcelo putter: you mentioned two wikis. one is rakudo.org/perl6, where is the other?
00:40 Psyche^ is now known as Patterner
00:40 putter http://pugs.kwiki.org/
00:41 lambdabot Title: HomePage - Pugs - A Perl 6 Implementation
00:41 putter http://209.85.165.104/search?q=cache:YrgzWfIU4_IJ:pugs.kwiki.org/+http://pugs.kwiki.org/&amp;hl=en&amp;gl=us&amp;ct=clnk&amp;cd=1
00:41 lambdabot http://tinyurl.com/y3fxkd
00:43 sonorous joined perl6
00:44 cmarcelo putter: hmm.. "TASK: get pugs.kwiki.org redirects to new wiki at rakudo.org" ?
00:49 putter edit the page so google no longer picks it up for p6?  i don't know how enthused the kwiki folks would be to do a redirect to a different engine.
00:49 putter it might be worth creating a wiki.pugs.... alias so we can shift easily in future.
00:52 cmarcelo right..
00:59 nipra joined perl6
01:01 putter err, what is a short one line description of MO?
01:01 * putter updates the draft project graph with the 6.NNN milestones...
01:12 putter http://www.vendian.org/mncharity/TemporaryURL/deleteme.png updated.  Comments encouraged.
01:12 nipotaway is now known as nipotan
01:13 dduncan joined perl6
01:17 putter Graph updated.  Comments encouraged.
01:17 cmarcelo putter: http://nothingmuch.woobling.org/MO/lib/MO/Overview.pod and r14664 commit log message maybe helpful...
01:17 putter reading...
01:18 putter ah, the MOP
01:20 thestarslookdown joined perl6
01:21 putter updated
01:22 weinig|bbl is now known as weinig
01:23 putter I wonder if 6.28 (classes and objects) is to have a prelude-ified object space (rather than things hardcoded in hs)
01:26 * allbery_b wonders if *that* bug was there before he started, since he didn't build the svn up'd pugs before hacking on it
01:26 allbery_b t/builtins/control_flow/die.t infinite loop
01:27 sonorous joined perl6
01:27 allbery_b on or around test 4
01:29 allbery_b okay, that's not my fault; test 4 is die() to break recursion.  it seems to be failing the wrong way... :/
01:30 Aankhen`` joined perl6
01:30 spoop joined perl6
01:31 cmarcelo putter: I know about moving stuff from "main" to objects (chop() being now Str::chop() in the class Str). Not sure if moving this away from Hs is the case.. in src/MO/si.hs we are experimenting exactly this embedding some of this functions into the proper classes.
01:32 cmarcelo (nice graph btw)
01:33 cmarcelo allbery_b: here it's blocking on this test too..
01:34 putter so maybe "unflatten primitive names"
01:35 putter re nice, thanks :)
01:36 putter http://www.vendian.org/mncharity/TemporaryURL/deleteme.png updated.
02:03 pasteling "cmarcelo" at 200.232.237.179 pasted "diff between pugs -CParse-YAML of t/b/c_f/die.t test without the fix (file b) and with the fix (file a)" (127 lines, 3K) at http://sial.org/pbot/22398
02:03 cmarcelo allbery_b: you may want to take a look at my last paste..
02:05 allbery_b yak
02:05 ozo_ joined perl6
02:05 allbery_b and on top of it I just broke my irc client.  brb
02:05 allbery_b left perl6
02:06 allbery_b joined perl6
02:06 * allbery_b sighs
02:06 allbery_b whatever you said after pointing me ot that paste came up as blank lines :(
02:06 cmarcelo http://sial.org/pbot/22398
02:06 lambdabot Title: Paste #22398 from "cmarcelo" at 200.232.237.179
02:07 cmarcelo with the fix, my $b = 1; --$b, gives wrong result. that explains the infinite loop..
02:09 allbery_b okay, so somehow all sorts of things broke that shouldn't have.  ugh.
02:10 putter hmm, anyone know the state of v6-alpha?  is it being smoked?
02:10 putter apparently not (smoke)
02:11 * allbery_b reverts change locally and wonders if he'll ever understand the parser well enough to know how *that* happened
02:11 * cmarcelo wasn't thinking that allbery_b would give up... :-|
02:11 * allbery_b already did once :/
02:12 putter lambdabot: ?tell fglock what is the state of v6-alpha?  long ago it was blocked on... data::bind was it?  now?
02:12 lambdabot Consider it noted.
02:12 allbery_b basically I think I need to understand far more about what is going n inside the parser befpore tryingt o do this.  as far as I can see, it shouldn't break either autoincrement or pointy blocks... yet it does
02:13 allbery_b I could probably hack around aitodecrement like I did pointies, but without knowing *why* those special cases are needed it'll just come back to bite us again some other way later
02:14 allbery_b so, revert and try to comprehend the parser before trying again
02:15 cmarcelo ok..
02:17 allbery_b this is far too much like what happened to me last time when apparently unrelated things broke when I tried to fix it.
02:17 allbery_b at least time they look related...
02:18 putter good night &
02:21 Alias__ joined perl6
02:21 lyokato joined perl6
02:28 mako132_ joined perl6
02:39 cmarcelo file operators (-f, etc) should have higher precedence than prefix -- and ++?
02:42 * allbery_b doesn't think so
02:43 allbery_b I think it's more a matter of what order things are being handed to the parser in, actually
02:43 dmq joined perl6
02:44 allbery_b hm, also that some of that special casing in "symbol" was insuring correct parses for e.g. "--" and "->" (but breaking "- f"), and switching to "string" fixed the latter at the epxense of the former
02:44 allbery_b maybe we just need a variant of symbol without the whiteSpace
02:44 allbery_b or something
02:44 allbery_b I still haven't quite grokked the fullness of "symbol"
02:52 weinig is now known as weinig|zZz
02:53 Alias__ joined perl6
02:56 cmarcelo allbery_b: I see.. I just think that since precedence table indicates that it should try first "--", it would use symbol, because only "-" uses string.. (I'm trying to put some traces to see what's happening)..
02:56 Psyche^ joined perl6
02:56 Psyche^ is now known as Patterner
02:57 puddingpimp_work joined perl6
02:57 allbery_b I'm not sure symbol recognition necessarily is done by precedence.  note for example that "->" isn't involved in precedence at all
02:57 allbery_b (not an operator, just part of pointy block syntax)
02:57 cmarcelo right..
03:01 allbery_b it looks to me like parsing is mostly ad hoc, with the precedence table having some control but not necessarily complete, and the oddities are hacked around with all the special cases in "symbol"
03:03 cmarcelo allbery_b: "->" case is there, but not "--"..
03:04 allbery_b no, it's trickier than that I think.  still comes down to "--" had no business breaking, yet it did, therefore there's some parsing subtlety somewhere that's being missed
03:04 allbery_b ...or maybe it's a *lack* of subtlety given that eliminating whitespace effectively caused the parse falure
03:08 cmarcelo doing something like GHC Commentary (http://hackage.haskell.org/trac/ghc/wiki/Commentary) for Pugs would be a nice idea..
03:08 lambdabot Title: Commentary - GHC - Trac
03:10 cmarcelo @tell putter suggestion: http://hackage.haskell.org/trac/ghc/wiki/Commentary => having something like this for pugs would be nice and "lower the bar" a little bit..
03:10 lambdabot Consider it noted.
03:11 Alias___ joined perl6
03:19 [M]erk joined perl6
03:27 cmarcelo allbery_b: putting the case condition inside symbol (when people ask for "-" don't use whiteSpace) and taking out your pointy workaround passes filetest.t, statement_control.t and die.t
03:27 Psyche^ joined perl6
03:35 allbery_b wonder what else breaks though, that might not be tested for --- hard to imagine that doesn't change some case involving plain "-"
03:36 * allbery_b is becoming too tired to track this, slept poorly last night (and must try to sleep tonight)
03:37 Psyche^ is now known as Patterner
03:37 cmarcelo indeed, i'm doing 'make smoke' to check for some absurdity.. thanks for helping.
03:42 cmarcelo just for the record: "1 - 1" breaks this change to symbol.. :o)
03:46 takanori joined perl6
03:47 ayrnieu joined perl6
03:52 takanori joined perl6
04:09 leed joined perl6
04:17 Alias__ joined perl6
04:35 nipra joined perl6
04:35 stevan_ joined perl6
04:40 spx2 joined perl6
04:52 justatheory joined perl6
05:08 justatheory_ joined perl6
06:12 stevan__ joined perl6
06:13 nipra joined perl6
06:14 BooK joined perl6
06:53 Aankhen`` joined perl6
07:16 nipra joined perl6
07:22 marmic joined perl6
07:41 mj41 joined perl6
08:01 thestarslookdown joined perl6
08:10 lisppaste3 joined perl6
08:46 iblechbot joined perl6
09:21 jferrero joined perl6
09:28 andara joined perl6
09:28 scw joined perl6
09:45 spx2 joined perl6
09:58 ruoso joined perl6
10:01 nipotan is now known as nipotaway
10:18 fglock joined perl6
10:21 andara hi fglock
10:23 lambdabot joined perl6
10:24 svnbot6 r15073 | fglock++ | kp6 - added docs/parrot.pod
10:28 fglock andara: hi
10:29 andara fglock: looks like I might be doing audrey's talk in Nice. Could I ask you a few things about p6-on-p6?
10:29 fglock andara: sure!
10:31 andara fglock: does you current work need the haskell frontend or is it based on the p6-on-p5?
10:34 fglock andara: mp6 is written in itself - it only depends on p5 as a 'vm'
10:34 fglock and kp6 is written in mp6
10:35 andara fglock: but you need to boostrap it somehow, isn't it?
10:36 dduncan left perl6
10:37 fglock yes, it was compiled with v6.pm in the first 3 weeks
10:38 fglock but the other backends will be bootstrapped with mp6 or kp6
10:38 andara fglock: OK, I see. So would you need another intermediary after kp6 to compile "full" p6?
10:40 fglock andara: I hope not - kp6 should provide enough semantics
10:41 andara fglock: ok, great. a last question: Suppose I'd like to use a Scheme VM or JVM instead of p5. What would I need to change? I presume it's the emitter, is that right?
10:43 fglock mp6 provides a syntax layer, so that you can use a common language in several VMs
10:43 fglock kp6 covers the semantic mismatches
10:44 fglock for example, the mp6-parrot implementation is currently incomplete, because
10:44 fglock it is difficult to cover all the semantics needed by mp6
10:45 fglock but you can provide that semantics in the desugaring layer (kp6)
10:46 fglock for Scheme or JVM,
10:46 fglock you can start by writing an emitter and a basic library
10:47 fglock you can also provide additional implementation at the kp6 level, depending on the native features you would want to reuse
10:47 fglock in other words,
10:48 fglock you can also see it the other way:
10:48 fglock start with full-p6, and provide desugarings until you get to the level supported by the vm
10:51 nipra joined perl6
10:52 andara fglock: ok, that's quite clear now. thanks a lot! who should I ask about MOP?
10:53 fglock andara: re haskell - the haskell emitter for mp6 is planned, but currently nobody is working on it
10:53 fglock MOP is nothingmuch and stevan's work
10:56 lambdabot joined perl6
10:58 fglock putter: re v6.pm - it's currently frozen, it will be replaced by (6-on-6)-p5
11:03 nothingmuch fglock: stevan's
11:03 tennin joined perl6
11:06 andara nothingmuch: do you know what the p6 MOP is based on (e.g. CLOS)?
11:06 jferrero joined perl6
11:07 nothingmuch andara: it seems like it'll be based on MO
11:15 avar fglock: i.e. 6-on-6 that has a p5 emitter?
11:16 fglock avar: yes
11:17 avar tasty
11:18 penk joined perl6
11:30 ruoso joined perl6
11:36 nipra joined perl6
11:59 buetow joined perl6
12:00 nipra joined perl6
12:08 chris2 joined perl6
12:14 xinming joined perl6
12:22 elmex joined perl6
12:23 ProperNoun joined perl6
12:27 fglock joined perl6
12:39 iblechbot joined perl6
12:42 elmex_ joined perl6
12:48 xinming joined perl6
13:16 svnbot6 r15074 | fglock++ | mp6-p5 - allow 'Apply' on variables
13:19 buetow joined perl6
13:26 buetow joined perl6
13:34 svnbot6 r15075 | fglock++ | kp6 - implemented 'my' and 'our' Sub/Apply desugaring (non-nested)
13:45 gnuvince joined perl6
13:55 Limbic_Region joined perl6
13:59 * smash_ good afternoon
14:01 Limbic_Region salutations
14:04 svnbot6 r15076 | fglock++ | kp6 - added TODO, docs re: lexical subs
14:06 BooK_ joined perl6
14:10 pasteling "evalbot_r15075" at 194.145.200.126 pasted "Pugs build failure" (375 lines, 20.9K) at http://sial.org/pbot/22411
14:12 kanru_ is now known as kanru
14:13 BooK__ joined perl6
14:31 integral joined perl6
14:41 Grrrr joined perl6
14:46 ProperNoun joined perl6
14:48 bonesss joined perl6
14:48 fglock my vacations start in ten days...
14:51 kolibrie does that mean more or less p6 hacking?
14:53 fglock kolibrie: not sure yet - less internet connectivity, certainly
14:53 * kolibrie generally does less computer stuff on vacation - more family time
14:54 b_jonas-2 joined perl6
14:56 fglock kolibrie: I've got no plans - my initial plans was to go to Portugal for a month, but that didn't work
14:56 fglock so I'll go to the beach nearby
14:56 kolibrie that could be fun
14:58 fglock I guess I'll get bored after a week - but after a few more days I usually get used to doing nothing
14:59 kolibrie that sounds pretty normal for me too
15:01 fglock btw,
15:02 fglock YAPC::SA will be here in Porto Alegre, Brazil - apr 12-14 2007
15:02 fglock everybody is invited
15:02 kolibrie didn't you just have a YAPC::SA in November?
15:02 fglock (but we've got no sponsors this time)
15:03 kolibrie oops, meeting &
15:03 fglock yes
15:03 Limbic_Region fglock - if you had it later in the year, I would be sure to come
15:03 * Limbic_Region just used up all his vacation
15:04 fglock that's because we exchanged the dates for YAPC::Brasil/YAPC::SA
15:04 * Limbic_Region may come anyway - even if there is no conference
15:05 fglock YAPC::Brasil will be near september
15:05 Limbic_Region hrmmm
15:05 fglock in Salvadr, Bahia - nice place
15:05 fglock Salvador
15:05 Limbic_Region well, my wife is taking our daughter to the Philippines in March/April
15:06 Limbic_Region since I can't go (no vacation), I will be taking a vacation later in the year by myself
15:06 Limbic_Region I am currently thinking S. America (some place I have not been)
15:07 fglock Limbic_Region: http://en.wikipedia.org/wiki/Salvador%2C_Bahia
15:07 lambdabot Title: Salvador, Bahia - Wikipedia, the free encyclopedia
15:08 Limbic_Region yes, but how are the women?
15:08 Limbic_Region >:_)
15:08 Limbic_Region er
15:08 Limbic_Region >:-)
15:09 fglock :)
15:11 * Limbic_Region should not that he is the most faithful husband in the world if you exclude oggling women
15:11 fglock it depends on personal taste - people seem to like Porto Alegre best
15:11 Limbic_Region fortunately, my wife doesn't mind and often points out women for me to oggle
15:12 Limbic_Region we seldom agree on what's beautiful though
15:12 Limbic_Region her tastes are heavily influenced by her cultural background of the Philippines
15:12 Limbic_Region um, but this is severely OT
15:14 Limbic_Region s/not that/note that/
15:14 Limbic_Region on that note, TTFN
15:16 GabrielVieira2 is now known as GabrielVieira
15:29 Vex joined perl6
15:30 nipra joined perl6
15:35 b_jonas_ joined perl6
15:36 vel joined perl6
15:38 buetow joined perl6
15:44 kolibrie my company has sponsored trips for me to YAPC::NA, but that's a big stretch for YAPC::SA, so I probably won't ask, at least not this year
15:50 fglock kolibrie: do you live in NA?
15:50 kolibrie yes, close to Washington, DC
15:53 xinming_ joined perl6
15:56 penk joined perl6
15:59 fglock hmm - I wonder if perl 6 has something that could emulate parrot ':outer'
16:00 masak I still find myself thinking about MMD
16:00 masak my problem with it is that I cannot visualise it
16:00 masak can someone create a problem -- not necessarily a realistic one -- where MMD would be needed?
16:01 masak then from than one could maybe dream up a favorite syntax and semantics
16:01 elmex joined perl6
16:02 xinming_ joined perl6
16:03 fglock masak: any place where you would be using if/elsif/else - except that with MMD it's more fine-grained subclassable
16:04 masak fglock: I'm reading http://use.perl.org/~chromatic/journal/32133 right now
16:04 lambdabot Title: Journal of chromatic (983)
16:05 masak they mention a version of MMD that would work like "a series of nested switch statements" as if that was something less than optimal
16:05 masak as if they wanted something more than that
16:05 masak what is the additional thing they're after?
16:12 weinig|zZz is now known as weinig|bbl
16:13 elmex joined perl6
16:13 masak they seem to all agree on under-specifying the MMD semantics and leaving the edge cases to the programmer
16:13 masak sounds fine by me, who still don't understand the use of MMD
16:14 fglock masak: re additional thing - I didn't finish reading yet, but it seems to boil down to: having a 'set' of options, rather than an 'ordered set'; and making this optimizable
16:16 masak fglock: would the "ordered set" case correspond to the "series of nested switch statements" case, then?
16:17 fglock masak: yes
16:19 rhizo joined perl6
16:26 masak these people are really smart
16:27 masak I hesitate to say that they are groping for an ideal that isn't there
16:27 masak so I'll settle with saying that I don't really see what they are trying to do
16:27 masak I'd be happy seeing an example
16:28 masak but if there isn't one yet, because no-one uses MMD today because it doesn't work in other languages,
16:28 masak maybe it really is a good idea not to try and spec MMD, and leave it as an exercise for the programmer
16:33 luqui joined perl6
16:34 fglock masak: would you imagine a possible use of a switch statement inside a method
16:35 luqui fglock, Text::Balaned? (essentially, havy arg dwimmery)
16:35 fglock it's like MMD would let you refine some of the cases, using plain inheritance
16:35 masak fglock: sure. let's say I implement an atan2 function
16:35 * luqui should stop jumping in conversations he has only seen one line of
16:36 masak then I would need to switch on all combinations of x>0, x<0, y>0 and y<0
16:36 fglock luqui: np - thanks :)
16:37 masak oh, and x==0 and y==0 thrown in also, of course
16:38 masak that, I would say, is a possible and legitimate use for a switch statement
16:38 fglock masak: ok - you would implement separate (multi)methods for each case
16:39 chris2 joined perl6
16:39 fglock the advantages are: you can add more cases; you can redefine existing cases
16:39 masak hm
16:40 masak not sure I need add more cases in the atan2 case
16:40 masak it's fairly stable
16:40 masak and the switch feels easier
16:40 masak but maybe I'm just not used to the idea
16:44 kolibrie fglock: that is a big benefit in subclasses
16:45 kolibrie so far, I've only really thought about readability
16:46 kolibrie I only really started understanding multis when I looked at haskell
16:46 luqui ... which doesn't really have them
16:46 luqui (well, type classes sortof do)
16:46 luqui (but I think type classes are far too sane a way to do them for perl)
16:46 kolibrie well, you can define the same function multiple times with different arguments
16:47 luqui no you can't....  it's just a different syntax for a switch at the top level
16:48 kolibrie oh, well, that syntax helped me understand things, even if under the hood it's just a switch
16:48 luqui :-)
16:48 masak luqui: why does the fact that it can be understood as a switch at the top level disqualify it as an MMD?
16:49 luqui masak, it's not distributed
16:49 masak (note that I still don't think I grok MMD)
16:49 luqui you have to define all the cases right next to each other
16:49 masak luqui: I see
16:49 kolibrie oh really, I missed that
16:49 masak so MMD is like in Haskell, but (possibly) distributed? :)
16:50 luqui I.. guess so.. except haskell also prefers the one that was defined earlier, not the one that is most specific
16:50 luqui so it's really not at all like mmd
16:50 luqui (it side-steps the many problems one runs into when designing an mmd system)
16:51 masak luqui: couldn't preferring-the-earlier-definition just be considered a type of MMD strategy?
16:51 kolibrie only if they are all defined right next to each other
16:51 luqui yeah, but nobody would consider it a good one for a distributed system
16:51 luqui kolibrie, exactly
16:54 masak sounds reasonable
16:54 masak so what _would_ be a good MMD strategy?
16:54 * masak guesses that this is sort of the central question, but still...
16:54 luqui who knows..?  I tried to define one a while ago, which got mostly adopted
16:55 luqui until it started getting bloated with semicolons and other stuff whose benefit is not totally apparent to me
16:55 masak :)
16:55 luqui (but I haven't seen it hurt anything... yet)
16:55 masak just give it time...
16:56 masak as soon as the semantics can not fit inside the head of the programmer, there will be problems
16:56 luqui uh huh
16:57 masak MMD is a good candidate for such a non-fitting semantics
16:57 luqui I think that my scheme (I say "my" scheme, but in fact it is the most used scheme in academic literature) is the best possible one for the strategy we are taking
16:57 luqui i.e. defining single methods with multiple signatures
16:57 luqui but I think there's another angle which could be much, much better
16:58 luqui so that is what cpan is for ;-)
16:58 masak luqui: yes.
16:59 masak MMD is a good idea, but nobody knows how it will look
16:59 masak we'll probably need 1e3 bad implementations before hitting gold
16:59 masak ten years from now, we'll find the perfect MMD implementation on CPAN
17:00 masak that's "distributed computing" for you :)
17:00 * luqui heads off to write a program which will write mmd implementations so we can get past the 1e3 quickly
17:00 masak sorry, you can't fool statistics like that :)
17:01 masak CLOS has MMD, has anyone looked at that?
17:01 * masak hasn't
17:01 luqui yeah
17:01 luqui it is leftmost
17:01 luqui widely regarded as "sucky"
17:01 masak oh, ok
17:01 masak :)
17:01 masak leftmost sounds simple though
17:01 masak why's it sucky?
17:02 luqui well, for one, you can't do a generic case
17:02 masak which means?
17:02 luqui if you define a multi on (Any, Any), it will get picked up if the left argument doesn't match
17:02 luqui regardless of the right argument
17:02 masak ah, ok
17:03 luqui er...
17:03 luqui that was a bad example
17:03 masak yes, that does sound wrong
17:03 masak I think I got the gist, though
17:03 luqui yeah, why should the left be more special than the right?
17:03 luqui (see my bitch about semicolons ;-)
17:03 masak favoring the earlier arguments is wrong merely because there's no good reason to
17:04 masak however,
17:04 masak what if i define f(B, Any) and f(Any, B) and then call f(B, B)?
17:04 luqui ambiguous, no doubt
17:04 TimToady joined perl6
17:04 masak how would a sane MMD handle it?
17:05 luqui as "ambiguous" yes
17:05 masak ok
17:05 luqui essentially every scheme we have looked at which is not leftmost calls that ambiguous
17:05 masak is there another good example which furthers thinking similarly?
17:05 luqui though that is one of the things that a really good mmd scheme would not die on
17:05 masak luqui: how would it not die?
17:05 luqui that is, if f(B, Any) and f(Any, B) have symmetrical implementations, then it wouldn't die
17:06 luqui because it doesn't matter which one you call
17:06 masak you'd have to annotate the symmetry somehow
17:06 masak but yes, that'd be sweet
17:09 masak ok, another one: C extends B1 and B2 which both extend A, and I define f(B1) and f(B2) and then call f(C)
17:09 masak is that ambig too?
17:09 luqui yep
17:09 luqui and that's the MI thing
17:09 masak yes
17:09 TimToady joined perl6
17:09 masak I'd hate it if all MMD gave me was ambig all the time
17:10 luqui using multiple inheritance (or multiple role composition) you can make any set of multimethods ambiguous
17:10 masak I'd want a clear set of rules that I could apply so as not to end up with ambig calls
17:10 luqui provided that the multis were not already linearly ordered
17:10 masak so the clear rules would say something like: don't mix MMD and MI?
17:11 luqui perhaps...
17:11 luqui if you ignore MI, you can detect all combinations which would be ambiguous
17:11 luqui then if you define multis for those combinations you are guaranteed not to have ambiguous calls
17:11 luqui again, in the absence of MI
17:12 luqui MI really screws things up
17:12 masak so let's leave it out for now
17:12 luqui (but I don't think that's a reason to ban it; it just means you have to be careful with it)
17:13 masak 'course
17:13 masak it's Perl we're talking about
17:13 masak freedom under responsibility
17:13 masak dangerous and powerful things Can Be Mixed
17:13 masak (At Your Own Risk)
17:13 luqui but you might get something dangerously powerful
17:14 luqui or powerfully dangerous
17:14 luqui I suppose the first one is what you want
17:14 luqui DAPTCBMAYOR
17:15 luqui a little less pronouncable than TIMTOWTDI
17:15 masak that's ok; TIMTOWTPI :)
17:16 luqui dapticmayor (silent b)
17:17 lihaitao joined perl6
17:20 masak ok, the way I see it, all examples of ambiguity I can think of either boil down to too-many-matches in the end, or no-exact-matches but one or more "almost matching" signatures, for some definition of "almost matching"
17:24 putter joined perl6
17:24 elmex joined perl6
17:25 masak I'd be ok with standard MMD giving up on both of these
17:26 mako132_ joined perl6
17:26 bonesss joined perl6
17:27 putter fglock: ping?
17:27 fglock putter: pong
17:28 putter hi fglock.  I'd like to add p5 stuff to http://www.vendian.org/mncharity/TemporaryURL/deleteme.png
17:28 putter Do you have a chance to give me a brief?
17:28 fglock sure
17:29 putter audreyt once had a nice pyramid slide.  how much of that is still valid?
17:29 fglock looking...
17:29 * putter tries to find it too...
17:30 fglock it's still mostly valid for v6.pm
17:30 fglock putter: http://pugs.blogs.com/photos/visiolization/v6alphastack.html
17:30 lambdabot Title: Visiolization: V6alphastack
17:30 fglock only re::override and autobox were not used
17:31 araujo joined perl6
17:31 bernhard joined perl6
17:31 putter ok.  how far have things progressed?
17:32 putter i didn't see a v6-alpha smoke...
17:32 fglock when it got the Data::Bind problems, I started a plain p5 impl - but then, a plain p6 impl seemed more reasonable...
17:33 fglock and mp6 was started - http://pugs.blogs.com/photos/visiolization/mp6bootstrap.html
17:33 lambdabot Title: Visiolization: Mp6bootstrap
17:33 fglock mp6 would compile both to p5 and haskell
17:33 putter looking...
17:36 putter ok, let's see.  first approach.  if D::B ceased to have problems, what then?
17:37 fglock then v6 devel would proceed, with some parts being replaced with p6 code
17:37 fglock the "new" v6 is still in: misc/pX/Common/Pugs-Emitter-Perl6-Perl5-2
17:38 putter does mp6 use any of the v6a stack?
17:38 fglock mp6 replaces the pyramid with all-new mp6 code
17:38 fglock it's implemented from scratch
17:39 putter so Moose won't be used for instance?
17:39 fglock no - the only cpan module is Scalar::Util
17:40 fglock which is used to implement the Match object (for accessing the inside-out)
17:41 putter hmm.  my fuzzy recollection was things like Data::Bind and PadWalker were there to provide efficient p5 implementation of primitives.  can one really avoid them entirely?
17:41 fglock yes!
17:41 putter ok. :)
17:42 fglock this came from the experiments for v6-2
17:42 fglock you can do some reasonably clean tricks
17:42 bonesss joined perl6
17:43 putter ok, so wrapping up the old approach...
17:43 putter if DB was working, any idea how much of smoke would pass?
17:43 fglock maybe 10%
17:44 putter with the bottleneck being... PCP?
17:45 penk joined perl6
17:45 * putter tries to picture what the next step would have been had D::B worked...
17:45 fglock the next problem would be the container implementation, which was started in v6-2
17:45 putter tell me about v6-2?
17:46 fglock v6-2 had more compile-time context - it could tell the difference between interpolating and non-interpolating lists, for example
17:47 fglock this was giving v6 a lot of failing tests
17:48 fglock and v6-2 could generate more optimized code, when possible
17:48 putter so the things v6-2 needed and didnt finish were containers, ... and what else?
17:49 fglock the plan was to follow the pil-run development - lazy lists, junctions
17:50 putter ok.  any questions about v6-1 or v6-2 that I should have asked but didnt?
17:51 fglock at that point, using cpan wasn't helping much - and the code was getting unmaintainable
17:52 fglock it was getting too difficult to explain the software to new volunteers
17:53 fglock that was near sep/2006, just before the Sao Paulo hackathon
17:54 fglock I sketched mp6 on the plane to Sao Paulo, and audreyt helped me design a pugs-like AST
17:55 putter ok, http://www.vendian.org/mncharity/TemporaryURL/deleteme.png updated
17:55 putter look plausible?
17:56 putter (hmm.  those nodes were supposed to be gray... oh)
17:57 fglock that's the big picture :)
17:58 putter :)
17:58 putter ok, mp6 (I keep wanting to type mp3:)
17:59 putter what's the "top level introductory paragraph"?
17:59 fglock mp6 is a bootstrapped ... mp6
18:00 putter "so it implements COBOL and..."?
18:00 fglock you can compile mp6 code using pugs, or v6.pm, or itself
18:00 fglock it's a subset of perl6
18:01 putter v6.pm == v6-2?
18:01 fglock v6.pm is the normal CPAN version
18:02 putter v6-1?
18:02 fglock yes
18:02 putter can you characterize the subset included?
18:04 fglock it has binding with :=  - including deeper structure binding
18:04 fglock simple OO
18:04 fglock scalar/array/hash
18:05 fglock subroutine signatures, with positional parameters only
18:05 fglock class attributes
18:06 justatheory joined perl6
18:06 fglock simple control structures
18:06 fglock grammars, with 'token' only
18:07 fglock tokens have 'return' blocks
18:07 fglock that's it - it's a miniature perl6
18:08 putter ok.  so mp6 is written in this subset.  and compiles this subset.  to some AST?
18:09 fglock .. to mp6-AST - and emits to p5/parrot/...
18:09 putter how does the mp6-AST compare with the pugs AST(s)?
18:09 fglock mp6-ast: http://svn.pugscode.org/pugs/v6/v6-MiniPerl6/miniperl6-ast.pod
18:10 putter it looks quite similar in flavor, yes?
18:10 fglock I can't say, but mp6-AST was designed by audreyt
18:11 putter ok
18:11 fglock she intended to add mp6-to-haskell
18:11 ruoso joined perl6
18:11 fglock so that we could reuse code
18:12 putter ah.
18:12 putter emitters exist for p5 and parrot?
18:13 fglock yes - PAST is under some development lately, and we may have C# some day
18:13 fglock parrot can do 'hello, World!'
18:13 putter do the emitters cover the entire ast?
18:14 fglock no (but this can be fixed at the kp6 level)
18:14 putter ok.
18:15 putter what is the current coverage?
18:15 fglock p5 can bootstrap, so it's "finished"
18:16 fglock parrot can't do class variables, and block-closures
18:16 fglock there is an implementation of the Match class for parrot
18:16 stevan__ is now known as stevan
18:16 fglock which is compilable
18:17 fglock PAST was just started, it doesn't work yet
18:18 fglock ah, and there is mp6-MO
18:18 putter any idea how much of the ast gets exercised by compiling mp6?  or by compiling whatever else it compiles?
18:19 fglock the compilation uses pretty much everything
18:20 fglock mp6-MO can run small programs, but it can't bootstrap
18:20 putter ok, so what is mp6-MO?
18:21 fglock it's mp6 compiled into nothingmuch's meta-object library (MO)
18:22 putter hmm.  ok, before going there...
18:23 ilogger2 joined perl6
18:24 fglock there is a minimal runtime: http://svn.pugscode.org/pugs/v6/v6-MiniPerl6/lib5/MiniPerl6/Perl5/Runtime.pm
18:24 lambdabot http://tinyurl.com/y2jyzb
18:24 fglock defines <space>, <digit>, newline, ... - primitives
18:27 putter ok, so  mp6-source -> mp6-running-on-{pugs,p5} -> mp6-ast -> p5-emitter -> p5-code + minimal-runtime -> works
18:28 putter has it been smoked?
18:28 fglock no
18:29 putter any particular obstacle?
18:29 fglock it's meant as a tool for writing 6-on-6
18:30 fglock it is meant to be rewritten, rather than extended
18:31 fglock it would require a special test suite
18:32 fglock because it would not pass any of the xisting tests
18:32 fglock existing
18:32 * putter writes down reminder to ask about progress on a yaml-based testing framework...
18:33 putter ok, so what is the motivation for mp6-MO?
18:33 fglock btw, there is a t/ under v6-MiniPerl6
18:33 mako132_ joined perl6
18:33 fglock mp6-MO would implement 'full-OO'
18:34 fglock with the same algorithms that pugs would use
18:35 putter so what bits are different between mp6 and mp6-MO?   the emitter?  an additional MO runtime?
18:36 fglock both - class/methods are implemented as a "macro" that expands into MO calls
18:36 fglock MO calls are executed in p5 land
18:37 putter the rest of mp6 is unchanged in mp6-MO?
18:37 fglock yes, it's still the same grammar
18:38 putter is mp6-MO a fork of mp6?
18:38 fglock no, it was planned
18:39 fglock as the next version of mp6
18:39 putter so mp6-MO == mp6-2?
18:39 fglock yes
18:40 putter how far has mp6-MO's oo support gotten?
18:42 fglock putter: ping?
18:42 mncharity joined perl6
18:43 mncharity is now known as putter
18:43 putter sorry about that.  checking log...
18:43 putter pong
18:43 fglock putter: MO is under development
18:44 putter is mp6-MO strictly more capable than mp6-1?
18:45 fglock well, it would be
18:45 fglock if the semantics were right, the extra syntax could be added
18:46 putter I'm not sure I understand.   can mp6-MO compile and run itself on p5?
18:47 fglock no - it can't run the compiler
18:47 fglock it only works with small programs
18:47 autark_ joined perl6
18:47 putter can mp6-MO compile and run mp6-1 on p5?
18:48 fglock mp6-MO must be run from the plain-mp6 compiler - it is not self hosting
18:48 fglock s/run/compiled/
18:50 fglock you can compile mp6-MO to perl5, but it won't run
18:50 fglock instead, you need to compile with plain-mp6, and emit p5-MO - this way you can run small programs
18:51 putter mp6-MO can compile mp6-MO to p5?  it wont run because...?  runtime is incomplete?
18:51 fglock it takes too much ram, too much cpu, and it just dies in the end
18:53 putter ... the mp6-MO new runtime is currently too resource intensive to run mp6-MO?
18:53 putter if not for that (magic wizzy machine) would it work?
18:53 fglock putter: probably yes
18:55 putter so the mp6-MO development path goes from here to... what's next?
18:56 fglock kp6
18:56 putter ok, before we go there...
18:56 putter what did you mean by "if the semantics were right, the extra syntax could be added"?
18:56 fglock things like 'rule'
18:56 fglock oops - role
18:57 putter so even with a wizzy machine, mp6-MO couldn't run mp6-MO or mp6-1 because there is some missing syntax support?
18:58 fglock I mean, mp6-MO would have the extra keywords added
18:59 putter mp6-MO is currently missing keywords needed to run mp6-MO and mp6-1?
19:01 fglock hmm - no, it reuses the mp6-1 grammar. It only misses the 'OO' words that define the "extra" semantics provided by MO
19:01 fglock so running mp6-1 would be fine
19:03 putter so mp6-MO is written in a slightly larger p6 subset than mp6-1?  and mp6-1 can handle this larger subset, but mp6-MO cannot?
19:05 fglock in other words, mp6-MO compiles to the "p5-MO" VM - which is an enlarged p5 VM
19:06 fglock but the syntax is the same
19:10 putter I'm still unclear on why/whether mp6-MO can't self host.  earlier it was said mp6-MO can be run by mp6-1.  which implies mp6-MO is implemented in the same dialect as mp6-1.  so I'm unclear where the syntax stuff comes in...?
19:10 fglock if mp6-MO worked (self hosted)
19:10 fglock then the extra syntax would be added
19:11 putter ahhhhhh
19:12 lisppaste3 lumi pasted "Can't make test, got clue?" at http://paste.lisp.org/display/35417
19:13 putter if mp6-MO could self host, which it cannot (hypothesized to be strictly due to it's runtime/emitter?performance), then
19:13 putter the next development step would have been to add syntax to expose some of the new features which mp6-MO adds over mp6-1.  yes?
19:14 fglock yes
19:14 putter woot :)
19:14 putter was it runtime or emitter performance, or both?
19:14 fglock runtime
19:15 putter ok... any additional thoughts on mp6-MO before moving on to kp6?
19:17 putter lumi: once upon a time, long ago, one sometimes needed to run "make" before "make test".  other than that, no idea
19:17 putter is kp6 == err, "mp6-3"?
19:18 fglock the idea after mp6-MO is to make mp6 pluggable
19:19 CardinalNumber joined perl6
19:19 lumi putter: Interesting theory.. but I've run make fast, and I can run individual tests with it
19:19 fglock we can still have MO as an alternate backend
19:19 putter "after mp6-MO" == kp6?
19:19 fglock no, mp6 is frozen
19:19 lumi (Er, with the ./pugs that was born)
19:19 fglock kp6 is a new architecture
19:19 putter mp6-1 and mp6-MO are frozen?
19:20 fglock mp6-MO is more frozen :)
19:20 fglock mp6 is one of the backends that kp6 will support
19:20 putter mp6-1 is "finished" but not "frozen", and mp6-MO is frozen?
19:21 putter hmm.  what is kp6?
19:21 neonse joined perl6
19:22 fglock kp6 can compile a bigger p6 subset into the "desugared p6" supported by mp6
19:22 kolibrie fglock: this is a very interesting history lesson about the past several months :)
19:22 kolibrie putter: thanks for asking all the right questions
19:22 putter a rearchitecting of mp6-1?
19:23 fglock yes
19:23 fglock mp6-1 uses controller scripts for the compilation workflow
19:24 fglock kp6 makes it easier to add/take things from the workflow
19:24 fglock such as AST transformations
19:25 putter does kp6 self host?
19:25 fglock self-hosting is not the primary goal - it currently compiles with mp6
19:26 putter kp6 runs on pugs as well as mp6-1-on-p5?
19:27 fglock I didn't try it on pugs, but it should work
19:28 putter the kp6 implementation is a massaged version of mp6-1?
19:29 fglock mp6 is like:   parse->emit  - all AST transformations are made at one of these phases
19:30 fglock kp6 is like:  parse->(run AST plugins)
19:30 fglock a plugin can dump AST, emit code, rewrite subroutines...
19:31 buetow joined perl6
19:31 fglock final-kp6 will have extra semantics
19:31 putter how does the performance of pugs and mp6-1 compare?
19:32 putter roughly
19:32 fglock the target is to be no more than 20% slower
19:33 putter and the current state?
19:33 fglock I've not benchmarked yet
19:34 fglock the extra semantics will be: lexical subs and classes; metamodel interface; begin blocks; containers
19:34 putter handwaving - about the same? within 10x?  within 100x?
19:34 fglock about the same
19:34 putter nifty
19:36 fglock at the expense of about 2x extra code, which is there just in case you need to call it
19:37 putter ok, so what is mp6-1's development state?  bugfix only?  still adding features?
19:38 fglock only adding/fixing backend stuff
19:38 putter "backend stuff"?   p5 emitter?
19:39 fglock p5, parrot, past, ...
19:39 putter runtime?
19:39 fglock runtime, too - but only as-needed
19:39 putter ok, limiting it to p5, emitter?  runtime?  both?
19:40 putter s/it/the question/
19:40 fglock there were minor fixes to mp6 even today
19:40 putter bugfixes.  is the p5 emitter and runtime being added to?
19:42 fglock yes - for example, the ast for "$var()" was not supported until today
19:42 putter I'm trying to get a feel for whether mp6-1 on p5 is "finished"/feature complete/bugfix only, or if it is continuing to be extended as kp6 say discovers new needs...
19:42 putter ah, ok
19:42 mako132_ joined perl6
19:43 fglock but mp6 will not be extended with new features
19:43 putter "$var()" != "new feature"?
19:43 fglock it supported $var.() which is a method call
19:44 putter but...
19:45 putter but didn't support...X?
19:46 fglock it's kind of difficult to tell bugfixes from missing features...
19:46 putter :)
19:46 putter ok, let's see...
19:46 fglock in this case, reusing $var.() would possibly introduce bugs later
19:47 putter so mp6-MO entirely abandoned at this point?
19:48 fglock yes - it will come back as a kp6 plugin
19:48 putter and MO is being rethought to address its performance problems?
19:49 fglock yes, but MO is a separate project
19:49 fglock kp6 will likely have several choices for OO
19:49 fglock including Moose, for example
19:50 putter so the mp6-MO runtime is abandoned?  and a fresh MO implementation will be attempted at some point?
19:50 fglock and native-perl, and native-parrot...
19:50 fglock yes
19:51 putter why is mp6-1 being used to run kp6 rather than pugs?
19:52 fglock because guarantees that kp6 can support p5, and maybe parrot later
19:52 fglock s/because /because this/
19:53 fglock it should be kept bootstrappable
19:54 putter ok, so what is kp6 capable of now?
19:54 fglock the plugin system looks ok
19:55 fglock currently there are 2 plugins written
19:55 ingy TimToady: ping
19:56 ingy hi fglock
19:56 stevan heya ingy
19:56 fglock there are several p5/mp6 prototypes, implementing the other ast transformations
19:56 ingy hi stevan!
19:56 fglock ingy: hi!
19:56 stevan putter: MO is very different from Moose
19:56 fglock putter: it's under implementation
19:56 ingy MO?
19:57 stevan ingy: it's nothingmuch's take on the meta-object stuff
19:57 stevan more in line with the Haskell world
19:57 ingy OSE!
19:58 putter stevan: hi.  ok.  not being able to multitask like audreyt, I'll get back to that in a bit... ;)
19:59 putter how far is kp6 from being able to run mp6-1?  how far from self hosting?
19:59 stevan putter: nothingmuch is the best one to discuss it with, all I can give is a rough overview
20:00 putter k
20:01 fglock putter: there is no point in self-hosting right now, because the extra code is just plain mp6
20:02 putter can kp6 run mp6?
20:02 fglock yes - it just adds extra semantics
20:02 putter so kp6 can currently run itself?
20:03 fglock such as lexical subroutines
20:03 fglock yes
20:04 putter so kp6 is indeed currently self hosting (ie, capable of running itself).  it just usually isn't currently run that way.  yes?
20:04 fglock yes
20:05 putter and mp6-1 is being kept around because... it's easier to tweak than a snapshot of kp6?
20:06 fglock mp6 will be discarded at some point - it's just not a priority right now
20:08 putter how does kp6 compare to mp6-1 performance?
20:08 fglock and kp6 will be discarded after 6-on-6 is out
20:08 TimToady ingy: pong
20:08 putter (about the same, withing 2x, within 10x, etc)
20:09 fglock native oo being faster than full-mop
20:09 fglock the performance will depend on the emulation level
20:09 fglock currently within 2x
20:09 fglock I hope it will stay there
20:10 putter so current kp6 on p5 is within 2x of mp6-1 on p5 and of pugs?
20:10 fglock I don't know about pugs
20:11 fglock this would require writing very specific benchmarks
20:12 putter so mp6-1 is with Nx of pugs for some small integer factor N, and kp6 is within 2N?   or somesuch?
20:12 fglock maybe trying to compile something with kp6 under pugs...
20:12 fglock yes
20:13 putter ok, let's see...
20:13 putter oh, yes.  so what is 6-on-6?
20:13 fglock mp6 is likely faster than pugs - it generates very plain p5
20:14 fglock 6-on-6 is the next compiler rewrite after kp6
20:14 fglock (mp6 is also 6-on-6, kind of)
20:15 putter at what point does work on kp6 shift to 6-on-6?
20:15 fglock 6-on-6 allow using OO for writing the compiler itself - that's the main difference
20:16 fglock as soon as kp6 has reasonable support for OO and containers
20:16 putter so mp6-1 and kp6 don't use oo for the compiler?
20:16 fglock not really - they use "native" OO
20:17 fglock rather than "perl6 OO"
20:17 hexmode joined perl6
20:17 putter so 6-on-6 would have been built on mp6-MO if its performance had been acceptable?
20:17 fglock hmm - I've got to go
20:18 fglock putter: yes
20:18 putter ah, ok
20:18 putter thanks for your afternoon :)
20:18 fglock thank you :)
20:20 putter some random left over questions...
20:22 putter the mp6-ast doesn't look like it supports "full oo".  much oo at all actually.  is there a mp6-ast-oo analogous to the pugs ast-withj-oo work?
20:23 putter what is the state of pugs ast-with-oo?
20:24 putter how did mp6-MO deal with absence of oo ast?   typenames?
20:24 putter ah.  its no fun to do this kind of thing blind.  :/
20:25 ingy hi TimToady
20:25 putter hey ingy
20:25 ingy hey there putter
20:25 TimToady howdy all
20:25 ingy TimToady: I will try to msg you again...
20:27 ingy TimToady: did you get my msg of "yo"?
20:28 putter howdy TT.  I was wondering earlier what variables exist whose frobbing would increase the rate at which spec is generated.  Would a duplicate Larry or three do it?  ramped
20:28 putter up pugs development?  what other constraints are around?
20:29 putter need to clone all(@Larry) ?
20:30 putter have more audreyt or someone time asking questions/clarifications?
20:31 putter thoughts?  (i need a node for the graph...;)
20:31 TimToady spec is mostly generated lazily on demand these days
20:33 putter so an effort to code, in say pugs p6 dialect, things like IO and events, might be userful in motivating spec
20:33 putter ?
20:33 putter hmmm
20:34 putter steven: hey steven.  how goes the big hairy smelly aggressive road hazard?
20:36 * putter thinks only someone living in the arid mediterranean could love mooses...
20:36 putter ;)
20:36 Limbic_Region joined perl6
20:37 TimToady the IO and event models have probably been thunk about more (or at least differently) in the parrot world
20:39 TimToady but I think a lot of spec-demand is pent up waiting for 6on6
20:39 TimToady people writing various emitters for that will have to negotiate what's possible/efficient across many platforms
20:40 araujo hi there TimToady
20:40 TimToady hi
20:40 putter lambdabot: ?tell fglock did the Data::Bind people ever get a bug report?  some kp6 plugin or 6o6 runtime might need it.
20:40 lambdabot Consider it noted.
20:40 araujo :-)
20:43 putter re IO/event... hmm.  i wonder if one could get by with unrunnable p6-side class code, and attempts at backend runtime supports.  as a way of decoupling them from 6o6 and emitters.
20:43 putter s/them/spec progress/
20:44 putter ah well.  keep an eye on the critical path...
20:44 PerlJam putter: IMHO, the sooner we get to a place where people are using code (in what ever capacity) the better it is for the spec.  :-)
20:46 putter indeed.  I'll include both "graph edges".
20:47 putter since rewriting compiler cores seems to be the name of the game, does anyone have a favorite "it was just awesome" compiler architecture to steal for 6-on-6?
20:49 * gaal invites everybody to live in the mediterranean (not all of it's arid you know) and share the love
20:50 putter re IO/Event, PIL2JS could be used to explore them now, though since pugs doesn't (maybe does now?) ast class defs, you would have to code the classes at both ends...
20:50 TimToady we're kinda hoping everyone will want to steal our architecture...
20:51 ingy gaal: I'm on my way
20:51 putter i suspect rev 1 will be a throwaway... if only because of the advantages of constraining vocabulary
20:53 TimToady besides most compiler architectures prematurely optimize for things P6 doesn't want to prematurely optimize for.
20:53 TimToady such as assuming the same language is being compiled throughout.
20:54 TimToady in fact, arguably the weekend angst over -f and friends is caused just by such assumptions.
20:55 TimToady P6 assumes only longest token within the current set of active grammatical categories.
20:55 TimToady so in a sense you have two or more different languages interleaved on the token level.
20:55 TimToady depending on what the parser is expecting at the moment.
20:56 * PerlJam is *so* glad Moore's law is still in effect ;)
20:56 TimToady -f is a token when a term or prefix is expected.
20:56 TimToady it would not be a term where an infix is expected.
20:56 gaal ingy: whee!
20:56 ingy :P
20:57 * gaal is trying to think which med city would be most appropriate for ingy
20:57 gaal tlv's surely a candidate
20:57 * stevan thinks ingy would make an excellent greek god
20:58 ingy oh yeah!
20:58 * gaal doesn't know any greek perl monks
20:58 gaal the one with the paradigmatically greek name doesn't live there
20:59 Limbic_Region gaal - perhaps http://tinymicros.com/pm/index.php?goto=BigMonkMap
20:59 lambdabot Title: Perl Monks Statistical Page
20:59 stevan putter: to answer you earlier query,.. Moose is curing right now
20:59 * stevan put it into a big oak cask and stashed it in his basement
21:00 gaal whee there is one! who even seems to be active in pm!
21:00 putter hmm.... pickled moose...
21:01 stevan putter: $work has taken priority,.. and to be honest,.. I need a break from meta-ness :)
21:02 gaal whoa cool! http://www.maperl.com/
21:02 lambdabot Title: S/V Mother of Perl --
21:03 * stevan grumbles about freenode and lost passwords again
21:03 gaal zzZ&
21:04 putter TimToady: re -f, I was kind of wondering if the issue would go away if -f was moved to the Prelude, but, in the past that has sometimes not been simple, and more lambdas are needed...  But moving stuff to p6 is one way to avoid fighting hs.
21:04 putter g'night gaal
21:05 TimToady well, the idea is to move the whole parser to P6 eventually.
21:07 luqui nice boat :-
21:08 putter hmm.... graph is getting messy... reflecting my lack of clarity about what is going on...
21:10 putter hey, putter realizes there are people here... ;)
21:10 putter do we have an oo-enabled ast at this point?
21:10 putter on pugs that is?
21:11 putter or are we still in the mode where the pugs's ast doesn't explicitly mention class definitions and the like?
21:11 stevan putter: gaal and audreyt were working on it back in Boston last summer
21:12 putter nothing more recent?
21:12 stevan and I think that work has been just basically waiting for a metamodel to back it
21:12 stevan putter: I really couldnt say ,.. I know the MOH (MO in Haskell) work was going on pre-holidays, but seems to have slowed recently
21:13 TimToady I suspect that subproject is strongly modulated by the audreythrottle.
21:13 putter hmm.  oo ast has been something resembling a critical path block for a year and half.  if metamodel is requirement, has that gotten appropriate priority?
21:14 * stevan cheers the freenode staffers for helping him restore his password
21:14 putter freenode staff++
21:15 putter ooo... "audreythrottle"  :)
21:16 putter sigh.  companies spend $3k on weekly lunches, and we haven't managed to get audreyt FT... :(
21:16 TimToady I think the metamodel has definitely been considered a priority and a lot of work has gone into it.  It mostly just needs stitching in.
21:16 justatheory joined perl6
21:18 putter ok, editing graph...
21:34 _marco joined perl6
21:43 putter does a full grammar() for rules exist at this point?
21:44 putter a full grammar for p6?
21:47 putter TimToady: the other day you mentioned a "unified ast".  is that a pugs ast with oo and typing unified with a parrot ast?
21:47 TimToady something like that
21:50 TimToady I don't think anyone has a full grammar yet.  We could use one of those too...
21:55 larsen_ joined perl6
22:07 jferrero joined perl6
22:09 GabrielVieira2 joined perl6
22:09 jferrero is now known as JoaquinFerrero
22:35 dduncan joined perl6
22:43 gene9 joined perl6
22:44 gene9_ joined perl6
22:47 gene9_ is now known as as
22:54 justatheory joined perl6
23:00 GabrielVieira2 is now known as GabrielVieira
23:10 neonse left perl6
23:13 prism joined perl6
23:17 Aankhen`` joined perl6
23:49 putter TimToady: ping?
23:53 Psyche^ joined perl6
23:57 mako132_ joined perl6

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

Perl 6 | Reference Documentation | Rakudo