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