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 | |
& |