Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-03-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 ZuLuuuuuu left #perl6
00:19 Whiteknight joined #perl6
00:21 wayland76 hi
00:22 diakopter hi wayland76
00:24 skids joined #perl6
00:44 Coleoid joined #perl6
01:00 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:01 Coleoid 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
01:01 diakopter to Configure.pl
01:01 diakopter it'll handle the parrot building for you
01:01 Coleoid Ah!  Trying...
01:01 diakopter and the pathing will work out correctly
01:01 diakopter (more importantly)
01:06 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
01:06 Coleoid It seems to feed sh a backslashed path to perl.exe.  Message is:
01:07 diakopter oh; where did you get rakudo
01:07 Coleoid Eek.
01:07 Coleoid Not my goal, there.
01:07 diakopter I mean, the latest rakudo shouldn't have that problem
01:07 bacek_ joined #perl6
01:08 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?
01:08 Coleoid /usr/bin/sh: C:strawberryperlbinperl.exe: command not found
01:09 diakopter oh, hrm, you really don't want to use strawberry perl inside cygwin
01:09 Whiteknight joined #perl6
01:09 diakopter strawberry is built for cmd.exe
01:09 diakopter use the perl from cygwin
01:09 Coleoid Well, I'm in a straight dos box when I kick off make, but Configure seems to have snorted out the cygwin sh...
01:10 diakopter in your Cygwin.bat, it's a good idea to reset your PATH to something minimal
01:10 diakopter oh.. is it in your PATH?
01:10 diakopter (odd...)
01:10 diakopter (it shouldn't be, really)
01:10 Coleoid :D
01:10 Coleoid I'll check.
01:11 diakopter is sh in your %PATH% in cmd.exe I mean... cygwin stuff shouldn't be leaking out to cmd.exe
01:11 diakopter pwhich sh
01:12 Coleoid /usr/bin/sh
01:12 diakopter then you're inside cygwin
01:12 diakopter or at least sh
01:12 Coleoid Well, I've got cygwin in my path, but I'm not in bash or sh.
01:13 diakopter echo %PATH%
01:13 Coleoid (kind of a bastardized setup...)
01:13 diakopter if you echo %PATH%... what happens
01:13 Coleoid PATH=C:\strawberry\c\bin;C:\strawberry\perl\bin;c:​\cygwin\bin;c:\mingw\bin;C:\WINDOWS\system32;C:\WI
01:13 Coleoid NDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\CollabNet Subversion;C:\WINDOWS\Microsoft.NET\Framew
01:13 Coleoid ork\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\bin;C:\Program Files\Microsoft Visual S
01:13 Coleoid tudio 8\Common7\IDE;C:\Program Files\jZip;C:\Program Files\TortoiseSVN\bin;C:\Program Files\ActiveSt
01:13 Coleoid ate Komodo Edit 5\;
01:13 diakopter heh, ok
01:13 Coleoid Er, I should probably find nopaste...
01:13 diakopter http://sial.org/pbot/perl6
01:14 pasteling "Coleoid" at 76.248.70.52 pasted "path" (1 line, 419B) at http://sial.org/pbot/35380
01:14 diakopter well, regardless of pwhich returning forward slashed paths, (???)   cygwin needs not to be in the PATH.
01:15 diakopter 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.
01:16 diakopter ahhh; that explains it :)  p(erl?)which comes with strawberry (and activeperl).
01:16 diakopter looks like you have VC
01:16 Coleoid Okay, so if I get it,
01:16 diakopter so you can try it in one or the other, but not some conflation
01:17 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
01:17 Coleoid Hm, okay.
01:18 diakopter (lately)
01:18 diakopter maybe someone else has
01:19 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
01:22 pasteling "diakopter" at 209.9.237.164 pasted "Cygwin.bat" (11 lines, 289B) at http://sial.org/pbot/35381
01:23 diakopter I reset the LIB and INCLUDE b/c in my outer/main environment they've got VC stuff.
01:26 diakopter and of course bash fixes up the PATH.
01:44 alester joined #perl6
01:58 dduncan left #perl6
02:03 cognominal joined #perl6
02:10 Coleoid joined #perl6
02:31 meteorjay joined #perl6
02:50 Coleoid diakopter, after switching to bash via your cygwin.bat, and pulling in cygwin's make and svn, I get further.
02:52 Coleoid The Parrot build fails in the ops2pm.pl step, complaining of unrecognized line.
02:53 diakopter nopaste more error?
02:53 pasteling "Coleoid" at 76.251.82.128 pasted "ops2pm failure" (9 lines, 663B) at http://sial.org/pbot/35383
02:54 diakopter see #parrot...
02:54 Coleoid Will do.
03:22 alester joined #perl6
03:29 awarefish joined #perl6
04:07 Sepheebear joined #perl6
04:09 wayland76 alester: I'm on IRC as well, just at the moment, and will check back later
04:10 alester hey wayland
04:10 wayland76 I've just sent you two e-mails.
04:10 wayland76 I'm planning to duck out and do some shopping and stuff, and be back in half an hour
04:12 alester I renamed your introduction to welcome
04:12 alester and that's gonna be the front
04:19 meppuru joined #perl6
04:29 s1n alester, i'd like to have contributor rights on the drupal page
04:29 alester what's your rakudo.org file?
04:29 alester s/file/name/
04:31 s1n s1n :)
04:31 s1n do you want help porting over the 101 stuff?
04:33 alester Sure.
04:36 alester ok, done
04:41 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
04:43 s1n let me know as soon as you know, i'd like to help with that effort
04:43 wayland76 alester: Love your work :)
04:43 alester s1n
04:43 alester s1n: JFDI
04:44 s1n huh?
04:44 alester Pick some perl101 stuff and make pages for it.
04:44 s1n you don't want it as perldoc in a repo?
04:44 alester I dunno.
04:44 alester it's all in http://code.google.com/p/perl101/
04:44 s1n is there any sort of perldoc2drupal plugin?
04:44 s1n yeah but that's for p5
04:45 alester right
04:45 alester But if you want to start yanking stuff from there, go to it.
04:46 japhb joined #perl6
04:46 s1n okay, i'm having a hard time understanding how to make a page in drupal...
04:46 alester "Create content"
04:46 alester it's in the sidebar
04:47 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
04:47 alester Just go make stuff
04:47 alester and we can massage it later
04:48 alester 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?
04:48 alester I don't know.  Just do it.
04:48 alester I'm pretty hands-off on this. :-)
04:48 alester Whatever you think is best.
04:49 alester My only suggestion is using markdown over HTML if possible.
04:49 s1n wasn't the p5 version your handywork?
04:49 alester yup
04:49 alester and it's pod
04:49 alester but I don't have a POD filter for Drupal. :-)
04:49 s1n and you don't care what happens with the p6 version?
04:50 alester I think it should be good and useful.
04:50 alester I don't have any ownership.
04:51 s1n okay, we'll see what the gods grant my tiny brain the power to create tomorrow :)
04:51 s1n thanks again
04:55 alester Thank YOU for doing it.  I'm glad we can all come together to work on this.
04:56 alester And it would be VERY helpful to get the perl101 examples into P6
05:10 alester git.rakudo.org is set up, but waiting for DNS propagation
05:15 wayland76 Does anyone know what I should read to really get the hang of adverbs in P6?
05:17 diakopter for hyperoperators, does [R*] (e.g. *) do a right fold?
05:20 wayland76 diakopter: You mean meta-operators?
05:21 wayland76 I think [R*] would do exactly the same thing as [*]
05:21 diakopter sorry, I meant reduction
05:22 diakopter sure, for an operation that's normally commutative like *
05:23 wayland76 Were you thinking of something more like [R/] ?
05:23 wayland76 Where / isn't commutative?
05:25 diakopter oh, it's already mentioned
05:25 wayland76 $a = [/] 8, 4, 2; # $a = 1
05:25 wayland76 diakopter: Oh, good :)
05:25 diakopter sort &[R<=>], @list    # reversed, numerically
05:28 wayland76 Oh, I see.  That &[] notation is pretty confusing :)
05:29 diakopter std: [R/] 3,5,7
05:29 p6eval std 25731: OUTPUT«ok 00:02 36m␤»
05:29 diakopter ok, but does that give (3 / (5 / 7)) or (7 / (5 / 3) ?
05:30 wayland76 rakudo: [R/] 3,5,7
05:30 p6eval rakudo f6cdf9: RESULT«4.2»
05:30 diakopter (does it reverse the order of the operands to each operation, or does it reverse the list?
05:30 diakopter heh
05:30 wayland76 rakudo:  (3 / (5 / 7))
05:30 p6eval rakudo f6cdf9: RESULT«4.2»
05:31 wayland76 rakudo: (7 / (5 / 3)
05:31 frooh diakopter: I think that's the same thing...
05:31 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)␤»
05:31 wayland76 rakudo: (7 / (5 / 3))
05:31 p6eval rakudo f6cdf9: RESULT«4.2»
05:31 diakopter oh, so it is.
05:31 frooh rakudo: [~] <f r e w>;
05:31 frooh rakudo: [R~] <f r e w>;
05:31 p6eval rakudo f6cdf9: RESULT«"frew"»
05:31 p6eval rakudo f6cdf9: RESULT«"werf"»
05:32 wayland76 werf :)
05:32 frooh :-P
05:32 diakopter rakudo: [R^] 3,5,7 eqv [^] 3,5,7
05:33 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
05:33 p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_15:42)␤»
05:33 frooh it's not implemented yet
05:33 diakopter rakudo: ([R**] 3,5,7) eqv ([**] 7,5,3)
05:33 p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 145 (EVAL_15:54)␤»
05:34 frooh rakudo: ([R**] 3,5,7) == ([**] 7,5,3)
05:34 p6eval rakudo f6cdf9: RESULT«Bool::False»
05:34 frooh rakudo: (([R**] 3,5,7),([**] 7,5,3))
05:34 p6eval rakudo f6cdf9: RESULT«[4.33765494809799e+105, 4747561509943]»
05:34 frooh interesting
05:35 diakopter rakudo: (([**] 3,5,7),([R**] 7,5,3))
05:35 p6eval rakudo f6cdf9: RESULT«[5.00315450989997e+16, Inf]»
05:35 frooh I think we are seeing a different issue
05:35 diakopter >googol
05:35 frooh rakudo: (([R**] 2,3,4),([**] 4,3,2))
05:35 p6eval rakudo f6cdf9: RESULT«[262144, 4096]»
05:35 frooh well
05:35 frooh still wrong?
05:36 diakopter rakudo: (([R%] 2,3,4),([%] 4,3,2))
05:36 p6eval rakudo f6cdf9: RESULT«[0, 1]»
05:37 diakopter rakudo: (([R**] 2,3,4),([**] 4,2,3))
05:37 p6eval rakudo f6cdf9: RESULT«[262144, 4096]»
05:38 diakopter ok, yeah, R reverses the list....
05:38 wayland76 rakudo: [R~] <w a y l a n d>;
05:38 p6eval rakudo f6cdf9: RESULT«"dnalyaw"»
05:38 frooh rakudo: (1,2,3).reduce({ $^a + $^b })
05:38 p6eval rakudo f6cdf9: RESULT«6»
05:38 diakopter but
05:38 frooh rakudo: (1,2,3).reduce({ "($^a + $^b)" })
05:39 p6eval rakudo f6cdf9: RESULT«"((1 + 2) + 3)"»
05:39 frooh hoho!
05:39 frooh that is cool
05:39 diakopter nice
05:39 frooh rakudo: (1,2,3).reduce({ $^b; $^a; "($^a + $^b)" })
05:39 p6eval rakudo f6cdf9: RESULT«"((1 + 2) + 3)"»
05:39 frooh rakudo: (1,2,3).reduce({"($^b + $^a)" })
05:39 p6eval rakudo f6cdf9: RESULT«"(3 + (2 + 1))"»
05:39 justatheory joined #perl6
05:40 diakopter ok, now what if you want to swap the order of the operands for each operation
05:41 diakopter (using the reduction brackets)
05:41 frooh well
05:41 justatheory_ joined #perl6
05:41 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:␤------> [32mR[R**[31m] 2,3,4[0m␤    expecting any of:␤     prefix or noun␤   whitespace␤FAILED 00:02 34m␤»
05:41 frooh I can't really do that with .reduce can I?
05:41 diakopter there you reverse them manually :P
05:42 diakopter rakudo: (1,2,3).reduce({ "($^b + $^a)" })
05:42 p6eval rakudo f6cdf9: RESULT«"(3 + (2 + 1))"»
05:42 diakopter oh wait
05:42 diakopter no, that's correct
05:42 diakopter that's what R should do inside [] to be consistent with its other usage
05:43 frooh yeah
05:43 WootKit joined #Perl6
05:43 diakopter what should the syntax be to rfold then :)
05:43 diakopter R after the op? :)
05:44 frooh what is Rfold?
05:44 frooh I've never heard of that
05:44 diakopter what it's doing now... http://xrl.us/beinxu
05:45 justatheory joined #perl6
05:46 diakopter foldr, I meant (sleepy)
05:47 frooh I'll read that later
05:47 frooh thats a lot to read at 11:45 on a friday
05:47 diakopter heh
05:47 frooh :-)
05:48 diakopter oooo gotta hit up Wendy's b4 it closes... oh, you're in CST like I
05:48 frooh haha, yep
05:48 frooh I thoguht it closes at 2?
05:48 diakopter not in parts of town like *this*
05:48 frooh hahaha, nice?
05:48 frooh (doubtful)
05:49 diakopter kidding; bbiab
05:49 frooh rakudo: (1,2,3).reduce({ $^a + $^b })
05:49 p6eval rakudo f6cdf9: RESULT«6»
05:50 frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($bloack)
05:50 wayland76 rakudo: reduce(qw(w e i g h t))
05:50 frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block)
05:50 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)␤»
05:50 p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 112 (EVAL_16:51)␤»
05:50 p6eval rakudo f6cdf9: RESULT«6»
05:50 frooh sorry
05:50 frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block.perl)
05:50 p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 130 (src/classes/ClassHOW.pir:93)␤»
05:50 diakopter if only any binary function could be put in the reduce brackets...
05:50 frooh diakopter: I asked TimToady about that
05:50 wayland76 You're sorry?  What about me?  I confused your test wit hmy idiocy :)
05:51 WootKit joined #perl6
05:51 frooh diakopter: he said that if you *really* want to do that you should make the funciton an op
05:51 frooh and otherwise we use functions for functions and ops for ops
05:52 frooh you could do this :-)
05:52 frooh sub Rev ( $a, $b) { $b, $a}
05:52 frooh and then foo(Rev $bar, $baz))
05:53 sri_kraih joined #perl6
05:53 diakopter well, I'm assuming [R**] will change to mean binaryswap, not reversefirst
05:53 frooh rakudo: (1,2,3).reduce({ $^a + $^b })
05:53 frooh diakopter: agreed
05:53 p6eval rakudo f6cdf9: RESULT«6»
05:53 frooh if you wanted the latter you could do something like
05:54 frooh [op] @list.reverse
05:54 frooh right?
05:55 frooh rakudo: (1,2,3).reduce({"$^a + $^b"})
05:55 diakopter rakudo: [**] (2,3,4).reverse
05:55 diakopter rakudo: [**] (2,3,4).reverse()
05:55 p6eval rakudo f6cdf9: RESULT«"1 + 2 + 3"»
05:55 frooh ...
05:55 p6eval rakudo f6cdf9: RESULT«4096»
05:55 p6eval rakudo f6cdf9: RESULT«4096»
05:55 frooh rakudo: (1,2,3).reduce({"($^a + $^b)"})
05:55 diakopter rakudo: [R**] (2,3,4)
05:55 p6eval rakudo f6cdf9: RESULT«"((1 + 2) + 3)"»
05:55 p6eval rakudo f6cdf9: RESULT«262144»
05:56 diakopter ok, huh
05:57 frooh rakudo: (2,3,4).reduce({$^a ** $^b })
05:57 p6eval rakudo f6cdf9: RESULT«4096»
05:57 frooh rakudo: (2,3,4).reduce({"($^a ** $^b)"})
05:57 p6eval rakudo f6cdf9: RESULT«"((2 ** 3) ** 4)"»
05:57 frooh rakudo: (2,3,4).reduce({$^b ** $^a })
05:57 p6eval rakudo f6cdf9: RESULT«262144»
05:57 frooh rakudo: (2,3,4).reduce({"($^b ** $^a)"})
05:57 p6eval rakudo f6cdf9: RESULT«"(4 ** (3 ** 2))"»
05:57 frooh that really is not what I expect from reduce
05:58 diakopter oh!  it did both
05:58 frooh ?
05:59 frooh oh
05:59 frooh reverses the list AND reverses the op
05:59 frooh maybe the former is a product of the latter...
05:59 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)␤»
05:59 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: RESULT«["(4 ** (3 ** 2))", "((2 ** 3) ** 4)", "(2 ** (3 ** 4))", "((4 ** 3) ** 2)"]»
06:00 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)"}))
06:01 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?
06:01 wayland76 Do we have to monkey-patch the Str object?
06:03 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)))"]»
06:04 frooh what is an adverb on a quote?
06:05 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))"]»
06:05 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«[0.166666666666667, 1.5, 1.5, 1.5]»
06:07 frooh you know what would be awesome?
06:07 frooh a ~ metaop
06:08 frooh that would basically do "($^a $op $^b)"
06:09 justatheory_ joined #perl6
06:09 diakopter what would that look like
06:10 frooh maybe
06:10 frooh [~+] (1,2,3)
06:10 frooh or [S+] (1,2,3)
06:11 frooh diakopter: your rss feed has some doubles it looks like
06:11 frooh er
06:11 frooh Atom feed actually
06:11 diakopter which feed is my feed
06:12 frooh I figured that link that you sent earlier was yours
06:12 frooh bartdesmet.net/blogs
06:12 diakopter ha; no
06:12 diakopter that guy works for msft
06:12 frooh ah
06:12 frooh ok
06:13 frooh I don't like .net
06:13 frooh It
06:13 frooh 's too...statically typed :-)
06:14 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
06:14 frooh area you talking about .net?
06:14 frooh or how it should be?
06:14 diakopter but when we're all supposed to be using SSA and/or immutable types AMAP.... :)
06:14 diakopter .net
06:15 frooh SSA?  AMAP?
06:15 frooh I don't know these acronyms :-)
06:15 diakopter as much as possible?
06:15 frooh ah
06:15 diakopter static single assignment
06:15 frooh I can agree with that
06:16 frooh but .net and java just rub me the wrong way
06:16 frooh I've been using perl too long
06:27 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:␤------> [32m[++[31m] 1[0m␤    expecting any of:␤      noun␤   prefix␤   prefix or meta-prefix␤      prefix_postfix_meta_operator␤     whitespace␤FAILED
06:27 p6eval ..00:02 35m␤»
06:27 diakopter well, that parse fail msg is imprecise
06:27 diakopter sorta
06:28 diakopter catch non-infix operators
06:33 frooh what exactly does X do?
06:33 frooh rakudo: 1,2,3,4 X+ 3,4,5,6
06:34 p6eval rakudo f6cdf9: RESULT«[4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10]»
06:34 frooh ah
06:34 frooh interesing
06:34 frooh <f r e w> X~ <a b c d>
06:34 frooh rakudo: <f r e w> X~ <a b c d>
06:34 p6eval rakudo f6cdf9: RESULT«["fa", "fb", "fc", "fd", "ra", "rb", "rc", "rd", "ea", "eb", "ec", "ed", "wa", "wb", "wc", "wd"]»
06:34 frooh nifty
06:35 frooh rakudo: <f r e w> X <a b c d>
06:35 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>
06:35 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)␤»
06:35 frooh so we probably COULD make ~ a metaop
06:35 diakopter perlify?
06:35 diakopter .perl
06:35 frooh I tried it
06:36 frooh 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)␤»
06:36 frooh rakudo: my $block = {$^a + $^b}; (1,2,3).reduce($block).perl
06:36 p6eval rakudo f6cdf9: RESULT«"6"»
06:36 frooh furthermore
06:36 frooh rakudo: my $block = {$^a + $^b}; $block.perl
06:37 p6eval rakudo f6cdf9: RESULT«"\{ ... }"»
06:38 diakopter you'd want to wrap the whole thing in a sub
06:39 * frooh looks into writing metaoperators...
06:39 * diakopter is late to Wendy's
06:39 frooh haha
06:39 frooh good luck
06:45 frooh rakudo: (2,3,4).reduce({"($^b ** $^a)"})
06:45 p6eval rakudo f6cdf9: RESULT«"(4 ** (3 ** 2))"»
06:45 frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^b ** $^a)"})
06:45 p6eval rakudo f6cdf9: RESULT«"(8 ** (6 ** 4))"»
06:46 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)␤»
06:46 frooh rakudo: (2,3,4).map({$_ * 2}).tap(say $_).reduce({"($^frew ** $^froo)"})
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)␤»
06:46 frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^frew ** $^froo)"})
06:46 p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
06:46 frooh rakudo: (2,3,4).map({$_ * 2}).reduce({$^froo;"($^frew ** $^froo)"})
06:46 p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
06:47 frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^frew ** $^froo)"})
06:47 p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
06:47 frooh rakudo: (2,3,4).map({$_ * 2}).reduce({"($^froo ** $^frew)"})
06:47 p6eval rakudo f6cdf9: RESULT«"(8 ** (6 ** 4))"»
06:47 * frooh guesses that it's alphabetical
06:47 frooh rakudo: (2,3,4).map({$_ * 2}).reduce(sub ($froo, $frew) {"($froo ** $frew)"})
06:47 p6eval rakudo f6cdf9: RESULT«"((4 ** 6) ** 8)"»
06:48 frooh PERFECT.
07:05 frooh sub rev ($a,$b) {$b, $a}; rakudo: (2,3,4).map({$_ * 2}).reduce(sub ($froo, $frew) {"($froo ** $frew)"})
07:06 frooh 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)"»
07:06 frooh rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(rev sub ($froo, $frew) {"($froo ** $frew)"})
07:06 p6eval rakudo f6cdf9: OUTPUT«too few arguments passed (1) - 2 params expected␤current instr.: 'rev' pc 170 (EVAL_17:67)␤»
07:06 frooh rakudo: sub rev ($a,$b) {$b, $a}; (2,3,4).map({$_ * 2}).reduce(sub (rev $froo, $frew) {"($froo ** $frew)"})
07:06 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 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)␤»
07:07 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)␤»
07:13 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)␤»
07:13 frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}(2,3,4).map({$_ * 2}).reduce(rev foo})
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)␤»
07:13 frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}; (2,3,4).map({$_ * 2}).reduce(rev foo})
07:13 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)␤»
07:14 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)␤»
07:14 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«too few arguments passed (0) - 2 params expected␤current instr.: 'rev' pc 175 (EVAL_17:66)␤»
07:14 frooh rakudo: sub rev ($a,$b) {$b, $a}; sub foo ($a, $b){"( $a + $b )"}; (2,3,4).map({$_ * 2}).reduce({foo(rev($a, $b))})
07:14 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 #perl6
07:19 meppuru good night
07:21 ejs joined #perl6
07:21 bacek joined #perl6
07:29 bacek hi there
07:29 bacek and good evening
07:33 mberends joined #perl6
07:35 frooh Where can I find information on looking at the AST?
07:36 Sepheebear joined #perl6
07:37 Tene joined #perl6
07:38 wayland76 frooh: I don't know, but if you get STD.pm, you can look at things that way
07:39 wayland76 Or are you asking about quasiquoting or macros or something?
07:39 wayland76 bacek: hi :)
07:39 diakopter frooh: oh, the AST that STD/viv emits?
07:39 bacek hi wayland76
07:41 mberends left #perl6
07:41 frooh I don't really know
07:42 frooh masak mentioned it in a post today
07:42 frooh rakudo: { 4 + 5}.viv
07:42 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)␤»
07:43 wayland76 std: { 4 + 5}.viv
07:43 p6eval std 25731: OUTPUT«ok 00:02 34m␤»
07:43 wayland76 Well, my guess is that he's using STD for that :)
07:44 frooh hm
07:45 frooh rakudo can't use STD right?
07:47 wayland76 That's right
07:48 wayland76 They will eventually
07:48 wayland76 but not yet
07:48 frooh right
07:48 frooh k, just making sure
07:51 frooh a package in perl6 is called a 'module' in code right?
07:51 * frooh looks through november for hints
07:51 wayland76 What's a package?
07:52 wayland76 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
07:52 wayland76 If you mean what other languages call a class, then you want a class or a role
07:52 frooh I know it's a module
07:52 frooh well, I want something more generic
07:52 frooh that is
07:52 frooh a class that will never be instantiated
07:52 wayland76 I think package still works, but module also might work
07:52 frooh hm
07:52 frooh k
07:53 wayland76 Look in S02 under the heading "Mutable types"
07:54 wayland76 Anyway, my xorg needs some more debugging, so I'm going to have to disappear for a while.  But others will be around soon :)
08:03 frooh rakudo: rand(100).int
08:04 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
08:04 p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub random␤current instr.: '_block14' pc 60 (EVAL_16:40)␤»
08:04 frooh rakudo: 100.random
08:04 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)␤»
08:04 frooh rakudo: random
08:04 p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub random␤current instr.: '_block14' pc 53 (EVAL_16:38)␤»
08:04 frooh rakudo: rand
08:04 p6eval rakudo f6cdf9: RESULT«0.73274053174919»
08:04 frooh rakudo: (rand*1000).int
08:04 p6eval rakudo f6cdf9: RESULT«182»
08:04 bacek rakudo: (1..1000).pick
08:05 p6eval rakudo f6cdf9: RESULT«[116]»
08:05 bacek rakudo: (1..1000).pick
08:05 p6eval rakudo f6cdf9: RESULT«[790]»
08:05 frooh that's right
08:05 frooh I'd forgotten about that
08:05 frooh (1..1000).pick[0]
08:05 frooh rakudo: (1..1000).pick[0]
08:05 p6eval rakudo f6cdf9: RESULT«302»
08:05 bacek rakudo: (1..10).pick(*)
08:06 p6eval rakudo f6cdf9: RESULT«[7, 8, 1, 3, 10, 4, 6, 5, 9, 2]»
08:09 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 frooh wait!
08:09 frooh I figured it out
08:09 frooh I put :: at the front
08:09 bacek indeed :)
08:09 frooh since I want the one in the Global namespacew
08:18 frooh is there a reason that when I do open(".tmp", :w) the file gets named IO<0x...> ?
08:23 frooh nm, I was being silly
08:30 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)␤»
08:31 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)␤»
08:31 frooh rakudo: "fREW".subst('R', 'T')
08:31 p6eval rakudo f6cdf9: RESULT«"fTEW"»
08:31 frooh rakudo: "fREWR".subst('R', 'T')
08:31 p6eval rakudo f6cdf9: RESULT«"fTEWR"»
08:31 frooh rakudo: "fREWR".subst('R', 'T', :g)
08:31 p6eval rakudo f6cdf9: RESULT«"fTEWT"»
08:31 frooh rakudo: "fREWR".subst('R', 'RR', :g)
08:31 p6eval rakudo f6cdf9: RESULT«"fRREWRR"»
08:44 wayland76 joined #perl6
08:44 bacek can someone merge #63634 and #62178?
08:45 wayland76 rakudo: say "#63634" ~ " #62178"
08:45 p6eval rakudo f6cdf9: OUTPUT«#63634 #62178␤»
08:45 wayland76 There we go :)
08:45 wayland76 Oh wait... :)
08:45 frooh :-)
08:46 bacek wayland76: merge! Not concatenate!
08:46 wayland76 rakudo: merge "#63634", " #62178"
08:46 p6eval rakudo f6cdf9: OUTPUT«Could not find non-existent sub merge␤current instr.: '_block14' pc 67 (EVAL_16:42)␤»
08:46 wayland76 Well, that's the answer, I guess :)
08:47 frooh rakudo: ("#63634".split('') Z "#62178".split('')).join
08:47 p6eval rakudo f6cdf9: RESULT«"# # 6 6 3 2 6 1 3 7 4 8"»
08:47 frooh merged?
08:47 bacek rakudo: sub merge($a,$b) { $a=>1,$b=>1 }; say merge('#63634', '#62178')
08:47 p6eval rakudo f6cdf9: OUTPUT«#63634     1#62178 1␤»
08:47 bacek rakudo: sub merge($a,$b) { $a=>1,$b=>1 }; say merge('#63634', '#62178').perl
08:47 p6eval rakudo f6cdf9: OUTPUT«["#63634" => 1, "#62178" => 1]␤»
08:48 bacek rakudo: say  ('#63634' | '#62178').perl
08:48 p6eval rakudo f6cdf9: OUTPUT«any("#63634", "#62178")␤»
08:48 bacek merged!
08:48 frooh good job bacek++ !
08:49 DemoFreak joined #perl6
08:51 bacek wayland76: how things in Melbourne after earthquake?
08:51 wayland76 What earthquake?
08:51 wayland76 :)
08:51 wayland76 Admittedly, I'm about 50km from Melbourne
08:52 wayland76 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 :)
08:53 wayland76 Ah, I see the news says "Victoria's East"
08:53 wayland76 Melbourne's suburbs stretch a long way east of Melbourne itself; presumably that's where it was felt
08:53 wayland76 Out where the bushfires are
08:54 wayland76 (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...
08:54 * frooh is interested
08:54 * bacek start thinking 'bout BBQ
08:55 bacek 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?
08:55 bacek No BBQ for me today...
08:55 bacek wayland76: no.
08:55 wayland76 bacek: Don't you have a 24x7 store? :)
08:56 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
08:56 wayland76 bacek: Well, ok, but if I'd said an 18x6, would you have known what I meant?
08:57 bacek wayland76: size of screw???
08:57 bacek :)
08:58 * bacek found Danny Nalliah quote. ROTFL!
09:03 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)␤»
09:03 frooh rakudo: "s t a t i o n".comb
09:03 p6eval rakudo f6cdf9: RESULT«["s", "t", "a", "t", "i", "o", "n"]»
09:03 frooh rakudo: "s t a t i o n".comb('t')
09:03 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 frooh rakudo: "s t a t i o n".comb(/t/)
09:03 p6eval rakudo f6cdf9: RESULT«["t", "t"]»
09:03 frooh rakudo: "s t a t i o n".split(/t/)
09:03 p6eval rakudo f6cdf9: RESULT«["s ", " a ", " i o n"]»
09:03 frooh rakudo: "s t a t i o n".split('t')
09:03 p6eval rakudo f6cdf9: RESULT«["s ", " a ", " i o n"]»
09:05 M_o_C joined #perl6
09:08 frooh is reading from Standard In different in perl6?
09:08 wayland76 Yes
09:08 wayland76 How did you expect to do it?
09:08 frooh that explains why it wasn't working
09:08 frooh the same as perl5
09:08 wayland76 I can think of multiple ways to do it in P5
09:09 frooh my $foo = <STDIN>;
09:09 wayland76 can you give the line that does the actual reading?
09:09 wayland76 Ok, try <$*IN> instead
09:09 wayland76 my $foo = <$*IN>;
09:09 frooh same thing
09:09 frooh just ignores it
09:09 bacek rakudo: for =<$*IN> -> $line { say $line }
09:09 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)␤»
09:10 bacek rakudo: for =$*IN -> $line { say $line }
09:10 frooh man....now it's waiting
09:10 wayland76 rakudo: while($foo = <$*IN>) { say $foo}
09:10 * bacek hides
09:10 frooh rakudo: GAME OVER
09:10 frooh :-P
09:11 * wayland76 summon moritz_ :)
09:12 frooh haha
09:12 frooh this is an awesome error:
09:12 frooh Method 'postcircumfix:{ }' not found for invocant of class 'Failure'
09:12 frooh I think rakudo just said: fREW, you failed.
09:12 wayland76 rakudo: say "hi"
09:13 wayland76 I think we infinite looped it :)
09:13 frooh it happens
09:13 frooh well, the for thing isn't working over here
09:14 frooh but I haven't recompiled in a couple days
09:14 frooh so I'll try that
09:14 wayland76 The prefix:<=> doesn't work yet, I think
09:14 wayland76 (the iterator)
09:14 frooh it works for files
09:14 wayland76 Does it?
09:14 frooh yeo
09:14 frooh er
09:14 wayland76 Well, I'm wrong then :)
09:14 frooh yep
09:14 frooh I'm using it
09:15 wayland76 Anyway, the new STD handles are $*IN $*OUT and $*ERR
09:15 wayland76 IIRC
09:15 frooh ok, well, it certainly seemed to work on the bot
09:15 wayland76 See S16 :)
09:15 * frooh looks
09:17 frooh too bad there aren't many examples
09:17 frooh maybe the tests will say something
09:17 frooh bleg
09:17 frooh getc
09:18 wayland76 Well, that gets a Unicode character though :)
09:18 frooh yeah
09:18 frooh but imagine using it to read a whole file
09:18 frooh http://svn.pugscode.org/pugs​/t/spec/S16-io/basic-open.t
09:18 frooh that looks helpful
09:18 frooh er
09:18 frooh except it's for opening a file...
09:18 [particle] joined #perl6
09:19 frooh but it should theoretically work the same
09:19 frooh :-(
09:19 wayland76 Should, agreed :)
09:19 frooh no love
09:19 frooh it surprises me that it's easier to open a file than read from stdin
09:19 frooh but so it goes
09:20 wayland76 Anyway, I have to go away for an hour or so
09:20 frooh ah
09:20 frooh I'm silly
09:20 wayland76 ?
09:21 frooh I was doing =$<$*IN>
09:21 frooh you have to do
09:21 frooh =$*IN
09:21 wayland76 Ha! :)
09:21 frooh anyway
09:21 frooh probably talk to you tomorrow
09:21 frooh thanks for the help etc
09:21 wayland76 Oh, yeah, angle bracked notation died; sorry, I forgot :)
09:21 wayland76 no worries.  See you then :)
09:29 barney joined #perl6
09:31 WootKit joined #perl6
09:38 frooh rakudo: say "hello?"
09:38 frooh :-(
09:42 Kimtaro joined #perl6
09:56 M_o_C joined #perl6
10:24 pmurias joined #perl6
10:39 wayland76 someone has to ressurect the bot to make it happy
10:40 wayland76 s/ressurect/resurrect/
10:49 pmurias mildew: say "hi"
10:59 moritz_ wayland76: I've delete the spam
10:59 moritz_ thanks for notifying
11:28 moritz_ rakudo: say "alive"
11:29 p6eval joined #perl6
11:29 moritz_ I don't know what's wrong, but I restarted the bot
11:29 moritz_ perl6: say "alive"
11:29 p6eval elf 25731, pugs, rakudo f6cdf9: OUTPUT«alive␤»
11:29 moritz_ much better
11:44 WootKit joined #Perl6
11:52 Ariens_Hyperion joined #perl6
11:53 mberends joined #perl6
12:02 baest joined #perl6
12:12 moritz_ rakudo: 3 eqv 3
12:12 p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_15:42)␤»
12:12 moritz_ rakudo: say 3 eqv 3
12:12 p6eval rakudo f6cdf9: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 73 (EVAL_16:42)␤»
12:13 moritz_ rakudo: say (1 > 2).perl
12:13 p6eval rakudo f6cdf9: OUTPUT«Bool::False␤»
12:14 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)␤»
12:15 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 #perl6
12:26 Whiteknight joined #perl6
12:46 fridim_ joined #perl6
12:58 pugs_svn r25732 | moritz++ | [t] and [t/spec]: small improvements, mostly found by STD.pm
12:58 * jnthn waves from the Ukrainian Perl Workshop
12:59 * moritz_ waves back
12:59 jnthn What's news?
12:59 moritz_ TimToady changed half of the specs ;-)
12:59 * jnthn has had dubious wifi and a power fail helping him stay offline...
12:59 jnthn Meh, business as usual then. ;-)
12:59 moritz_ a bit more than usual
13:00 moritz_ result objects in match objects are now accessed differently
13:00 moritz_ with $<?> iirc
13:00 moritz_ and the invocant in captures changed a bit
13:00 jnthn Ah
13:00 jnthn Ah, OK.
13:00 moritz_ and lists in item context promote to Capture now
13:00 moritz_ and are thus immutable
13:00 jnthn my $x = 1,2,3; # now $x is immutable?
13:01 moritz_ yes.
13:01 jnthn ok
13:01 jnthn None of that sounds *too* horrible...yet
13:01 moritz_ ruoso thinks otherwise (because smop did a lot of work on captures)
13:02 moritz_ oh, and it's now 'method !private' to declare private methods
13:02 moritz_ not 'my method ...'
13:02 jnthn Oh, OK
13:02 jnthn I think both were spec before anyway?
13:02 jnthn So it's just *removing* code for that one.
13:02 moritz_ only for roles
13:02 jnthn ok
13:02 moritz_ but it parses OK
13:02 jnthn what does my method mean now?
13:03 jnthn That it's not also in the package?
13:03 moritz_ visibility limited to lexical scope
13:03 jnthn ok, makes sense.
13:03 moritz_ the default can now also be spelled as 'has method ...'
13:03 jnthn :-S
13:04 jnthn Wait, so class foo { my method foo() { } }; foo.new.foo # fails?
13:04 moritz_ yes
13:04 jnthn hmm
13:04 jnthn ok
13:04 moritz_ it did before as well
13:05 jnthn True, but it worked as foo.new!foo
13:05 jnthn IIRC
13:05 moritz_ but ... class foo is also { method bar { self!foo} } fails
13:05 jnthn OK
13:05 jnthn Could be fun to get right with eval
13:05 moritz_ oh wait, that's 'augment class foo { ... }' now
13:06 jnthn ...
13:06 jnthn OK, I need to re-learn Perl 6.
13:06 moritz_ I told you there were quite some changes
13:06 jnthn I'm happy pretty much none of these changes affect things I've been explaining to people at conferences this year though..afaict. ;-)
13:07 moritz_ but they affect stuff that I write in articles
13:07 jnthn aye
13:07 jnthn :-|
13:07 moritz_ anyway, I hope I can get you and pmichaud to implement most changes that matter for me ;-)
13:08 jnthn you likely can
13:08 moritz_ YaY ;-)
13:08 jnthn we'll probably allow a little for the dust to settle
13:08 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)
13:09 jnthn I wouldn't expect so
13:09 jnthn But I didn't read the updated spec yet.
13:09 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.
13:09 wolverian (like haskell's type classes)
13:11 * moritz_ is very much attracted by some pancakes... must resist... can't... ;-)
13:11 jnthn just eat it. ;-)
13:12 jnthn we had pizza delivered for workshop lunch :-)
13:13 jnthn 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:15 wolverian that wouldn't affect values of that class I already have, would it?
13:15 jnthn no
13:16 jnthn since you're actually declaring a new class
13:16 wolverian that's not good enough for me :)
13:17 jnthn well, ain't you hard to please :-P
13:17 moritz_ just implement 'use Haskell' in lexical scopes ;-)
13:17 wolverian I just want safe monkeypatching...
13:17 jnthn AFAICT you want to lexically monky-patch?
13:17 jnthn A little like .Net extention methods?
13:17 wolverian right, except nominally with roles, so I don't have to do it method by method.
13:17 jnthn *monkey
13:18 jnthn hmm
13:19 jnthn well, I guess you could try monkey-patching the dispatcher ;-)
13:19 jnthn as part of module Haskell ;-)
13:21 jnthn It'd probably not be too hard...you could then delegate back to the usual dispatcher.
13:21 jnthn Heh
13:21 jnthn .wrap ClassHOW.dispatch
13:22 jnthn That's sick. :-D
13:33 jnthn ok I haz a talk now...maybe back later...
13:44 abra joined #perl6
14:15 parduncia joined #perl6
14:35 brunoV joined #perl6
14:37 meppl joined #perl6
14:56 braceta joined #perl6
15:17 orafu joined #perl6
15:19 alester joined #perl6
15:23 Ariens_Hyperion joined #perl6
15:37 Chillance joined #perl6
15:38 Chillance joined #perl6
15:51 Tene_ joined #perl6
15:58 TimToady joined #perl6
15:58 Ariens_Hyperion joined #perl6
15:58 alester joined #perl6
15:58 braceta joined #perl6
15:58 meppl joined #perl6
15:58 fridim_ joined #perl6
15:58 Whiteknight joined #perl6
15:58 mberends joined #perl6
15:58 p6eval joined #perl6
15:58 pmurias joined #perl6
15:58 Kimtaro joined #perl6
15:58 bacek joined #perl6
15:58 cognominal joined #perl6
15:58 krunen joined #perl6
15:58 armagad joined #perl6
15:58 Maghnus joined #perl6
15:58 Patterner joined #perl6
15:58 jan_ joined #perl6
15:58 LCamel joined #perl6
15:58 tcliou|Away joined #perl6
15:58 jedai joined #perl6
15:58 bigpresh joined #perl6
15:58 SamB joined #perl6
15:58 ilogger2 joined #perl6
15:58 oskie joined #perl6
15:58 rhr joined #perl6
15:58 NoirSoldats joined #perl6
15:58 s1n joined #perl6
15:58 frooh joined #perl6
15:58 ashizawa joined #perl6
15:58 felipe joined #perl6
15:58 c9s joined #perl6
15:58 r0bby joined #perl6
15:58 xuser joined #perl6
15:58 rafl joined #perl6
15:58 cookys joined #perl6
15:58 agentzh joined #perl6
15:58 Khisanth joined #perl6
15:58 miloux joined #perl6
15:58 pmichaud joined #perl6
15:58 estrabd joined #perl6
15:58 Exodist joined #perl6
15:58 dalek joined #perl6
15:58 charsbar joined #perl6
15:58 jrockway joined #perl6
15:58 perlbot joined #perl6
15:58 ascent_ joined #perl6
15:58 BinGOs joined #perl6
15:58 edenc joined #perl6
15:58 Southen_ joined #perl6
15:58 yahooooo joined #perl6
15:58 Caelum joined #perl6
15:58 namenlos joined #perl6
15:58 Porsbo joined #perl6
15:58 carpftb_ joined #perl6
15:58 drbean joined #perl6
15:58 Matt-W joined #perl6
15:58 integral joined #perl6
15:58 clkao joined #perl6
15:58 c1sung joined #perl6
15:58 hcchien joined #perl6
15:58 sunnavy joined #perl6
15:58 jnthn joined #perl6
15:58 Gothmog_ joined #perl6
16:02 NoirSoldats joined #perl6
16:05 wolverian joined #perl6
16:08 NoirSoldats joined #perl6
16:25 __felix__ joined #perl6
16:27 __felix__ joined #perl6
16:28 __felix__ left #perl6
16:29 hexmode joined #perl6
16:34 mikehh joined #perl6
16:40 zulon joined #perl6
16:41 zulon hi!
16:41 zulon 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
16:42 zulon is it possible to use roles like Haskell's classes ?
16:42 zulon are there any way to use algebraic data type easily ?
16:42 zulon is*
16:43 zulon is it possible to define a do-notation like Haskell's one, but for lists, maybes etc. (not IO) ?
16:44 diakopter well, Perl 6 isn't (by default) lazy (unless you deal in list context only I guess) or pure, so...
16:45 zulon yes I know
16:45 zulon but I'm not asking about lazyness
16:45 diakopter but why would you need a do notation?
16:46 zulon for many things
16:46 zulon eg. computations that can fail, that can yield more than one result...
16:46 zulon and because timtowtdi :p
16:48 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 TimToady that being said, all is fair in a lexical scope
16:49 TimToady as long as it doesn't clobber other lexical scopes via spooky action at a distance
16:49 zulon hum
16:49 zulon so it is possible to define <- infix op and "programmable" semicolon ?
16:51 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)␤»
16:51 p6eval ..elf 25732: RESULT«␤»
16:51 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "infix"␤    expecting "=", subroutine parameters, trait or block␤    at /tmp/2hwsTruUvT line 1, column 5␤»
16:51 TimToady std: sub infix:<\<-> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
16:51 p6eval std 25732: OUTPUT«ok 00:04 38m␤»
16:52 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
16:52 p6eval ..########...
16:52 TimToady heh
16:52 diakopter pugs might take that?
16:52 TimToady rakudo: sub infix:<< <- >> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
16:52 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)␤»
16:52 moritz_ rakudo doesn't do custom ops yet
16:52 TimToady pugs: sub infix:<< <- >> ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
16:52 p6eval pugs: OUTPUT«I'm a 123 <- 42␤»
16:52 TimToady there you go
16:53 TimToady pugs: sub infix:«<-» ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
16:53 p6eval pugs: OUTPUT«I'm a 123 <- 42␤»
16:53 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)
16:53 TimToady std: sub infix:«<-» ($a,$b) { say "I'm a $a <- $b" }; 123 <- 42
16:53 p6eval std 25732: OUTPUT«ok 00:04 38m␤»
16:53 moritz_ zulon: you can write that as 'for 1..10 -> $x { ... }' already
16:54 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
16:54 moritz_ but most things can be undef anyway
16:55 nihiliad joined #perl6
16:55 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" }
16:55 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␤»
16:55 p6eval ..pugs, rakudo f6cdf9: OUTPUT«11121314151617181920␤»
16:55 moritz_ rakudo: my %h = ( a => any(3, 4) ); for %h.kv -> $k, $v { say "$k: {$v.WHAT}" };
16:55 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 #perl6
16:56 slavik1 rofl
16:56 moritz_ zulon: you can't write Haskell in Perl 6. But you can do similar stuff with similar idioms
16:56 slavik1 perl6: say "hello";
16:56 p6eval elf 25732, pugs, rakudo f6cdf9: OUTPUT«hello␤»
16:56 zulon ok
16:57 slavik1 err, what's with the rakudo version?
16:57 slavik1 rakudo: say "hello"
16:57 p6eval rakudo f6cdf9: OUTPUT«hello␤»
16:57 diakopter moritz_: TimToady will take that as a challenge... :P
16:57 cspencer joined #perl6
16:57 slavik1 rakudo's version leaked out from 32 bits? heh
16:57 diakopter chopped git revision hash?
16:57 TimToady I have plenty of challenges already, thank you...
16:58 moritz_ rakudo: my %h = ( a => any(3, 4) ); say %h<a>.WHAT;
16:58 p6eval rakudo f6cdf9: OUTPUT«Junction␤»
16:58 moritz_ rakudo: my %h = ( a => any(3, 4) ); for %h.kv -> $k, Object $v { say "$k: {$v.WHAT}" };
16:58 p6eval rakudo f6cdf9: OUTPUT«a: Junction␤»
16:58 slavik1 how come Larry isn't on this channel? where am I going to suggest default return values of 42?
16:59 moritz_ slavik1: he is ;-)
16:59 slavik1 hmm, which one is he then? heh
16:59 TimToady zulon: but by default, Perl 6 optimizes for you not having to be a space alien
16:59 zulon ?
16:59 TimToady Haskell makes things easy for space aliens, not normal folk
16:59 slavik1 TimToady: is it any way possible to be able to get a stack trace of a running parrot vm?
17:00 zulon ah ok
17:00 * slavik1 is kicking around an idea of a Perl6 Application Server ...
17:00 TimToady slavik1: you'd have to speak to the parrotfolk about that; I'm just a recovering linguist
17:01 slavik1 haha
17:01 slavik1 also, any chance that rakudo could access the parrot vm to execute pbc?
17:01 slavik1 like and eval_pbc(); or something
17:01 TimToady ask pmichaud or jnthn
17:02 slavik1 ok
17:02 slavik1 pmichaud, jnthn: please check and update :)
17:02 slavik1 and provide updation on the same ...
17:02 TimToady I know you can do inline PIR, so the answer is likely "yes" on some level
17:03 slavik1 TimToady: the idea is to have something for Parrot (Perl6, etc) what Weblogic/WebSphere does for Java
17:03 slavik1 if that makes sense
17:03 TimToady haven't the foggiest idea what Weblogic/WebSphere do
17:03 diakopter slavik1: I think I did read that rakudo can load a pbc
17:03 moritz_ slavik1: I guess it's load_bytecode 'Filname.pbc'
17:04 TimToady I'm not a webbish person
17:04 slavik1 TimToady: you can load balance a java application on a cluster of servers, etc.
17:04 slavik1 TimToady: it's like google's mapreduce type of thing
17:04 TimToady gotcha
17:04 slavik1 and afaik, Java is the only platform to have this
17:05 ejs joined #perl6
17:05 TimToady but perhaps a bit less probabalistic than mapreduce?
17:05 slavik1 right
17:05 slavik1 TimToady: weblogic and websphere also manage all the database connections for you, so your app does something like: weblogic.getdbconnection() and that's it
17:06 slavik1 the app never knows where the db is, nor how it actually connects, etc.
17:06 TimToady finally, a good use for network transparency :)
17:06 slavik1 and weblogic/websphere do that headache for your app as far managing it, testing the connection, creating new ones, reusing old connections
17:07 slavik1 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
17:07 slavik1 yes
17:07 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)
17:07 TimToady what does that have to do with logic or spheres, I ask myself...
17:07 alester The first rule of taking a database dump: nohup it.
17:07 slavik1 diakopter: but for Java, it is "already there"(tm)
17:07 alester The second rule of taking a database dump: Make sure there's room for it.
17:07 slavik1 haha
17:07 slavik1 alester: tough life of a dba?
17:07 alester ONly blew 2 hours.
17:08 diakopter (sigh)
17:08 slavik1 alester: man screen ;)
17:08 slavik1 also a nice utility\
17:08 alester I don't do screen.
17:08 alester I just have never liked it.
17:08 slavik1 how come? :(
17:08 slavik1 screen is like nohup, only better
17:08 alester Just don't.  It just doesn't fit how I work.
17:08 slavik1 I see
17:08 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...
17:09 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
17:09 slavik1 sqlplus ftw?
17:09 cspencer moritz: alrighty then - was it hashed out on the list as to how to do it?
17:09 moritz_ cspencer: I think the currently recommended routine is to put all in a branch, and then squash it into a single commit
17:09 moritz_ cspencer: and then git-format-patch that single commit, and send it to RT
17:10 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 :)
17:11 moritz_ cspencer: more specifically, when you're done with $branch, git-checkout master; git-merge --squash $branch; git-commit -a
17:12 cspencer moritz: thanks, noted!
17:13 slavik1 jhowitz not around?
17:13 slavik1 :(
17:13 slavik1 what's the command to leave someone a note/message?
17:13 diakopter @tell slavik1 like this
17:13 lambdabot Consider it noted.
17:13 slavik1 ty
17:13 lambdabot slavik1: You have 1 new message. '/msg lambdabot @messages' to read it.
17:14 pugs_svn r25733 | lwall++ | [STD] detect <STDIN> and <> perl5os
17:19 skids joined #perl6
17:27 wolverian joined #perl6
17:37 mncharity joined #perl6
17:40 pugs_svn r25734 | putter++ | [elfparse] emit5.pm: fix a RATCHET typo/bug.
18:14 justatheory joined #perl6
18:19 pugs_svn r25735 | lwall++ | disallow bare <> as probable p5ism
18:21 pugs_svn r25736 | lwall++ | fix up occurrences of <> in the tests
18:21 pugs_svn r25736 | lwall++ | improve <> error message slightly
18:22 pugs_svn r25737 | moritz++ | [t/spec] more small improvements (STD++, TimToady++)
18:26 pmurias diakopter: hi
18:31 diakopter pmurias: hi
18:34 Psyche^ joined #perl6
18:36 pmurias joined #perl6
18:36 pmurias diakopter: is ironperl (or whatever Perl 6 on .net will be called) avalible somewhere public yet?
18:37 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:38 pmurias what are you writting it in?
18:38 diakopter tycho
18:39 diakopter it's a typeless, constructor-based language/interpreter that's written in C# and compiles to CIL.
18:39 pmurias url?
18:40 diakopter it's gpl2, btw.  google  tycho googlecode
18:40 moritz_ http://code.google.com/p/tycho/
18:40 diakopter yes
18:42 pmurias diakopter: and what are you compiling to?
18:42 moritz_ from its description it looks like a mixture of lisp and PCT ;-)
18:42 diakopter it compiles to CIL (runs on mono, too)
18:43 diakopter 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 ;-)
18:43 pmurias diakopter: meant, what do you transform the STD parse tree to?
18:44 diakopter oh... commands to create constructors
18:44 diakopter all essentially lambda expressions
18:44 diakopter the tycho api
18:44 diakopter which can use all of the .net FCL (foundation class libraries)
18:46 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:47 diakopter it very well might... what kind of reduction(/expansion?) occurs to produce the mildew ast
18:48 pmurias everything is translated to method calls
18:49 diakopter perhaps nopaste an ascii example?
18:49 pmurias it might be a bit smop oriented atm, but i can make nessary adjustments
18:49 pmurias ok
18:52 pmurias diakopter: you could try running perl mildew -Cdesugar (it does not require a compiled smop)
18:53 diakopter also, the DLR might be part of the stack.  not sure whether to compile to the C# DLR API or not....
18:55 pmurias what does the DLR provide?
18:56 diakopter pluggable runtime binding/dispatch engines
18:56 diakopter and pluggable type converter-generators
18:57 diakopter and lexical scopes and symbol tables
18:58 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:59 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
19:00 s1n joined #perl6
19:01 Util joined #perl6
19:02 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();
19:02 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)␤»
19:03 moritz_ the semicolon after } is only optional if followed by a line break
19:03 Util Thanks moritz
19:04 moritz_ you're welcome
19:04 Util rakudo: sub foo {say "Hi"}; foo();
19:04 p6eval rakudo f6cdf9: OUTPUT«Hi␤»
19:04 Util rakudo: sub foo {say "Hi";} foo();
19:04 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)␤»
19:05 cspencer has the rakudo spectest suite be reorganized?
19:05 cspencer when i do a "make spectest", it complains about a lot of missing files....
19:05 cspencer (mostly in spec/S29-*)
19:06 pasteling "pmurias" at 78.8.208.43 pasted "sub {say "hello world"} - mildew ast in pretty printed format" (20 lines, 1.1K) at http://sial.org/pbot/35389
19:08 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
19:10 diakopter this is great
19:10 diakopter so, the builtins are the Perl6 metamodel?
19:11 diakopter as well as the API on the interpreter, of course
19:11 pmurias that's the goal
19:12 pmurias not having a additional layer
19:12 diakopter well, eventually :P
19:14 pmurias so mildew emits things like a call to &infix:<+> to add numbers instead of using an add opcode
19:15 pmurias diakopter: does ironperl run on mono?
19:16 diakopter I won't choose any components that don't work on mono...
19:17 diakopter 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
19:18 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)␤»
19:18 moritz_ rakudo: say enum Foo ('foo', 'bar')
19:19 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:23 diakopter does mildew need changes for the latest invocation semantics?
19:24 Ariens_Hyperion joined #perl6
19:24 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:25 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)
19:25 cspencer gotcha, thanks :)
19:25 moritz_ s/git copy/local git repo/
19:35 Eevee joined #perl6
19:52 brunoV joined #perl6
20:28 pidus joined #perl6
20:37 DemoFreak joined #perl6
20:42 Helios joined #perl6
20:55 bacek good morning
20:57 bacek rakudo: say "Привет"
20:57 p6eval rakudo f6cdf9: OUTPUT«Привет␤»
20:58 bacek rakudo: "Привет" ~~ /(и)/; say $/
20:58 p6eval rakudo f6cdf9: OUTPUT«и␤»
21:11 Helios joined #perl6
21:12 finchely joined #perl6
21:16 finchely left #perl6
21:30 Whiteknight joined #perl6
21:35 justatheory joined #perl6
21:35 kst joined #perl6
21:41 moritz_ can I link to a subdirectory of a project on github, without chosing a specific revision?
21:43 bacek http://github.com/bacek/rakudo/tree/master/src
21:43 bacek WFM
21:44 bacek moritz_: btw, can you merge #62178 and #63634. 250 open tickets much better than 251 :)
21:52 moritz_ bacek: done
21:52 bacek moritz_: thanks
21:55 bacek cspencer: you forgot vim modeline in any-list.pm. And there is bare tabs instead of spaces in it.
21:55 bacek still 251 tickets...
21:56 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 cspencer bacek: would you like me to resubmit?
21:56 bacek cspencer: ask moritz_, I can't commit it anyway :)
21:57 moritz_ I think it's fine
21:57 cspencer moritz_: okay, i'll make sure subsequent ones are fixed
21:57 cspencer not being a vim user, i would easily forget such things as vim modelines :)
21:57 * moritz_ runs 'make spectest'
21:58 moritz_ cspencer: that's fine. Some vim user will add it
21:58 moritz_ aka me
21:58 cspencer moritz_: thanks :)
21:59 moritz_ running spectest now
21:59 ffbb joined #perl6
21:59 bacek yay. Almost all any-list.pir can be rewrited into Perl6
22:00 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:02 bacek git send-email --to=rakudobug@perl.org HEAD~1
22:05 duke_leto joined #perl6
22:15 pugs_svn r25739 | hinrik++ | [util/perl6.vim] remove 'is instead'
22:17 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)␤»
22:17 moritz_ bacek: &foo.arity
22:17 bacek rakudo: sub foo ($a,$b) { ... }; say &foo.arity
22:17 p6eval rakudo f6cdf9: OUTPUT«2␤»
22:17 dalek rakudo: 7559fc9 | (Cory Spencer)++ |  (3 files):
22:17 dalek rakudo: Removed PIR of grep and replaced with P6 version.
22:17 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
22:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​559fc9e099496e7850aa57e48e59953e31d3ab1
22:17 dalek rakudo: ed4cd14 | (Moritz Lenz)++ | src/setting/Any-list.pm:
22:17 dalek rakudo: whitespaces and modeline in Any-list.pm
22:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​d4cd1488f6c3481aa7d826bf9299e5561f49438
22:17 bacek moritz_: thanks!
22:18 moritz_ cspencer++
22:19 moritz_ rakudo: (1..16).grep({next if $_ % 5 == 0; $_ % 2 == 0 }).perl
22:19 p6eval rakudo f6cdf9: OUTPUT«Warning␤Warning␤Warning␤»
22:20 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 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]␤»
22:20 moritz_ in my local copy that prints [2, 4]
22:21 moritz_ which proves the worth of doing stuff in Perl 6
22:21 moritz_ and the first one omits 10
22:21 * moritz_ should write tests for that
22:21 moritz_ but not today
22:25 cspencer moritz: is "f6cdf9" the git version number?
22:26 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?
22:26 moritz_ from pir
22:27 cspencer ah ok, whew :)
22:27 moritz_ and you see that the next() inside the grep didn't work with the pir version
22:27 moritz_ but it does with the Perl 6 version
22:27 pugs_svn r25740 | hinrik++ | [util/perl6.vim] add lift
22:29 cspencer ah ok :)
22:29 cspencer i didn't see that before
22:30 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]␤»
22:30 moritz_ not yet updated :/
22:34 kjwcode joined #perl6
22:34 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 #perl6
22:35 cspencer there we go :)
22:36 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)␤»
22:37 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.
22:38 kjwcode 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
22:38 moritz_ you don't call .init
22:39 moritz_ 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().
22:39 kjwcode Thank you, moritz_.
22:41 duke_leto left #perl6
22:58 Sartak joined #perl6
23:07 ZuLuuuuuu joined #perl6
23:19 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)␤»
23:19 bacek rakudo: my $e = sub { $^a+$^b*$^c }; say $e.arity
23:19 p6eval rakudo ed4cd1: OUTPUT«3␤»
23:31 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.
23:35 TimToady I agree.
23:35 lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
23:36 diakopter maybe [R**R]  :?
23:37 diakopter or R[R**]
23:37 diakopter dunno
23:37 diakopter or even [RR**]
23:37 diakopter since it's reversible..
23:37 diakopter RR would be redundant, so use it for something else :P
23:38 diakopter 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
23:38 diakopter oh
23:38 TimToady it doesn't really need special syntax beyond an lreduce function
23:38 TimToady if that
23:38 diakopter reduceR ?
23:39 TimToady whatever, [Rop] @list.reverse
23:40 sparc_ joined #perl6
23:42 diakopter rakudo(rakudobug;autospectest(TODO)): is(([R**] 2,3,4),262144)
23:53 sparc_ is downloading parrot enough to get a latest perl6?
23:57 Limbic_Region joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo