Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-10-26

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:10 thepler joined perl6
00:34 SCalimlim joined perl6
00:50 ferreira joined perl6
01:12 hexmode joined perl6
01:20 mjk joined perl6
01:21 mauke joined perl6
01:24 f0rth joined perl6
01:25 seano joined perl6
01:29 jarich left perl6
01:39 mauke_ joined perl6
01:45 jferrero joined perl6
01:54 justatheory joined perl6
01:54 nothingmuch joined perl6
01:58 weinig joined perl6
02:03 nipotaway is now known as nipotan
02:18 mako132_ joined perl6
02:37 weinig is now known as weinig|zZz
02:49 Pomin joined perl6
03:06 araujo joined perl6
03:36 nusgnaf joined perl6
03:59 xern_ joined perl6
04:41 penk joined perl6
04:59 clkao audreyt: http://william.cswiz.org/blog/archives/2006-10-24/dynamic-lang-events/ # sadly, no mention to perl at all
04:59 lambdabot Title: William’s Blog » Blog Archive » 幾則關於動態型別語言的事件, http://tinyurl.com/yfg7z7
05:15 BooK_ joined perl6
05:25 [particle] joined perl6
05:29 SubStack joined perl6
06:34 Captain_Fourier left perl6
06:38 iblechbot joined perl6
06:47 marmic joined perl6
07:02 Debolaz Hmm, why was it decided that perl 6 should be more sensitive to whitespace?
07:19 ditto joined perl6
07:31 pmurias joined perl6
08:00 gugod if I print a scalar ref returned from perl5, it gives me a SCALAR(0x20b9d04). How to let it print the referent ?
08:00 lambdabot gugod: You have 1 new message. '/msg lambdabot @messages' to read it.
08:05 clyde joined perl6
08:08 araujo joined perl6
08:13 dmq if $foo is a scalar reference then you dereference it by saying $$foo
08:13 dmq or by saying ${$foo}
08:15 elmex joined perl6
08:17 gugod right, I though so, but pugs doesn't seem to know that
08:17 gugod my $a = eval('\42', :lang<perl5>); say $a,$a
08:17 gugod say $a, $$a
08:18 gugod theri output are the same
08:22 drrho joined perl6
08:22 kensanata joined perl6
08:33 dmq er, and what happens if you eval '\\42' and not '\42'?
08:34 dmq does pugs have the same string semantics as perl5? is '\42' the same as '\\42' ?
08:45 gugod in pugs yes, '\\42' eq '\42' is true
08:45 clsung joined perl6
08:47 ruoso joined perl6
08:54 ozayam joined perl6
09:04 dakkar joined perl6
09:21 jferrero joined perl6
09:37 buetow joined perl6
09:42 * drrho is away: watching kommissar Rex
10:04 TimToady joined perl6
10:14 ditto joined perl6
10:17 TimToady @tell Debolaz whitespace is discussed at S02:227 or thereabouts.  The short answer is consistent parsing of postfix operators, both known and unknown.
10:17 lambdabot Consider it noted.
10:18 TimToady zzz &
10:20 andara joined perl6
10:31 nekokak joined perl6
10:53 polettix joined perl6
11:00 lichtkind joined perl6
11:00 Odin-LAP joined perl6
11:01 lichtkind audreyt will there be future version of perl6::bible or you looking for new maintainer?
11:08 audreyt lichtkind: docs/Perl6/ should be packed up and released to cpan
11:08 audreyt perl6::bible should disappear from cpan once Perl6-Doc/ is uplaoded
11:08 audreyt lichtkind: are you willing to clean it up a bit, make sure p6doc is working, and upload?
11:09 lichtkind audreyt willing yes but currently dont have time to do so, currently have several project and yesterday just began to write again on tutorial adding the new stuff with captures and some smatmatch additions
11:09 audreyt do you have a CPAN ID? curiously I can't seem to find you in AUTHORS...
11:10 audreyt oh of course you do. it's just it's not in AUTHORS
11:10 lichtkind audreyt of course lichtkind
11:12 lichtkind audreyt there is currently a new attempt for unificated translated perldoc wich i also interested in + the new german perlcast + i never did author anything on cpan + my new soduko game written in wxperl but beside of that it attracts me :)
11:13 audreyt ok, you are now comaint of Perl6::Doc
11:13 svnbot6 r14530 | audreyt++ | * Add LICHTKIND to AUTHORS
11:13 audreyt please make release whenever you feel lik :)
11:13 ditto left perl6
11:14 xinming_ joined perl6
11:16 lichtkind audreyt you mean perl6::Doc :)
11:16 audreyt well, I think I mean Perl6::Doc
11:17 lichtkind haha
11:19 lichtkind audreyt sorry that i dindt mad much last weeks i had to help out family
11:20 audreyt that's just fine :) I didn't hack on Pugs as much in the last 3 days either...
11:21 audreyt but we did make comet (server-pushed event with publish/subscription) on Jifty work happily
11:21 audreyt and that's all thanks to Perl6 for being a great prototype language!
11:21 audreyt (I prototyped in Pugs and then hand-ported to perl5. once v6.pm has better "idiomatic output" the handport stage can go away)
11:23 audreyt sleep a bit more, bbiab...
11:27 fglock joined perl6
11:27 lichtkind good night audrey
11:29 Psyche^ joined perl6
11:46 Psyche^ is now known as Patterner
11:47 nipotan is now known as nipotaway
11:56 kensanata joined perl6
12:03 Limbic_Region joined perl6
12:13 pnu joined perl6
12:20 pnu joined perl6
12:26 pnu joined perl6
12:29 nusgnaf joined perl6
12:32 pnu joined perl6
12:51 thepler joined perl6
12:56 fglock joined perl6
13:01 nothingmuch audreyt: ping
13:01 lambdabot nothingmuch: You have 1 new message. '/msg lambdabot @messages' to read it.
13:01 nothingmuch @moosages
13:01 lambdabot cmarcelo said 1d 13h 6m 38s ago: just commited more bits on moh, take a look to see where I'm having trouble understanding MO. I'll be back in about 2hr.
13:01 nothingmuch ah right
13:01 nothingmuch @seen cmarcelo
13:01 lambdabot I saw cmarcelo leaving #perl6 1d 3h 2m 20s ago, and .
13:01 nothingmuch bleh ;-)
13:02 iblechbot joined perl6
13:12 Limbic_Region joined perl6
13:20 polettix is now known as bond
13:22 bond is now known as polettix
13:42 chris2 joined perl6
13:59 rlb3 joined perl6
14:02 ruoso joined perl6
14:02 cmarcelo joined perl6
14:07 cmarcelo nothingmuch: ping
14:07 nothingmuch cmarcelo: ah!
14:07 nothingmuch finally we're awake at the same time
14:08 nothingmuch ik wanted to talk with you about Class, IORefs/STrefs etc
14:11 cmarcelo ok :)
14:12 nothingmuch do you know [of] purely functional object oriented programming?
14:13 nothingmuch http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.pdf # short and sweet
14:13 lambdabot http://tinyurl.com/y42fgq
14:13 nothingmuch essentially MO is a functional OO system
14:13 nothingmuch meta classes with IORefs etc should be inverted before computation
14:13 nothingmuch to keep the meta code simple
14:14 nothingmuch inverted == traverse the meta class object tree, and map all all fields so that they are IORef x -> IO x
14:14 nothingmuch and then return back an IO MetaclassTree
14:15 nothingmuch instead of a IOMetaclassTree or something like that
14:15 nothingmuch so, to KISS - simply ignore the need for IORefs right now, we'll glue them in like this when we actually need a rewritable meta model in pugsland
14:16 nothingmuch maybe we can use functional reactive programming techniques to let the meta model recomputation happen "automatically"
14:22 cmarcelo hmm.. going to read about Fun OO then :).. about IORef I think I was worried about designing for this rewritable model. but agree on keep it simple.
14:23 nothingmuch we don't really need to
14:23 nothingmuch we can just naively recompute it for starters
14:23 nothingmuch the whole thing
14:24 nothingmuch and worry about optimizing later
14:24 nothingmuch the reason i don't wnat to be too clever up front is the whole target/origin schism
14:24 nothingmuch sub objects are collected in the first pass
14:24 nothingmuch and then compiled
14:25 nothingmuch any related meta object (presumably the whole tree) changing might invalidate some seemingly unrelated computations
14:25 nothingmuch for example if some class overrides the 'id' method
14:25 nothingmuch first time ever
14:25 nothingmuch and 'id' is inherited from the Object class
14:25 nothingmuch then all the dispatch code that was previously allowed to assume 'id' can be statically dispatched must now be rewritten to make it a virtual dispatch
14:26 nothingmuch it's not that we need to statically dispatch at all (we can make it all virtual dispatch)
14:26 nothingmuch but MO is designed to allow static dispatch in it's protocol, and the dependency graph for revalidating that is just too large and too implementation specific to handle it within MO itself
14:27 nothingmuch (it's the compiler toolchain that's reusing MO that's responsible for triggerring recomputations)
14:27 cmarcelo also, I'm a little bit blind on some concepts of MOP. specially applied to our case. for example, a method definition would be a piece of AST or p6 code or backend code? will it be desugared by MO, e.g., will replace method calls with proper MO calls?
14:27 nothingmuch ah
14:27 nothingmuch this is just what i'm dealing with npow
14:27 nothingmuch let me take my dog for a walk
14:27 nothingmuch while you read up on FO
14:27 nothingmuch i'll be back in 20-30 mins
14:28 nothingmuch and we can discuss the emitter
14:28 nothingmuch maybe you can help me out too =)
14:28 nothingmuch the emitter is not as scary as it sounds though ;-)
14:28 nothingmuch sounds good?
14:29 cmarcelo hmm.. lets do it in ~ 1h30 from now, my lunch time begins around 20-30 mins :o)
14:30 nothingmuch okay
14:30 nothingmuch deal
14:30 nothingmuch 18:00 my time
14:30 nothingmuch oh goody
14:30 * nothingmuch forgot he promised to help someone restore her disk
14:30 nothingmuch i would have had to disappeaer in about 30 minutes anyway ;-)
14:30 nothingmuch ttyl
14:31 cmarcelo ok
14:35 lichtkind joined perl6
14:38 hexmode joined perl6
14:46 weinig|zZz is now known as weinig
14:46 jabbot joined perl6
14:54 [particle] joined perl6
14:58 pfenwick joined perl6
15:01 gaal joined perl6
15:21 rindolf joined perl6
15:21 rindolf Hi all.
15:28 PerlJam hello rindolf :-)
15:28 PerlJam What brings you to #perl6 today?
15:30 nothingmuch http://www.haskell.org/yampa/AFPLectureNotes.pdf
15:30 nothingmuch great article
15:30 lambdabot http://tinyurl.com/y5xjat
15:30 nothingmuch cmarcelo: esp. for you =)
15:37 cmarcelo nothingmuch: i'm back
15:38 nothingmuch yo
15:38 nothingmuch my mum's colleague (that needs rescuing) is late
15:38 nothingmuch so we have some time
15:40 rindolf PerlJam: nothing in particular.
15:40 rindolf miyagawa_: here?
15:41 rindolf I read miyagawa_'s presentation slides about Plagger now.
15:41 miyagawa_ hi
15:41 miyagawa_ rindolf: http://plagger.org/trac/wiki/PlaggerPresentations
15:41 lambdabot Title: PlaggerPresentations - Plagger - Trac, http://tinyurl.com/y4nnwd
15:42 rindolf Hi miyagawa_
15:42 rindolf miyagawa_: I read the one you gave to YAPC::EU::2006
15:42 miyagawa_ yep
15:43 cmarcelo nothingmuch: (did you read fglock questyions about MO on logs yesterday/daybefore?)
15:43 nothingmuch nope
15:43 nothingmuch i didn't see any
15:43 nothingmuch maybe i forgot to set /away
15:43 nothingmuch can you summarize shortly? or should I go log digging?
15:44 justatheory joined perl6
15:44 cmarcelo nothingmuch: http://colabti.de/irclogger/irclogger_log/perl6?date=2006-10-24,Tue&amp;sel=130#l273
15:44 lambdabot Title: #perl6 2006-10-24,Tue, http://tinyurl.com/yev396
15:44 nothingmuch ah
15:45 nothingmuch mo is orthogonal to ASTs
15:45 nothingmuch Method::Compiled == the closest thing to a Code there is
15:45 nothingmuch but it has no iomplications on runtime semantics
15:45 nothingmuch MO will at best provide the runtime with a responder interface full of these
15:45 nothingmuch the Method::* classes are responsible for generating/fetching them
15:45 nothingmuch there are two possibilities:
15:46 nothingmuch MO is just a pass through -- the input is predefined (Method::Simple carries around a 'definition' attr, which is just a Method::Compiled, presumably parsed from the class definition. This is an AST)
15:46 nothingmuch MO is a generator -- constructors and accessors must be generated
15:46 nothingmuch the latter is the problem i'm currently working on
15:47 nothingmuch as for speed - MO is potentially compile time only
15:48 nothingmuch and it gives the various meta objects enough data at the right time to violate encapsulation safely
15:48 buetow joined perl6
15:48 nothingmuch for example, type unboxing, accessor inlining, etc
15:49 nothingmuch fglock: please backlog =)
15:49 nothingmuch as for serialzing - the idea is that the meta object is compiled down tto responder interfaces
15:49 nothingmuch and then the responder interfaces are stripped of extra data
15:49 nothingmuch (like the meta class that generated them)
15:49 nothingmuch and these are cache
15:49 nothingmuch d
15:49 nothingmuch probably serialized as a .pm
15:49 nothingmuch using Data::Dump::Streamer
15:49 cmarcelo but, the AST fragment inside M::C will probably call some method of something, so it will call MO again for resolving it. So isnt MO needed runtime (if we dont want to mess with AST fragments) ?
15:50 nothingmuch M::C in this context?
15:50 cmarcelo method::compiled
15:50 nothingmuch ah
15:50 nothingmuch there's two approaches
15:50 nothingmuch one is to use the "native" dispatch vocabulary
15:50 nothingmuch for example, compiling a MO::ResponderInterface::MethodTable into a perl 5 symbol table
15:51 nothingmuch and uspporing only Invocation::Method
15:51 nothingmuch using the ->
15:51 nothingmuch that subset of mo's meta lingo is isomorphic with perl's (With some additional hacks... more on that in a bit)
15:51 nothingmuch this is compiled MO
15:51 nothingmuch interpreted MO is creating invocations etc at runti e
15:52 nothingmuch and using the native dispatch vocabulary to talk with the meta objects only
15:52 nothingmuch in a purely interpreted MO environment we can't self host
15:52 nothingmuch currently i have a purely interpreted environment in perl 5
15:52 nothingmuch i'm working on a compiled environment in perl 5
15:53 nothingmuch does that clarify?
15:56 cmarcelo a little. the idea is, having a OO program, parse it, create MO-land structures, compile it (emit) into p5 code and use this code. (thinking only about Compiled MO).. right?
16:09 cmarcelo nothingmuch: in pugs, then, the compiled mo(h) would emit AST types?
16:09 fglock nothingmuch: backlogging
16:13 ozayam joined perl6
16:18 andara left perl6
16:19 cjeris joined perl6
16:19 nothingmuch cmarcelo: yes
16:19 nothingmuch cmarcelo: i think that moh should not be pugs specific
16:20 nothingmuch it should be more like a library
16:20 nothingmuch that pugs can load up
16:20 nothingmuch and say give it a meta class where it creates e.g. Method::Pugs-ish that is a hs data type that has an instance of the type class for mo methods
16:20 nothingmuch then MO does it's computations
16:20 nothingmuch and returns responder interfaces
16:21 nothingmuch with the Method::Pugs-ish redirected to the right places
16:21 dmq joined perl6
16:23 nothingmuch sorry, phone
16:23 nothingmuch anyway, for pugs it's now simpler to use the results, which are flattenned
16:23 nothingmuch without having to implement a pugs meta model
16:24 PerlJam Are we going to have LARRY and CURLY to go along with MO?
16:24 PerlJam Well, I guess we already have Larry.
16:25 nothingmuch no, h
16:25 nothingmuch that's too much to type =)
16:26 nothingmuch okay, i have to go
16:26 nothingmuch hd stuff
16:27 cmarcelo nothingmuch: ok. some concepts are clearer now.. :)
16:28 cmarcelo nothingmuch: btw, if you have a good pdf/link on MOP (unfortunately I don't have access to the art of mop book), please tell me..
16:32 amnesiac joined perl6
16:33 weinig joined perl6
16:36 nusgnaf left perl6
16:37 araujo joined perl6
16:42 svnbot6 r14531 | putter++ | Regexp/Engine/Reentrant - some very minor tweaks.
16:42 svnbot6 r14531 | putter++ | Development on hold pending exploration of Regexp::Parser::ReentrantEngine.
16:43 fglock joined perl6
16:44 fglock joined perl6
16:45 svnbot6 r14532 | putter++ | regexp_engine_cruft/regexp_engine_factory.pl - removed some very dead code to make file more readable.
16:52 putter joined perl6
17:01 justatheory joined perl6
17:13 fglock joined perl6
17:15 putter fglock: ping?
17:15 svnbot6 r14533 | putter++ | Regexp-Parser-ReentrantEngine - created.  A reentrant Perl 5 regexp engine.
17:15 svnbot6 r14533 | putter++ | This is an initial cleanup and module-ization of February's regexp engine spike.
17:15 svnbot6 r14533 | putter++ | Undocumented but simple api at bottom of ReentrantEngine.pm.  Good coverage (23/961 of re_tests fail).  Ok speed (a few seconds for re_tests).  Untapped simple optimizations.  Match class now non-spec.  Capture code needs cleanup.  Assorted bugs and needed cleanup remain.
17:15 svnbot6 r14533 | putter++ | My own objective is to use this module only in passing, obsoleting it RSN, as soon as I get a free day, by moving it off Regexp::Parser.
17:17 putter &
17:20 seano joined perl6
17:30 Debolaz Is YAML available for perl6/pugs?
17:30 lambdabot Debolaz: You have 1 new message. '/msg lambdabot @messages' to read it.
17:30 nothingmuch cmarcelo: i haven't read the art of mop either... uh... my best suggestion is to get to know Class::MOP well
17:31 nothingmuch Debolaz: eval( :lang<yaml> )
17:31 nothingmuch ?eval eval( "---\nfoo: bar\ngorch: [ 1, 2 ]\n", :lang<yaml> )
17:31 evalbot_r14533 {("foo" => "bar"), ("gorch" => ["1", "2"])}
17:31 nothingmuch ?eval {foo => bar}.yaml
17:31 evalbot_r14533 Error: No compatible subroutine found: "&bar"
17:31 nothingmuch ?eval {foo => "bar"}.yaml
17:31 evalbot_r14533 "--- \n? foo\n: bar\n\n"
17:32 Debolaz Nifty.
17:32 nothingmuch cmarcelo: FWIW, MOP is implemented as a layer over MO
17:35 fglock putter: pong
18:00 FOAD joined perl6
18:38 bernhard joined perl6
18:39 TreyHarris nothingmuch: remind me, please, where the MO docs you've written are?
18:44 the_dormant_ joined perl6
18:51 PerlJam Is there a log of this channel somewhere?
18:51 PerlJam I seem to recall that there is but I can't remember everything  :)
18:54 nothingmuch http://nothingmuch.woobling.org/MO/lib/MO/Overview.pod
18:54 lambdabot http://tinyurl.com/law9f
18:56 TreyHarris PerlJam: there is, and I searched it, but I typoed the date range and didn't come up with anything for 'MO'.  i've had trouble with the logger search before so i thought it was just b0rken again.  sorry
18:56 TreyHarris nothingmuch: thanks!
19:02 kjw joined perl6
19:02 robotron joined perl6
19:03 robotron hi, im trying to compile pugs on a dual p3 450mhz with 128mb ram
19:03 robotron after "perl Makefile.PL" it seems to stuck in "Linking ./Setup ..."
19:03 TimToady how fast is your disk?  you'll be thrashing it very heavily...
19:03 robotron cpu-usage is 0
19:04 TimToady ghc can bring a 512MB system to a near halt.
19:05 robotron hm, maybe 128mb is to weak
19:05 robotron ld allocated 90% of memory
19:05 wilx Weak is too weak.
19:05 TimToady what's its virtual size compared to its resident set?
19:06 nothingmuch TreyHarris: sure thing
19:07 robotron johbar   29362  1.0 70.0 116796 88524 pts/2    D+   20:50   0:10 /usr/bin/ld
19:08 nothingmuch TimToady: is there any value in "proposing" MO as the underlying metamodel for perl 6?
19:08 eviltwin_b state D.  somehoe I'm not surprised
19:10 TimToady nothingmuch: well, if it ends up the only one sitting behind .HOW, then it would be de facto the underlying metamodel.  But Perl 6 is itself agnostic about what goes behind .HOW.
19:10 nothingmuch why is that?
19:10 nothingmuch perl 6 comes with a notion of "a class", etc
19:11 TimToady perl 6 comes with the notation of a prototype, but the classiness is hidden behind .HOW
19:11 robotron eviltwin_b: i dont know what "D" means, but, what do u think? how long it will take to build pugs?
19:11 * nothingmuch would expect it to be the other way around ;-)
19:11 TimToady certainly when you say class {...} you're depending on something standard to be there
19:11 robotron roundabout
19:11 eviltwin_b D = disk wait
19:12 nothingmuch meta model api != meta model impl
19:12 eviltwin_b the system is spending more time shuffling disk than doing actual work.  (I'd suspect it's mostly swapping)
19:12 robotron ah yes, maybe
19:12 [particle] i don't think perl 6 hides it's classiness well enough
19:12 robotron i need more ram :)
19:12 nothingmuch there are also issues of e.g. role composition edge cases... are they defined as part of the language?
19:13 nothingmuch [particle]: think of it as a default
19:13 nothingmuch nobody knows it's not really classy
19:13 nothingmuch till they need to do something nonclassy
19:13 [particle] perl 5 on the other hand...
19:13 TimToady robotron: let's put it this way, it'd probably be faster to go out and get more ram, put it in, and restart, than to wait for it to finish.
19:13 nothingmuch robotron: the best intermediate solution is probably to ask Juerd for an account on feather
19:15 nothingmuch TimToady: i was ambiguous before, i realized now
19:15 nothingmuch MO comes with two things
19:15 nothingmuch one is not really perl 6 related
19:15 nothingmuch but is usable in a perl 6 toolchain
19:15 nothingmuch (the runtime model, etc)
19:16 nothingmuch the other [much more interesting] component [for perl 6] is a reference implementation of the class behaviors
19:16 nothingmuch this targets the first component, and models the ooish things in S*
19:16 nothingmuch it's ~~ Class::MOP
19:17 nothingmuch well, not true... it's 1/2 of Class::MOP
19:17 nothingmuch Class::MOP also does part 1, but might stop doing that in the future ;-)
19:18 TimToady I guess I'm not sure what you mean by "part of the language"
19:18 nothingmuch my point is, can class Foo { ... } result in two different behaviors (even subtly different) of a Foo object, in a perl 6 runtime?
19:18 TimToady depends on whether the metaclass that gets assigned to every .HOW at construction time allows for it.
19:19 nothingmuch where ... is any valid class definition in perl 6
19:19 nothingmuch without an explicit meta class declaration in the source code defining Foo
19:19 nothingmuch e.g. by the compiler
19:19 nothingmuch to rephrase technically, the metaclass role that all metaclasses must adhere to
19:20 TimToady in general I think people will use different declarators if they want a different metaclass, syntactically speaking.
19:20 TimToady we don't have to shove everything through the "class" keyword
19:20 TimToady just as we have a "role" keyword
19:20 nothingmuch *nod
19:20 nothingmuch when i said class i meant all of these, tbh
19:21 * nothingmuch tries a third approach
19:21 nothingmuch in "the" perl 6 test suite
19:21 nothingmuch will there be meta class unit testss
19:21 nothingmuch that a metaclass author can run their metaclass against?
19:22 TimToady that's...a good question
19:22 nothingmuch ... what i meant to propose, in that sense, is the document that specifies what behaviors that test suite should check for
19:23 TimToady it's more of a metametaclass question, if we're talking about plugglable metaclasses.
19:24 nothingmuch metameta is my favourute prefix lately
19:24 TimToady I don't pretend to be an expert on mops, but I would like there to be a good default, with the ability to swap out the default.  The syntax/semantics/api that surrounds that is certainly still negotiable, as long as it degenerates to something like what we currently have in the "simple" cases.
19:24 * PerlJam almost mistakes us for a culture of doubling for emphasis  ;)
19:25 nothingmuch i want that default swappable too... hence mo =)
19:25 nothingmuch thge notioin of wtf is a method or invocant is also pluggable
19:25 nothingmuch part 1 of MO is precisely the part that it simplifies down to
19:26 TimToady sure, that's why I've notionally tried to sweep everything under the abstract .HOW carpet.
19:26 nothingmuch =)
19:26 nothingmuch i think the answer is "not yet" ;-)
19:26 TimToady what we want to avoid at all costs is to make mere mortals gaze upon the elder gods...
19:26 nothingmuch the reason i asked is that this will let me talk about crap that MO let me do as if Perl 6 can let me do them
19:27 nothingmuch who fills in the roles of mere mortals and elder gods?
19:27 nothingmuch are we the mere mortals?
19:27 nothingmuch or future perl 6 users?
19:28 TimToady it is my job to stand in for the future less-than-brilliant users of Perl 6.  You don't qualify in the less-than-brilliant department, I'm afraid. :)
19:29 nothingmuch elder gods == clos?
19:31 TimToady cthulhu and friends.  things with metameta-tenacles.
19:32 * nothingmuch decides that TimToady is intentionally confusing him and goes to the shower instead ;-)
19:32 nothingmuch since you mentioned defacto earlier, i guess it's fair enough to say that what MO can do Pelr 6 can do
19:33 nothingmuch oh btw, i have a draft of role composable/inheritable attribute grammars
19:33 nothingmuch which IMHO give much more value than "traditional' ones
19:33 TimToady cool
19:33 nothingmuch do you guys have tree processing sugar yet?
19:33 nothingmuch because what I dealt with was mostly semantics
19:34 TimToady mostly, we have sigs/rules inside sigs/rules
19:34 TimToady but they aren't reversible quite, I don't think...
19:34 nothingmuch ah
19:35 nothingmuch the impl i have discovers parents by introspecting objects on the dynamic stack
19:35 TimToady but we can certainly do recursive pattern matching sigwise.
19:35 nothingmuch and lazily evaluates / memoizes the attrs as method calls in a private namespace
19:35 nothingmuch they are cached per AG instance
19:36 nothingmuch so the aspect of sujgar for inheriting an attr to a specific child
19:36 nothingmuch in some perl 6 ish collection type is sidestepped
19:36 nothingmuch at a runtime cost and overall hackishness
19:36 nothingmuch in practice there are benefits though
19:37 nothingmuch in that child/parent relationships are not very strict
19:37 nothingmuch but anymoose, shower time
19:37 nothingmuch hopefully the ideas are compatible
19:37 TimToady I would like to see the tree rewriting abilities of Perl 6 to be sufficient to generalize into, say, parrot-land so they don't have to define their own tree-rewriting language
19:37 TimToady lunchtime for me...
19:37 nothingmuch what i drew up is more traditional AGs
19:38 nothingmuch which are simply in the host language
19:38 nothingmuch but the "declarative" sugar becomes imperative
19:38 nothingmuch which is easier to deal with but harder to validate
19:38 TimToady luqui did something like that a year or so ago...
19:38 nothingmuch yeah
19:38 nothingmuch the attempt is partly based on his code
19:38 nothingmuch but the evaluation strategy is more relaxed
19:38 nothingmuch and there's composition
19:38 TimToady then went off into his "theories", which I'd still like to capture some notions from.
19:39 TimToady but maybe not for 6.0, unless they're on the critical path.
19:39 PerlJam "tree-rewriting"  sounds like TGE somewhat
19:39 nothingmuch TGE == AGs + sugar in my brain
19:39 nothingmuch sugar for moving bits around
19:39 nothingmuch unless it's only value rewriting
19:39 TimToady @Larry called it tree-rewriting before TGE was started
19:39 lambdabot Maybe you meant: arr yarr
19:39 nothingmuch (the tree has the same shape)
19:40 TimToady but reversibility is important for some uses
19:40 nothingmuch err, i meant tree rewriting sounds like sugar over attribute grammar semantics
19:40 nothingmuch aye
19:41 nothingmuch "once a rocket goes up who cares if iti can be brought down with a full fuel tank, that's not my department" ;-)
19:41 TimToady and I realized when working on P5 madprops that reversibility is precisely what I dropped on the floor in the original design.
19:42 TimToady when you lie to yourself, you darn well better remember that you're lying to yourself...
19:42 * nothingmuch had that sometimes
19:42 nothingmuch lying to others
19:42 nothingmuch and believing it myself
19:42 nothingmuch so that it had become lying to myself and forgetting unintentionally
19:42 nothingmuch mostly related to excuses/alibies at school
19:43 TimToady it's an easy trap, and we all fall into it.
19:43 * nothingmuch tries to lie to himself about being clean, but it doesn't work ;-)
19:43 TimToady that's why you want friends that will yell at you occasionally.
19:43 nothingmuch =)
19:44 nothingmuch stevan__: you hear that?
19:44 nothingmuch sorry, obscure ref
19:44 nothingmuch anymoose, really shower &
19:44 nothingmuch *poof*
19:50 frankg joined perl6
20:02 clkao audreyt: our flight is canceled. rerouting
20:06 audreyt wow
20:07 Cugel joined perl6
20:09 TreyHarris clkao: flight where, to seattle?
20:10 [particle] trey, audrey, i don't think i can make it tomorrow :(
20:11 TreyHarris ?eval class A { has $.moose = 42 }; class B does A { has $.yak = 96 }; my B $foo .= new; [$foo.yak, $foo.moose]
20:11 evalbot_r14533 [96, undef]
20:12 TreyHarris ?eval class A { has $.moose = 42 }; class B is A { has $.yak = 96 }; my B $foo .= new; [$foo.yak, $foo.moose]
20:12 evalbot_r14533 [96, undef]
20:12 TreyHarris are both of these correct, neither, or one?
20:12 clkao TreyHarris: to bos. rerouted to sfo
20:12 TreyHarris [particle]: bummer!
20:12 TreyHarris clkao: ahh
20:16 audreyt TreyHarris: neither
20:17 kjw left perl6
20:17 TreyHarris audreyt: both should output [96, 42]?
20:17 TreyHarris ok.  so what is the practical difference between C<class Klass is Klass1> and C<class Klass does Klass1>?
20:19 audreyt there's no SUPER:: in the latter.
20:19 audreyt "next METHOD" doesn't dispatch upwards.
20:19 audreyt you get conflicts when you "does" two things that are incompatible.
20:20 audreyt there's only one instance-slot storage instead of two, one for parent and one for children.
20:20 audreyt (the last point is probably invisible to the general user)
20:22 TreyHarris right... for some reason i construed the lack of SUPER:: and next METHOD as meaning that $.moose shouldn't work in B does A above... because there's no moose in B, so it would have to go to the next method for moose, which it can't do
20:22 audreyt there is moose; it's directly mixed in
20:23 TreyHarris ah, but if you overrode moose, you'd lose the ability to refer to A's moose in the C<B does A> case?
20:23 audreyt that is exactly correct.
20:23 TreyHarris ok.  i think i need to have running code to play with role-as-class and class-as-role to really get it gelled in my head
20:24 TreyHarris does Moose do this yet?
20:24 TreyHarris hm
20:24 audreyt try MO/MOH
20:25 TimToady joined perl6
20:26 TreyHarris huh, the OAD says that "overrode" was correct there.  i was about to s/overrode/overrided/.  regularization strikes again...
20:26 * TreyHarris wanders off to meetings
20:26 TreyHarris thanks audreyt!
20:28 audreyt no prob. I'm implementing default initializer inheritance/mixin now
20:28 audreyt let's see how long it takes...
20:30 amnesiac_ joined perl6
20:30 amnesiac_ is now known as amnesiac
20:33 audreyt ..done. :)
20:35 TreyHarris audreyt: did you commit?  oh, have we moved from openfoundry?  maybe that's my problem
20:37 TimToady no, she just hasn't committed yet, as far as I know.
20:38 audreyt it took a while to get thorugh 'sall.
20:38 TimToady she has this terrible tendency to test her work...
20:38 svnbot6 r14534 | audreyt++ | * Pugs.Prim: Attribute initializers now carries through to derived classes:
20:38 svnbot6 r14534 | audreyt++ |     class C { has $.x = 9 };
20:38 svnbot6 r14534 | audreyt++ |     class D is C;
20:38 svnbot6 r14534 | audreyt++ |     D.new.x; # 9
20:38 svnbot6 r14534 | audreyt++ |   Same applies for "does".
20:39 TreyHarris TimToady: *grin* yes, but from my observation, when she says "done" or "fixed", that's usually the point at which she commits having already tested
20:40 * TreyHarris really heads to his meeting now
20:44 * audreyt continues cleaning up IPC::PubSub for the eventual backport to ext/
20:44 svnbot6 r14535 | audreyt++ | * inheritance.t: More tests about inheriting initialiizers
20:45 the_dormant_ joined perl6
21:01 Limbic_Region joined perl6
21:10 avar joined perl6
21:54 jojo left perl6
22:04 penk joined perl6
22:08 frederico joined perl6
22:08 ferreira joined perl6
22:12 Daveman joined perl6
22:20 Aankhen`` joined perl6
22:22 jferrero joined perl6
22:44 c6rbon joined perl6
22:55 TimToady might or might not have something to do with upgrading to Fedora Core 6, but my smokes seem to be running 20-30% slower than a few days ago.
22:56 TreyHarris TimToady: mine on osx are too, and i haven't upgraded anything
22:56 dduncan joined perl6
22:57 dduncan fyi, have a look at http://www.ohloh.net/ , particularly http://www.ohloh.net/projects/3300 (Pugs)
22:57 lambdabot Title: Ohloh Home Page
22:57 dduncan I heard about that open source project indexing site right when it was starting up, a few months ago, and submitted Pugs to it
22:58 dduncan now I look back, and the latter url shows they paid attention and are following Pugs
22:58 dduncan curiously, it lists audreyt et al as mainly C/C++ developers rather than Haskell ... maybe that's a result of shoehorning
23:00 dduncan I didn't explicitly submit Parrot, and it isn't shown directly (under that name), though the "Ruby compiler project" that targets it shows up
23:01 TimToady their analyzer doesn't appear to recognize Haskell.
23:01 dduncan so, the project cost calculator says it would take $2.7 milllion dollars to recreate Pugs
23:01 TimToady I wonder if their analyzer counts interspersed content as part of the PHP linecount.
23:01 dduncan I don't know
23:01 awwaiid joined perl6
23:07 cjeris left perl6
23:08 dduncan come to think of it, perhaps my "consider this for inclusion" submission of a few months back wasn't what got it on the list ... the history page shows adamk as manually adding it 4 days ago
23:09 dduncan but whatever, nice to see it there
23:19 eviltwin_b hm.  so, before I shoot myself in the foot:  is it somehow expected that some of parrot's selftests core (SIGBUS) on OSX 10.4.8?
23:20 * eviltwin_b suddenly does not have great confidence in this machine --- first dports blew up, now that it's supposedly fixed parrot is not happy and the pugs release was also a little shaky-seeming
23:21 eviltwin_b was going to try building parrot support into svn pugs, but somehow I think this is not a wise move now
23:22 TreyHarris eviltwin_b: i have sporadically seen sigbus's from various pugs and parrot operations for many months now, though only on PPC.  my intel box does not display that behavior nearly as often (though i think it might still happen ocassionally).  generally speaking, running the exact some code again will make mysteriously fix it (maybe after a couple tries)
23:23 eviltwin_b so far it's been pretty repeatable :(
23:23 eviltwin_b I'll just skip parrot support for now.
23:24 eviltwin_b pugs hasn't been coring, my initial build had unexpected test failure but rebuilding dports seemed to fix it mostly so now I'm trying from svn
23:24 eviltwin_b except that pugs seemed to think that I hadn'
23:24 eviltwin_b t installed some stuff in my existing perl5 that I had --- which might again be dports' fault
23:24 eviltwin_b (unlike freebsd ports it will happily overwrite someting you cpanned in)
23:26 TreyHarris hmmm... interesting.  i haven't up till now seen any pattern in the code that does that, but i now wonder if it's possible that it was code with regexen (since i was using parrot for regexes until recently)
23:26 TreyHarris dduncan: it looks to me from some poking around like that website doesn't know haskell exists and somehow thinks haskell code looks like C++
23:28 dduncan I hear that
23:30 dduncan on a separate note, I'm trying to use the latest CPANPLUS to install v6.pm, but it complains about a missing 'perlwrapper' ... this is probably a CPANPLUS problem and not a v6 problem, so I'm looking into it
23:33 eviltwin_b it sees the :: in type signatures and decides it's actually looking at classes?
23:34 eviltwin_b (probably a trivial heuristic-based analyzer)
23:34 TimToady or maybe it decides .hs is a variant of .h
23:40 SubStack joined perl6
23:50 eviltwin_b hmph.  poke at some of the optionl dependencies I chased down... greencard uses a deprecated interface.
23:51 eviltwin_b (which I should have remembered from last time I looked at it)
23:51 eviltwin_b and darcs-1.0.8 looks like it might be using another deprecated interface (so I installed the 1.0.7 binary instead)
23:52 bcorn joined perl6
23:54 eviltwin_b this should teach me not to play the "hm, optional dependency, maybe I should install it" game
23:54 thepler joined perl6

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

Perl 6 | Reference Documentation | Rakudo