perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~290 days 'til Xmas
Set by mncharity on 6 March 2009.
00:00 ZuLuuuuuu left, milton13 left 00:07 awarefish left 00:19 Whiteknight joined
wayland76 hi 00:21
diakopter hi wayland76 00:22
00:24 skids joined 00:30 frioux_ left 00:44 Coleoid joined 00:49 M_o_C left 00:58 Whiteknight left
Coleoid I'm trying to build Rakudo on my w32 box. Cygwin, Strawberry, git the source, but then 'perl Configure.pl' complains that 'parrot' is not a command. 01:00
I'm also trying and failing to build Parrot right now. Is a local Parrot build still a prereq for Rakudo? 01:01
diakopter you'll want to use the --gen-parrot option
to Configure.pl
it'll handle the parrot building for you
Coleoid Ah! Trying...
diakopter and the pathing will work out correctly
(more importantly)
01:02 Ariens_Hyperion left
Coleoid Thanks! The svn of parrot worked, but its build failed the same way it did for me earlier. Progress. 01:06
diakopter how did the build fail
Coleoid It seems to feed sh a backslashed path to perl.exe. Message is:
diakopter oh; where did you get rakudo 01:07
Coleoid Eek.
Not my goal, there.
diakopter I mean, the latest rakudo shouldn't have that problem
01:07 bacek_ joined
diakopter oh; you're on cygwin... I dunno if someone's tried it there... I've been trying it in strawberry/cmd.exe/msvc15 01:08
Coleoid My last pull was four, five hours ago?
/usr/bin/sh: C:strawberryperlbinperl.exe: command not found
diakopter oh, hrm, you really don't want to use strawberry perl inside cygwin 01:09
01:09 Whiteknight joined
diakopter strawberry is built for cmd.exe 01:09
use the perl from cygwin
Coleoid Well, I'm in a straight dos box when I kick off make, but Configure seems to have snorted out the cygwin sh...
diakopter in your Cygwin.bat, it's a good idea to reset your PATH to something minimal 01:10
oh.. is it in your PATH?
(odd...)
(it shouldn't be, really)
Coleoid :D
I'll check.
diakopter is sh in your %PATH% in cmd.exe I mean... cygwin stuff shouldn't be leaking out to cmd.exe 01:11
pwhich sh
Coleoid /usr/bin/sh 01:12
diakopter then you're inside cygwin
or at least sh
Coleoid Well, I've got cygwin in my path, but I'm not in bash or sh.
diakopter echo %PATH% 01:13
Coleoid (kind of a bastardized setup...)
diakopter if you echo %PATH%... what happens
Coleoid PATH=C:\strawberry\c\bin;C:\strawberry\perl\bin;c:\cygwin\bin;c:\mingw\bin;C:\WINDOWS\system32;C:\WI
NDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\CollabNet Subversion;C:\WINDOWS\Microsoft.NET\Framew
ork\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\bin;C:\Program Files\Microsoft Visual S
tudio 8\Common7\IDE;C:\Program Files\jZip;C:\Program Files\TortoiseSVN\bin;C:\Program Files\ActiveSt
ate Komodo Edit 5\;
diakopter heh, ok
Coleoid Er, I should probably find nopaste...
diakopter sial.org/pbot/perl6
pasteling "Coleoid" at 76.248.70.52 pasted "path" (1 line, 419B) at sial.org/pbot/35380 01:14
diakopter well, regardless of pwhich returning forward slashed paths, (???) cygwin needs not to be in the PATH.
if you want to build parrot/rakudo using cygwin's gcc, you need to be inside Cygwin.bat/bash 01:15
Coleoid Sorry, I did 'which', I hadn't heard of pwhich and thought you typoed.
diakopter ahhh; that explains it :) p(erl?)which comes with strawberry (and activeperl). 01:16
looks like you have VC
Coleoid Okay, so if I get it,
diakopter so you can try it in one or the other, but not some conflation
Coleoid Several paths should work. Cygwin with its own GCC, or Strawberry with its own GCC, or Strawberry with VC. 01:17
diakopter I haven't been successful with strawberry/gcc
Coleoid Hm, okay.
diakopter (lately) 01:18
maybe someone else has
Coleoid diakopter, thanks for the help--got to take a pause and help get my son to bed. Back in a few, perhaps with a new wall recontouring my forehead. 01:19
diakopter i'll nopaste my Cygwin.bat that cleans up the env
pasteling "diakopter" at 209.9.237.164 pasted "Cygwin.bat" (11 lines, 289B) at sial.org/pbot/35381 01:22
diakopter I reset the LIB and INCLUDE b/c in my outer/main environment they've got VC stuff. 01:23
and of course bash fixes up the PATH. 01:26
01:44 alester joined 01:51 Whiteknight left 01:55 Coleoid left 01:57 cognominal left 01:58 dduncan left 02:03 cognominal joined 02:10 Coleoid joined 02:28 DemoFreak left 02:30 meteorjay left 02:31 meteorjay joined
Coleoid diakopter, after switching to bash via your cygwin.bat, and pulling in cygwin's make and svn, I get further. 02:50
The Parrot build fails in the ops2pm.pl step, complaining of unrecognized line. 02:52
diakopter nopaste more error? 02:53
pasteling "Coleoid" at 76.251.82.128 pasted "ops2pm failure" (9 lines, 663B) at sial.org/pbot/35383
diakopter see #parrot... 02:54
Coleoid Will do.
03:10 alester left 03:22 alester joined 03:29 awarefish joined 04:00 awarefish left 04:07 Sepheebear joined
wayland76 alester: I'm on IRC as well, just at the moment, and will check back later 04:09
alester hey wayland 04:10
wayland76 I've just sent you two e-mails.
I'm planning to duck out and do some shopping and stuff, and be back in half an hour
alester I renamed your introduction to welcome 04:12
and that's gonna be the front
04:12 Limbic_Region left 04:19 meppuru joined
s1n alester, i'd like to have contributor rights on the drupal page 04:29
alester what's your rakudo.org file?
s/file/name/
s1n s1n :) 04:31
do you want help porting over the 101 stuff?
alester Sure. 04:33
04:34 meppl left
alester ok, done 04:36
s1n alester: you have the 101 stuff for p5 in a repo, do you plan on doing the same for the rakudo/p6 stuff? 04:41
alester Yes, it's in a repo, but I'm not sure what I wanana do
s1n let me know as soon as you know, i'd like to help with that effort 04:43
wayland76 alester: Love your work :)
alester s1n
s1n: JFDI
s1n huh? 04:44
alester Pick some perl101 stuff and make pages for it.
s1n you don't want it as perldoc in a repo?
alester I dunno.
it's all in code.google.com/p/perl101/
s1n is there any sort of perldoc2drupal plugin?
yeah but that's for p5
alester right 04:45
But if you want to start yanking stuff from there, go to it.
04:46 japhb joined
s1n okay, i'm having a hard time understanding how to make a page in drupal... 04:46
alester "Create content"
it's in the sidebar
s1n yeah i just saw that, great, i'm going to just start making some pages tomorrow (it's bedtime now) 04:47
alester ok
Just go make stuff
and we can massage it later
There's a whole taxonomy module for organizing pages and everything. 04:48
s1n want me to keep it in the same vein as the p5 version?
alester I don't know. Just do it.
I'm pretty hands-off on this. :-)
Whatever you think is best.
My only suggestion is using markdown over HTML if possible. 04:49
s1n wasn't the p5 version your handywork?
alester yup
and it's pod
but I don't have a POD filter for Drupal. :-)
s1n and you don't care what happens with the p6 version?
alester I think it should be good and useful. 04:50
I don't have any ownership.
s1n okay, we'll see what the gods grant my tiny brain the power to create tomorrow :) 04:51
thanks again
alester Thank YOU for doing it. I'm glad we can all come together to work on this. 04:55
And it would be VERY helpful to get the perl101 examples into P6 04:56
05:06 justatheory left
alester git.rakudo.org is set up, but waiting for DNS propagation 05:10
wayland76 Does anyone know what I should read to really get the hang of adverbs in P6? 05:15
diakopter for hyperoperators, does [R*] (e.g. *) do a right fold? 05:17
wayland76 diakopter: You mean meta-operators? 05:20
I think [R*] would do exactly the same thing as [*] 05:21
diakopter sorry, I meant reduction
sure, for an operation that's normally commutative like * 05:22
wayland76 Were you thinking of something more like [R/] ? 05:23
Where / isn't commutative?
diakopter oh, it's already mentioned 05:25
wayland76 $a = [/] 8, 4, 2; # $a = 1
diakopter: Oh, good :)
diakopter sort &[R<=>], @list # reversed, numerically
wayland76 Oh, I see. That &[] notation is pretty confusing :) 05:28
diakopter std: [R/] 3,5,7 05:29
p6eval std 25731: OUTPUT«ok 00:02 36m␤»
diakopter ok, but does that give (3 / (5 / 7)) or (7 / (5 / 3) ?
wayland76 rakudo: [R/] 3,5,7 05:30
p6eval rakudo f6cdf9: RESULT«4.2»
diakopter (does it reverse the order of the operands to each operation, or does it reverse the list?
heh
wayland76 rakudo: (3 / (5 / 7))
p6eval rakudo f6cdf9: RESULT«4.2»
wayland76 rakudo: (7 / (5 / 3) 05:31
frooh diakopter: I think that's the same thing...
p6eval rakudo f6cdf9: OUTPUT«Syntax error at line 1, near "(7 / (5 / "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
wayland76 rakudo: (7 / (5 / 3))
p6eval rakudo f6cdf9: RESULT«4.2»
diakopter oh, so it is.
frooh rakudo: [~] <f r e w>;
rakudo: [R~] <f r e w>;
p6eval rakudo f6cdf9: RESULT«"frew"»
rakudo f6cdf9: RESULT«"werf"»
wayland76 werf :) 05:32
frooh :-P
diakopter rakudo: [R^] 3,5,7 eqv [^] 3,5,7
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "^] 3,5,7 e"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» 05:33
frooh rakudo: 1 eqv 1
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_15:42)␤»
frooh it's not implemented yet
diakopter rakudo: ([R**] 3,5,7) eqv ([**] 7,5,3)
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 145 (EVAL_15:54)␤»
frooh rakudo: ([R**] 3,5,7) == ([**] 7,5,3) 05:34
p6eval rakudo f6cdf9: RESULT«Bool::False»
frooh rakudo: (([R**] 3,5,7),([**] 7,5,3))
p6eval rakudo f6cdf9: RESULT«[4.33765494809799e+105, 4747561509943]»
frooh interesting
diakopter rakudo: (([**] 3,5,7),([R**] 7,5,3)) 05:35
p6eval rakudo f6cdf9: RESULT«[5.00315450989997e+16, Inf]»
frooh I think we are seeing a different issue
diakopter >googol
frooh rakudo: (([R**] 2,3,4),([**] 4,3,2))
p6eval rakudo f6cdf9: RESULT«[262144, 4096]»
frooh well
still wrong?
diakopter rakudo: (([R%] 2,3,4),([%] 4,3,2)) 05:36
p6eval rakudo f6cdf9: RESULT«[0, 1]»
diakopter rakudo: (([R**] 2,3,4),([**] 4,2,3)) 05:37
p6eval rakudo f6cdf9: RESULT«[262144, 4096]»
diakopter ok, yeah, R reverses the list.... 05:38
wayland76 rakudo: [R~] <w a y l a n d>;
p6eval rakudo f6cdf9: RESULT«"dnalyaw"»
frooh rakudo: (1,2,3).reduce({ $^a + $^b })
p6eval rakudo f6cdf9: RESULT«6»
diakopter but
frooh rakudo: (1,2,3).reduce({ "($^a + $^b)" })
p6eval rakudo f6cdf9: RESULT«"((1 + 2) + 3)"» 05:39
frooh hoho!
that is cool
diakopter nice
frooh rakudo: (1,2,3).reduce({ $^b; $^a; "($^a + $^b)" })
p6eval rakudo f6cdf9: RESULT«"((1 + 2) + 3)"»
frooh rakudo: (1,2,3).reduce({"($^b + $^a)" })
p6eval rakudo f6cdf9: RESULT«"(3 + (2 + 1))"»
05:39 justatheory joined
diakopter ok, now what if you want to swap the order of the operands for each operation 05:40
(using the reduction brackets) 05:41
frooh well
05:41 justatheory_ joined, justatheory left
diakopter std: R[R**] 2,3,4 05:41
p6eval std 25731: OUTPUT«############# PARSE FAILED #############␤Unable to parse subscript; couldn't find final ']' at /tmp/0O5xvKzAdP line 1:␤------> R[R**] 2,3,4␤ expecting any of:␤ prefix or noun␤ whitespace␤FAILED 00:02 34m␤»
frooh I can't really do that with .reduce can I?
diakopter there you reverse them manually :P
rakudo: (1,2,3).reduce({ "($^b + $^a)" }) 05:42
p6eval rakudo f6cdf9: RESULT«"(3 + (2 + 1))"»
diakopter oh wait
no, that's correct
that's what R should do inside [] to be consistent with its other usage
frooh yeah 05:43
05:43 WootKit joined
diakopter what should the syntax be to rfold then :) 05:43
R after the op? :)
frooh what is Rfold? 05:44
I've never heard of that
diakopter what it's doing now... xrl.us/beinxu
05:44 justatheory_ left 05:45 justatheory joined
diakopter foldr, I meant (sleepy) 05:46
frooh I'll read that later 05:47
thats a lot to read at 11:45 on a friday
:-)
diakopter heh
oooo gotta hit up Wendy's b4 it closes... oh, you're in CST like I 05:48
frooh haha, yep
I thoguht it closes at 2?
05:48 WootKit left
diakopter not in parts of town like *this* 05:48
frooh hahaha, nice?
(doubtful)
diakopter kidding; bbiab 05:49
frooh rakudo: (1,2,3).reduce({ $^a + $^b })
p6eval rakudo f6cdf9: RESULT«6»
frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($bloack) 05:50
wayland76 rakudo: reduce(qw(w e i g h t))
frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block)
p6eval rakudo f6cdf9: OUTPUT«Scope not found for PAST::Var '$bloack' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 112 (EVAL_16:51)␤»
rakudo f6cdf9: RESULT«6»
frooh sorry
rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block.perl)
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 130 (src/classes/ClassHOW.pir:93)␤»
diakopter if only any binary function could be put in the reduce brackets...
frooh diakopter: I asked TimToady about that
wayland76 You're sorry? What about me? I confused your test wit hmy idiocy :)
05:51 WootKit joined
frooh diakopter: he said that if you *really* want to do that you should make the funciton an op 05:51
and otherwise we use functions for functions and ops for ops
you could do this :-) 05:52
sub Rev ( $a, $b) { $b, $a}
and then foo(Rev $bar, $baz))
05:53 sri_kraih joined
diakopter well, I'm assuming [R**] will change to mean binaryswap, not reversefirst 05:53
frooh rakudo: (1,2,3).reduce({ $^a + $^b })
diakopter: agreed
p6eval rakudo f6cdf9: RESULT«6»
frooh if you wanted the latter you could do something like
[op] @list.reverse 05:54
right?
rakudo: (1,2,3).reduce({"$^a + $^b"}) 05:55
diakopter rakudo: [**] (2,3,4).reverse
rakudo: [**] (2,3,4).reverse()
p6eval rakudo f6cdf9: RESULT«"1 + 2 + 3"»
frooh ...
p6eval rakudo f6cdf9: RESULT«4096»
frooh rakudo: (1,2,3).reduce({"($^a + $^b)"})
diakopter rakudo: [R**] (2,3,4)
p6eval rakudo f6cdf9: RESULT«"((1 + 2) + 3)"»
rakudo f6cdf9: RESULT«262144»
diakopter ok, huh 05:56
frooh rakudo: (2,3,4).reduce({$^a ** $^b }) 05:57
p6eval rakudo f6cdf9: RESULT«4096»
frooh rakudo: (2,3,4).reduce({"($^a ** $^b)"})
p6eval rakudo f6cdf9: RESULT«"((2 ** 3) ** 4)"»
frooh rakudo: (2,3,4).reduce({$^b ** $^a })
p6eval rakudo f6cdf9: RESULT«262144»
frooh rakudo: (2,3,4).reduce({"($^b ** $^a)"})
p6eval rakudo f6cdf9: RESULT«"(4 ** (3 ** 2))"»
frooh that really is not what I expect from reduce
diakopter oh! it did both 05:58
frooh ?
oh 05:59
reverses the list AND reverses the op
maybe the former is a product of the latter...
05:59 WootKit left
diakopter rakudo: ((2,3,4).reduce({"($^b ** $^a)"}),(2,3,4).reduce({"($^a ** $^b)"}),(4,3,2).reduce({"($^b ** $^a)"}),(4,3,2).reduce({"($^a ** $^b)"}) 05:59
p6eval rakudo f6cdf9: OUTPUT«Syntax error at line 1, near "((2,3,4).r"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
diakopter rakudo: ((2,3,4).reduce({"($^b ** $^a)"}),(2,3,4).reduce({"($^a ** $^b)"}),(4,3,2).reduce({"($^b ** $^a)"}),(4,3,2).reduce({"($^a ** $^b)"}))
p6eval rakudo f6cdf9: RESULT«["(4 ** (3 ** 2))", "((2 ** 3) ** 4)", "(2 ** (3 ** 4))", "((4 ** 3) ** 2)"]»
frooh gnarly 06:00
diakopter rakudo: ((2,3,4,5).reduce({"($^b ** $^a)"}),(2,3,4,5).reduce({"($^a ** $^b)"}),(5,4,3,2).reduce({"($^b ** $^a)"}),(5,4,3,2).reduce({"($^a ** $^b)"}))
p6eval rakudo f6cdf9: RESULT«["(5 ** (4 ** (3 ** 2)))", "(((2 ** 3) ** 4) ** 5)", "(2 ** (3 ** (4 ** 5)))", "(((5 ** 4) ** 3) ** 2)"]» 06:01
wayland76 Ok, does anyone know how to add another adverb to a quote?
Do we have to monkey-patch the Str object?
frooh rakudo: my @a = (2,3,4,5); my @b = @a.reverse; my $d = {"($^a ** $^b)"}; my $e = {"($^b ** $^a)"}; (@a.reduce($d),@a.reduce($e),@b.reduce($d),@b.reduce($e)) 06:03
p6eval rakudo f6cdf9: RESULT«["(((2 ** 3) ** 4) ** 5)", "(5 ** (4 ** (3 ** 2)))", "(((5 ** 4) ** 3) ** 2)", "(2 ** (3 ** (4 ** 5)))"]»
frooh what is an adverb on a quote? 06:04
06:04 sri_kraih_ left
frooh rakudo: my @a = (1,2,3); my @b = @a.reverse; my $d = {"($^a / $^b)"}; my $e = {"($^b / $^a)"}; (@a.reduce($d),@a.reduce($e),@b.reduce($d),@b.reduce($e)) 06:05
p6eval rakudo f6cdf9: RESULT«["((1 / 2) / 3)", "(3 / (2 / 1))", "((3 / 2) / 1)", "(1 / (2 / 3))"]»
frooh rakudo: my @a = (1,2,3); my @b = @a.reverse; my $d = {($^a / $^b)}; my $e = {($^b / $^a)}; (@a.reduce($d),@a.reduce($e),@b.reduce($d),@b.reduce($e))
p6eval rakudo f6cdf9: RESULT«[0.166666666666667, 1.5, 1.5, 1.5]»
frooh you know what would be awesome? 06:07
a ~ metaop
that would basically do "($^a $op $^b)" 06:08
06:09 justatheory_ joined
diakopter what would that look like 06:09
frooh maybe 06:10
[~+] (1,2,3)
06:10 samlh left
frooh or [S+] (1,2,3) 06:10
diakopter: your rss feed has some doubles it looks like 06:11
er
Atom feed actually
diakopter which feed is my feed
frooh I figured that link that you sent earlier was yours 06:12
bartdesmet.net/blogs
diakopter ha; no
that guy works for msft
frooh ah
ok
I don't like .net 06:13
It
's too...statically typed :-)
diakopter objects have a lifetime type, yeah, but syntax exists for auto-coercions (and auto-coercion/representation type factories) 06:14
frooh you lost me
area you talking about .net?
or how it should be?
diakopter but when we're all supposed to be using SSA and/or immutable types AMAP.... :)
.net
frooh SSA? AMAP? 06:15
I don't know these acronyms :-)
diakopter as much as possible?
frooh ah
diakopter static single assignment
frooh I can agree with that
but .net and java just rub me the wrong way 06:16
I've been using perl too long
06:16 justatheory left
diakopter std: [++] 1 06:27
p6eval std 25731: OUTPUT«############# PARSE FAILED #############␤Unable to parse array composer; couldn't find final ']' at /tmp/IFaxNVf91Q line 1:␤------> [++] 1␤ expecting any of:␤ noun␤ prefix␤ prefix or meta-prefix␤ prefix_postfix_meta_operator␤ whitespace␤FAILED
..00:02 35m␤»
diakopter well, that parse fail msg is imprecise
sorta
catch non-infix operators 06:28
frooh what exactly does X do? 06:33
rakudo: 1,2,3,4 X+ 3,4,5,6
p6eval rakudo f6cdf9: RESULT«[4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10]» 06:34
frooh ah
interesing
<f r e w> X~ <a b c d>
rakudo: <f r e w> X~ <a b c d>
p6eval rakudo f6cdf9: RESULT«["fa", "fb", "fc", "fd", "ra", "rb", "rc", "rd", "ea", "eb", "ec", "ed", "wa", "wb", "wc", "wd"]»
frooh nifty
rakudo: <f r e w> X <a b c d>
p6eval rakudo f6cdf9: RESULT«["f", "a", "f", "b", "f", "c", "f", "d", "r", "a", "r", "b", "r", "c", "r", "d", "e", "a", "e", "b", "e", "c", "e", "d", "w", "a", "w", "b", "w", "c", "w", "d"]» 06:35
frooh rakudo: <f r e w> R <a b c d>
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "R <a b c d"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frooh so we probably COULD make ~ a metaop
diakopter perlify?
.perl
frooh I tried it
rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block.perl) 06:36
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 130 (src/classes/ClassHOW.pir:93)␤»
frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block).perl
p6eval rakudo f6cdf9: RESULT«"6"»
frooh furthermore
rakudo: my $block = {$^a + $^b}; $block.perl
p6eval rakudo f6cdf9: RESULT«"\{ ... }"» 06:37
diakopter you'd want to wrap the whole thing in a sub 06:38
frooh looks into writing metaoperators... 06:39
diakopter is late to Wendy's
frooh haha
good luck
06:42 bacek_ left 06:43 alester left
frooh rakudo: (2,3,4).reduce({"($^b ** $^a)"}) 06:45
p6eval rakudo f6cdf9: RESULT«"(4 ** (3 ** 2))"»
frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^b ** $^a)"})
p6eval rakudo f6cdf9: RESULT«"(8 ** (6 ** 4))"»
frooh rakudo: (2,3,4).map({$_ * 2}).tap(say $_).reduce({"($^b ** $^a)"}) 06:46
p6eval rakudo f6cdf9: OUTPUT«Use of uninitialized value␤␤Method 'tap' not found for invocant of class 'List'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
frooh rakudo: (2,3,4).map({$_ * 2}).tap(say $_).reduce({"($^frew ** $^froo)"})
p6eval rakudo f6cdf9: OUTPUT«Use of uninitialized value␤␤Method 'tap' not found for invocant of class 'List'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^frew ** $^froo)"})
p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
frooh rakudo: (2,3,4).map({$_ * 2}).reduce({$^froo;"($^frew ** $^froo)"})
p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^frew ** $^froo)"}) 06:47
p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^froo ** $^frew)"})
p6eval rakudo f6cdf9: RESULT«"(8 ** (6 ** 4))"»
frooh guesses that it's alphabetical
rakudo: (2,3,4).map({$_ * 2}).reduce(sub ($froo, $frew) {"($froo ** $frew)"})
p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
frooh PERFECT. 06:48
sub rev ($a,$b) {$b, $a}; rakudo: (2,3,4).map({$_ * 2}).reduce(sub ($froo, $frew) {"($froo ** $frew)"}) 07:05
rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(sub ($froo, $frew) {"($froo ** $frew)"}) 07:06
p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
frooh rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(rev sub ($froo, $frew) {"($froo ** $frew)"})
p6eval rakudo f6cdf9: OUTPUT«too few arguments passed (1) - 2 params expected␤current instr.: 'rev' pc 170 (EVAL_17:67)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(sub (rev $froo, $frew) {"($froo ** $frew)"})
p6eval rakudo f6cdf9: OUTPUT«Malformed routine definition at line 1, near "(rev $froo"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
07:06 skids left
frooh rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(rev {"($froo ** $frew)"}) 07:06
p6eval rakudo f6cdf9: OUTPUT«Scope not found for PAST::Var '$froo' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(rev {"($^a ** $^b)"}) 07:07
p6eval rakudo f6cdf9: OUTPUT«too few arguments passed (1) - 2 params expected␤current instr.: 'rev' pc 170 (EVAL_17:67)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}(2,3,4).map({$_ * 2}).reduce(rev {"($^a ** $^b)"}) 07:13
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "(2,3,4).ma"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}(2,3,4).map({$_ * 2}).reduce(rev foo})
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "(2,3,4).ma"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}; (2,3,4).map({$_ * 2}).reduce(rev foo})
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "(rev foo})"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}; (2,3,4).map({$_ * 2}).reduce(foo(rev)}) 07:14
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "(foo(rev)}"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}; (2,3,4).map({$_ * 2}).reduce(foo(rev))
p6eval rakudo f6cdf9: OUTPUT«too few arguments passed (0) - 2 params expected␤current instr.: 'rev' pc 175 (EVAL_17:66)␤»
frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}; (2,3,4).map({$_ * 2}).reduce({foo(rev($a, $b))})
p6eval rakudo f6cdf9: OUTPUT«Scope not found for PAST::Var '$a' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
07:15 Nickname joined 07:17 justatheory_ left
meppuru good night 07:19
07:21 ejs joined, bacek joined 07:22 meppuru left
bacek hi there 07:29
and good evening
07:30 Nickname left 07:33 mberends joined, Sepheebear left
frooh Where can I find information on looking at the AST? 07:35
07:36 Sepheebear joined 07:37 Tene joined
wayland76 frooh: I don't know, but if you get STD.pm, you can look at things that way 07:38
Or are you asking about quasiquoting or macros or something? 07:39
bacek: hi :)
diakopter frooh: oh, the AST that STD/viv emits?
bacek hi wayland76
07:41 mberends left
frooh I don't really know 07:41
masak mentioned it in a post today 07:42
rakudo: { 4 + 5}.viv
p6eval rakudo f6cdf9: OUTPUT«Method 'viv' not found for invocant of class 'Block'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
wayland76 std: { 4 + 5}.viv 07:43
p6eval std 25731: OUTPUT«ok 00:02 34m␤»
wayland76 Well, my guess is that he's using STD for that :)
frooh hm 07:44
rakudo can't use STD right? 07:45
wayland76 That's right 07:47
They will eventually 07:48
but not yet
frooh right
k, just making sure
07:49 Tene_ left
frooh a package in perl6 is called a 'module' in code right? 07:51
frooh looks through november for hints
wayland76 What's a package?
The perl 5 package had about 4 different meanings 07:52
frooh in perl5 you put package Foo; at the top of a .pm file
wayland76 If you mean what other languages call a class, then you want a class or a role
frooh I know it's a module
well, I want something more generic
that is
a class that will never be instantiated
wayland76 I think package still works, but module also might work
frooh hm
k
wayland76 Look in S02 under the heading "Mutable types" 07:53
Anyway, my xorg needs some more debugging, so I'm going to have to disappear for a while. But others will be around soon :) 07:54
07:54 wayland76 left
frooh rakudo: rand(100).int 08:03
p6eval rakudo f6cdf9: OUTPUT«too many arguments passed - 0 params expected␤current instr.: 'rand' pc 12251 (src/builtins/any-num.pir:106)␤» 08:04
frooh rakudo: random(100).int
p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub random␤current instr.: '_block14' pc 60 (EVAL_16:40)␤»
frooh rakudo: 100.random
p6eval rakudo f6cdf9: OUTPUT«Method 'random' not found for invocant of class 'Int'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
frooh rakudo: random
p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub random␤current instr.: '_block14' pc 53 (EVAL_16:38)␤»
frooh rakudo: rand
p6eval rakudo f6cdf9: RESULT«0.73274053174919»
frooh rakudo: (rand*1000).int
p6eval rakudo f6cdf9: RESULT«182»
bacek rakudo: (1..1000).pick
p6eval rakudo f6cdf9: RESULT«[116]» 08:05
bacek rakudo: (1..1000).pick
p6eval rakudo f6cdf9: RESULT«[790]»
frooh that's right
I'd forgotten about that
(1..1000).pick[0]
rakudo: (1..1000).pick[0]
p6eval rakudo f6cdf9: RESULT«302»
bacek rakudo: (1..10).pick(*)
p6eval rakudo f6cdf9: RESULT«[7, 8, 1, 3, 10, 4, 6, 5, 9, 2]»
frooh if I make a method with the same name as a builtin and I want to use that builtin in the method, how could I do that? 08:09
wait!
I figured it out
I put :: at the front
bacek indeed :)
frooh since I want the one in the Global namespacew
08:13 jaldhar left
frooh is there a reason that when I do open(".tmp", :w) the file gets named IO<0x...> ? 08:18
nm, I was being silly 08:23
08:25 smtms left
frooh rakudo: "fREW 08:30
p6eval rakudo f6cdf9: OUTPUT«Syntax error at line 1, near "\"fREW"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
frooh rakudo: "fREW".sub('R', 'T') 08:31
p6eval rakudo f6cdf9: OUTPUT«Method 'sub' not found for invocant of class 'Str'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
frooh rakudo: "fREW".subst('R', 'T')
p6eval rakudo f6cdf9: RESULT«"fTEW"»
frooh rakudo: "fREWR".subst('R', 'T')
p6eval rakudo f6cdf9: RESULT«"fTEWR"»
frooh rakudo: "fREWR".subst('R', 'T', :g)
p6eval rakudo f6cdf9: RESULT«"fTEWT"»
frooh rakudo: "fREWR".subst('R', 'RR', :g)
p6eval rakudo f6cdf9: RESULT«"fRREWRR"»
08:44 wayland76 joined
bacek can someone merge #63634 and #62178? 08:44
wayland76 rakudo: say "#63634" ~ " #62178" 08:45
p6eval rakudo f6cdf9: OUTPUT«#63634 #62178␤»
wayland76 There we go :)
Oh wait... :)
frooh :-)
bacek wayland76: merge! Not concatenate! 08:46
wayland76 rakudo: merge "#63634", " #62178"
p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub merge␤current instr.: '_block14' pc 67 (EVAL_16:42)␤»
wayland76 Well, that's the answer, I guess :)
frooh rakudo: ("#63634".split('') Z "#62178".split('')).join 08:47
p6eval rakudo f6cdf9: RESULT«"# # 6 6 3 2 6 1 3 7 4 8"»
frooh merged?
bacek rakudo: sub merge($a,$b) { $a=>1,$b=>1 }; say merge('#63634', '#62178')
p6eval rakudo f6cdf9: OUTPUT«#63634 1#62178 1␤»
bacek rakudo: sub merge($a,$b) { $a=>1,$b=>1 }; say merge('#63634', '#62178').perl
p6eval rakudo f6cdf9: OUTPUT«["#63634" => 1, "#62178" => 1]␤»
bacek rakudo: say ('#63634' | '#62178').perl 08:48
p6eval rakudo f6cdf9: OUTPUT«any("#63634", "#62178")␤»
bacek merged!
frooh good job bacek++ !
08:49 DemoFreak joined
bacek wayland76: how things in Melbourne after earthquake? 08:51
wayland76 What earthquake?
:)
Admittedly, I'm about 50km from Melbourne
But I haven't noticed one. We don't usually get them in AU, due to lack of tectonic plate lines across the continent 08:52
bacek wayland76: I know :)
wayland76 Ah, I see the news says "Victoria's East" 08:53
Melbourne's suburbs stretch a long way east of Melbourne itself; presumably that's where it was felt
Out where the bushfires are
(bacek: I know you know this, but I figured some others might be interested) 08:54
bacek Last nail... Looks like someone hates Melbourne very much...
frooh is interested
bacek start thinking 'bout BBQ
Oh. I'm out of beer... 08:55
wayland76 bacek: Not to commend his views, but you remember what Danny Nalliah said about the bushfires?
bacek No BBQ for me today...
wayland76: no.
wayland76 bacek: Don't you have a 24x7 store? :)
bacek wayland76: are such things exists in Australia??? 08:56
wayland76 Danny Nalliah basically claimed that God had been protecting Victoria (presumably from Satan) and stopped protecting it when the pro-abortion laws were passed
bacek: Well, ok, but if I'd said an 18x6, would you have known what I meant?
bacek wayland76: size of screw??? 08:57
:)
bacek found Danny Nalliah quote. ROTFL! 08:58
frooh rakudo: "s t a t i o n".comp 09:03
p6eval rakudo f6cdf9: OUTPUT«Method 'comp' not found for invocant of class 'Str'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
frooh rakudo: "s t a t i o n".comb
p6eval rakudo f6cdf9: RESULT«["s", "t", "a", "t", "i", "o", "n"]»
frooh rakudo: "s t a t i o n".comb('t')
p6eval rakudo f6cdf9: OUTPUT«Parameter type check failed for $matcher in call to comb␤current instr.: 'die' pc 16351 (src/builtins/control.pir:204)␤»
09:03 Kimtaro left
frooh rakudo: "s t a t i o n".comb(/t/) 09:03
p6eval rakudo f6cdf9: RESULT«["t", "t"]»
frooh rakudo: "s t a t i o n".split(/t/)
p6eval rakudo f6cdf9: RESULT«["s ", " a ", " i o n"]»
frooh rakudo: "s t a t i o n".split('t')
p6eval rakudo f6cdf9: RESULT«["s ", " a ", " i o n"]»
09:05 M_o_C joined
frooh is reading from Standard In different in perl6? 09:08
wayland76 Yes
How did you expect to do it?
frooh that explains why it wasn't working
the same as perl5
wayland76 I can think of multiple ways to do it in P5
frooh my $foo = <STDIN>; 09:09
wayland76 can you give the line that does the actual reading?
Ok, try <$*IN> instead
my $foo = <$*IN>;
frooh same thing
just ignores it
bacek rakudo: for =<$*IN> -> $line { say $line }
p6eval rakudo f6cdf9: OUTPUT«Method 'HOW' not found for invocant of class 'Iterator'␤current instr.: 'parrot;P6protoobject;ACCEPTS' pc 1300 (runtime/parrot/library/P6object.pir:675)␤»
bacek rakudo: for =$*IN -> $line { say $line } 09:10
frooh man....now it's waiting
bacek hides
wayland76 rakudo: while($foo = <$*IN>) { say $foo}
frooh rakudo: GAME OVER
:-P
wayland76 summon moritz_ :) 09:11
frooh haha 09:12
this is an awesome error:
Method 'postcircumfix:{ }' not found for invocant of class 'Failure'
I think rakudo just said: fREW, you failed.
wayland76 rakudo: say "hi"
I think we infinite looped it :) 09:13
frooh it happens
09:13 M_o_C left
frooh well, the for thing isn't working over here 09:13
but I haven't recompiled in a couple days 09:14
so I'll try that
wayland76 The prefix:<=> doesn't work yet, I think
(the iterator)
frooh it works for files
wayland76 Does it?
frooh yeo
er
yep
wayland76 Well, I'm wrong then :)
frooh I'm using it
wayland76 Anyway, the new STD handles are $*IN $*OUT and $*ERR 09:15
IIRC
frooh ok, well, it certainly seemed to work on the bot
wayland76 See S16 :)
frooh looks
too bad there aren't many examples 09:17
maybe the tests will say something
bleg
getc
wayland76 Well, that gets a Unicode character though :) 09:18
frooh yeah
but imagine using it to read a whole file
svn.pugscode.org/pugs/t/spec/S16-io/basic-open.t
09:18 [particle]1 left
frooh that looks helpful 09:18
er
except it's for opening a file...
09:18 [particle] joined
frooh but it should theoretically work the same 09:19
09:19 ejs left
frooh :-( 09:19
wayland76 Should, agreed :)
frooh no love
it surprises me that it's easier to open a file than read from stdin
but so it goes
wayland76 Anyway, I have to go away for an hour or so 09:20
frooh ah
I'm silly
wayland76 ?
frooh I was doing =$<$*IN> 09:21
you have to do
=$*IN
wayland76 Ha! :)
frooh anyway
probably talk to you tomorrow
thanks for the help etc
wayland76 Oh, yeah, angle bracked notation died; sorry, I forgot :)
no worries. See you then :)
09:29 barney joined 09:31 WootKit joined
frooh rakudo: say "hello?" 09:38
:-(
09:42 Kimtaro joined 09:53 WootKit left 09:56 M_o_C joined 10:24 pmurias joined
wayland76 someone has to ressurect the bot to make it happy 10:39
s/ressurect/resurrect/ 10:40
pmurias mildew: say "hi" 10:49
moritz_ wayland76: I've delete the spam 10:59
thanks for notifying
rakudo: say "alive" 11:28
11:29 p6eval joined
moritz_ I don't know what's wrong, but I restarted the bot 11:29
perl6: say "alive"
p6eval elf 25731, pugs, rakudo f6cdf9: OUTPUT«alive␤»
moritz_ much better
11:44 WootKit joined 11:45 WootKit left, spx2 left 11:52 Ariens_Hyperion joined 11:53 mberends joined 12:02 baest joined 12:10 Ariens_Hyperion left
moritz_ rakudo: 3 eqv 3 12:12
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_15:42)␤»
moritz_ rakudo: say 3 eqv 3
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_16:42)␤»
moritz_ rakudo: say (1 > 2).perl 12:13
p6eval rakudo f6cdf9: OUTPUT«Bool::False␤»
moritz_ rakudo: class Int is also { method eqv(Int $other) { $other == self } }; say 1 eqv 2 12:14
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_20:42)␤»
moritz_ rakudo: class Int is also { multi method eqv(Int $other) { $other == self } }; say 1 eqv 2 12:15
p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_20:42)␤»
12:21 Ariens_Hyperion joined 12:26 Whiteknight joined 12:46 fridim_ joined
pugs_svn r25732 | moritz++ | [t] and [t/spec]: small improvements, mostly found by STD.pm 12:58
jnthn waves from the Ukrainian Perl Workshop
moritz_ waves back 12:59
jnthn What's news?
moritz_ TimToady changed half of the specs ;-)
jnthn has had dubious wifi and a power fail helping him stay offline...
Meh, business as usual then. ;-)
moritz_ a bit more than usual
result objects in match objects are now accessed differently 13:00
with $<?> iirc
and the invocant in captures changed a bit
jnthn Ah
Ah, OK.
moritz_ and lists in item context promote to Capture now
and are thus immutable
jnthn my $x = 1,2,3; # now $x is immutable?
moritz_ yes. 13:01
jnthn ok
None of that sounds *too* horrible...yet
moritz_ ruoso thinks otherwise (because smop did a lot of work on captures)
oh, and it's now 'method !private' to declare private methods 13:02
not 'my method ...'
jnthn Oh, OK
I think both were spec before anyway?
So it's just *removing* code for that one.
moritz_ only for roles
jnthn ok
moritz_ but it parses OK
jnthn what does my method mean now?
That it's not also in the package? 13:03
moritz_ visibility limited to lexical scope
jnthn ok, makes sense.
moritz_ the default can now also be spelled as 'has method ...'
jnthn :-S
Wait, so class foo { my method foo() { } }; foo.new.foo # fails? 13:04
moritz_ yes
jnthn hmm
ok
moritz_ it did before as well
jnthn True, but it worked as foo.new!foo 13:05
IIRC
moritz_ but ... class foo is also { method bar { self!foo} } fails
jnthn OK
Could be fun to get right with eval
moritz_ oh wait, that's 'augment class foo { ... }' now
jnthn ... 13:06
OK, I need to re-learn Perl 6.
moritz_ I told you there were quite some changes
jnthn I'm happy pretty much none of these changes affect things I've been explaining to people at conferences this year though..afaict. ;-)
moritz_ but they affect stuff that I write in articles 13:07
jnthn aye
:-|
moritz_ anyway, I hope I can get you and pmichaud to implement most changes that matter for me ;-)
jnthn you likely can 13:08
moritz_ YaY ;-)
jnthn we'll probably allow a little for the dust to settle
wolverian does 'class Foo { }; { my method Foo::bar { say "hi" } Foo.new.bar }; Foo.new.bar' do what I want? (i.e. print "hi" once and then fail)
jnthn I wouldn't expect so 13:09
But I didn't read the updated spec yet.
wolverian although that's still sort of monkey patching--I'd rather have lexically scoped "does", so I can lexically make a class implement a role.
(like haskell's type classes)
moritz_ is very much attracted by some pancakes... must resist... can't... ;-) 13:11
jnthn just eat it. ;-)
we had pizza delivered for workshop lunch :-) 13:12
wolverian: I think you can declare a lexical class of the same name that is based on the current one but does the role. 13:13
wolverian that wouldn't affect values of that class I already have, would it? 13:15
jnthn no
since you're actually declaring a new class 13:16
wolverian that's not good enough for me :)
jnthn well, ain't you hard to please :-P 13:17
moritz_ just implement 'use Haskell' in lexical scopes ;-)
wolverian I just want safe monkeypatching...
jnthn AFAICT you want to lexically monky-patch?
A little like .Net extention methods?
wolverian right, except nominally with roles, so I don't have to do it method by method.
jnthn *monkey
hmm 13:18
well, I guess you could try monkey-patching the dispatcher ;-) 13:19
as part of module Haskell ;-)
It'd probably not be too hard...you could then delegate back to the usual dispatcher. 13:21
Heh
.wrap ClassHOW.dispatch
That's sick. :-D 13:22
ok I haz a talk now...maybe back later... 13:33
13:43 abra joined 14:05 |jedai| is now known as jedai 14:15 parduncia joined 14:35 brunoV joined 14:37 meppl joined 14:54 Ariens_Hyperion left 14:56 braceta joined 15:01 AndyAway left 15:17 orafu joined 15:19 alester joined 15:20 abra left 15:23 Ariens_Hyperion joined 15:24 parduncia left 15:37 Chillance joined 15:38 Chillance left, Chillance joined 15:51 Tene_ joined 15:57 orafu left, M_o_C left, barney left, DemoFreak left, sri_kraih left, japhb left, pugs_svn left, moritz_ left, szabgab left, buubot left, literal left, ewilhelm left, simcop2387 left, Chillance left, baest left, frodwith left, mj41 left, mikehh left, wayland76 left, pjcj left, PacoLinux left, tarbo2 left, [particle] left, meteorjay left, araujo left, Tene_ left, brunoV left, Tene left, lambdabot left, awwaiid left, kst left, Sepheebear left, Coleoid left, elmex left, zostay left, AzureStone left 15:58 moritz_ joined, Tene_ joined, Chillance joined, orafu joined, brunoV joined, baest joined, M_o_C joined, barney joined, [particle] joined, DemoFreak joined, wayland76 joined, Tene joined, Sepheebear joined, sri_kraih joined, japhb joined, meteorjay joined, Coleoid joined, awwaiid joined, elmex joined, lambdabot joined, araujo joined, literal joined, pugs_svn joined, ewilhelm joined, simcop2387 joined, buubot joined, szabgab joined, zostay joined, pjcj joined, frodwith joined, PacoLinux joined, mj41 joined, AzureStone joined, tarbo2 joined, kst joined, mikehh joined, gravity joined, kane_ joined, cls_bsd joined, PZt joined, lisppaste3 joined, cotto joined, xinming_ joined, pasteling joined, allbery_b joined, broquaint joined, gfldex joined, Helios joined, irc.freenode.net sets mode: +o moritz_, Maddingue joined, szbalint joined, Eevee_ joined, buu joined, IRSeekBot joined, Grrrr joined, PerlJam joined, viklund joined, idemal joined, nikn joined, gbacon joined, scrottie joined, ilbot2 joined, yves joined, cxreg joined, f00li5h joined, avar joined, Aisling joined, spinclad joined, diakopter joined, kcwu joined, frobnitz joined, mtve joined, zev joined, nipotan joined, silug joined, irc.freenode.net sets mode: +o PerlJam 16:02 NoirSoldats joined 16:03 Tene left, Whiteknight left 16:05 wolverian joined 16:07 NoirSoldats left 16:08 NoirSoldats joined 16:14 NoirSoldats left 16:22 mikehh left 16:25 __felix__ joined 16:27 __felix__ left, __felix__ joined 16:28 __felix__ left 16:29 hexmode joined 16:30 Ariens_Hyperion left 16:34 mikehh joined 16:40 zulon joined
zulon hi! 16:41
for a few months now I've been playing around with Haskell, and I'd want to know if features from it would be usable in Perl 6
is it possible to use roles like Haskell's classes ? 16:42
are there any way to use algebraic data type easily ?
is*
is it possible to define a do-notation like Haskell's one, but for lists, maybes etc. (not IO) ? 16:43
diakopter well, Perl 6 isn't (by default) lazy (unless you deal in list context only I guess) or pure, so... 16:44
zulon yes I know 16:45
but I'm not asking about lazyness
diakopter but why would you need a do notation?
zulon for many things 16:46
eg. computations that can fail, that can yield more than one result...
and because timtowtdi :p
TimToady Perl generally prefers to build its monads into its objects; all objects are Maybe/Error already, for instance, unless subtyped to prevent that 16:48
that being said, all is fair in a lexical scope
as long as it doesn't clobber other lexical scopes via spooky action at a distance 16:49
zulon hum
so it is possible to define <- infix op and "programmable" semicolon ?
TimToady perl6: sub infix:<\<-> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42 16:51
p6eval rakudo f6cdf9: OUTPUT«Malformed routine definition at line 1, near "infix:<\\<-"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
..elf 25732: RESULT«␤»
..pugs: OUTPUT«*** ␤ Unexpected "infix"␤ expecting "=", subroutine parameters, trait or block␤ at /tmp/2hwsTruUvT line 1, column 5␤»
TimToady std: sub infix:<\<-> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
p6eval std 25732: OUTPUT«ok 00:04 38m␤»
TimToady std: sub infix:<< <- >> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42 16:52
p6eval std 25732: OUTPUT«Bareword found where operator expected at (eval 154) line 22, near "q<< <- >>,␤ }, 'RE_method'),␤ }, 'RE'),␤};␤␤sub infix__S_500Lt_LtMinus_Gt__PEEK { $_[0]->_AUTOLEXpeek"␤ (Might be a runaway multi-line <> string starting on line 17)␤############# PARSE FAILED
..########...
TimToady heh
diakopter pugs might take that?
TimToady rakudo: sub infix:<< <- >> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
p6eval rakudo f6cdf9: OUTPUT«Malformed routine definition at line 1, near "infix:<< <"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
moritz_ rakudo doesn't do custom ops yet
TimToady pugs: sub infix:<< <- >> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
p6eval pugs: OUTPUT«I'm a 123 <- 42␤»
TimToady there you go
pugs: sub infix:«<-» ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42 16:53
p6eval pugs: OUTPUT«I'm a 123 <- 42␤»
zulon well I was not thinking about it this way but rather something like "mdo { $x <- 1 .. 10; return $x + 10 }" that would map (+10) over (1..10)
TimToady std: sub infix:«<-» ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
p6eval std 25732: OUTPUT«ok 00:04 38m␤»
moritz_ zulon: you can write that as 'for 1..10 -> $x { ... }' already
zulon yes, but you can't use it for the Maybe monad for example 16:54
moritz_ there's no explicit Maybe monad in Perl 6
but most things can be undef anyway
16:55 nihiliad joined
TimToady perl6: say map {$_+10}, 1..10 16:55
zulon yes, but can you write something like "mdo { $x <- lookup ...; $y <- lookup ...; say "Found $x and $y" }
p6eval elf 25732: OUTPUT«Use of uninitialized value $_ in addition (+) at (eval 124) line 3.␤Undefined subroutine &GLOBAL::map called at (eval 124) line 3.␤ at ./elf_h line 4372␤»
..pugs, rakudo f6cdf9: OUTPUT«11121314151617181920␤»
moritz_ rakudo: my %h = ( a => any(3, 4) ); for %h.kv -> $k, $v { say "$k: {$v.WHAT}" };
p6eval rakudo f6cdf9: OUTPUT«a: Int␤a: Int␤No exception handler and no message␤current instr.: 'return' pc 16018 (src/builtins/control.pir:39)␤»
16:56 slavik1 joined
slavik1 rofl 16:56
moritz_ zulon: you can't write Haskell in Perl 6. But you can do similar stuff with similar idioms
slavik1 perl6: say "hello";
p6eval elf 25732, pugs, rakudo f6cdf9: OUTPUT«hello␤»
zulon ok
slavik1 err, what's with the rakudo version? 16:57
rakudo: say "hello"
p6eval rakudo f6cdf9: OUTPUT«hello␤»
diakopter moritz_: TimToady will take that as a challenge... :P
16:57 cspencer joined
slavik1 rakudo's version leaked out from 32 bits? heh 16:57
diakopter chopped git revision hash?
TimToady I have plenty of challenges already, thank you...
moritz_ rakudo: my %h = ( a => any(3, 4) ); say %h<a>.WHAT; 16:58
p6eval rakudo f6cdf9: OUTPUT«Junction␤»
moritz_ rakudo: my %h = ( a => any(3, 4) ); for %h.kv -> $k, Object $v { say "$k: {$v.WHAT}" };
p6eval rakudo f6cdf9: OUTPUT«a: Junction␤»
slavik1 how come Larry isn't on this channel? where am I going to suggest default return values of 42?
moritz_ slavik1: he is ;-) 16:59
slavik1 hmm, which one is he then? heh
TimToady zulon: but by default, Perl 6 optimizes for you not having to be a space alien
zulon ?
TimToady Haskell makes things easy for space aliens, not normal folk
slavik1 TimToady: is it any way possible to be able to get a stack trace of a running parrot vm?
zulon ah ok 17:00
slavik1 is kicking around an idea of a Perl6 Application Server ...
TimToady slavik1: you'd have to speak to the parrotfolk about that; I'm just a recovering linguist
slavik1 haha 17:01
also, any chance that rakudo could access the parrot vm to execute pbc?
like and eval_pbc(); or something
TimToady ask pmichaud or jnthn
slavik1 ok 17:02
pmichaud, jnthn: please check and update :)
and provide updation on the same ...
TimToady I know you can do inline PIR, so the answer is likely "yes" on some level
17:02 zulon left
slavik1 TimToady: the idea is to have something for Parrot (Perl6, etc) what Weblogic/WebSphere does for Java 17:03
if that makes sense
TimToady haven't the foggiest idea what Weblogic/WebSphere do
diakopter slavik1: I think I did read that rakudo can load a pbc
moritz_ slavik1: I guess it's load_bytecode 'Filname.pbc'
TimToady I'm not a webbish person 17:04
slavik1 TimToady: you can load balance a java application on a cluster of servers, etc.
TimToady: it's like google's mapreduce type of thing
TimToady gotcha
slavik1 and afaik, Java is the only platform to have this
17:05 ejs joined
TimToady but perhaps a bit less probabalistic than mapreduce? 17:05
slavik1 right
TimToady: weblogic and websphere also manage all the database connections for you, so your app does something like: weblogic.getdbconnection() and that's it
the app never knows where the db is, nor how it actually connects, etc. 17:06
TimToady finally, a good use for network transparency :)
slavik1 and weblogic/websphere do that headache for your app as far managing it, testing the connection, creating new ones, reusing old connections
oh, and you can reconfigure the db connection without any change to the app at all while it is running :) 17:07
TimToady so basically it's a kind of virtual server fronting a cluster
slavik1 yes
diakopter slavik1: .Net/IIS have those capabilities too... (fyi) also, you can build those kinds of distributed dependency layers in just about [grabbag of] language(s)/environment(s)
TimToady what does that have to do with logic or spheres, I ask myself...
alester The first rule of taking a database dump: nohup it.
slavik1 diakopter: but for Java, it is "already there"(tm)
alester The second rule of taking a database dump: Make sure there's room for it.
slavik1 haha
alester: tough life of a dba?
alester ONly blew 2 hours.
diakopter (sigh) 17:08
slavik1 alester: man screen ;)
also a nice utility\
alester I don't do screen.
I just have never liked it.
slavik1 how come? :(
screen is like nohup, only better
alester Just don't. It just doesn't fit how I work.
slavik1 I see
cspencer is the "steps to create a patch" the latest and greatest way of submitting patches to rakudo? i seem to remember there being some discussion on the list as to whether or not to use RT vs git's way of doing things...
alester I know what it is. I know why it is God's gift to programmers. It just doesn't fit me. 17:09
moritz_ cspencer: it's probably not the latest and greatest
slavik1 sqlplus ftw?
cspencer moritz: alrighty then - was it hashed out on the list as to how to do it?
moritz_ cspencer: I think the currently recommended routine is to put all in a branch, and then squash it into a single commit
cspencer: and then git-format-patch that single commit, and send it to RT
diakopter alester: but we all must convince others to use our chosen tools to feel justified in our own selections. 17:10
cspencer moritz: ok...i'll check back into the archives and struggle with git a bit more then :)
moritz_ cspencer: more specifically, when you're done with $branch, git-checkout master; git-merge --squash $branch; git-commit -a 17:11
cspencer moritz: thanks, noted! 17:12
slavik1 jhowitz not around? 17:13
:(
what's the command to leave someone a note/message?
diakopter @tell slavik1 like this
lambdabot Consider it noted.
slavik1 ty
lambdabot slavik1: You have 1 new message. '/msg lambdabot @messages' to read it.
pugs_svn r25733 | lwall++ | [STD] detect <STDIN> and <> perl5os 17:14
17:19 skids joined 17:23 braceta left 17:27 wolverian left, wolverian joined 17:34 Eevee_ left 17:37 mncharity joined, DemoFreak left 17:38 slavik1 left 17:40 barney left
pugs_svn r25734 | putter++ | [elfparse] emit5.pm: fix a RATCHET typo/bug. 17:40
17:44 ejs left 17:46 sri_kraih left 18:05 fridim_ left 18:14 justatheory joined 18:16 justatheory left
pugs_svn r25735 | lwall++ | disallow bare <> as probable p5ism 18:19
r25736 | lwall++ | fix up occurrences of <> in the tests 18:21
r25736 | lwall++ | improve <> error message slightly
r25737 | moritz++ | [t/spec] more small improvements (STD++, TimToady++) 18:22
18:24 kst left
pmurias diakopter: hi 18:26
diakopter pmurias: hi 18:31
18:34 Psyche^ joined 18:35 pmurias left 18:36 pmurias joined
pmurias diakopter: is ironperl (or whatever Perl 6 on .net will be called) avalible somewhere public yet? 18:36
diakopter pmurias: well, I have an (empty) git repo for it :) but no... perhaps today or tomorrow. I've been scared off from git the past week or two though! 18:37
pmurias what are you writting it in? 18:38
diakopter tycho
it's a typeless, constructor-based language/interpreter that's written in C# and compiles to CIL. 18:39
pmurias url?
diakopter it's gpl2, btw. google tycho googlecode 18:40
moritz_ code.google.com/p/tycho/
diakopter yes
pmurias diakopter: and what are you compiling to? 18:42
moritz_ from its description it looks like a mixture of lisp and PCT ;-)
diakopter it compiles to CIL (runs on mono, too)
yeah, I'm swapping out the lexer/parser for a PEG engine, if only to parse STD/viv's emission! 18:43
moritz_ so you'll use STD? cool ;-)
pmurias diakopter: meant, what do you transform the STD parse tree to?
diakopter oh... commands to create constructors 18:44
all essentially lambda expressions
the tycho api
which can use all of the .net FCL (foundation class libraries)
pmurias diakopter: what i'm trying to determine if it would make sense to use the mildew AST instead of the STD/viv parse-tree 18:46
diakopter it very well might... what kind of reduction(/expansion?) occurs to produce the mildew ast 18:47
pmurias everything is translated to method calls 18:48
diakopter perhaps nopaste an ascii example? 18:49
pmurias it might be a bit smop oriented atm, but i can make nessary adjustments
ok
18:50 Patterner left, Psyche^ is now known as Patterner
pmurias diakopter: you could try running perl mildew -Cdesugar (it does not require a compiled smop) 18:52
diakopter also, the DLR might be part of the stack. not sure whether to compile to the C# DLR API or not.... 18:53
pmurias what does the DLR provide? 18:55
18:55 brunoV left
diakopter pluggable runtime binding/dispatch engines 18:56
and pluggable type converter-generators
and lexical scopes and symbol tables 18:57
pmurias one thing you should decide on is if you are going to implement full Perl 6 or just the things that map to .net nicely 18:58
diakopter well, the reason I spent so long researching a ton of possible strategies was to find one that would enable the full implementation (eventually) without having to overlay/replace stuff 18:59
19:00 s1n joined 19:01 Util joined
diakopter and, I'm fairly confident that a Perl 6 object can be a CLR object, as well as routines corresponding to CLR methods (not necessarily attached to the same "type" as the object they're called on (for private dispatch and scope/namespace dispatch). 19:02
Util rakudo: sub foo {say "Hi"} foo();
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "foo();"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
moritz_ the semicolon after } is only optional if followed by a line break 19:03
Util Thanks moritz
moritz_ you're welcome 19:04
Util rakudo: sub foo {say "Hi"}; foo();
p6eval rakudo f6cdf9: OUTPUT«Hi␤»
Util rakudo: sub foo {say "Hi";} foo();
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "foo();"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
cspencer has the rakudo spectest suite be reorganized? 19:05
when i do a "make spectest", it complains about a lot of missing files....
(mostly in spec/S29-*)
pasteling "pmurias" at 78.8.208.43 pasted "sub {say "hello world"} - mildew ast in pretty printed format" (20 lines, 1.1K) at sial.org/pbot/35389 19:06
pmurias diakopter: there's a lot of smopism visible but i think i could easily make the ast much more generic 19:08
diakopter oooooo
this is great 19:10
so, the builtins are the Perl6 metamodel?
as well as the API on the interpreter, of course 19:11
pmurias that's the goal
not having a additional layer 19:12
diakopter well, eventually :P
pmurias so mildew emits things like a call to &infix:<+> to add numbers instead of using an add opcode 19:14
diakopter: does ironperl run on mono? 19:15
diakopter I won't choose any components that don't work on mono... 19:16
and mono's goal is to run anything that it has the libraries for, and that the CLR can run, so they'd be very eager to fix any discrepancies 19:17
pugs_svn r25738 | moritz++ | [t/spec] unbreak a test for rakudo
moritz_ rakudo: say enum ('foo', 'bar') 19:18
p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub enum␤current instr.: '_block14' pc 78 (EVAL_18:43)␤»
moritz_ rakudo: say enum Foo ('foo', 'bar')
p6eval rakudo f6cdf9: OUTPUT«Statement not terminated properly at line 1, near "('foo', 'b"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» 19:19
diakopter does mildew need changes for the latest invocation semantics? 19:23
19:24 Ariens_Hyperion joined
cspencer moritz: after doing all of the git squash stuff after i've made my changes, do I use "git diff" to output the patch and then submit that via RT? 19:24
pmurias diakopter: one or two small changes 19:25
moritz_ cspencer: you commit it to your git copy, and then run 'git-format-patch HEAD^' to get a patch that contains meta data (like commit message)
cspencer gotcha, thanks :)
moritz_ s/git copy/local git repo/
19:35 Eevee joined 19:39 Util left 19:44 PZt left 19:52 brunoV joined 20:28 pidus joined 20:37 DemoFreak joined 20:40 Helios left 20:42 Helios joined
bacek good morning 20:55
rakudo: say "Привет" 20:57
p6eval rakudo f6cdf9: OUTPUT«Привет␤»
bacek rakudo: "Привет" ~~ /(и)/; say $/ 20:58
p6eval rakudo f6cdf9: OUTPUT«и␤»
21:11 Helios left, Helios joined 21:12 finchely joined 21:16 finchely left 21:30 Whiteknight joined 21:33 pmurias left 21:35 justatheory joined, kst joined
moritz_ can I link to a subdirectory of a project on github, without chosing a specific revision? 21:41
bacek github.com/bacek/rakudo/tree/master/src 21:43
WFM
moritz_: btw, can you merge #62178 and #63634. 250 open tickets much better than 251 :) 21:44
moritz_ bacek: done 21:52
bacek moritz_: thanks
cspencer: you forgot vim modeline in any-list.pm. And there is bare tabs instead of spaces in it. 21:55
still 251 tickets...
cspencer bacek: doh. sorry about that. i could have sworn tabs were getting converted to spaces, but i'll be sure to fix that. 21:56
bacek: would you like me to resubmit?
bacek cspencer: ask moritz_, I can't commit it anyway :)
moritz_ I think it's fine 21:57
cspencer moritz_: okay, i'll make sure subsequent ones are fixed
not being a vim user, i would easily forget such things as vim modelines :)
moritz_ runs 'make spectest'
cspencer: that's fine. Some vim user will add it 21:58
aka me
cspencer moritz_: thanks :)
moritz_ running spectest now 21:59
21:59 ffbb joined
bacek yay. Almost all any-list.pir can be rewrited into Perl6 21:59
cspencer bacek: i've been chipping away at that for the last several weeks but getting my head wrapped around some of git took me a while to get to sending in a patch 22:00
bacek git send-email --to=rakudobug@perl.org HEAD~1 22:02
22:05 duke_leto joined
pugs_svn r25739 | hinrik++ | [util/perl6.vim] remove 'is instead' 22:15
bacek rakudo: sub foo ($a,$b) { ... }; say foo.arity 22:17
p6eval rakudo f6cdf9: OUTPUT«too few arguments passed (0) - 2 params expected␤current instr.: 'foo' pc 104 (EVAL_18:50)␤»
moritz_ bacek: &foo.arity
bacek rakudo: sub foo ($a,$b) { ... }; say &foo.arity
p6eval rakudo f6cdf9: OUTPUT«2␤»
dalek kudo: 7559fc9 | (Cory Spencer)++ | (3 files):
Removed PIR of grep and replaced with P6 version.
kudo: ed4cd14 | (Moritz Lenz)++ | src/setting/Any-list.pm:
whitespaces and modeline in Any-list.pm
bacek moritz_: thanks!
moritz_ cspencer++ 22:18
rakudo: (1..16).grep({next if $_ % 5 == 0; $_ % 2 == 0 }).perl 22:19
p6eval rakudo f6cdf9: OUTPUT«Warning␤Warning␤Warning␤»
moritz_ rakudo: say (1..16).grep({next if $_ % 5 == 0; $_ % 2 == 0 }).perl 22:20
p6eval rakudo f6cdf9: OUTPUT«Warning␤Warning␤Warning␤[2, 4, 6, 8, 10, 12, 14, 16]␤»
22:20 justatheory left
moritz_ rakudo: say (1..16).grep({last if $_ % 5 == 0; $_ % 2 == 0 }).perl 22:20
p6eval rakudo f6cdf9: OUTPUT«Warning␤Warning␤Warning␤[2, 4, 6, 8, 10, 12, 14, 16]␤»
moritz_ in my local copy that prints [2, 4]
which proves the worth of doing stuff in Perl 6 22:21
and the first one omits 10
moritz_ should write tests for that
but not today
cspencer moritz: is "f6cdf9" the git version number? 22:25
moritz_ cspencer: it's the first piece of the sha1 hash, yes 22:26
cspencer were the warnings from the p6 grep version or the pir?
moritz_ from pir
cspencer ah ok, whew :) 22:27
moritz_ and you see that the next() inside the grep didn't work with the pir version
but it does with the Perl 6 version
pugs_svn r25740 | hinrik++ | [util/perl6.vim] add lift
cspencer ah ok :) 22:29
i didn't see that before
moritz_ rakudo: say (1..16).grep({last if $_ % 5 == 0; $_ % 2 == 0 }).perl 22:30
p6eval rakudo f6cdf9: OUTPUT«Warning␤Warning␤Warning␤[2, 4, 6, 8, 10, 12, 14, 16]␤»
moritz_ not yet updated :/
22:34 kjwcode joined
moritz_ rakudo: say (1..16).grep({last if $_ % 5 == 0; $_ % 2 == 0 }).perl 22:34
p6eval rakudo ed4cd1: OUTPUT«[2, 4]␤»
22:34 explorer joined
cspencer there we go :) 22:35
kjwcode rakudo: class Thingie { has $!foo is rw; method init { $!foo = "hi!"; } method greet { say $!foo; } } my $t = Thingie.new; $t.greet; 22:36
p6eval rakudo ed4cd1: OUTPUT«Statement not terminated properly at line 1, near "method gre"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
moritz_ kjwcode: you need ; after } unless there's a newline immediately after } 22:37
kjwcode Aha -- that makes sense. Using rakudo (svn as of earlier today) doesn't do the right thing in full form, though -- it says I'm using an unitialised value.
Well, I shouldn't say it doesn't do the right thing -- it doesn't work, but the bug could be in me. :) 22:38
moritz_ well, $!foo is uninitialized
you don't call .init
anyway, bed & 22:39
kjwcode Oh, that would certainly do it. I was using the spectest as a model, but now that you mention it I see $c.init().
Thank you, moritz_.
22:41 duke_leto left 22:46 kjwcode left 22:55 mberends left 22:58 Sartak joined 23:05 explorer left 23:07 ZuLuuuuuu joined
bacek rakudo: my $e = -> { $^a+$^b*$^c }; say $e.arity 23:19
p6eval rakudo ed4cd1: OUTPUT«Cannot use placeholder var in block with signature. at line 1, near "+$^b*$^c }"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
bacek rakudo: my $e = sub { $^a+$^b*$^c }; say $e.arity
p6eval rakudo ed4cd1: OUTPUT«3␤»
diakopter @tell TimToady should [R**] reverse the list and then foldl with $^b ** $^a ..... or reverse the list and then foldl with $^a ** $^b (aka foldr)? seems to me to be consistent with the other usage of Rop it should just swap the operands of each operation, since for non-commutative binary operations there's a difference. Then I think a new syntax should be created if you want to reverse the list before a reduction operation... 23:31
lambdabot Consider it noted.
TimToady I agree. 23:35
lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
diakopter maybe [R**R] :? 23:36
or R[R**] 23:37
dunno
or even [RR**]
since it's reversible..
RR would be redundant, so use it for something else :P
oh, well that wouldn't work for just reverse-then-reduce 23:38
TimToady I should say, I agree with the first part, not the last
diakopter oh
TimToady it doesn't really need special syntax beyond an lreduce function
if that
diakopter reduceR ?
TimToady whatever, [Rop] @list.reverse 23:39
23:40 sparc_ joined
diakopter rakudo(rakudobug;autospectest(TODO)): is(([R**] 2,3,4),262144) 23:42
sparc_ is downloading parrot enough to get a latest perl6? 23:53
23:57 Limbic_Region joined