Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-06-22

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:08 amnesiac joined perl6
00:11 |mjk| joined perl6
00:27 meppl gute nacht
00:28 FurnacePissy n8
00:30 meppl ;)
00:36 cmarcelo joined perl6
00:46 audreyt_ joined perl6
00:46 audreyt_ yay, meeting over
00:46 pfenwick joined perl6
00:46 audreyt_ @seen ingy
00:46 lambdabot ingy is in #perl6. I last heard ingy speak 5 hours, 42 minutes and 21 seconds ago.
01:00 hikozaemon joined perl6
01:08 cmarcelo audreyt_: i saw your slides from MS talk. "Boston Hackaton ... integrate HsJudy" =) any special API requests until there?
01:08 cmarcelo audreyt: ops.. i saw your slides from MS talk. "Boston Hackaton ... integrate HsJudy" =) any special API requests until there?
01:27 svnbot6 r10813 | fglock++ | PC-P6 - pass 01-sanity/05-sub.t, 01-sanity/06-use.t
01:41 jiing_mIRC joined perl6
01:42 audreyt yo
01:42 jiing_ joined perl6
01:42 jiing_ left perl6
01:43 audreyt cmarcelo: not that I can think of at the moment
01:45 svnbot6 r10814 | audreyt++ | * Repair the JS backend for real, recovering from VType and pad changes...
01:47 cmarcelo audreyt: i'm still stuck on university work these days, but i believe by the hackaton time i'll be free to help you people (by IRC =o) ). btw, sent an email to ghc-users/bugs with the "illegal instruction" problem, but remains a mistery.
01:47 svnbot6 r10815 | audreyt++ | * Pugs.Compat.executeFile': In cases where rawSystem is usable
01:47 svnbot6 r10815 | audreyt++ |   (like for JS helpers), use it, because the POSIX executeFile
01:47 svnbot6 r10815 | audreyt++ |   is somehow broken on MacIntel+GHC6.5 here...
01:47 audreyt k
02:03 audreyt dinner, bbiab
02:03 svnbot6 r10816 | audreyt++ | * re-attach the Perl5 bridge:
02:03 svnbot6 r10816 | audreyt++ |     $ ./pugs -CPerl5 misc/pX/Common/Pugs-Compiler-Perl6/hello_world.pl
02:03 svnbot6 r10816 | audreyt++ |     $ ./pugs -BPerl5 misc/pX/Common/Pugs-Compiler-Perl6/hello_world.pl
02:04 clkao whoot
02:08 weinig is now known as weinig|sleep
02:11 svnbot6 r10817 | audreyt++ | * v6.pm - allow dual use as a command line program:
02:11 svnbot6 r10817 | audreyt++ |     perl v6.pm -e "some perl 6 code"
02:11 svnbot6 r10817 | audreyt++ |   this is used for Pugs's -CPerl5 and -BPerl5 helpers.
02:11 audreyt so, probably not going to use Phoenix
02:11 audreyt the SSA graph it builds is too low level
02:12 audreyt also, not going to work with BSD licensed tools alone
02:12 audreyt have to use their "academic shared source" thing
02:12 audreyt so instead, doing MSIL<->XML<->Haskell serialization directly now
02:12 audreyt much as what Jonathan did with parrot/languages/dotnet/
02:13 audreyt but with more bells and whistles, such as resumable exceptions and delegates
02:14 audreyt emeijer has crazy ideas about DHTML version of a subset of WinForms binding
02:14 audreyt but we'll see how it plays out ;)
02:24 cmarcelo left perl6
02:54 FurnacePissy is now known as FurnaceBoy
03:03 drbean_ joined perl6
03:08 cognominal_ what means "canonical time" in S05?
03:11 cognominal_ I suppose it means that optimizations cannot change the time at which the closure is run.
03:15 shachaf_ joined perl6
03:24 svnbot6 r10818 | fglock++ | v6.pm - adds 'use strict' and 'use Pugs::Runtime::Perl6' to generated code
03:24 svnbot6 r10819 | fglock++ | PC-P6 - pass 01-sanity/07-end-blocks.t
03:29 _SamB_ joined perl6
03:33 svnbot6 r10820 | fglock++ | v6.pm - added a few comments
04:14 gaal left perl6
04:36 __SamB__ joined perl6
04:45 baest joined perl6
04:55 rebcabin joined perl6
05:03 rebcabin left perl6
05:24 rebcabin joined perl6
05:33 visq joined perl6
05:50 hlb joined perl6
06:05 tup joined perl6
06:29 ko1_away is now known as ko1
06:58 Aankhen`` joined perl6
07:07 svnbot6 r10821 | Aankhen++ | * perl5/Module-Compile/inc/Module/Install.pm: fix for bug on case-insensitive filesystems.
07:09 szbalint joined perl6
07:16 buetow joined perl6
07:27 ko1 is now known as ko1_away
07:31 elmex joined perl6
07:37 iblechbot joined perl6
07:50 drrho joined perl6
08:24 Kattana joined perl6
08:28 snowstalker joined perl6
09:55 Aankhen`` What do I do to create a local branch of Pugs using SVK?
09:56 Aankhen`` I've been trying using `svk mirror`, but maybe I have the host wrong or something...
09:56 Aankhen`` >svk mirror svn://svn.openfoundry.org/pugs //mirror/pugs
09:56 Aankhen`` No connection could be made because the target machine actively refused it.  : C
09:56 Aankhen`` an't connect to host 'svn.openfoundry.org': No connection could be made because
09:56 Aankhen`` the target machine actively refused it.
10:02 svnbot6 r10822 | renormalist++ | - new Twigils
10:04 chris2 joined perl6
10:12 meppl guten morgen
10:15 ludan joined perl6
10:42 Kattana joined perl6
10:47 marmic joined perl6
10:50 SamB joined perl6
10:55 bjoern_ joined perl6
11:06 kane_ joined perl6
11:11 weinig|sleep joined perl6
11:13 weinig|sleep is now known as weinig
11:24 weinig is now known as weinig|work
11:25 jsiracusa joined perl6
11:27 Aankh|Clone joined perl6
11:57 buetow joined perl6
12:01 cognominal I don't remember where is the subversion repository of Perl6::Bible
12:01 cognominal it seems that dev.perl.org lags compared to modifs I see in the maillist
12:02 audreyt Aankh|Clone: http:// not svn://
12:02 audreyt Aankh|Clone: and you branch with "svk cp //mirror/pugs //pugs"
12:03 Aankh|Clone Ah, thanks.
12:03 Aankh|Clone is now known as Aankhen``
12:08 Aankhen`` C:\Development>svk mirror http://www.openfoundry.org/pugs //mirror/pugs
12:08 Aankhen`` RA layer request failed: PROPFIND request failed on '/': PROPFIND of '/': 200 OK
12:08 Aankhen`` (http://www.openfoundry.org)
12:08 audreyt svn.openfoundry.org not www.
12:10 * Aankhen`` bangs forehead on wall
12:10 Aankhen`` Sorry, I'm very confused.
12:10 Aankhen`` (As you can see.)
12:11 audreyt still very confused, or was very confused? :)
12:11 Aankhen`` Was.
12:12 audreyt cool :D
12:12 Aankhen`` I'll warn you if it happens again. ;-)
12:13 Aankhen`` Okay, now I seem to have an empty directory.
12:13 Aankhen`` Hang on a sec.
12:13 Aankhen`` I'll get it!
12:13 Aankhen`` svk sync to the rescue!
12:20 lollan joined perl6
12:20 dakkar joined perl6
12:36 iblechbot joined perl6
12:38 weinig|work_ joined perl6
12:52 veepster_ joined perl6
12:52 veepster_ left perl6
12:57 dakkar joined perl6
13:05 pfenwick left perl6
13:08 Limbic_Region joined perl6
13:18 rzoz joined perl6
13:23 _calvin_ joined perl6
13:28 frederico joined perl6
13:35 miyagawa joined perl6
13:51 bpphillips joined perl6
14:05 dakkar joined perl6
14:13 Student1 joined perl6
14:19 rebcabin joined perl6
14:22 christopher joined perl6
14:24 amnesiac joined perl6
14:45 dakkar joined perl6
14:55 cognominal joined perl6
15:09 vel joined perl6
15:10 FurnaceBoy joined perl6
15:25 turrepurre joined perl6
15:31 svnbot6 r10823 | fglock++ | PC-P6 - pass 01-sanity/07-binding.t, 07-defined.t, 07-substr.t, 07-try.t
15:48 buetow joined perl6
15:50 amnesiac_ joined perl6
15:50 snowstalker joined perl6
15:50 amnesiac_ is now known as amnesiac
16:02 bjoern_ joined perl6
16:05 particle_ joined perl6
16:19 svnbot6 r10824 | fglock++ | PC-P6 - pass 01-sanity/07-split.t
16:25 Aankhen`` Hmm, I'm getting an error building Pugs.
16:25 * Aankhen`` heads for the pastebin.
16:26 Juerd rafl: Will you be at froscon next weekend?
16:26 Juerd rafl: I may be able to go there on Sunday, and bring your things along
16:26 pasteling "Aankhen``" at 125.23.11.39 pasted "Error building Pugs on Win32" (13 lines, 589B) at http://sial.org/pbot/17909
16:27 audreyt GHC 6.4.2?
16:27 audreyt does typing another "nmake" work?
16:29 penk joined perl6
16:29 Aankhen`` I'll try...
16:30 Aankhen`` It's version 6.4.1
16:30 Aankhen`` Built Pugs successfully yesterday, haven't tried again till now.
16:31 audreyt try incremental rebuild
16:31 TimToady audreyt: Might be the new retry stuff.  By the way, I think the syntax the retry stuff could probably use some improvement.
16:31 Aankhen`` How, audreyt?
16:31 audreyt also try upping to 6.4.2 which fixes random runtime system bugs
16:31 fglock joined perl6
16:31 audreyt Aankhen``: "nmake"
16:32 audreyt TimToady: cool. what kind of improvement?
16:32 Aankhen`` Well, running that anyway.
16:32 TimToady what's the relationship to "try", for one?
16:32 audreyt no relationship, so it's perhaps not a wonderful name
16:32 audreyt semantically it's "rollback and redo"
16:32 TimToady I also tend to avoid builtins with underscore
16:33 audreyt yeah, though it's a method name
16:33 audreyt but yeah.
16:33 TimToady and {...}.foo:{...} is not a wonderfulness
16:33 * fglock pugsblogged
16:33 TimToady why is it a method?
16:33 TimToady It looks like adding properties to an object via method call.
16:34 TimToady I understand it isn't, but still.
16:34 audreyt and I'd agree. it's also kinda horrible to have to type retry thrice
16:34 audreyt in
16:34 audreyt        { $a > 100 or retry }.retry_with:{ $a < -100 or retry }
16:34 Aankhen`` Okay, looks like it built this time.
16:34 audreyt so yeah. could definitely use ergonomics enhancements
16:34 TimToady I also wonder about the implicitness of the control state, and whether this is a good place for implicit state.
16:35 TimToady and the semantics seem unclear when you "run off the end".
16:35 audreyt "run off the end"?
16:35 TimToady one might expect it to try the first thing again round robin.
16:36 audreyt that is the semantic.
16:36 TimToady so basically, how is this different from a switch based on some more explicit state that can be incremented by retry?
16:36 audreyt well, it's composable
16:36 audreyt so in
16:36 TimToady not stated anywhere that I've seen...
16:37 TimToady (round robin)
16:37 audreyt retrywith_(A,B,retry_with(C1,C2))
16:37 audreyt it goes A->B->C1->C2->A
16:37 coumbes joined perl6
16:38 audreyt but if this chain is part of something larger
16:38 audreyt then at end of C2 retry it goes back to that larger chain's start
16:38 audreyt when you fall off, basically it looks to the beginning of the entire atomically
16:38 audreyt and reenter from there
16:38 TimToady okay, I don't mind that.
16:39 TimToady I'll stick to syntactic carpage then.
16:39 audreyt yay
16:39 audreyt please fix the example/tests accordingly and I'll deal
16:39 chris2 joined perl6
16:40 TimToady have to think about that some...
16:40 TimToady did you see my "minimal" test for the pge dumpage?
16:40 audreyt yup. I can't duplicate it at all
16:40 audreyt so maybe I'll just grab your laptop in chicago
16:40 audreyt seems easiest
16:40 TimToady whack on it in Chi
16:41 TimToady nod
16:41 particle_ whazzamatternow? pge test that can't be duplicated?
16:41 audreyt embed parrot tests
16:42 audreyt parrot embed is... a continuous exercise
16:42 TimToady probably the same exception handling snafu we ran into earlier, or similar
16:42 audreyt nod
16:43 TimToady the assertion failure is saying that something is on the free list unexpectedly.
16:43 TimToady or off the free list unexpectedly, depending on how you look at it...
16:44 particle_ hrmm, does disabling parrot gc make any difference? or is this a pugs free list
16:44 audreyt it's the parrot free list
16:44 TimToady it'll be easier to diagnose in Chicago
16:44 audreyt if we had a way to recover from IMCC errors
16:44 audreyt then this probably will be much easier
16:45 audreyt as it stands, an invalid rule triggers a core exit() from parrot
16:45 audreyt and there's no way to trap it
16:45 particle_ that is trouble for embedders everywhere
16:45 audreyt so I did a setjmp/longjmp myself
16:45 audreyt which uncovers interesting misassumptions
16:45 audreyt namely only one parrot can be embedded at one time
16:45 audreyt since they share Parrot_exit chain
16:45 audreyt etc, etc.
16:45 particle_ aha
16:47 particle_ audreyt: to get to seattle by 6:30p safely we should probably leave redmond around 5p
16:47 particle_ doable?
16:47 audreyt sure
16:49 svnbot6 r10825 | fglock++ | PC-P6 - better error messages
16:51 shachaf joined perl6
16:57 TimToady audreyt: does atomically {...} trap exceptions?
16:57 audreyt not by itself, no
16:58 audreyt it's more of a "do" than a "try"
16:58 TimToady so do we lose track of things if we propagate an exception out of one without explicit retry?
16:59 audreyt speak in code please :)
16:59 TimToady atomically {  { fail } orelse { ... } } does what?
17:02 TimToady either atomically notices the exception going by and cleans up, or the transaction has to be GCed at some point to roll it back.
17:02 TimToady and how does this interact with continuations that might have been taken inside?
17:03 audreyt one thing at a time
17:03 audreyt re exceptions
17:03 audreyt it's modelled as a "shift" to the nearest reset
17:03 audreyt reset being a control exception or normal exception boundary
17:04 audreyt typically a subroutine or a try{} block
17:04 audreyt if that boundary is outside atomic
17:04 audreyt then all the changes so far is rolled back
17:04 audreyt it behaves asif the atomic block havn't happened
17:05 TimToady but not on "return"?
17:05 audreyt it's the same
17:05 audreyt if the subroutine boundary is outside atomic
17:05 audreyt then it's discarded as well
17:05 audreyt only the returned value remains
17:05 TimToady that's counterintuitive
17:05 TimToady a return is a "succeed" rather than a fail.
17:05 audreyt but in p6 semantic it triggers UNDO
17:06 TimToady no, triggers KEEP
17:07 audreyt hrm
17:07 svnbot6 r10826 | fglock++ | PC-P6 - simple 'for'
17:07 audreyt so it's abnormal
17:07 audreyt but "good"
17:07 fglock left perl6
17:08 audreyt ok. then we can tie it with the UNDO/KEEP distinction
17:08 audreyt atomic is rolled back (or orElse'ed) if it's UNDOish
17:08 audreyt and simply concluded if it's KEEPish
17:08 TimToady it seems like a useful unification.
17:08 TimToady I see that "Definition of Success" is ambigous: uses "exception" to mean "bad exception".
17:09 audreyt indeed
17:09 audreyt that's the source of my confusion
17:10 TimToady but then is retry just a fail()?
17:10 audreyt slightly different
17:10 audreyt a fail doesn't reenter atomic block
17:11 audreyt unless you make "atomically" a sort of autoretrying try{}
17:11 TimToady okay, it's really a different control exception that's "semibad"
17:11 audreyt nod
17:11 TimToady you want it to bypass normal exception handlers inside anyway, like a return.
17:12 TimToady sort of an "oops" control exception.
17:12 particle_ as opposed to "oops, i did it again?" ;)
17:12 TimToady okay, I think that gives me enough to think about for naming purposes.
17:13 TimToady no, it won't be oops().  :)
17:13 lollan joined perl6
17:13 TimToady though {...} oops {...} oops {...} has a certain cachet...
17:16 snowstalker Beginner question : In P-C-P6, hello_world.pl has 'use v6-pugs;' , how does it know to read lib/v6.pm ? I am trying to read `perldoc Module::Compile` but I haven't grokked this part yet ...
17:18 TimToady it does that basically because P5 doesn't grok hyphens in module names.
17:19 TimToady or at least doesn't grok them the same way P6 does.
17:20 snowstalker TimToady, So it is convention that we use 'v6-pugs' ?
17:20 theorbtwo perl -MO=Deparse,-p -e'use v6-pugs;'
17:21 TimToady hmm, it's more like one of those "two language hacks" that are interpreted differently, so it's not just convention.
17:22 TimToady it's depending on a particular way in which P5's lexer lies to the parser.
17:23 TimToady but also on the way that P6 parses module names that contain version info.
17:23 snowstalker theorbtwo, $ perl -MO=Deparse,-p -e'use v6-pugs;'
17:23 snowstalker Can't open -e for input:
17:23 snowstalker No such file or directory at /usr/lib/perl5/site_perl/5.8.8/Module/Compile.pm line 155.
17:23 snowstalker BEGIN failed--compilation aborted at -e line 1.
17:23 snowstalker use v6 ((-'pugs'));
17:23 snowstalker TimToady, Ok I still haven't grokked on what the 'pugs' part of the name ties to ?
17:23 TimToady in particular that a module name starting with a version has an implicit Perl- in the front of it, indicating the version is really talking about the Perl version.
17:23 snowstalker Is it related to the lib/Pugs dir ?
17:24 TimToady it is if v6.pm decides it is.
17:24 snowstalker aah ok
17:24 TimToady under P5 it just comes in as an import list arg
17:24 TimToady see your results above
17:25 TimToady so it's basically just a very useful complete and utter hack
17:25 TimToady which has never slowed us down before.  :)
17:26 TimToady fortunately the P6 interpretation of it is rather less hacky.
17:27 TimToady though it's still a very Special Case syntactically.
17:27 audreyt (that, again, has never slowed us down before)
17:27 audreyt the House of Cards is a noble house!
17:27 TimToady speaking of the house, I need to leave it and go to work...
17:28 audreyt actually, same here
17:28 * audreyt goes check in for the final day of Redmond Hackathon
17:28 TimToady have the appropriate amount of "fun".  I'm reminded that "fun" means something entirely different in Japanese...
17:28 snowstalker TimToady, heh I understand it a li'l better now
17:29 TimToady I wonder what Japanese think when they see -Ofun
17:29 TimToady "fun" basically meaning 糞
17:31 TimToady later then &
17:31 bpphillips reference: http://www.fileformat.info/info/unicode/char/7cde/index.htm
17:31 miyagawa "fun" basically means U+697D
17:32 theorbtwo Er, "with noodles"?
17:32 miyagawa or, "Raku"
17:36 ZuluOne Has anyone had any thoughts about my recent p6l post on binding names to types?
17:36 ZuluOne "me" being [email@hidden.address]
17:38 Juerd What does Japanese "fun" mean then?
17:38 Juerd And what's "raku"?
17:38 miyagawa Japanese "fun" = "shit"
17:38 bpphillips the character TimToady pasted: http://www.fileformat.info/info/unicode/char/7cde/index.htm
17:39 miyagawa bpphillips: yeah, that is a kanji character for "shit"
17:39 obra heh
17:39 miyagawa and is pronounced as "fun" in Japanese
17:40 miyagawa or "kuso"
17:40 ZuluOne Actually, I kinda like -Oshit
17:40 bpphillips let's stick to "manure, dung, night soil" :-)
17:40 ZuluOne It carries connotations of "optimize the manure, dung, night soil out of it"
17:40 Steve_p Where's the fun in that?  ;)
17:41 miyagawa however, when we say "fun" it sounds more like "fecal stuff" i.e. nothing negative
17:41 ZuluOne oh, shame
17:41 miyagawa when we say "kuso", it's just like English "Oh, shit!"
17:44 binary42 joined perl6
17:45 binary42 left perl6
17:45 Juerd Hmm, okay. That makes optimizings for fun rather interesting indeed.
17:45 Juerd And this "raku" thing? Does that mean anything?
17:46 Juerd There's a local company called Raku... I wonder if it also means something fecal
17:46 miyagawa Oh, okay. I meant "fun" in English maps to "Raku" Kanji character, which means "fun"
17:46 miyagawa or "easy"
17:46 miyagawa so nothing related to the shitty stuff there
17:47 Juerd ah
17:47 Juerd Too bad :)
17:47 miyagawa :)
17:47 FurnaceBoy hmm, interesting-- raku is a ceramic process too.
18:02 theorbtwo Hmm, perhaps I was thinking of Chinese "fun", not Japanese "Fun"?
18:02 theorbtwo As in "Chow Fun".
18:03 * theorbtwo shrugs.
18:03 theorbtwo Everything I know about Chinese I learned from reading menus.
18:04 TimToady Japanese "fun" is pronounced "fen4" in Mandarin.
18:05 TimToady I always like "raku" because it's close to "rakuda" and "rakudai".
18:05 TimToady which is "camel" and "failure in a test".
18:07 TimToady and, actually, English "fun" gets borrowed as "fan" in Japanese, pronounced like "fawn" in English, more or less.
18:07 bpphillips TimToady: what portion of your life has given you the opportunity to learn so much about Japanese?
18:08 TimToady the last five years, mostly.  and a bunch of anima watching otakuhood before that.
18:08 * theorbtwo remembers the long months of waiting for TimToady to come down the mountian and publish some apocolypses.
18:17 audreyt_ joined perl6
18:17 szbalint Thanks for your comments nothingmuch on p6l.
18:35 wilx joined perl6
18:47 FurnaceBoy_ joined perl6
18:49 justatheory joined perl6
18:58 dduncan joined perl6
19:18 audreyt_ joined perl6
19:23 FurnaceBoy_ is now known as FB|afk
19:25 Stoffie joined perl6
19:25 Stoffie hi
19:29 audreyt_ greetings
19:32 wilx joined perl6
19:41 coumbes joined perl6
19:42 fglock joined perl6
19:47 svnbot6 r10827 | audreyt++ | * Some more changelogging, now at r10207
19:48 renormalist joined perl6
19:51 bpphillips left perl6
19:58 fglock I added a note on the blog about PC-P6 failing tests
20:01 audreyt_ danke
20:01 svnbot6 r10828 | audreyt++ | * Up to 10312
20:01 audreyt_ as putter   has always reminded us
20:02 audreyt_ expectation management is important :)
20:02 fglock yup
20:08 Kattana TimToady: ping
20:12 ingy hi
20:21 svnbot6 r10829 | audreyt++ | * chglog up to r10465
20:22 rzoz joined perl6
20:24 svnbot6 r10830 | fglock++ | PC-P6 - pass 01-sanity/07-for.t
20:25 particle_ is there a mailing list for pugs commits?
20:25 FB|afk is now known as Furnabceoy
20:31 audreyt_ particle: http://lists.utsl.gen.nz/pipermail/pugs-commits/
20:32 particle_ excellent, thx.
20:33 audreyt_ np :)
20:33 svnbot6 r10831 | fglock++ | ChangeLog - fixed example: use v6-pugs; say "Perl 6"; use v5; print "Perl 5"
20:48 svnbot6 r10832 | fglock++ | PC-P6 - added 'not implemented' message for 'use v5'
20:49 fglock audreyt_: would you write the Makefile.PL for PC-P6? I'm not sure of the Module::Compile requirements
20:59 bernhard joined perl6
21:15 mj41_ joined perl6
21:18 audreyt_ fglock: just use Module::Install plus a line of pmc_support();
21:18 audreyt_ ingy: maybe you can help :)
21:18 * audreyt_ is deep in releng
21:21 svnbot6 r10833 | audreyt++ | * Finish this pass of changelogging, yay!
21:27 audreyt_ good news: according to emeijer, the cleanest way to do calldynamic and the entire metaobject protocol on CLR is just CreateTransparentProxy
21:27 audreyt_ bad news: Mono doesn't implement it ;)
21:27 ZuluOne *sighI
21:27 ZuluOne s/I/*/
21:28 * audreyt_ ponders finding some mono people to talk about that
21:28 audreyt_ because the alternative seems to be swapping out vtable with unmanaged code
21:28 audreyt_ which stragely reminds me of pugs/src/pge/parrotembed.c...
21:30 svnbot6 r10834 | renormalist++ | cperl-mode.el:
21:30 svnbot6 r10834 | renormalist++ | * sync'd with ilyaz' cperl-mode 5.19
21:30 svnbot6 r10834 | renormalist++ | * more Twigils
21:30 svnbot6 r10834 | renormalist++ | * no longer recognize qr for regex quoting in Perl6-mode
21:30 svnbot6 r10834 | renormalist++ | * lots of keywords and highlighting regardless of Perl5- or Perl6-mode
21:30 svnbot6 r10834 | renormalist++ | * more keywords:
21:30 svnbot6 r10834 | renormalist++ |   - rx, loop, take, taken, state, any, all, one, none,
21:30 svnbot6 r10834 | renormalist++ |   - completed list of immutable and mutable types (from S06)
21:30 svnbot6 r10834 | renormalist++ |   (maybe a list of english words that are not Perl6 keywords
21:30 svnbot6 r10834 | renormalist++ |   would be easier to maintain ... :-)
21:30 xerox_ joined perl6
21:30 svnbot6 r10834 | renormalist++ | * corrected indenting after class blocks without ";"
21:30 svnbot6 r10834 | renormalist++ | * more simple "looks-like-perl6-code" heuristics
21:30 svnbot6 r10834 | renormalist++ | lib/Pugs/Doc/Hack.pod:
21:31 svnbot6 r10834 | renormalist++ | * cperl6-mode --> cperl-mode
21:36 audreyt_ hm, of course it's unplemented, because it's undocumented, not part of MSDN, hidden from code browser
21:37 audreyt_ and generally a very backdoory hack
21:37 audreyt_ ...which is stable and maintained and used internally by remoting
21:37 audreyt_ why am I not surprised ;)
21:39 fglock joined perl6
21:41 audreyt_ hm, mono does support it internally, it's just not exposed
21:41 audreyt_ so maybe it's a simple thing to expose it at mono level, instead of writing unmanaged code
21:42 TimToady Kattana: pong
21:43 audreyt_ hm, that seems to be the answer to the flyweight reference thing Chip wanted for parrot
21:47 nothingmuch TimToady: has anyone from @Larry played with Moose yet?
21:48 nothingmuch or more importantly, Class::MOP? (i know that chromatic played with it a bit, but only for introspection)
21:51 svnbot6 r10835 | renormalist++ | - cperl-mode.el: twiddled with qr and rx ("backharmonizing")
21:51 fglock nothingmuch: what should I use to implement p6 class semantics in v6-pugs (no sugar needed)
21:52 fglock is there overhead for using Moose?
21:52 fglock like extra sub calls
21:52 nothingmuch Moose's overhead is quite big actually (right now)
21:53 nothingmuch because it uses introspection and doesn't memoize/inline enough things yet
21:53 audreyt_ t should get Module::Compile'd :)
21:55 fglock nothingmuch: you could implement Moose in p6 (depends on how complex it is)
21:55 nothingmuch audreyt_: soon =)
21:55 nothingmuch audreyt_: my plan (which will, with ample force, become stevan's plan), is to first lay down some caching rules
21:55 nothingmuch once we know what is safe to cache and when, we can then add persistent memoizationw ith MC
21:55 nothingmuch and also code inlining with MC
21:56 nothingmuch especially if the class becomes closed
21:56 audreyt_ fglock: it will be very metacircular indeed :)
21:56 audreyt_ nothingmuch: Moose doesn't yet have "is open" annotations right?
21:56 stephanepayrard_ joined perl6
21:56 audreyt_ last I checked it has no classwide annotations
21:56 audreyt_ such as "class Foo is rw"
21:57 fglock audreyt_: my plan is to rewrite the emitter in p6 soon - it is simple enough
21:57 nothingmuch audreyt_: not yet
21:57 fglock but first, implement P6 closures inside rules using v6 instead of source filter
21:58 nothingmuch class is rw?
21:58 nothingmuch is that like the default attr thing?
21:58 nothingmuch btw, i've been noticing that all my recent projects (Monju, Class::Workflow, etc) have had good support for purely functional usage using readonly objects
21:58 nothingmuch what's Perl's level of support for haskell like records
21:58 nothingmuch where you derive a copy
21:58 nothingmuch with only some fields overridden?
21:59 audreyt_ that's called COW
21:59 svnbot6 r10836 | Sage++ | Adding design docs
21:59 svnbot6 r10837 | Sage++ | Adding design docs
21:59 audreyt_ and is not present anywhere
21:59 audreyt_ so you have to fake it with double refs
21:59 audreyt_ which is sad
21:59 nothingmuch it's not just COW
22:00 nothingmuch it's mostly the lightweight syntax
22:00 nothingmuch oh, and I mean Perl 6
22:00 nothingmuch =)
22:00 audreyt_ heh
22:00 audreyt_ $obj.clone(overridden=>'value')
22:00 audreyt_ is probably it
22:00 nothingmuch ah
22:00 nothingmuch like Moose gives me now
22:00 audreyt_ on value objects that can maximize sharing
22:00 svnbot6 r10838 | Sage++ | Adding design docs
22:00 svnbot6 r10839 | Sage++ | Adding testing material
22:00 audreyt_ yes
22:00 nothingmuch on any attr is rw it can maxaimize sharing =)
22:01 audreyt_ eh, uhm, hm?
22:01 audreyt_ on "is rw" you have to actually copy
22:01 nothingmuch err
22:01 audreyt_ only on "is readonly" you can share
22:01 nothingmuch i meant ir ro
22:01 nothingmuch yeah
22:01 audreyt_ k
22:01 nothingmuch oh, you meant non-deep isro
22:01 Kattana TimToady: still there? just wondering if you got that pm the other day
22:01 svnbot6 r10840 | Sage++ | Adding personal copy
22:02 nothingmuch doesn't Perl 6 have cow by default, btw?
22:02 audreyt_ COW is a runtime feature
22:02 audreyt_ not a language feature
22:02 audreyt_ if the runtime has support for that in object layout, sure
22:02 audreyt_ if not, we can't
22:02 nothingmuch i mean as a general rule
22:02 audreyt_ I don't think so, no
22:02 audreyt_ there's no "tail calls must be fast" like dictate in the Syns
22:03 nothingmuch although it's transparent, performance does affect people's decisions on design
22:03 nothingmuch hmm
22:03 nothingmuch oh well
22:03 audreyt_ the runtime profile for perl6 is very blurry to all involved...
22:03 audreyt_ maybe because we don't want to evaluate sqrt($evil)
22:03 renormalist left perl6
22:04 nothingmuch yeah, but some things are obviously needed, like bigint support, and STM and stuff
22:04 nothingmuch that is, they can go missing
22:04 nothingmuch but there's no real way to support full Perl 6 without this
22:04 audreyt_ we don't get STM when targetting JS
22:04 nothingmuch likewise, s04 (?) talks about packed arrays
22:04 audreyt_ bigint support may vary depending on platform
22:04 nothingmuch it's not a requirement
22:04 ZuluOne surely sqrt(all($evil)), even though they are equivalent?
22:04 nothingmuch but it's a hint
22:04 audreyt_ nod
22:04 nothingmuch encouraging better design to make use of the extra value on runtimes that do give a damn
22:05 audreyt_ well, you are in charge of one of the runtimes :)
22:05 audreyt_ so if you give a damn, we'll work on it :)
22:05 nothingmuch which one is that gain?
22:05 audreyt_ Moose?
22:05 nothingmuch oh
22:05 nothingmuch i didn't know i was ;-)
22:05 audreyt_ I thought you are a Moose committer and generally hacking on it :)
22:05 nothingmuch yes
22:06 audreyt_ well then :)
22:06 nothingmuch but I didn't know i was responsible ;-)
22:06 audreyt_ fair enough
22:07 nothingmuch fglock: the best bet is to probably sort out the Perl 6 MOP WRT moose
22:07 nothingmuch and see how you can translate to that
22:07 nothingmuch you'll probably want to use Class:::MOP
22:07 nothingmuch and not Moose itself
22:07 nothingmuch since Moose is to Class::MOP a bit like Perl 6 is to the object space
22:07 nothingmuch (only it's very Perl 5 specific in it's impl)
22:07 audreyt_ otoh, Roles are in Moose not in C::MOP
22:08 audreyt_ so would make sense to reuse
22:08 nothingmuch well
22:08 nothingmuch Moose::Meta stuff is still Class::MOP
22:08 nothingmuch Moose itself is the sugar layer
22:08 audreyt_ yup
22:08 audreyt_ so use M::M
22:08 audreyt_ not Moose
22:08 audreyt_ is what I meant
22:08 nothingmuch aye
22:08 nothingmuch fglock: if you want a quick overview:
22:08 fglock M::M?
22:08 nothingmuch Moose::Meta::*
22:08 audreyt_ Moose::Meta
22:09 nothingmuch you have Meta::Class which you can subclass
22:09 nothingmuch every perl namespace that was touched by moose has an instance of a meta class
22:09 nothingmuch the meta class can introspect and also change the namespace
22:09 nothingmuch you can think of the namespace in the symbol table as part of it's instance data
22:09 nothingmuch it deals with several other objects:
22:10 nothingmuch Class::MOP::Method (simple, and also wrapped/augmented/hooked methods)
22:10 nothingmuch Moose::Meta::Attribute
22:10 nothingmuch (an attribute is the interface part - the name, the accessors, the constraints and coercions)
22:10 nothingmuch and Moose::Meta::Instance
22:10 nothingmuch which describes the structure of the instance and performs slot allocation
22:10 nothingmuch (potentially this can be static)
22:11 nothingmuch attrs interface with the meta instance to allocate storage slots
22:11 nothingmuch then you have Moose:::Object which implements ->new that calls meta->isntance->create_instance, and then lets all the attrs handle the params, and then calls BUILDALL which does every BUILD
22:11 nothingmuch and err, that's it
22:11 nothingmuch as for Roles - they have everything deferred
22:12 nothingmuch that is, on compotision they apply their stuff to the class they are being composed into
22:12 nothingmuch i hope that helps you know where to look now =)
22:12 nothingmuch join #moose on irc.perl.org if you want more detailed info
22:13 fglock k
22:14 fglock v6.pm will probably just use Moose first, and then optimize
22:15 nothingmuch it's not a matter of optimization
22:15 audreyt_ not even sure we want to optimize on the v6.pm level
22:15 nothingmuch Class::MOP's api is probably just more robust for programatic invocation
22:15 audreyt_ nothingmuch: we are codegenning p5
22:15 nothingmuch yeah
22:15 audreyt_ and whenever sugar makes sense
22:15 audreyt_ that will help people debugging
22:15 nothingmuch hmm
22:16 nothingmuch but Moose and Perl 6 are not 1:1
22:16 nothingmuch so that could be trouble
22:16 audreyt_ there is no reason why a subset of Moose cannot be all Perl6 needs
22:16 nothingmuch well
22:16 audreyt_ and if they disagree on internal metaclass handling logic
22:16 nothingmuch whatever works =)
22:16 audreyt_ then we need to fight it out in Chicago :)
22:16 nothingmuch then you can just write Class::MOP::Perl6
22:16 audreyt_ I just don't see why we need that :)
22:16 nothingmuch although IMHO Moose should try and mimic Perl 6 as closely as possible
22:17 audreyt_ if they fundamentally differ on the meta level
22:17 audreyt_ that's going to confuse people using p5 sugar
22:17 audreyt_ and hinder v6.pm adoption
22:17 nothingmuch i don't think they differ substantiall, and i'm sure they don't differ fundamentally
22:17 fglock bbiab - will backlog &
22:17 nothingmuch but perhaps they do subtly
22:17 audreyt_ so different sugar is fine, but the M::M shoudl agree
22:17 audreyt_ yeah, so we need to iron those things out
22:17 nothingmuch right
22:17 fglock left perl6
22:17 audreyt_ one good way is p6izing the moose tests :)
22:17 nothingmuch that's why i asked TimToady if anyone played with it =)
22:17 audreyt_ but we'll see.
22:18 audreyt_ (I've p6ized the cookbooks, and there's only two things: object layout and subset vs subtype)
22:18 audreyt_ p6 allows this
22:18 Limbic_Region joined perl6
22:19 nothingmuch object layout?
22:19 audreyt_ class Foo { has $.x; method foo { $.x = 1 } }
22:19 audreyt_ (if I'm not mistaken)
22:19 nothingmuch splain
22:19 audreyt_ but in Moose it has to be
22:19 audreyt_ class Foo { has $.x; method foo { self.<x> = 1 } }
22:20 audreyt_ because ro slots are ro even within class body
22:20 audreyt_ so you need to peek into the layout
22:20 audreyt_ which is not portable across layouts
22:20 nothingmuch oh
22:20 nothingmuch caller sensitive ro behavior is a long TODO
22:20 audreyt_ ("layout" here means "repr" in PIL^N land)
22:20 nothingmuch btw
22:20 nothingmuch self.<x> isa nono
22:20 audreyt_ well the cookbook use that
22:20 audreyt_ on the first page
22:20 nothingmuch $self->meta->meta_instance->set_slot("x", 1) } ;-)
22:20 audreyt_ so *shrug*
22:20 nothingmuch yeah
22:20 nothingmuch long argument with stevan
22:21 nothingmuch of course, that should have an inlinable version
22:21 nothingmuch since meta_instance does not typically change during runtime
22:21 audreyt_ just have caller sensitive accessors ;)
22:21 audreyt_ so, why is it a nono?
22:21 audreyt_ surely we can go the other way with tying?
22:21 nothingmuch well
22:21 nothingmuch because meta instances are opaque
22:22 audreyt_ I mean tie $x
22:22 audreyt_ $self
22:22 nothingmuch oh
22:22 nothingmuch sure
22:22 audreyt_ so that <x> resolves to meta instance call
22:22 nothingmuch yeah
22:22 audreyt_ that's one way to fix the mismatch
22:22 nothingmuch that's just a meta attr class
22:22 audreyt_ for sugar, it's perhaps best
22:22 nothingmuch i think
22:22 nothingmuch either that or Want lvalue
22:22 nothingmuch want assign
22:22 audreyt_ yeah, but the cookbook is currently broken wrt the p6 callconv
22:22 audreyt_ yeah
22:22 nothingmuch yep
22:22 nothingmuch i'll sit on stevan's head so that he'll fix it
22:23 audreyt_ cool!
22:23 audreyt_ yay to a head-sitting nothingmuch
22:23 nothingmuch so far i've bulldozed him into supporting a few perl 6 subtleties
22:23 nothingmuch but mostly out of the interest of translating Moose code to Perl 6
22:23 audreyt_ is bulldozing more painful than railroading?
22:23 audreyt_ nod. the roundtrip should be canonical
22:23 nothingmuch anyway, sleepy time
22:23 audreyt_ good night
22:23 audreyt_ see you in Chicago
22:24 nothingmuch i dunno how painful railroading is
22:24 nothingmuch indeed!
22:24 nothingmuch btw, is balas coming?
22:24 audreyt_ to Boston
22:24 audreyt_ not Chicago
22:24 nothingmuch ah
22:24 nothingmuch well
22:24 nothingmuch *poof*
22:24 audreyt_ ...and he disappeared in a smoke of logic
22:24 obra heh
22:58 rafl Juerd: No. I wanted to be at the southside festival at this weekend and didn't make it.
23:00 mako132_ joined perl6
23:01 * particle_ pings audreyt_
23:04 particle_ audrey: i'm leaving in ~15min. please meet at 5p at *south* side of bldg 35, if possible. you have my number, if you don't see me or plans change. see you soon.
23:04 particle_ particle &
23:11 audreyt_ ok, will be there
23:12 KingDiamond joined perl6
23:12 premshree_ joined perl6
23:12 premshree_ left perl6
23:13 premshree__ joined perl6
23:13 premshree_ joined perl6
23:14 premshree_ left perl6
23:14 premshree__ left perl6
23:17 stevan audreyt_:  the Moose::Cookbooks need updating badly
23:17 stevan the $self->{x} was from before we added the instance protocol
23:17 stevan it will eventually go away
23:17 * stevan just needs to find enough @time away from $work
23:19 stevan as for Perl 6 <-> Moose ... they will *always* be compatible on some level
23:20 stevan they will always be subsets/supersets of one another
23:20 stevan for instance, Perl 6's MOP will have more to it then Moose
23:21 stevan this is because Perl 6 MOP will likely control access to packages, where as with Moose, you can always just bypass the MOP and use symbol table hackery
23:22 audreyt_ er with p6 you can always go into the runtime too
23:22 audreyt_ that's not a problem
23:22 audreyt_ Moose is both a p5-runtime level thing
23:22 audreyt_ and a conceptual protocol
23:22 stevan yeah
23:22 audreyt_ I only care about the latter
23:22 audreyt_ as you surely would agree :)
23:23 stevan but in Perl 6 we can make sure that you always go through the MOP on some level right?
23:23 audreyt_ that's the entire idea :)
23:23 audreyt_ sure
23:23 stevan yes I agree,. the runtime internals are not as important as the conceptual details
23:24 stevan Moose will have things like before/after/around and augment/inner too.. but those are just toys I like
23:24 stevan if I can sell @Larry on them, then P6 can have em too :)
23:25 stevan augment/inner is really useful,.. I have to write up a nice cookbook for it
23:25 stevan but yes,.. in the end,.. I am always trying to make sure that Moose and Perl 6 play nice
23:27 audreyt_ I like that brendan on the very beginning of JS2 talk
23:27 audreyt_ says that the migration strategy is JS2->JS1 period
23:27 audreyt_ and everything else comes later
23:27 audreyt_ I really think that's the way forward for P6 as well :)
23:27 stevan I am not sure I understand
23:27 * stevan has not seen the talk maybe
23:28 audreyt_ the P6 equivalent would be that ensuring P6->P5 backtranslation on P5 runtime works first
23:28 audreyt_ before doing any other runtime compat tricks
23:28 stevan ah yes
23:28 stevan well as long the metamodels have a strong enough conceptual similarity ,.. it should be fine
23:28 audreyt_ because that nets them a self hosting js2 compiler that can run on js1
23:29 audreyt_ and effectively reference implementation of internals
23:29 audreyt_ modeled on a subset of js1 semantic that we all know and love
23:29 audreyt_ (or not love, but at least familiar)
23:29 stevan ah I see what you mean
23:29 audreyt_ which is what Moose effectively is doing, at least in part
23:29 stevan it will get trickier when you get down to straight P5 stuff,.. non-OO/Moose
23:30 stevan but that is what Moose::Autobox tried to explore
23:31 stevan I agree too that v6.pm should use Moose::Meta::*, however that is not 100% stable yet
23:31 stevan the role MOP needs work
23:32 stevan audreyt_: I was looking at the YAPC schedule,.. your deploying p6 talk is the same time as my Moose talk
23:33 stevan double the M??siness
23:33 stevan se ;)
23:35 mako132_ joined perl6
23:41 Ymmv joined perl6
23:44 audreyt_ :)
23:44 audreyt_ Seattle.pm &
23:45 audreyt_ so we end up figuring out a type to do runtime MOP in CLR :D
23:45 audreyt_ by allocating a "type pool" of 100 uninstantiated static types in compile time
23:46 audreyt_ and at runtime whenever the MOP has a createClass or something like that, use one of the unallocated types and swap it out into dynamic types with transparent proxy
23:46 audreyt_ and once the 100 is exhausted, just create 100 more using Reflection
23:46 audreyt_ and it even works in mono
23:46 audreyt_ beautiful ;)
23:53 svnbot6 r10841 | audreyt++ | * Pugs::Lexer - make these two equivalent:
23:53 svnbot6 r10841 | audreyt++ |     my Foo $x;
23:53 svnbot6 r10841 | audreyt++ |     my ::Foo $x;
23:53 svnbot6 r10841 | audreyt++ |   previously the second one was assigning ::::Foo to $x.
23:54 ingy hi audreyt_
23:54 audreyt_ yo ingy
23:54 ingy is M::C on cpan not working with v6?
23:54 svnbot6 r10842 | audreyt++ | * Introduce the (Ann Decl) form to eventually support this special form:
23:54 svnbot6 r10842 | audreyt++ |     state $x = 4;
23:54 svnbot6 r10842 | audreyt++ |   which must expand to
23:54 svnbot6 r10842 | audreyt++ |     FIRST { state $x = 4 }
23:54 svnbot6 r10842 | audreyt++ |   not sure if it's a parsetime or runtime distinction, and not sure
23:54 svnbot6 r10842 | audreyt++ |   if bindings get the same treatment:
23:54 svnbot6 r10842 | audreyt++ |     state $x := 4;
23:54 svnbot6 r10842 | audreyt++ |   TimToady? :)
23:54 audreyt_ not sure
23:54 audreyt_ it probably does
23:55 audreyt_ I gotta run to Seattle.pm meeting
23:55 ingy ok, I'm about to get on a plane
23:55 ingy I'll merge M::C into pugs tree
23:55 ingy have fun
23:55 ingy tell 'em ingy says yo
23:57 audreyt_ k :)
23:57 audreyt_ &

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

Perl 6 | Reference Documentation | Rakudo