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