pugs.blogs.com/dist/Perl6-Pugs-6.2.13.tar.gz released! | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by audreyt on 17 October 2006. |
|||
buu | Hello Limbic_Region ! | 00:09 | |
Limbic_Region | salutations buu | 00:14 | |
00:36
mbradley|afk joined
|
|||
pasteling | "audreyt" at 200.150.229.66 pasted "patch for cmarcelo" (229 lines, 9.6K) at sial.org/pbot/20896 | 00:37 | |
00:37
jferrero joined
|
|||
audreyt | @tell cmarcelo www.haskell.org/tmrwiki/WhyAttribut...marsMatter | 00:39 | |
lambdabot | Consider it noted. | ||
audreyt | C3 MOH bootstrapped :) | 00:51 | |
svnbot6 | r14621 | lwall++ | \x and \o were incorrect | ||
audreyt | almost ready to be included back to pugs/src/ | ||
Limbic_Region | wow | 00:52 | |
audreyt++ | |||
audreyt | so we can have RealClasses | ||
it's actually mostly cmarcelo's work :) | |||
well, based on nothingmuch's. | |||
Limbic_Region | cmarcelo++ nothingmuch++ | 01:02 | |
01:20
dmq joined
01:28
whatitsnot joined
01:29
whatitsnot left
|
|||
jrockway | what mailing list should i send patches to? (regarding openbsd support) | 01:36 | |
TimToady | patches to what? | ||
anatolyv | TimToady: yet another parsing question to aid my imperfect understanding of S02, if I may :) What, in terms of grammatical categories are declarators such as "my" and "sub"? | 01:46 | |
TimToady | scope_declarator | ||
anatolyv | TimToady: oh. But I thought scope_declarators, like "has $x", cannot appear arbitrarily inside expressions, but only at about the same place as control structures? (that's why I had them pegged as prefix:<> instead) | 01:47 | |
TimToady: or should I be able to say "3 + has $x" ? | |||
TimToady | in theory you can do that. | 01:48 | |
but don't... | |||
more often you see "my" in the middle of an expression. | |||
but "state" also has its uses. | |||
as does "constant" | |||
anatolyv | is there a difference then between prefix: and scope_declarator:, in terms of places where one can be expected but not the other? | 01:49 | |
TimToady | not really any difference that I can think of. Just like to keep the declarational macros separated out from the ordinary functions is all. | 01:50 | |
ingy | hi all | ||
TimToady | ingy! | ||
ingy | hi TimToady | 01:51 | |
01:51
loumz joined
|
|||
anatolyv | great, thanks for clearing that up. | 01:51 | |
TimToady | basically things in prefix: should be ordinary operator precedence stuff. | 01:52 | |
ingy just got back from running the Dublin Marathon | |||
soo glad that traveling is over for a while | |||
TimToady | whereas in "state $x = 2" it's eating up the = as a macro | ||
anatolyv | it is? but can't it just be stopped from eating the = based on its precedence, and then = applied normally after the macro did its thing? | 01:53 | |
TimToady | the = has to run at a different time than ordinary = | 01:54 | |
for "state" it happens at "FIRST" time. | |||
for "has" it happens at "BUILD" time. | |||
for "constant" it happens at "BEGIN" time | |||
in fact, "my" is about the only one that coincides with normal assignment time. | 01:55 | ||
well, "our" too. | |||
audreyt | jrockway: please simply commit | 01:56 | |
jrockway: I'm pretty sure you have a commit bit :) | |||
TimToady | does | ||
anatolyv | but = could also be := and ::=, right? the macro just has to eat all the variants? | ||
TimToady | I was just trying to ascertain it was inside pugs/ | ||
audreyt | I think it only eats = | ||
TimToady | well, by definition ::= gets eaten immediately at compile time... | 01:58 | |
but perhaps not by the macro | |||
audreyt | in pugs, currently infix:<=> macro checks lhs to see if it's a state decl | 01:59 | |
which seems cheaper and more cheerful as it does not involve custom parsing | 02:00 | ||
TimToady | ?eval 1 + state $x = 42 | 02:01 | |
evalbot_r14621 | Error: Can't modify constant item: VInt 1 | ||
anatolyv | so it's a macro specifically for this purpose, but for other things it acts as a normal op? | ||
actually i guess it has to check for the simple_lvalues things too | |||
audreyt | TimToady: prec | ||
TimToady | my point | 02:02 | |
audreyt | $ perl -e '1 + my $x = 42' | ||
Can't modify addition (+) in scalar assignment at -e line 1, at EOF | |||
anatolyv: = is never a normal op :) | |||
TimToady | let's not get all theological here. :) | ||
?eval 1 + state ($x) = 42 | 02:03 | ||
evalbot_r14621 | Error: Can't modify constant item: VNum 2.0 | ||
TimToady | ?eval 1 + print 42 | 02:04 | |
evalbot_r14621 | OUTPUT[42] 2.0 | ||
anatolyv | audreyt: hmm, yeah, silly me | ||
audreyt | hm, I just discovered that 1)the p6 talk is tomorrow 9am not 1pm and 2)daylight saving begins tomorrow which may reduce 1 hour of sleep and 3)it's midnight here | 02:05 | |
TimToady | ?eval 1 + state ($x, $y, $z) = 1,2,3; | ||
evalbot_r14621 | Error: Can't modify constant item: VNum 4.0 | ||
audreyt | TimToady: infix:<=> was consistently seeing a infix:<+> at lhs, not state, so it does nothing | ||
and so it became simply 1+($,$,$) which is 1+3 | 02:06 | ||
TimToady | this is inconsistent with other list operators... | ||
and arguably state($$$)= is a listop | |||
audreyt | but 1+ binds tighter, no? | ||
TimToady | ?eval 1 + print 1,2,3 | ||
evalbot_r14621 | OUTPUT[123] 2.0 | ||
audreyt | than = | ||
TimToady | ?eval my $x ~~ s[foo] = 42 | 02:07 | |
evalbot_r14621 | Bool::False | ||
audreyt | right. so your idea is that state($$$)= is diferent from my($$$)= | 02:08 | |
and it functions as a s[]= | |||
TimToady | I based the argument for that partly on the assumption that state()= ate the = | ||
audreyt | but I think state($$$)= is a bit too magical | ||
TimToady | the consistent pattern is that declarator($$$)= is different. except "my" and "our" happen to work out the same. | ||
audreyt | uhm. | 02:09 | |
so you mean | |||
1 + my($$$) = ... | |||
parses as | |||
1 + (my($$$) = ...) | |||
but | |||
1 + ($$$) = ... | |||
parses as | |||
(1 + ($$$)) = ... | |||
? | |||
TimToady | yes | ||
audreyt | that departs from perl5 :) | 02:10 | |
TimToady | declarators have an optional = argument | ||
what is this perl5 thing you keep mentioning? | |||
audreyt | S03:1337 wants a revamp then | ||
TimToady | well, some declarator have = | ||
audreyt | I'm fine as long as my() and state() parses the same way | ||
i.e. | 02:11 | ||
1 + my($$$) = ... | |||
1 + state($$$) = ... | |||
should not parse differently | |||
TimToady | and "has" and "constant" | ||
anatolyv | TimToady: so all declarators are listops and bind tighter than everything else to the left? | ||
TimToady | not quite | ||
audreyt | anatolyv: no; more think declarator and = having a ?? !! relationship. | ||
i.e. = is not parsed in infix but as part of decl term | 02:12 | ||
I'd be happy to implement it if it's specced that way :) | |||
TimToady | and "my $x = 1" still parses = like scalar assign, not list assign. | ||
audreyt | but | ||
1 + my $x = 1 | |||
is now 2, not error | |||
which makes sense. | |||
svnbot6 | r14622 | jrockway++ | change p5embed to not use __init symbol on OpenBSD (conflict with standard C library) | 02:13 | |
ingy attempts to install ghc again | 02:14 | ||
jrockway | the real question is, what other OSes also choke on __init | 02:15 | |
ingy | jrockway: that's not a real question... | 02:16 | |
it needs a question mark | |||
jrockway | heh :) | ||
s/the real question/what i'm wondering out loud about/ | 02:17 | ||
gnuvince | speaking of question marks, will Perl 6 support question marks in function names? | ||
jrockway | ah, as per lisp? | ||
gnuvince | s/support/allow/ | ||
jrockway | that would be nice, actually | ||
gnuvince | jrockway: yeah | ||
TimToady | not unless you redefine <ident> | 02:18 | |
anatolyv | TimToady: what's <ident> like currently (and is it specced)? | ||
02:18
fab_ joined
|
|||
TimToady | or define postfix:<?> | 02:19 | |
which is probably more what you want | |||
ingy | my @answers = what_other_OSes_also_choke_on___init?(); | ||
gnuvince | TimToady: I was thinking: $banker.jump_of($bridge) if $banker.broke? | 02:20 | |
s/of/off | |||
anatolyv | if function names can be in whatever languages, why not also ? and whatever non-whitespace characters in general? | 02:21 | |
svnbot6 | r14623 | audreyt++ | * fix broken svk:merge point. | ||
ingy | compiling ghc makes my laptop noisy | ||
jrockway | i think the ? is more of an identifier than an operator in this case | ||
TimToady | ?eval sub postfix:<?> ($x) { Bool($x) }; if 42? { say "The Answer" } | ||
evalbot_r14622 | Error: No compatible subroutine found: "&Bool" | ||
TimToady | ?eval sub postfix:<?> ($x) { ?($x) }; if 42? { say "The Answer" } | 02:22 | |
evalbot_r14622 | OUTPUT[The Answerā¤] Bool::True | ||
jrockway | i think he wants something like: | ||
svnbot6 | r14624 | audreyt++ | * Pugs.Parser.Types: insertIntoPosition now takes a String, not Char, | ||
r14624 | audreyt++ | so we can more freely conjure snippets that user had not written | |||
r14624 | audreyt++ | from thin air. | |||
jrockway | sub false?($x) { return !$x; } | ||
if false?(0) { say "false" } | 02:23 | ||
that ends up looking prettier in scheme, though :) | |||
audreyt | that's trivial | ||
?eval sub prefix:<false?> ($x) { !$x }; false? 0 | |||
evalbot_r14622 | Bool::True | ||
audreyt | the nontrivial part is to make it into method name | ||
TimToady | ?eval self.'what?' | 02:24 | |
evalbot_r14622 | Error: ā¤Unexpected "'"ā¤expecting ".", "\187", ">>", "=", operator name, qualified identifier, variable name, "...", "--", "++", array subscript, hash subscript or code subscript | ||
audreyt | unimplemented. | ||
but yes, that's trivial solution :) ugly though | |||
jrockway | the syntax also implies something like sub foo { return "something" } is related to foo? such that sub foo? { return Bool(foo()) } | 02:25 | |
audreyt | though you can do something like | ||
macro term:<what?> { "'what?'" } | |||
er I mean | |||
macro postfix:<.what?} | |||
macro postfix:<.what?> ($lhs) { "$lhs.'what?'" } | 02:26 | ||
TimToady | I think it's a little silly to advertise "I am a boolean" in a language where anything can be a boolean. | 02:27 | |
jrockway | true | 02:28 | |
avar | ?eval sub circumfix:<is true?> ($x) { Bool($X) }; is 42 false? | ||
evalbot_r14624 | Error: ā¤Unexpected "false"ā¤expecting operator, ":" or "," | ||
TimToady | we also didn't borrow Ruby's mutator syntax. | ||
avar | ?eval sub circumfix:<moo true?> ($x) { Bool($X) }; moo 42 false? | ||
evalbot_r14624 | Error: ā¤Unexpected "false"ā¤expecting operator, ":" or "," | ||
avar | meh:) | ||
audreyt | you defined true and you expect false to work | ||
how does that add up :) | |||
gnuvince | TimToady: mutators? | ||
jrockway | DWIM :) | 02:29 | |
avar likes ruby's mutators:) | |||
TimToady | are spelled @array.=sort | ||
anatolyv | DWIMHM | ||
TimToady | not @array.sort! | ||
gnuvince | ah | ||
audreyt | actually .= does double dispatch | 02:30 | |
first to self:<sort> | |||
then slowly fallback to normal assignment | |||
avar | i.e. .= is cool too:) | ||
gnuvince | Yeah | ||
TimToady | ever so slowly...like leaves falling... | ||
gnuvince | More general than x.foo! | ||
TimToady | my Dog $x .= new; | ||
02:31
hexmode joined
|
|||
avar | just as long as you can get an automagic in-place or with-a-copy version of every function I'm all for it (not that anyone's asking:) | 02:31 | |
svnbot6 | r14625 | audreyt++ | * Pugs.Parser: Adjust for the insertIntoPosition change. | ||
audreyt | TimToady: though with the ::Dog() construction syntax, this is easier: | ||
my Dog $x .= (); | |||
TimToady | heh | 02:32 | |
audreyt | my Point $pt .= (x => 1, y => 2); | ||
that's almost pretty | |||
and even Just Works | |||
TimToady | I take your Point | ||
it's also why chomp changed to return the chomped string. | 02:33 | ||
audreyt updates her slides to take out all the "new" | |||
TimToady | to chomp in place is now $str.=chomp | ||
my Array $a .= [Int] | 02:34 | ||
anatolyv | audreyt: how's .= work with declarators - the way you described = as working? is .= a special macro just for that or infix_postfix_meta_operator:<=> is doing the job? | 02:35 | |
audreyt | anatolyv: well I described TimToady's latest vision that I wasn't aware of until just an hour ago :) | 02:38 | |
svnbot6 | r14626 | audreyt++ | * Pugs.Parser: The previous commit also support rule-as-methods: | ||
r14626 | audreyt++ | grammar G { | |||
r14626 | audreyt++ | rule r { ... } | |||
r14626 | audreyt++ | } | |||
r14626 | audreyt++ | G.r('text'); # same as 'text' ~~ /<G::r>/. | |||
audreyt | but according to that vision then declarator must pretty much eat all assigment forms | 02:39 | |
my $x += 3 | |||
my $x .= moose | |||
etc etc, are all parsed tighter than usual | |||
TimToady | still thinking about whether macroized = eating is going to make any practical difference. | ||
state Moose $m .= () probably want to happen at "first" time | 02:40 | ||
on the other hand most other mutators don't make much sense on undefs | 02:42 | ||
and arguably "state $x += 2" is probably intended to start at 0/undef and incinc every time | 02:44 | ||
but it's hard to make an exception for .= and not for other assignops | |||
(as in hard to teach) | |||
02:45
brent[] left
|
|||
TimToady | so maybe we don't make an exception, and you have to use = to get "state Moose $m = Moose()" | 02:45 | |
or we go the other way, and require people to write (state $x) += 2 to force run-time eval. | 02:47 | ||
then we get "state Moose ($m, $n) >>.=<< () | 02:48 | ||
and all the .= happen at first time | 02:49 | ||
or "state Moose ($m,$n)>>.=() in postfix form | 02:50 | ||
except that's not really an assignment at all now, syntactically... | |||
audreyt | I think specialize only on = makes sense | ||
because = is already maximally magical | 02:51 | ||
TimToady | but we decided the other way on s[\d+] += 2 | ||
audreyt | and localizing magic makes it easier to reason about things | ||
but s[] does not have a base form | |||
while people may reasonably expect | |||
... my($x) ... | |||
parse similarily to | |||
... $x ... | |||
s[] has no such problem because nobody will expect | 02:52 | ||
... s[foo] ... | |||
parse the same as | |||
... foo ... | |||
in that sense s[] is not circumfix | |||
and state() is | |||
TimToady | well, let's leave it the way it is for now. | 02:53 | |
audreyt | *purr* | ||
audreyt rests in peace having learned state($world) havn't changed parsing yet | |||
TimToady | that does, however, imply that infix:<=> has to somehow know about all declarators... | 02:54 | |
and the natural place to add the weirdity is in the declarator macro | |||
audreyt | not so | ||
the AST carries a scope_declarator:<> | 02:55 | ||
and whatever inside :<> does not matter | |||
they'll always be constructed by a call to s_d:<something> | |||
and i:<=> acts on that | |||
TimToady | okay, I guess that works | ||
audreyt | yay | ||
we can even spec that s_d if multi on 2arg then i:<=> call it with 2nd being rhs and let it handle otherwise assume normal = | 02:57 | ||
</incoherent_rant> | |||
*wave* & | |||
03:08
Excedrin joined
04:55
shobadobs joined
04:59
Limbic_Region joined
05:14
bennymack joined
|
|||
Limbic_Region | TimToady ping | 05:30 | |
@tell TimToady I know you backlog and the @tell is likely not necessary but please feel free to update examples/algorithms/fibonacci_memoization.pl | 05:34 | ||
lambdabot | Consider it noted. | ||
05:45
Psyche^ joined,
eggzeck joined
|
|||
gaal | @tell fglock if shopping for an editor, try FTE - it's a powerful non-unixy moose (I used to run it on OS/2...). has many languages and does ctags etc. | 05:52 | |
lambdabot | Consider it noted. | ||
05:53
Psyche^ is now known as Patterner
|
|||
svnbot6 | r14627 | lwall++ | A little honing of fib(). | 05:57 | |
r14628 | lanny++ | * fibonacci_tail_call to match fibonacci_memo | 06:10 | ||
06:15
BooK_ joined
|
|||
svnbot6 | r14629 | lanny++ | * Have fibonacci examples return the fibonacci sequence instead of sequence [ fib(n) | n=2.. ] | 06:28 | |
avar | ?eval [ 1 .. 10 ] | 06:40 | |
evalbot_r14629 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||
avar | ?eval [ 1 .. 10:by(2) ] | ||
evalbot_r14629 | Error: ā¤Unexpected "["ā¤expecting program | ||
avar | ?eval [ (1 .. 10):by(2) ] | 06:41 | |
evalbot_r14629 | Error: ā¤Unexpected "["ā¤expecting program | ||
avar | for 1 .. 10 :by(2) -> $i { say $i } | 06:42 | |
?eval for 1 .. 10 :by(2) -> $i { say $i } | |||
evalbot_r14629 | Error: ā¤Unexpected ":by"ā¤expecting operator or block construct | ||
TimToady | :by is not implemented | ||
lambdabot | TimToady: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
TimToady | ?eval sub fib (Int $n) { (state @seen = 0,1,1).[$n] //= fib($n-1) + fib($n-2); } fib(10) | 06:53 | |
evalbot_r14629 | \55 | ||
TimToady | audreyt: the preceding fib does not seem to memoize correctly. | 06:55 | |
06:56
esstone joined
|
|||
TimToady | ?eval sub fib (Int $n) { state @seen = 0,1,1; @seen[$n] //= fib($n-1) + fib($n-2); } fib(10) | 06:58 | |
evalbot_r14629 | \55 | 06:59 | |
TimToady | that doesn't memoize either. | ||
it's always setting @seen back to 3 elements. | 07:01 | ||
svnbot6 | r14630 | lwall++ | fib with UInt guard and memo state initialization | 07:10 | |
TimToady | @tell audreyt aforementioned bug now infests examples/algorithms/fibonacci_memoization.pl | 07:11 | |
lambdabot | Consider it noted. | ||
07:18
elmex joined
07:29
norageek joined
07:31
Southen joined
07:42
penk joined
07:51
SubStack joined
08:13
iblechbot joined,
Excedrin joined
08:24
crem joined
08:54
larsen_ joined
09:19
ruz joined
09:59
penk joined
10:02
Excedrin joined
10:17
buetow joined
10:33
ludan joined
10:43
Excedrin joined
|
|||
svnbot6 | r14631 | rnhainsworth++ | test for modifying a scalar inside a v5 block | 10:43 | |
r14630 | lwall++ | fib with UInt guard and memo state initialization | |||
11:00
ezraburgh joined
11:07
ruoso joined
11:10
kanru joined
11:14
xinming_ joined
11:19
turrepurre joined
11:21
Excedrin joined
11:33
elmex joined
11:34
Psyche^ joined
11:36
turrepurre joined
11:37
kanru joined
11:46
Psyche^ is now known as Patterner
12:15
kanru joined
12:47
rodi joined
12:51
kanru joined
12:54
diakopter joined
12:58
Psyche^ joined
13:12
Psyche^ is now known as Patterner
13:27
BooK joined
14:05
Excedrin joined
14:10
autark_ joined
14:14
Limbic_Region joined
14:27
anatolyv joined
14:28
xinming_ is now known as xinming
14:35
stevan_ joined
14:37
fglock joined
14:38
cmarcelo joined
|
|||
cmarcelo | @tell audreyt I pushed mi.t equivalent for MOH. Now Roles are on the way. I'll leave Sao Paulo tonight around 9-10pm, so if afternoon you have time i'll be happy to see how/where this will get into pugs | 14:46 | |
lambdabot | Consider it noted. | ||
14:48
diakopter joined
14:49
FOAD joined
|
|||
FOAD | Hey, so is autovivication of rvalues going away in Perl 6 pretty please? | 14:50 | |
Cugel | You could always write a patch. | ||
FOAD | Um, right. | 14:51 | |
I'm just a user, man. | 14:52 | ||
audreyt | right | 14:55 | |
lambdabot | audreyt: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
audreyt | FOAD: autovivification in Perl 6 in ravlue position is gone. | ||
FOAD | That's good to hear. Thank you. | 14:56 | |
audreyt | ?eval my %x; 1+%x{'does not vivify'}; %x.keys | ||
evalbot_r14631 | () | ||
audreyt | FOAD: please see perlcabal.org/syn/S09.html#Autovivification | 14:57 | |
lambdabot | Title: S09, tinyurl.com/y8gwf8 | ||
audreyt | cmarcelo: ok, let's hack after lightning talks | 14:58 | |
FOAD | Most interesting, thanks again. | 14:59 | |
audreyt | actually, we don't yet have tests in autovivification.t that covers all the rvalue nonvivify cases | 15:00 | |
would be be interested in writing them? if so give me your email address and I'll send you a commit bit :) | |||
cmarcelo | audreyt: nice. tks :) | 15:01 | |
lambdabot | cmarcelo: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
cmarcelo | @moosages | ||
lambdabot | audreyt said 18h 23m 5s ago: we are in the lobby and I'm rsync'ing my entire /Applications/ to fglock. come join us! | ||
audreyt said 14h 22m 17s ago: www.haskell.org/tmrwiki/WhyAttribut...marsMatter | |||
audreyt | cmarcelo: try to get at least some of the Role stuff sketched :) | ||
so we'll have a Compelling Use Case | |||
and more t/oo/ can pass :) | |||
cmarcelo | okie dokie | 15:02 | |
FOAD | I'm sorry, I probably lack the necessary skills. | ||
audreyt | anyone who has the vocabulary of "rvalue" and "autovivifi has such skillscation" | ||
it involves: read search.cpan.org/dist/Perl6-Pugs/doc...c/Hack.pod and edit one file and commit it back :) | 15:03 | ||
lambdabot | Title: Pugs::Doc::Hack - How to hack on Pugs - search.cpan.org, tinyurl.com/yjq4uw | ||
audreyt | the file in question is | ||
the file in question is svn.openfoundry.org/pugs/t/var/auto...fication.t | |||
lambdabot | tinyurl.com/ye7o2w | ||
audreyt | see if it makes some sense to you? | ||
FOAD | Okay.. | 15:04 | |
FOAD reaqds. | |||
15:04
stevan__ joined
|
|||
audreyt | hm, the IRC control characters was eaten. I meant to say "anyone who has the vocabulary of 'rvalue' and 'autovivification' has the neccessary skills :)" | 15:04 | |
Limbic_Region | FOAD - and you can commit something incredibly trivial and it can take on a life of its own | ||
Limbic_Region was suprised to see the number of commits against fibonacci | |||
FOAD | Okay, I'll give it a try. | 15:05 | |
audreyt | woot! what's your email addr? | 15:07 | |
15:08
fglock joined
|
|||
FOAD | I can't message you, apparently. | 15:08 | |
audreyt | try scramble it somehow. | ||
foo at bar dot org etc | |||
freenode requires nickserv registation to /msg | |||
FOAD | dok at xs4all dot nl | ||
Yeah I noticed. | |||
audreyt | welcome aboard! please edit to AUTHORS file | ||
and then commit it as your first commit | |||
to test that svn works | 15:09 | ||
fglock | audreyt: what is the url to send commit bits? | 15:10 | |
lambdabot | fglock: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
FOAD | Cool. | ||
Limbic_Region | fglock - you aren't an admin yet? | ||
if audreyt hasn't already done so - I will change your status now | 15:11 | ||
fglock | Limbic_Region: I am, there is a new shortcut to send invitations | ||
audreyt | fglock: commitbit.pugscode.org/ | 15:12 | |
I've done so :) (that's what "welcome aboard" means) | |||
oh, you mean flag fglock | |||
sorry lost context | |||
fglock | thanks | 15:13 | |
Limbic_Region | no worries | ||
I was confused as to the question anyway | |||
audreyt | fglock: so all LT speakers will use one computer? | ||
I'll bring my USB key downstairs in a bit. preferably I can play it as .mov | |||
Limbic_Region | fglock - do you know mk? | 15:14 | |
fglock | audreyt: ok | ||
Limbic_region: yes | |||
nothingmuch | mer | 15:15 | |
Limbic_Region | I didn't realize you guys had such a large contingent (or legion) of perl hackers down there | ||
or rather - that you were all connected | |||
fglock | we have Brasil-PM, and then a bunch of local groups | 15:16 | |
Limbic_Region | merlyn has mentioned how nice things are as well | ||
fglock | thanks! | 15:17 | |
audreyt | merlyn wants to move here :) | ||
I will, if I speak Portuguese | |||
fglock <-- Brasil-PM leader :) | 15:18 | ||
Limbic_Region | fglock++ | ||
audreyt | I can learn, but then that'll distract me from Perl6... although TimToady says learning Japanese kept him sane so he can conitnue with Perl6 | ||
Limbic_Region | I think I will make it down there in the next year or two then | ||
fglock | Limbic_Region: that would be nice | ||
audreyt: see you in ~10min? | 15:21 | ||
audreyt | 5min. | ||
fglock | k | ||
audreyt can't find her blush powder anywher eand finally gives up | |||
Limbic_Region doesn't think he would have a hard time learning the language but might have a hard time convincing his family to move | |||
audreyt - women who think they need makeup to look pretty haven't found the right SO (IMO) | 15:22 | ||
audreyt | Limbic_Region: it's not looking pretty, it's about the mental focus inherent in the medidative process | 15:24 | |
lightning talk, bbiab & | 15:25 | ||
Limbic_Region | good luck | ||
cmarcelo | nothingmuch: ping | ||
nothingmuch | cmarcelo: pong | 15:26 | |
anatolyv | hey nothingmuch | 15:28 | |
or rather, yo | |||
nothingmuch | yo homie | ||
werd to yo mama | 15:29 | ||
nothingmuch looks at cmarcelo | |||
Limbic_Region | y tu madre tambien? | 15:30 | |
15:34
rodi joined,
Limbic_Region left
15:42
fglock joined
|
|||
svnbot6 | r14632 | lanny++ | UInt guard on fibonacci_tail_call | 15:48 | |
ingy | hola | 15:52 | |
svnbot6 | r14633 | lwall++ | make params consistently UInt | 16:03 | |
16:14
prism joined
16:18
idiotmax joined
|
|||
svnbot6 | r14634 | foad++ | Added author. | 16:21 | |
FOAD | Whee. | 16:22 | |
16:22
mbradley|afk is now known as mbradley
16:30
idiotmax joined
16:35
FOAD_ joined,
lizr joined
|
|||
lizr | Hi | 16:35 | |
diakopter | Hi lizr | 16:36 | |
lizr | I have a problem with pugs, maybe someone can help me. | ||
At least I think I have a problem | |||
I'm trying some perl6 examples from www.programmersheaven.com/2/Perl6-FAQ | 16:37 | ||
lambdabot | Title: Perl6-FAQ at Programmers Heaven | ||
lizr | Yeah, but the examples I tried don't really work | 16:38 | |
E.g. the "let" code example | |||
And the 'for @array Y @array -> [$a,$b]' syntax doesn't even compile | |||
Any ideas what I'm doing wrong here? Or is pugs just broken/incomplete? | 16:39 | ||
16:44
uzair joined,
uzair is now known as chhupa
|
|||
lizr | No ideas? | 16:52 | |
FOAD_ | Maybe it'll help people if you show exactly what happens and how it differs from what you expected. | 16:53 | |
lizr | Uhm | 16:54 | |
Well, in the "let" example the output should be "sad\nhappy\happy\n", but it's "sad\nsad\nsad\n" instead. | |||
In the Y example pugs just prints a syntax error | |||
audreyt | takesako: hi | 16:56 | |
@tell takesako ppencode conquered latin america as well; one more continent for you :) | 16:57 | ||
lambdabot | Consider it noted. | ||
16:57
FOAD_ is now known as FOAD
|
|||
audreyt | lizr: hi there | 16:58 | |
lizr | Hi audreyt | ||
audreyt | yes, we're working on array unpacking this very week :) | ||
currently you can say | |||
for each(@array ; @array) -> $a, $b { ... } | 16:59 | ||
and that will fork, because that will interleave two arrays instead of packing them into pairs | |||
lizr | Ah, so it's not my fault? :) | ||
audreyt | s/fork/work/ | ||
this also works: | 17:00 | ||
for ([1,2,3] Y [4, 5, 6]) { say .[0], ' -> ', .[1] } | |||
so it's just array unpacking not working; everything else works :) | |||
lizr | What about the "let" thing? | 17:01 | |
audreyt | let me look... | 17:02 | |
17:02
cmarcelo joined
|
|||
audreyt | well first you need "our $state" to occur before the sub | 17:04 | |
otherwise it doesn't see it in scope | |||
lizr | Ah, so the example is wrong? | 17:05 | |
audreyt | just has that one small glitch | ||
also change "fail" to "return" will also work | 17:06 | ||
lizr | Ok, I put the "our $state" before the sub, but still prints 3x "sad" | ||
audreyt | oh wait. "let" is not implemented... I'll do it now. | ||
lizr | Hrhr | 17:07 | |
Thanks | |||
audreyt | for the time being try | ||
our $state = 'sad'; | |||
sub feed($food) { # hypothetically, I will be happy after being fed temp $state = 'happy'; KEEP { $state = 'happy' }; | |||
er, I mean | |||
our $state = 'sad'; | |||
sub feed($food) { | |||
# hypothetically, I will be happy after being fed | |||
temp $state = 'happy'; KEEP { $state = 'happy' }; | |||
and keep everything else | |||
17:07
boo joined
|
|||
audreyt | (because that's what "let" will mean) | 17:07 | |
and it should work | |||
also change "fail;" to "return;" | 17:08 | ||
gnuvince | audreyt: the array unpacking thing, does this mean that for((1,2) Y (3,4)) -> $a, $b { ... } will put 1 and 3 in $a and $b on the first iteration and 2 and 4 on the second? | ||
audreyt | no. | 17:09 | |
it will put [1,3] in $a and [2,4] in $b | |||
for the first iteration | |||
17:09
fglock joined
|
|||
audreyt | and there will be only one iteration | 17:09 | |
because Y, that is zip(), works differently from each() | 17:10 | ||
zip((1,2);(3,4)) is [1,3],[2,4] | |||
but each((1,2);(3,4)) is (1,3,2,4) | |||
gnuvince | ah! | ||
Thanks for the clarification | |||
audreyt | np :) | 17:11 | |
fglock | audreyt: done with the talk | ||
lizr | Btw, what das 'fail' actually do? | ||
s/das/does/ | |||
audreyt | lizr: it's fully specced in perlcabal.org/syn/S04.html#Exceptions | 17:12 | |
lambdabot | Title: S04 | ||
audreyt | it's a bit complicated to explain; indeed although I wrote that paragraph, I still havn't found time to implement it in pugs :) | ||
btw, "let" works now. checking it in after running some tests. | 17:13 | ||
lizr | Hehe | ||
Wow, that was fast :) | |||
17:16
cmarcelo joined
|
|||
FOAD | Okay; trying to make pugs but it all dies sadly with the following: | 17:19 | |
Compiling Pugs.Prim.FileTest ( src/Pugs/Prim/FileTest.hs, dist/build/Pugs/Prim/FileTest.o ) | |||
src/Pugs/Prim/FileTest.hs:49:20: | |||
Overlapping instances for (:>:) Pugs.Types.Var [Char] | |||
arising from use of `cast' at src/Pugs/Prim/FileTest.hs:49:20-23 | |||
Matching instances: | |||
Imported from Pugs.Internals: instance ((:<:) b a) => (:>:) a b | |||
Imported from Pugs.Types: instance (:>:) Pugs.Types.Var String | |||
In the second argument of `($)', namely `cast "$*BASETIME"' | |||
In the first argument of `(>>=)', namely `(readVar $ (cast "$*BASETIME"))' | |||
17:19
chhupa left
|
|||
FOAD | In a 'do' expression: b <- (readVar $ (cast "$*BASETIME")) >>= fromVal | 17:19 | |
Build failed: 256 at util/build_pugs.pl line 359. | 17:20 | ||
make: *** [pugs] Error 2 | |||
audreyt | FOAD: fixing | 17:22 | |
FOAD | Awesome. | 17:23 | |
nothingmuch | cmarcelo: ah, you're back | ||
audreyt | fixed. | ||
17:24
ludan joined
|
|||
svnbot6 | r14635 | audreyt++ | * Pugs.Prim.FileTest: Repair compilation on GHC 6.4. | 17:24 | |
FOAD | Okes, let's try again. | 17:26 | |
nothingmuch | headdesk | 17:27 | |
eviltwin_b sighs | 17:28 | ||
audreyt | ok, "let" is in. | 17:29 | |
lizr: did you already have a commit bit? if not, what's your email addr so I can send you one? | 17:30 | ||
svnbot6 | r14636 | audreyt++ | * Pugs.Prim: "fail" should throw out a Failure thunk. | ||
eviltwin_b | oh, compiler magic I'd not have a clue about. I feel slightly better | 17:32 | |
svnbot6 | r14637 | audreyt++ | * Pugs.Eval: Support for "let" directives that works with | ||
r14637 | audreyt++ | "fail", so the example in ProgrammersHeaven FAQ now actually | |||
r14637 | audreyt++ | works (if you move "our $state" to the top of the file). | |||
r14637 | audreyt++ | Suggested by: lizr++ | |||
nothingmuch | we should have a commitbitbot | ||
like a spambot | 17:33 | ||
it can either have an addressing-optional mode, whereby anything that looks like an email is mailed a commit bit | |||
or an addressing mandatory mode, wherein it will only mail them when asked =) | |||
audreyt | that's a bit too impersonal... | ||
eviltwin_b | bah, just look up the username of anyone who pops in for more than 5 minutes and send 'em email :) | 17:34 | |
audreyt | @tell takesako pugs.blogs.com/talks/conisli-ppencode-pt.pdf ((translation courtesy of cmarcelo++, fglock++) | ||
lambdabot | Consider it noted. | ||
17:35
fglock joined
|
|||
svnbot6 | r14638 | fglock++ | MP6 - fixed Token emitter | 17:35 | |
fglock | audreyt: try t/03-token.t :) | ||
17:35
mayweed joined
|
|||
fglock | hmm - small bug | 17:36 | |
audreyt | what you got it working? :) | ||
fglock | .perl shows '$VAR1' :) | ||
nothingmuch | hmmm | 17:37 | |
fglock | it needs $x.meth; $x.meth2; - instead of $x.meth.meth2 | ||
nothingmuch ponders generic inferencing | |||
fglock | so the emitter can analize the intermediate result | ||
nothingmuch | decorator nodes attach to AST nodes | ||
and their class describes to an inferrencing engine how they transfer | |||
useful for lazily boxed objects | 17:38 | ||
which are only boxed when they exit the scope | |||
and stack allocated variables | |||
(C stack, that is) | |||
(actually it doesn't matter... any stack) | |||
audreyt: is there any prior research? | |||
audreyt | hm, I should fetch cmarcelo and hack | 17:39 | |
fglock | audreyt: we are at the booth | ||
nothingmuch | fglock: please ask him what he pang me about | ||
audreyt | ok, coming to the booth after this commit gets thru | 17:40 | |
fglock | nothingmuch: he thinks he has fixed the problem | ||
nothingmuch | fglock: cmarcelo: OK... i'm having dinner and I'll be virtually present for your mini hack afterwords | 17:41 | |
nothingmuch is refactoring Method::Constructor and Method::Accessor | |||
FOAD | Hrm. "make" does work now (and I did sudo cpan Task::Smoke etc) but "make smoke" ends on the following depressing note: | 17:43 | |
*** Successfully built! Type 'make install' to install. | |||
(You may need to do that as the 'root' user.) | |||
/usr/bin/perl -Iinc util/run-smoke.pl . smoke.html | |||
YAML - missing dependency | |||
You don't seem to have the required modules installed. | |||
Please install them from the CPAN and try again. | |||
This can be accomplished in one go by running: | |||
cpan Task::Smoke | |||
make: *** [smoke-pugs] Error 255 | |||
(Doing "make smoke" again doesn't change anything.) | |||
audreyt | doyou'll have to install YAML.pm from CPAN as instructed... | 17:44 | |
eviltwin_b | I didn't have that problem with the smoke test but some of the modules throw errors which result in every test being recorded as FAILED even though all the individual tests succceed | ||
audreyt | yay, every single tests in t/var/let.t passed. | ||
FOAD | Ah, silly me. I was just following the instructions on the search.cpan.org/dist/Perl6-Pugs/doc...c/Hack.pod page. | ||
lambdabot | Title: Pugs::Doc::Hack - How to hack on Pugs - search.cpan.org, tinyurl.com/yjq4uw | ||
FOAD | (Or, eh, where was I instructed thusly?) | 17:45 | |
17:45
bonesss joined
|
|||
eviltwin_b | <FOAD> YAML - missing dependency | 17:46 | |
<FOAD> You don't seem to have the required modules installed. | |||
<FOAD> Please install them from the CPAN and try again. | |||
FOAD | Dur. | ||
Cheers. | |||
bonesss | hi | 17:47 | |
hi monks | |||
svnbot6 | r14639 | audreyt++ | * t/var/let.t: All tests passed, 0 TODOs. | ||
FOAD | But I'd like to point out that the output claimed that the module would be installed by running "cpan Task::Smoke". | 17:49 | |
Which was a big ole lie. | |||
eviltwin_b | it should havebeen. then again, I had some oddness that required multiple install attempts as well. | 17:50 | |
FOAD | Well, just saying, someone may want to change things one way or the other. | ||
eviltwin_b | (then again, CPAN and darwinports aren't on speaking terms, so darwinports updates have an annoying tendency to mess up CPAN-installed modules) | 17:51 | |
eviltwin_b should probably reinstall perl5 + modules not from dports, so he has a clean setup. meh. | 17:52 | ||
svnbot6 | r14640 | audreyt++ | * Pugs.Parser.Operator: Generalize decl+assign hack so we | ||
r14640 | audreyt++ | can deal with "constant=" in a similar way later. | |||
17:59
phiker joined
|
|||
phiker | hi | 17:59 | |
so... how is development going on? | |||
nothingmuch | audreyt: did you find cmarcelo? | 18:04 | |
phiker: DOES NOT COMPUTE | |||
phiker: a more specific question is perhaps in order =) | |||
phiker | hmm... I just want a _rough_ date when perl6 will be "ready" ;) | 18:05 | |
[particle] | ENOXMAS | ||
nothingmuch | [particle]++ | 18:06 | |
[particle] | phiker: probably alpha next year | 18:07 | |
xinming | phiker: probably bootstraped this year. | 18:11 | |
phiker: BTW, If you wish it comes early, please join us and write tests. :-) | 18:12 | ||
phiker: If there is fail tests, audreyt++ would fix them really soon. | |||
because most people working on the different part, But the progress is going fast. | 18:13 | ||
xinming goes to sleep, | |||
bye all | |||
nothingmuch | ciao xinming | 18:14 | |
.oO( xiao ) |
|||
18:20
awwaiid joined
|
|||
eviltwin_b | hmmmm | 18:21 | |
is there some particular version of Test::TAP::Model I should be using? | |||
the one I just got from CPAN, analyze_fh() returns a hash reference, the test scripts apparently expect a flat list back (foo = { $t->analyze_fh(...) }) and blow up with odd number of hash elements, leading to an error cascade | 18:22 | ||
in short, all tests fail because they all seem to be assuming a different API than is actually in use | 18:23 | ||
(and so does the rest of the smoke test framework) | |||
FOAD | I get oodles of messages where the "expected" value disagrees with the "actual" one. Is this how it's "supposed" to be? | 18:25 | |
gaal | will this work? @fibs = 0, 1, @fibs >>+<< tail @fibs | ||
lambdabot | gaal: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
gaal | @moosages | 18:26 | |
lambdabot | nothingmuch said 3d 2h 11m 38s ago: moose! | ||
gaal | @tell nothingmuch damn straight | ||
lambdabot | Consider it noted. | ||
gaal | FOAD: means the test doesn't pass. but it could be TODOed. | 18:27 | |
if you're running 'make smoke', lood at your resulting tests.yml file | |||
(or has it been renamed to smoke.yml?) | |||
*look | |||
FOAD | Aight. | 18:28 | |
Just being a noob. | |||
gaal | no worries :) | 18:29 | |
FOAD | :) | ||
nothingmuch | @moosages | 18:32 | |
lambdabot | gaal said 5m 52s ago: damn straight | ||
nothingmuch | thread.gmane.org/gmane.comp.lang.pe...focus=9958 | 18:35 | |
can somebody please summarize that? | |||
lambdabot | Title: Gmane Loom, tinyurl.com/yype52 | ||
nothingmuch | it's tolo parrot-technical | ||
lizr | Bye | 18:36 | |
18:36
lizr left
18:37
fglock joined
|
|||
eviltwin_b is now upgrading all his perl modules, to be followed by a forcible reinstall of all if things are still broken | 18:39 | ||
nothingmuch | fglock: are you guys working? | 18:40 | |
18:46
crem joined
|
|||
phiker | hmm | 18:46 | |
is there something like a introduction to the new perl syntax? | 18:47 | ||
eviltwin_b | spec.pugscode.org read the synopses | ||
lambdabot | Title: Official Perl 6 Documentation | ||
fglock | nothingmuch: yes - audreyt and cmarcelo are working on MOH | 18:48 | |
I'm on MiniPerl6 | |||
18:49
Limbic_Region joined
|
|||
nothingmuch | fglock: prod audreyt and cmarcelo to get me involved please | 18:50 | |
18:55
mauke joined
18:56
autark joined
|
|||
fglock | nothingmuch: I'm not in touch with them right now, maybe they are offline | 18:57 | |
nothingmuch | ah | ||
19:12
TSa joined
19:14
eggzeck joined
20:01
eggzeck joined
|
|||
TSa | HaloO, anybody out there? | 20:02 | |
20:02
lambdabot joined,
eviltwin_b joined,
Eimi joined
20:05
pmurias joined
|
|||
pmurias | TSa: hi | 20:05 | |
what brings you here? :) | 20:06 | ||
TSa | interest in Perl 6, what else | 20:07 | |
I wonder what all these people do in the channel | |||
20:07
Aankhen`` joined
|
|||
pmurias | lots of diffrent things | 20:09 | |
diakopter | many are otherwise-occupied at the moment. | ||
I, for one, merely lurk. | 20:10 | ||
TSa | but logged into the channel | ||
isn't that odd | |||
diakopter | there is a perl conference going on in Brazil. | ||
TSa | I know | ||
pmurias | probably some people have their irc clients under screen | 20:12 | |
and have them active for logging | |||
s/active/on/ | |||
TSa | screen is a irc logger? | ||
pmurias | a terminal multiplexer | 20:13 | |
it allows you to have multiple shells in one terminal at once | |||
if you are a command line user i would highly recomend it | 20:14 | ||
TSa | are you on p6l as well? | 20:16 | |
pmurias | yes, but i check it once in a while | 20:17 | |
why do you ask? | |||
TSa | just curious | 20:18 | |
I regularly write there | |||
pmurias | i have yet do write my first post to p6l ;( | 20:23 | |
although i have too i should | |||
is it possible to unmix roles at runtime? | 20:24 | ||
20:24
scsibug_ joined
|
|||
TSa | I don't know how the syntax would look like | 20:26 | |
pmurias | something like $cat but none(Hungry) | 20:28 | |
s/too/two/ | 20:29 | ||
the other one was about unimporting things | |||
i could probably try to write something at school tommorow | 20:30 | ||
TSa | what are the use-cases for role unmixing? | ||
clkao | whos is speaking about perl6 in ukuug spring conference? | 20:32 | |
20:32
esstone joined
|
|||
pmurias | TSa: for example in modeling an rpg | 20:34 | |
if you use roles to represent sets of abliltys | 20:35 | ||
you could want to take away some of them | |||
a part of the proposal would be to be able to define self excluding roles | 20:36 | ||
tame excludes wild, hungry excludes saturated | 20:37 | ||
eviltwin_b | 'satiated'? | ||
eviltwin_b sighs | 20:38 | ||
Test::TAP::Model is well and truly hosed on this machine | 20:39 | ||
TSa | I'm not sure if roles are the right thing to model rpg | ||
looks to me that roles are a bit to heavyweight for the purpose | |||
pmurias | that wasn't really a well-though example | 20:41 | |
are roles that heavy-weight? | |||
eviltwin_b: yes | 20:43 | ||
eviltwin_b | www.ece.cmu.edu/~allbery/Test-TAP-Model.errors --- any suggestions? | ||
lambdabot | tinyurl.com/yxmqp6 | ||
pmurias | TSa: thanks with pointing out the performance concerns | 20:46 | |
sleep& | |||
20:46
pmurias left
|
|||
TSa | did I say sometghing about performance? | 20:46 | |
21:00
mauke joined
21:01
chris2 joined
21:05
fglock joined
|
|||
svnbot6 | r14641 | fglock++ | MOH - added mo-bootstrap-plan by audrey++t | 21:05 | |
r14641 | fglock++ | v6.pm - fixed .perl | |||
nothingmuch | audreyt: darcs pull MO please | 21:16 | |
audreyt | nothingmuch: ok. I think we have everything working :) except for the Slot abstraction which is bogus. | ||
nothingmuch | huh? | 21:17 | |
it's not bogus at all | |||
audreyt | and why is it bogus? because it assumes everything can be done in a initialize+set_value sequence | ||
but some layouts does not work that way | |||
nothingmuch | explain? | ||
audreyt: ? | 21:19 | ||
nothingmuch frowns | 21:20 | ||
audreyt | sorry the net was lost | 21:23 | |
consider value objects | |||
21:23
tewk joined
|
|||
audreyt | class C { has $!x is Int } | 21:23 | |
note "is Int" not "is Scalar of Int" | |||
it means it can only be filled in in layout init time | |||
not one-slot-at-a-time | |||
i.e. consider the concrete instance layout of | 21:24 | ||
Map ID Int | |||
where ID is "x" | |||
or just (Int) | |||
another example: | |||
elmex | can anyone tell me whether there is code of the 'official' perl6 implementation? i've seen the languages/perl6 directory in the parrot tree... but i wonder: is there already code of the future perl6 compiler and system? | ||
audreyt | class C { has $!x is Int, has $!y is Moose } | ||
consider the layout: (Int, Moose) | |||
you can't allocate it, get it back, and then fill in values | |||
it only works with | |||
(Scalar, Scalar) | |||
type layouts | |||
elmex: the official perl6 is anything that passes 100% of pugs t/ | 21:25 | ||
elmex: fglock++ and I believe that we are starting to do that in v6/ | |||
21:25
fglock joined
|
|||
nothingmuch | audreyt: if it's is int then the layout is responsible for packing it | 21:25 | |
unboxed | |||
audreyt | but src/ will still be part of it for the forseeable future | ||
elmex | audreyt: also a perl5 script that uses regex&string matching to pass those tests? | ||
21:25
justatheory joined
|
|||
audreyt | elmex: yes. it's surprisingly hard | 21:25 | |
nothingmuch | the slot is simply a wrapper for the closure that edits in right offset in the packed structure | ||
elmex | audreyt: ah, ok | 21:26 | |
audreyt | elmex: if you can write such a script that consistently pass t/, you'll have implemented perl6. | ||
nothingmuch | that is the entire point of this abstraction | ||
theinitialize hook could be noop | |||
clkao | hello audreyt | ||
audreyt: seen my mail to p5p ? | |||
nothingmuch | or it could store a packed bit vector | ||
with inited flags for the packed values | 21:27 | ||
the 'construct' hook is there to clear values | |||
audreyt | nothingmuch: it's bogus because: | ||
nothingmuch | and unless completely transparent (as in perl hashes of scalars) all allocation is done by Lyaout->construct_instance | ||
audreyt | my $object = $layout->create_instance_structure; | ||
nothingmuch | ... | ||
audreyt | # no access to @params | 21:28 | |
$_->initialize_instance( $boxed, @params ) for @initializers; | |||
nothingmuch | aye | ||
audreyt | # too late to modify $boxed | ||
nothingmuch | err | ||
that's just one impl of a constructor | |||
audreyt | if $boxed is (Int, Moose) | ||
nothingmuch | if the layout must know of the initial values then you filter @params through the initializers | ||
audreyt | yes, and you conveniently refactored into C::M::Consturctor | ||
so it now is swappable | |||
but just a few minutes ago it wasn't like that : | |||
nothingmuch | *nod* | ||
audreyt | :) | ||
nothingmuch | aye | ||
there's some crap like that =/ | |||
21:29
mosca joined
|
|||
nothingmuch | things that are done in my head | 21:29 | |
but still too smushed in the code | |||
sorry =( | |||
audreyt | anyway, roles, accessors, attributes, inheritance, c3 etc all seems to be working | ||
in MOH | |||
nothingmuch | awesometown | ||
audreyt | I'll attempt integration into pugs this week | ||
nothingmuch | *cheer* | 21:30 | |
next step: produce static HS from moh | |||
^_^ | |||
audreyt | nothingmuch++ # very nice design, _very_ occasionally crappy fillin code | ||
I have an encoding for that I believe | |||
using libGHC | |||
nothingmuch | i mean more like .hs files | ||
audreyt | but we only gain speed with that with native types | ||
otherwise an (Array Val) layout isn't much slower than a record of Val fields | 21:31 | ||
probably not slower at all | |||
nothingmuch | *nod* | ||
audreyt | it only shines when MP6->Hs happens | ||
nothingmuch | that actually doesn't conern me that much | ||
audreyt | i.e. native codegen | ||
_then_ it can simply use the record field accessors | |||
nothingmuch | Record Val is prolly good | ||
audreyt | and that will be very, very fast. | ||
nothingmuch | *nod* | ||
oh, fwiw | 21:33 | ||
layout with @params is under the assumption that if it's oging to be packed the types were predeclared | 21:34 | ||
audreyt | I understand | ||
nothingmuch | in perl land neither really matters | 21:35 | |
maybe Inline::C based accessors for Moose in the future | |||
audreyt | maybe unpack"" is sufficient | 21:38 | |
nothingmuch | for saving memory or runtime speed? | ||
audreyt | saving memory | ||
nothingmuch | ah | ||
*nod* | 21:39 | ||
elmex | elmex++ | 21:40 | |
perlbot | What kind of idiot karmas himself? Your kind of idiot! | ||
nothingmuch | audreyt: should i hunt you or cmarcelo for followup changes? | 21:42 | |
elmex | perlbot-- | ||
audreyt | nothingmuch: any architectural rethinks? we've modeled constructor | ||
nothingmuch | the todo list is refactoring Class into a bunch of roles, maybe | 21:43 | |
so that it's not so overloaded | |||
especially the interface composition | |||
(e.g. private outside of public RI multiplexing... maybe) | |||
i'm considering also reworking that bit | 21:44 | ||
i'm not sure i like the wrapper approachthat much | |||
i mean, it's opaque | |||
and it's nice at runtime | |||
so it doesn't matter if it changes | |||
but when constructing the RIs it's a bit of a hassle | |||
21:47
cmarcelo joined
|
|||
nothingmuch | hola cmarcelo | 21:47 | |
cmarcelo | ola | ||
audreyt | nothingmuch: this test, it's weird | 21:51 | |
nothingmuch | which one? | ||
audreyt | my @methods = $with_conflict->all_instance_methods; | ||
is( @methods, 2, "two methods" ); | |||
in MOH it dies immediately | |||
saying composition failure | |||
nothingmuch | roles can have conflicts | 21:52 | |
audreyt | hm | ||
nothingmuch | wait | ||
in Moose | |||
i may have taken that needlessly | |||
the assumption i was working with was that a conflict can be resolved later | |||
since roles don't generate responder interfaces themselves they don't need to be totally finished | |||
but perhaps that's unwise | 21:53 | ||
audreyt | nvm, I'll conform for now... | ||
nothingmuch | i think i will | ||
i'll just die $conflict_object | |||
and make it stringify nicely | 21:54 | ||
no, i'll decide later | |||
either way it's not vital | |||
it depends on which is more useful from the standpoint of a compiler/interpreter implementor, something that throws errors, or that creates a more complete/rich structure which has to be checked for errors | |||
audreyt | had same train of thought, decided that delay made sense, agreed to conform, implemented, test now pass. | 21:55 | |
(in MOH) | |||
nothingmuch | okay | 21:57 | |
feel free to change and ask me to change | |||
i don't feel strongly | |||
i think i've solved my multiple-vim-windows issue | 22:00 | ||
cmarcelo | what issue? | ||
nothingmuch | the vim-7 tabbed editing is quirky but works | ||
audreyt stil prefers minitabexpl | |||
nothingmuch | typicallly i'd have about 30 instance of macgvim | ||
i tried it | |||
it didn't work well for me | |||
audreyt | k | 22:01 | |
nothingmuch | i just assumed it was not compatible with vim 7 | ||
and not brought up to date because it was superseded | |||
but it did seem like it could be nicer | |||
audreyt | cmarcelo: I'll rename unshift to withInvocant | ||
cmarcelo | ok | 22:02 | |
nothingmuch | oh btw | ||
how do you do codegen for the accessors? | |||
etc | |||
audreyt | for the static .hs? | 22:04 | |
it's just record lookup | |||
svnbot6 | r14642 | fglock++ | MP6 - added more tests to Regex parser, shows error in hash-dispatch | ||
audreyt | my layout is never mutable for statically known fields | ||
even | |||
class C { has $.x is rw; has $.y is rw } | |||
is still using | |||
nothingmuch | i meant mostly int erms of no incest | 22:05 | |
between accessors and responder wrapping | |||
it's not yet an issue | |||
audreyt | uhm, where in MO.pm is that incest? | ||
nothingmuch | my plan is thbat Compiled::* are then emitted | ||
to some target | 22:06 | ||
and the emitter has macros like box, unbox etc | |||
wait, we talked about this | |||
deja vu | |||
ditto goes for method_call, etc | |||
audreyt | yes, I believe we talked about this ;) | 22:07 | |
nothingmuch | how do you handle boxing, in fact? | 22:08 | |
a pair of (instance_structure, responder_interface) ? | |||
btw, if allInstanceMethods is nicer than all_instance_methods also feel free to change | |||
audreyt | sorry lost context. boxing as in autoboxing? | 22:09 | |
autoboxing is simple | |||
nothingmuch | no | ||
err | |||
not necessarily | |||
associating the instance structure value with the class that acts on it | 22:10 | ||
audreyt | so we have an invocant payload instance struct | ||
it's opaque | |||
all we know is it's Show a , Typeable a | |||
nothingmuch | please rephrase | ||
invocant payload instance struct failed to parse | 22:11 | ||
22:11
iblechbot joined
|
|||
audreyt | invocant has a payload, that is an instance structure | 22:11 | |
nothingmuch | ah | ||
yes | |||
audreyt | determined by create_instance | ||
's choice of layout | |||
nothingmuch | that assumes invocant is the only format for invocanting =) | ||
the perl 5 runtime will wrap the instance structure in a scalar ref and bless that | 22:12 | ||
audreyt | data Invocant | ||
= forall a b. (ResponderInterface a, Show b) => MkInvocant | |||
{ ivInvocant :: b | |||
, ivResponderInterface :: a | |||
} | |||
type Object = Invocant | |||
nothingmuch | or no wrapping, if no localized casting is necessary | ||
audreyt | actually, add Typeable b to it | ||
but you get the idea. all objects are invocants. | |||
nothingmuch | *nod* | 22:13 | |
audreyt | and ivResponderInterface is inherent in the creation process | ||
nothingmuch | i meant that Invocant itself is prolly swappable | ||
for interoperability reasons | |||
audreyt | you mean the "b" slot | ||
it's existentially quantified | |||
nothingmuch | no | ||
the Invocant itself | |||
audreyt | which means it's thoroughly swappable | ||
oh. | |||
nothingmuch | the record that has ivInvocant and ivResponderInterfac | ||
e | |||
audreyt | you mean it can go without ivResponderInterface? | ||
what other structure can it have? | 22:14 | ||
audreyt is puzzled | |||
nothingmuch | e.g. perl5 bridge | ||
perhaps it's not really necessary | |||
audreyt | but p5bridge can have a perfectly fine ivResponderInterface | ||
that simply calls to p5 | |||
nothingmuch | aye | ||
audreyt | so I think you're bdufing | ||
nothingmuch | bduf? | ||
audreyt | big-design-upfront | ||
nothingmuch | big design up front? | ||
ah | |||
actually for once no =) | 22:15 | ||
in the perl 5 runtime it's a little mroe messy | |||
because the built in types can't be polymorphized | |||
but i have to support them for interop | |||
so forget i said everything, in the hs runtime it's a nonissue =) | |||
audreyt | thank you :) | 22:16 | |
nothingmuch | moo | 22:17 | |
cmarcelo++ | |||
audreyt++ | |||
for 1 ... | |||
audreyt | it's 1..* nowadays | ||
nothingmuch | meh =) | ||
elmex | perlbot: audrey karma | 22:21 | |
perlbot: audrey | |||
22:21
aufrank joined
|
|||
gnuvince | what is 1..4.5 supposed to return? In Perl 5, the 4.5 is truncated, but it appears that in Pugs 4.5 is rounded up to 5. What is the correct behavior for Perl 6? | 22:24 | |
22:41
AzureBOT joined
22:45
fglock joined
|
|||
aufrank | ?eval my @tmp; push @tmp, :foo{ 1/2 }; say @foo[0]<foo>; | 22:53 | |
evalbot_r14642 | *** not a well-formed named arg: Syn "=>" [Val (VStr "foo"),Ann (Pos (MkPos "<eval>" 1 32 1 32)) (Syn "sub" [Val (VCode (MkCode {isMulti = False, subName = "<anon>", subType = SubBlock, subEnv = Just (MkEnv {envContext = CxtItem (mkType "Any"), envLValue = True, envLexical = MkPad (padToList [("$_",[(<ref:0xb61abc30>,<ref:0xb61abc28>)]),("$?1",[(<ref:0xb61ab06c>,<ref:0xb61ab064>)]),("$__evalbot_print",[(<ref:0xb7a6f13c>,<ref:0xb7a6f134>)]),("@tmp" | ||
aufrank | ?eval my @tmp; push @tmp, 'foo' => { 1/2 }; say @foo[0]<foo>; | 22:54 | |
evalbot_r14642 | OUTPUT[ā¤] Bool::True | ||
audreyt | yay bug. | ||
which test? | |||
aufrank | where should a test live? | ||
?eval my @tmp; my ($one, $two) = (1, 2); push @tmp, 'foo' => { $one/$two }; say @tmp[0]<foo>; | 22:56 | ||
evalbot_r14642 | OUTPUT[<SubBlock(<anon>)>ā¤] Bool::True | ||
aufrank | also, is there a way to execute that anon block | ||
audreyt | do {} | 22:57 | |
aufrank | ?eval my @tmp; my ($one, $two) = (1, 2); push @tmp, 'foo' => { $one/$two }; do { @tmp[0]<foo> }; | ||
evalbot_r14642 | \{Syn "block" {App &infix:/ (: Var "$one", Var "$two")}} | ||
audreyt | er sorry | 22:58 | |
@tmp[0]<foo>() | |||
lambdabot | Unknown command, try @list | ||
audreyt | I thought you meant foo => do {...} | ||
a test should live where named args live | |||
aufrank | (congrats on the invited talk! that's a great accomplishment!!) | 23:01 | |
audreyt | a great accomplishment would be delivering the talk successfully :) | 23:02 | |
but thanks :) | |||
conferences are just my excuse to make hackathons work... | |||
aufrank | a great acknowledgement, then ;) | ||
audreyt | (that is, have other people pay for my airline ticket so I can hack with key local people) | 23:03 | |
aufrank | and opportunity | ||
who do you reckon will make it to nice? | |||
audreyt | in this case rgs. | ||
rgs: can you spend _both_ weekends with me, or just one of them? :) if latter, the second week (after POPL) will be better | |||
aufrank: Unified Perl Runtime hackathon :) | |||
where I get to learn some C, I hope. | 23:04 | ||
aufrank | :) | ||
rgs | audreyt: only one, and probably only the 2nd | 23:05 | |
audreyt | aufrank: fixed, anyway | ||
rgs: ok, cheers, that's just as well | |||
rgs | :) | ||
audreyt | I'm usually unfathomably nervous before a talk anyway :) | ||
aufrank | audreyt: is there an adverbial form that forces evaluation on the value of a pair? | 23:07 | |
:foo{ $bar/$baz}() or something? | |||
audreyt | I'm not sure what you are talking about :) | ||
oh. heh that's just | |||
:foo($bar/$baz) | |||
aufrank | ah, thanks | 23:08 | |
audreyt | fglock is back, going to do more MP6 hackathon'ing. bbiab :) | ||
aufrank | have fun! | ||
svnbot6 | r14643 | audreyt++ | * Pugs.Bind: Non-bound named arguments shouldn't cause strange "not a well-formed" | ||
r14643 | audreyt++ | errors, as spotted by aufrank++. | |||
r14643 | audreyt++ | * Also fix minore grammar nit in errmsg. | |||
r14644 | audreyt++ | * Pugs::Emitter::Rule::Perl5::Ratchet: <%foo> will no longer try to | 23:26 | ||
r14644 | audreyt++ | look %foo from peek_my; instead it assumes it's available within the "our" | |||
r14644 | audreyt++ | scope. Maybe bring a knob to use it if you really need it? | |||
r14644 | audreyt++ | (In any case this needs to be reflected in the docs.) | |||
r14645 | audreyt++ | * v6::MiniPerl6 - 03-token now parses $1 correctly with <%variables>, | 23:29 | ||
r14645 | audreyt++ | so we can go ahead implementing the rest of emitting methods for | |||
r14645 | audreyt++ | e.g. Scalars. | |||
23:49
rodi joined
|