[00:21] happy leap second, everyone (oops, we missed it!) [00:25] told my wife that same thing at approximately the same time. :) [00:37] o/ pmichaud [00:39] *** adu joined [00:51] o/ sorear [00:58] \o [00:59] Is .clone supposed to make deep copies, shallow copies, or bindings of the unchanged attributes? [00:59] shallow copies [01:00] I had a feeling ... [01:00] but niecza currently just does bindings, I think [01:01] *** sftp left [01:02] *** sftp joined [01:02] Is there a deep copy operation, other than I suppose 'eval $foo.perl' [01:02] ? [01:10] *** adu left [01:41] nqp: bec0eba | pmichaud++ | src/HLL/Compiler.pm: [01:41] nqp: Restore a basic dumping capability from Parrot's Data::Dumper. [01:41] nqp: We really should reimplement a dumper in pure NQP, though. [01:41] nqp: review: https://github.com/perl6/nqp/commit/bec0ebaae4 [02:07] *** am0c left [02:09] *** sftp left [02:14] *** Guest96700 left [02:14] *** sftp joined [02:17] *** thelazydeveloper left [02:19] *** am0c joined [03:02] *** felher left [03:24] *** adu joined [03:54] *** Chillance left [04:04] *** alvis` joined [04:04] *** adu left [04:06] *** alvis left [04:09] *** retupmoca left [04:18] *** harmil left [04:19] *** Khisanth joined [04:37] *** adu joined [05:00] *** birdwindupbird joined [05:06] nqp: 2bd8dcb | pmichaud++ | src/HLL/Compiler.pm: [05:06] nqp: HLL::Compiler --stagestats=3 (or greater) now introduces prompts after each compilation stage. [05:06] nqp: This makes it easier to determine the system resources consumed by each stage. [05:06] nqp: check for system resource usage. [05:06] nqp: review: https://github.com/perl6/nqp/commit/2bd8dcbbf8 [05:18] *** kaare_ joined [05:57] *** tokuhirom joined [05:58] *** larks joined [05:58] *** larks left [05:58] *** larks joined [06:23] *** zby_home_ joined [06:45] * diakopter has watched http://www.youtube.com/watch?v=Veg63B8ofnQ too many times. [06:54] *** cognominal joined [06:54] *** fgomez left [06:58] *** cognominal left [07:03] *** cognominal joined [07:18] *** cogno joined [07:19] Tadzik are you around here? [07:27] *** cognominal left [07:30] *** cogno left [07:40] *** xdbr joined [07:43] *** REPLeffect left [07:44] *** pupoque joined [07:49] *** pupoque is now known as gesh [07:53] <[Coke]> so, http://rosettacode.org/wiki/Haversine_formula#Perl_6 spends 53% of its time in type_check in Metamodel.pm [07:53] *** adu left [07:53] <[Coke]> (called 496 times) [07:53] *** xinming_ left [07:54] *** xinming joined [08:00] *** cognominal joined [08:06] *** cognominal left [08:10] [Coke]: yes [08:10] erm [08:10] I missed cogno [08:10] nvm [Coke] [08:11] *** cognominal joined [08:16] <[Coke]> aw. [08:16] *** cognominal left [08:17] good localtime everybody [08:18] hi [08:18] <[Coke]> moritz: ho [08:18] hello moritz [08:19] *** MayDaniel joined [08:19] a friend of mine is looking for a functional programming job; does anybody know such a vacancy by chance? [08:20] preferably not at a bank [08:22] tadzik: do you want to give me a commit bit for File::Tools, or want a pull request? [08:22] moritz: I'll give it to you right away [08:22] tadzik: ok, thanks [08:22] moritz: there you are [08:23] I hate to go through the dance of forking, adding origin, pushing, opening pull request just to get one patch in [08:23] right [08:23] I see some potential for workflow automate here [08:24] imagine a git github-push-pullrequest command which automates all that for you [08:27] hm [08:28] and Panda needs to copy over the new File::Find, right? [08:28] aye [08:28] I'm wondering if git substree or so could do that for us [08:30] the Submodules That Don't Suck, or something [08:32] tadzik: either you'll have to do the panda updating, or hand out another commit bit :-) [08:33] *** cognominal joined [08:33] moritz: I've just commit-bit you :) [08:33] make: Circular blib/lib/File/Find.pir <- blib/lib/File/Find.pir dependency dropped. [08:34] yeah. ufo doesn't like 'use File::Find' in SYNOPSIS :) [08:34] panda: b97cf9f | moritz++ | ext/File/Find.pm: [08:34] panda: [ext] update to latest version of File::Find [08:34] panda: review: https://github.com/tadzik/panda/commit/b97cf9f350 [08:34] \o/ [08:34] I'm now trying to make panda less broken, which should enable me to finally get the pod thing right [08:36] o/ [08:36] moritz++ #star release ! [08:36] tadzik: I notice that panda has lots of code like statefile => $statefile, projectsfile => $projectsfile, [08:36] moritz: yes [08:37] tadzik: do you dislike the :$statefile pair syntax? [08:37] moritz: I've now in the process of killing Panda::Resources, which make no sense at all [08:37] oh [08:37] or were you simply unware of it? [08:37] I may have just forgotten about it :) [08:37] feel free to make it nicer :) [08:37] ok :-) [08:40] btw I now get the same error as Gabor (see p6u) when bootrsapping panda [08:40] seems it's some problem with reading the projectsfile [08:41] Connecting to feather.perl6.nl (feather.perl6.nl)|193.200.132.135|:3000... failed: Connection refused. [08:41] oh, that might be it [08:42] aw, my fault again [08:42] <[Coke]> moritz: I have been up way too long, but have a pc laptop with devtools I can use to try to get panda working on win tomorrow. [08:43] <[Coke]> for now, zzzes, though. [08:43] my crontab @reboot perl /home/tjs/modules/bin/app.pl apparently doesn't work [08:43] tadzik, I am with maryline She tells me she should meet you at 12? [08:43] <[Coke]> I'd be interested if jnthn++ can make anything of the "type_check" taking 53% of runtime on that rosettacode example. [08:43] cognominal: that was the plan, yes [08:43] does this still hold [08:43] she is fine by now [08:43] sure [08:43] tadzik: maybe be explicit about which perl to invoke? [08:44] ok. So see you there. [08:44] moritz: I'll try that [08:44] tadzik: if you have a perlbrew'ed perl, then crontab won't see it [08:44] cognominal: great, thanks [08:44] moritz: no, I don't think I do [08:44] because crontab doesn't source .bash_proflie/.bashrc [08:44] but maybe I should tell it to use /usr/bin/perl or so [08:47] *** larks left [08:48] r: say 'nosuchflie'.IO.z [08:48] rakudo a6d08c: OUTPUT«False␤» [08:48] r: say 'nosuchflie'.IO.f [08:48] rakudo a6d08c: OUTPUT«False␤» [08:49] *** cognominal is now known as maryline [08:49] *** larks joined [08:50] moritz: I'm having trouble deciding where projects' workdir resolution should belong in the code [08:51] *** birdwindupbird left [08:51] panda: 97ebac0 | moritz++ | lib/Panda/Ecosystem.pm: [08:51] panda: empty projectsfile is also a reason to update it [08:51] panda: review: https://github.com/tadzik/panda/commit/97ebac0459 [08:51] I thought resources was a bit of a bad idea, in terms that it doesn't make much sense make every Panda submodule resolve it itself; it should probably be given to it [08:52] oh dammit, that commit was wrong [08:52] *** maryline left [08:53] panda: 8800ec5 | moritz++ | lib/Panda/Ecosystem.pm: [08:53] panda: fix precedence problem in previous commit (97ebac0) [08:53] panda: review: https://github.com/tadzik/panda/commit/8800ec5d8b [08:54] tadzik: I'm a bit lost here; what workdir are you talking about? [08:54] tadzik: the one where you clone and build a project into? [08:56] moritz: well, the workdir is where most of what panda does happens. Fetcher fetches a project to a workdir, builder builds stuff in the workdir, tester tests stuff there, installer instals file from there [08:56] so the entire workflow is mostly oriented around this working directory [08:56] tadzik: then yes, it should be given to each submodule [08:56] right [08:57] so at first I thought about subclassing Pies::Project, to get Panda::Project which is aware of its workdir [08:57] and I'm now wondering if that's the right approach [08:58] because if I was to change the number of parameters passed to each of the submodules, then I'd have to change Pies as well [08:59] I'm not sure how it should look [09:00] me neither, sorry [09:00] actually I don't know much about how panda works [09:01] I just try to fix small scale stuff when I can [09:01] that's great [09:03] I may need to rethink this design [09:04] or just look again at how Pls was doing this :) [09:05] panda: f3a494d | moritz++ | lib/Panda/Ecosystem.pm: [09:05] panda: die if from_json($projectsfile) is not defined [09:05] panda: [09:05] panda: this gives a slightly better error message than the [09:05] panda: "Odd number of elements found where hash expected" which [09:05] panda: Gabor reported on [email@hidden.address] [09:05] panda: review: https://github.com/tadzik/panda/commit/f3a494dac6 [09:10] ok, pls hardcodes everything as "cache/$project" [09:10] (the workdirs) [09:13] ufo: 2f477c5 | moritz++ | bin/ufo: [09:13] ufo: ignore "use fatal" [09:13] ufo: review: https://github.com/masak/ufo/commit/2f477c525f [09:21] star: say 'oh hai' [09:21] star 2012.06: OUTPUT«oh hai␤» [09:21] that's the new one [09:22] *** zby_home_ left [09:32] *** MayDaniel left [09:50] *** vlixes left [10:22] *** shtihskar joined [10:28] List [10:29] *** shtihskar left [10:39] r: class A { method b { method c { 55 } } }; say A.c # um [10:39] rakudo a6d08c: OUTPUT«55␤» [10:44] r: class A { method b { method c { return class D { } } } }; say A.c.new.^methods [10:44] rakudo a6d08c: OUTPUT«␤» [11:30] *** thelazydeveloper joined [11:54] *** whiteknight joined [11:55] *** whiteknight is now known as Guest12592 [11:58] *** fridim_ joined [12:03] *** GlitchMr joined [12:08] *** PacoAir joined [12:13] *** spider-mario joined [12:43] seen cognominal? [12:43] cognominal was last seen in #perl6 3 hours 59 mins ago saying "ok. So see you there.". [12:44] damn :/ [12:54] *** MayDaniel joined [12:56] *** birdwindupbird joined [13:10] *** Psyche^ joined [13:11] *** felher joined [13:14] *** Patterner left [13:14] *** Psyche^ is now known as Patterner [13:27] *** MayDaniel left [13:32] *** Chillance joined [13:51] *** tokuhirom left [14:12] *** sisar left [14:12] *** murdegern joined [14:12] hello all [14:12] just getting my feet wet with perl6, please be gentle... [14:12] *** sisar joined [14:13] right now, I want to clone an array of arrays... like this: @gf = ( [0,1], [2,3] ); @sgf=@gf.clone; [14:13] but it's not a deep copy, if I put @gf[0][0] = 4; then, @sgf[0][0] is also 4 [14:14] how can I do this better? [14:28] *** nwc10 joined [14:43] *** murdegern left [14:48] *** seldon joined [15:05] *** odoacre joined [15:05] *** vmspb joined [15:08] *** xinming left [15:10] *** xinming joined [15:30] *** thou joined [15:37] *** HarryS left [15:38] *** HarryS joined [15:40] good morning, #perl6 [15:43] *** fgomez joined [15:49] good am, pm [15:50] \o [15:51] *** UncleFester6 joined [15:52] moritz: i just borrowed "good am, pm". You may still say it ;) [15:52] use Test;my $i = 0;my @a = (10, 20 ,30 ,40);my @l := gather { for @a {$i++; take $_ } };my @pull;push @pull, $i, $_ for @l;is_deeply(@pull, [ 0, 10, 1, 20, 2, 30, 3, 40]); # just test - no need to comment [15:52] rakudo: use Test;my $i = 0;my @a = (10, 20 ,30 ,40);my @l := gather { for @a {$i++; take $_ } };my @pull;push @pull, $i, $_ for @l;is_deeply(@pull, [ 0, 10, 1, 20, 2, 30, 3, 40]); # just test - no need to comment [15:52] rakudo a6d08c: OUTPUT«not ok 1 - ␤# got: [4, 10, 4, 20, 4, 30, 4, 40]␤# expected: [0, 10, 1, 20, 2, 30, 3, 40]␤» [15:53] *** UncleFester6 left [16:02] *** vmspb left [16:09] *** xinming left [16:11] *** xinming joined [16:33] hello #perl6 [16:33] hello tadzik [16:34] how is/was fpw? [16:34] it was great [16:35] I'm quite satisfied with both of my talks, and I got the motivation to hack back after the exam madness [16:35] \o/ [16:35] and I'm quite convinced Pies/Panda needs sort of a redesign [16:37] although I'm not sure what is the right way to go with it [16:37] *** quietfanatic joined [16:37] well, what parts are troublesome in the current design? [16:37] quietfanatic: howdy [16:37] but I thought I'll just experiment with different things and see what seems the most sane [16:37] that approach often works, yes. :) [16:37] hello [16:37] pmichaud: I don't think submodules (Panda::Builder and so) are really given what they need [16:38] tadzik: example? [16:38] if you look at the code now, you'll notice that every submodule keeps a Panda::Resources in the attributes, and then uses it every single time to obtain a workdir [16:39] whereas a workdir is the most essential thing it actually needs. It knows what to do, you should just show it where it starts to work [16:39] instead of that, it receives Pies::Project as a parameter, which gives it almost no information it needs and lots of stuff it doesn't [16:39] yes, it sounds very much like a refactor is needed there [16:39] something a bit more direct [16:39] what I tried yesterday to make it saner was to put workdir as one of the attributes in Panda::Project, which is Pies::Project [16:39] r: my @a = ([1, 2], [3, 4]); my @b = @a>>.clone; @a[0][0] = 4; say @b [16:39] rakudo a6d08c: OUTPUT«1 2 3 4␤» [16:40] but that makes testing tricky and confusing [16:40] so I think there's way too much "OOP ALL THE THINGS" in it, and somewhat unifying the interface of the submodules for no good reason [16:40] I often think that (too much "oop everything"). [16:41] I looked back at the prior art (pls) on this, and pls actually creates a hardcoded workdir ("cache/$name") on itself, which proves that it really is a proof-of-concept :) [16:42] so what I plan to do now is figure out what is exactly what each of the submodules give, give them that, and expect a very specific result of their work, which I can easily test [16:42] as in: I expect of Installer to copy all the things it finds in blib/. No thinking [16:43] I want Builder to take lib/ and create a blib/ that a user needs. No magic [16:43] heh [16:43] ...well, maybe in this case magic is what actually drives this thing [16:43] that's kind of .... exactly [16:43] it's high magic at the level you're describing :) [16:43] heh [16:43] which is absolutely fine and desirable, if it works (and if there are ways to adjust the magic when needed) [16:43] correct [16:44] so I'll just throw stuff around, break ALL THE THINGS and see if I can make panda a better anima... well, sort of [16:47] sounds like a good plan to move forward [16:47] okay, I'm afk for a bit. [16:47] okay [16:50] *** larks left [16:50] *** larks joined [16:57] prn: say 3888888888888888888888888888888888 +| 222222222222222222222222222222222222222 [16:57] niecza v19-7-g5e25209: OUTPUT«-2147483648␤» [16:57] ..rakudo a6d08c, pugs: OUTPUT«222225113149307211803172354940963909566␤» [16:59] I suppose MIN_INT is decent enough for niecza [17:00] *** kaare_ left [17:05] *** kaare_ joined [17:12] rnp: my $a = "foobarbaz"; $a ~~ /bar/; say $/.prematch [17:12] pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P… [17:12] ..rakudo a6d08c, niecza v19-7-g5e25209: OUTPUT«foo␤» [17:31] oh wow [17:31] Wikipedia says: Red pandas are generally quiet except for some twittering, tweeting, and whistling. [17:32] Twittering and tweeting! Quite a meaning those worlds've got recently [17:37] *** birdwindupbird left [17:44] r: https://gist.github.com/3029085 [17:44] rakudo a6d08c: OUTPUT«1..9␤ok 1 - ␤ok 2 - ␤ok 3 - ␤ok 4 - ␤ok 5 - ␤ok 6 - ␤ok 7 - ␤ok 8 - ␤ok 9 - ␤» [17:44] I find this sort of awesome [17:47] *** quietfanatic left [17:50] *** quietfanatic joined [17:51] *** vmspb joined [17:54] *** snearch joined [17:55] oh wow [17:55] tadzik++ [17:56] *** quietfanatic left [17:57] tadzik++: nice ! [17:57] *** zby_home joined [18:01] *** MayDaniel joined [18:27] *** birdwindupbird joined [18:31] good * #perl6 [18:32] *** birdwindupbird left [18:34] \o sorear [18:34] sorear: o/ and did you see the nieczabug at http://irclog.perlgeek.de/perl6/2012-06-30#i_5772426 ?/e [18:34] now that only needs a wrapper, so you can do typed_sub(Str, Int) and it would give you back the type :) [18:34] I have a thing to hack on [18:35] s['/e'] = '' [18:35] * [Coke] rebuilds and installs rakudo-lastest on win7. [18:35] <[Coke]> panda me. [18:35] TimToady: yeah, can't do much about it right now [18:35] o/ moritz [18:36] ran into it in Real Code™ [18:37] * diakopter doesn't know whether s['/e'] = '' is real syntax. /me is ignorant of such things [18:38] <[Coke]> perl6 bin\panda -> could not find Shell::Command [18:38] diakopter: it is [18:38] r: $_ = 'a/e'; s['/e'] = ''; .say [18:38] rakudo a6d08c: OUTPUT«a␤» [18:38] n: $_ = 'a/e'; s['/e'] = ''; .say [18:38] niecza v19-7-g5e25209: OUTPUT«a␤» [18:38] [Coke]: did you bootstrap it? [18:39] <[Coke]> tadzik: that IS bootstrap. [18:40] <[Coke]> ah, earlier: "Could not find Panda in any of: ..." [18:40] n: sub s { }; say &s[0][0][0][0][0][0]; [18:40] niecza v19-7-g5e25209: OUTPUT«sub s(Any \$_) { ... }␤» [18:40] <[Coke]> I do not have wget installed yet, but also do not see it trying to run wget anywhere. [18:40] okay [18:40] it only tries it once [18:41] rn: sub foo { return Sub where { True } } [18:41] niecza v19-7-g5e25209: OUTPUT«===SORRY!===␤␤Two terms in a row (listop with args requires whitespace or parens) at /tmp/38H7wK23Qs line 1:␤------> sub foo { return Sub ⏏where { True } }␤␤Parse failed␤␤» [18:41] ..rakudo a6d08c: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2, near "return Sub"␤» [18:41] hmm [18:41] http://perlcabal.org/syn/S12.html#Types_and_Subtypes seems to indicate that this is a syntax for anynymous subtypes [18:41] nr: say Sub [18:41] rakudo a6d08c, niecza v19-7-g5e25209: OUTPUT«Sub()␤» [18:42] r: $a = sub ($a, $b) {}; say $a.signature.params[0].type ~~ Int; [18:42] rakudo a6d08c: OUTPUT«===SORRY!===␤Variable $a is not declared␤at /tmp/IiS4h_uSlv:1␤» [18:42] r: my $a = sub ($a, $b) {}; say $a.signature.params[0].type ~~ Int; [18:42] rakudo a6d08c: OUTPUT«False␤» [18:42] mhm, mhm. [18:45] <[Coke]> tadzik: I installed wget. reran bootstrap.sh. same error. [18:45] <[Coke]> git clean -xdf in case something was cached - boostrap again, same error. [18:46] tadzik: you wrote "plan 9" and resisted the urge to say something about outer space? [18:47] *** snearch left [18:47] <[Coke]> perl6lib bug on win? [18:49] that list of unsupported features on the star announcements is dwindling [18:50] is async i/o on the radar or is that far off? [18:50] <[Coke]> r: say $VM [18:50] rakudo a6d08c: OUTPUT«===SORRY!===␤Variable $VM is not declared␤at /tmp/cBXnAWLUKj:1␤» [18:50] <[Coke]> r: say $VM [18:50] rakudo a6d08c: OUTPUT«===SORRY!===␤Variable $VM is not declared␤at /tmp/gF_LVHJTny:1␤» [18:50] r: say $*VM [18:50] rakudo a6d08c: OUTPUT«("name" => "parrot", "config" => {"git_describe" => "RELEASE_4_5_0", "sha1" => "522f92816a93a3f6978f06da6a9234b667697270", "a" => ".a", "ar" => "ar", "ar_extra" => "", "ar_out" => "", "archname" => "i486-linux-gnu-thread-multi-64int", "arflags" => "cr", "as" => "as… [18:50] <[Coke]> the PERL6LIB handling is keying off that variable, and it isn't defined. [18:51] <[Coke]> moritz: src/core/terms.pm, line 68 [18:51] cxreg: I'd guess that async i/o really depends on support from it from the VM. So for Rakudo, that would be Parrot, and it's not clear what Parrot's roadmap will deliver when. [18:51] but I am neither a Rakudo nor a Parrot developer, just an observer. [18:51] nwc10: yeah i suppose that is true [18:52] [Coke]: line 48 installs it as $PROCESS::VM, which makes it available as $*VM in user space [18:52] [Coke]: what does $*VM say on your system? [18:52] <[Coke]> moritz: but it's used as $VM on line 68, 69. should that work? [18:52] [Coke]: yes [18:53] <[Coke]> $*VM gives the right answer. $VM -> Variable $VM is not declared. [18:53] <[Coke]> (in the REPL) [18:53] [Coke]: it's declared lexically as $VM, but inside a block; then it is installed globally later on [18:53] and because it's inside a block, userspace code cannot see it as $VM directly [18:54] wow, $*VM is a *huge* bit of output [18:55] *** birdwindupbird joined [18:55] r: say $*VM.elems [18:55] rakudo a6d08c: OUTPUT«256␤» [18:55] timotimo: it's all parrot's config stuff [18:55] <[Coke]> ah! bootstrap.bat has a trailing space on the first line. [18:56] [Coke]: and that sets PERL6LIB incorrectly? [18:56] nwc10: yeah. "Currently, Parrot only implements synchronous I/O operations" [18:56] <[Coke]> now the install proceeds, but dies with "unable to open filehandle from path "C:\Users\coke/.panda/projets.json' [18:57] <[Coke]> moritz: apparently. [18:57] <[Coke]> projects.json doesn't exist. [18:57] timotimo: oh, true :) [18:57] panda: f4e6b5c | moritz++ | bootstrap.bat: [18:57] panda: [bootstrap.bat] remove trailing space [18:57] panda: [18:57] panda: seems to cause damage on win7. [Coke]++ [18:57] panda: review: https://github.com/tadzik/panda/commit/f4e6b5c57f [18:57] panda: 67cca94 | moritz++ | lib/Panda.pm: [18:57] panda: cosmetic changes [18:57] panda: review: https://github.com/tadzik/panda/commit/67cca94e87 [18:58] oh, that got fixed already [18:58] [Coke]: it should try to download that with wget [18:58] cxreg: but we do have .poll [18:58] but, it's still non-blocking, not asynchronous [18:58] yeah true, i guess you could implement your own event loop using poll [18:59] I did that :) [18:59] cool [18:59] https://github.com/tadzik/MuEvent [18:59] nice [18:59] <[Coke]> moritz: 2 bugs: [19:00] you're polling the sockets serially? that's odd [19:00] <[Coke]> shell outputs no errors when its command fails [19:00] <[Coke]> can't use single quotes to group args on win. [19:00] * [Coke] changes it to " locally to test.. [19:01] ===SORRY!=== [19:01] ResizablePMCArray: Can't pop from an empty array! [19:01] now that's a new error [19:01] tadzik: unless i'm missing some laziness or concurrency semantic? [19:01] cxreg: yeah, I'm doing exactly that [19:01] r: use ::; [19:01] rakudo a6d08c: OUTPUT«===SORRY!===␤Could not find :: in any of: /home/p6eval/.perl6/lib, /home/p6eval/nom-inst2/lib/parrot/4.5.0-devel/languages/perl6/lib␤» [19:01] MuEvent isn't really a proper solution, no [19:01] well, i guess it works :) [19:01] yeah, it does ;) [19:01] it can do async HTTP requests and stuff [19:01] tadzik: it usually happens when you use an empty name somewhere you shouldn't [19:01] (but not always) [19:01] <[Coke]> next failure: 'e' is not recognized as an interncal or external command. [19:02] moritz: yeah, that's it [19:02] r: sub { return subset :: of Sub where { 1 } } [19:02] rakudo a6d08c: OUTPUT«===SORRY!===␤ResizablePMCArray: Can't pop from an empty array!␤» [19:02] S12 says it's valid [19:02] tadzik: prolly just NYI [19:02] yeah, may be [19:02] hmm [19:03] so I can't return an anonymous subset; shame [19:03] but I can make another hack to get that P: [19:03] <[Coke]> gist.github.com/3029268 [19:04] hmm, that rings a bell [19:04] oh [19:04] old rove [19:04] * prove [19:04] with no -e support [19:04] might be spelled -p [19:04] (for "perl executable") [19:05] <[Coke]> my prove is tap harness 3.23 [19:05] oooohohoho [19:06] panda: 2a794e3 | moritz++ | lib/Panda/Ecosystem.pm: [19:06] panda: use double quotes for quoting shell arguments [19:06] panda: [19:06] panda: more windows friendly that way. [Coke]++ [19:06] panda: review: https://github.com/tadzik/panda/commit/2a794e3199 [19:08] <[Coke]> guessing it's related to how you're invoke prove there. [19:09] <[Coke]> in panda\lib\Panda, you modify PERL6LIB but don't take path separators into account. [19:09] <[Coke]> ; vs. : [19:10] ohoho this is so evil [19:11] *** nwc10 left [19:13] <[Coke]> looks like this is in a few places. [19:13] <[Coke]> tadzik: what, panda? ;) [19:17] <[Coke]> I am also unsure {shell "env VAR=$val ..."} is valid cmd shell. [19:17] <[Coke]> might need to be something like "set VAR=$val; ..." [19:18] does simply VAR=$val programm work on windows? [19:18] <[Coke]> moritz; no [19:18] <[Coke]> set VAR=$val ; REM AT LEAST IN THE SHELL [19:19] <[Coke]> (note that that is not actually a command in cmd.exe ;) [19:19] [Coke]: no, the code I'm writing that still fails too many tests to show it off :) [19:19] essentially this: https://gist.github.com/3029304 [19:20] r: say so Any ~~ Str [19:20] rakudo a6d08c: OUTPUT«False␤» [19:20] r: say so Str ~~ Any [19:20] rakudo a6d08c: OUTPUT«True␤» [19:21] but reversing the arguments to Z~~ doesn't fix it :( [19:21] Z=== doesn't work either. Hmm [19:21] *** adu joined [19:22] ~~ does something special syntactically [19:22] r: say (Any, Str) Z=== (Str, Str) [19:22] rakudo a6d08c: OUTPUT«False True␤» [19:22] looks correct to me [19:22] yeah [19:23] r: (Str, Int) ~~ (sub(Str, Any) { }).signature.params.map(*type) [19:23] rakudo a6d08c: OUTPUT«===SORRY!===␤Confused␤at /tmp/CURPZ16U8H:1␤» [19:23] r: (Str, Int) ~~ (sub (Str, Any) { }).signature.params.map(*type) [19:23] rakudo a6d08c: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near "type)"␤» [19:23] *.type [19:23] r: (Str, Int) ~~ (sub (Str, Any) { }).signature.params.map(*.type) [19:23] rakudo a6d08c: ( no output ) [19:23] panda: 3a31d6c | moritz++ | lib/Panda/ (2 files): [19:23] panda: PERL6LIB separator is OS sensitive [19:23] panda: review: https://github.com/tadzik/panda/commit/3a31d6ceef [19:23] r: say so (Str, Int) ~~ (sub (Str, Any) { }).signature.params.map(*.type) [19:23] rakudo a6d08c: OUTPUT«False␤» [19:23] looks correct [19:23] oh, so I don't need Z~~ [19:23] r: say so (Str, Int) Z~~ (sub (Str, Any) { }).signature.params.map(*.type) [19:23] rakudo a6d08c: OUTPUT«False␤» [19:24] r: say so (Str, Int) ~~ (sub (Str, Int) { }).signature.params.map(*.type) [19:24] rakudo a6d08c: OUTPUT«True␤» [19:24] r: say so (Str, Int) Z~~ (sub (Str, Int) { }).signature.params.map(*.type) [19:24] rakudo a6d08c: OUTPUT«False␤» [19:24] <[Coke]> moritz++ ! [19:24] [Coke]: it still uses env though [19:24] yay fixed~ [19:24] ! [19:25] r: https://gist.github.com/3029304 [19:25] rakudo a6d08c: OUTPUT«1..9␤ok 1 - lives 1␤ok 2 - ␤ok 3 - ␤ok 4 - ␤ok 5 - lives 2␤ok 6 - ␤ok 7 - ␤ok 8 - ␤ok 9 - ␤» [19:25] thus, Typed::Subroutines comes to life [19:26] [Coke]: does panda work now? or does it need set VAR=$val; ... ? [19:26] and I guess you can't use ; either to separate statements udner windows... [19:26] *** MayDaniel left [19:26] oh, but we can now set %*ENV [19:27] which we couldn't back in the days [19:27] lemme try [19:27] <[Coke]> ah, that is the best option. ja. [19:27] <[Coke]> I assumed it didn't work, still. ;) [19:28] *** adu left [19:28] oh, Podbug :) [19:29] https://gist.github.com/3029325 [19:30] but, but both *are* nice subroutines, no? :-) [19:31] well, true [19:31] now, a test [19:32] r: https://gist.github.com/3029332 [19:32] there we are [19:32] rakudo a6d08c: OUTPUT«ok 1 - ␤not ok 2 - ␤» [19:33] * tadzik -bot reports rakudobug [19:38] *** MayDaniel joined [19:38] <[Coke]> moritz: I see shell "rm -r", "rm -rf" [19:39] [Coke]: :( [19:40] <[Coke]> moritz: I assume those are for cleanup and matter less. [19:40] panda: 68dc4fe | moritz++ | lib/Panda/ (2 files): [19:40] panda: set environment variables through %*ENV [19:40] panda: [19:40] panda: more portable that way, hopefully [19:40] panda: review: https://github.com/tadzik/panda/commit/68dc4fe6b4 [19:40] <[Coke]> ooh, thanks. [19:40] <[Coke]> hee. [19:41] moritz++ # ooh, good one [19:41] <[Coke]> ok, now, instead of complaining about 'e', it complains about 'p'. ;) [19:41] <[Coke]> checking. [19:42] ecosystem: 42762f0 | tadzik++ | META.list: [19:42] ecosystem: Add Typed::Subroutines [19:42] ecosystem: review: https://github.com/perl6/ecosystem/commit/42762f0f34 [19:44] r: anon subset MyS where 1; say MyS [19:44] rakudo a6d08c: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&MyS' called (line 1)␤» [19:45] <[Coke]> moritz: hurm. if I drop down the shell and cd to the File__Tools dir, then perl6 --target=pir --output=blib/lib/File/Find.pir lib/File/Find.pm works. [19:45] <[Coke]> but called from inside panda, I get the 'p' error. [19:46] moritz: I think I tried that as well [19:46] tadzik: I think I have a fix here locally [19:46] oh awesome! [19:46] tadzik: it works, but I'm still waiting for the spectest run to finish [19:46] I'm giving you a commit bit to Typed::Subroutines Justin Case :) [19:47] but for now I'm going to catch some sleep [19:47] * moritz should do that too [19:48] see you tomorrow, Awesome Brigade! [19:48] <[Coke]> AHA. [19:48] *** kaare_ left [19:49] <[Coke]> well, ok, not aha. but if I remove the "and die" from the shell, it actually gets further, runs tests, which pass. [19:49] <[Coke]> the result from the execution is 1, [19:51] <[Coke]> but the actual command /is/ failing. more digging. [19:54] rakudo/nom: 1edbd37 | moritz++ | / (2 files): [19:54] rakudo/nom: anonymous subset types with "subset :: where ...;" [19:54] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1edbd3732e [19:56] *** MayDaniel left [20:01] <[Coke]> r: die 1,2 [20:01] rakudo a6d08c: OUTPUT«12␤ in block at /tmp/lqsffHIYMq:1␤␤» [20:03] <[Coke]> moritz: the "and die a, b" syntax in lib/Panda/Builder.pm isn't showing the "b" portion of the error. changing it to a ~ to stringify it causes it to be printed out. [20:04] *** adu joined [20:04] r: 1 and die 1, 2 [20:04] rakudo a6d08c: OUTPUT«12␤ in block at /tmp/0skemc5S1l:1␤␤» [20:04] huh. [20:05] *** bruges left [20:06] <[Coke]> r: die 1, [20:06] rakudo a6d08c: OUTPUT«1abc␤ in block at /tmp/pgxSksgQk7:1␤␤» [20:06] *** bruges joined [20:07] <[Coke]> anyway, getting a more useful error message now. [20:07] *** GlitchMr left [20:08] lib/Panda/Builder.pm defines a local &die ? [20:10] oh [20:10] it might [20:10] line 9 [20:10] <[Coke]> oh. my more dteailed error message is that I thought I was using a regular die. :P [20:11] but it looks like it's used correctly [20:11] with two arguments [20:11] <[Coke]> that die takes 3 args, but we're calling it with only 2. [20:12] <[Coke]> ... whoops, you're right. [20:13] is the die message coming back as "%s stage failed for %s: %s", then? [20:13] (that's what the X::Panda exception should be displaying, iiuc) [20:15] <[Coke]> gist.github.com/3029461 [20:16] yes, "build stage failed for File::Tools: Failed building lib/File/Find.pm" [20:16] but it's not the first error [20:16] I guess the one before is from not finding 'rm' ? [20:19] anyway, sleep & [20:19] pmichaud: installing libreadline6-dev does not help. For rebuilding Parrot, the --gen-parrot option is the correct way, right ? [20:20] sisar: yes, libreadline-dev has to be installed at the time Parrot is built. (more) [20:20] --gen-parrot doesn't rebuild Parrot on its own if it thinks the existing parrot binary is good enough. To force a rebuild of Parrot, you should "cd parrot" and "make realclean" [20:21] then go back to the rakudo directory and do the Configure.pl step [20:21] pmichaud: oh, ok. Thanks. [20:21] oh, and you probably need to rm -rf the 'install/' directory [20:22] ok [20:29] *** Entonian joined [20:30] *** Entonian left [20:35] *** adu left [20:52] lol, I totally blogged! \o/ http://strangelyconsistent.org/blog/another-month-of-blogging-adventure-game-here-i-come [20:52] and there's more where that came from. I just need to land a my apartment, then you'll get July 1, 2012. [20:53] s/land a my/land in my/ # French, what are you doing to me? [20:56] & [20:57] * diakopter tries to learn how to cherry-pick a commit from a branch into master [21:00] *** birdwindupbird left [21:02] *** birdwindupbird joined [21:02] <[Coke]> diakopter: do you have the commit hash? [21:02] yes [21:02] * [Coke] can spoil it for you if you like. [21:02] sure :) [21:03] <[Coke]> git checkout master; git cherry-ick [21:03] <[Coke]> *pick ! [21:03] * diakopter doesn't really like cherries either [21:04] [Coke]: thx [21:04] so if I eventually merge the branch with master, there won't be a problem I assume [21:07] <[Coke]> I think git is smart enough, ja. [21:07] *** adu joined [21:11] *** zby_home left [21:13] * diakopter likes Github's app for Windows; it's a good substitute for the things at which TortoiseGit is broken. [21:13] for my simple usage. [21:17] *** birdwindupbird left [21:18] git is indeed smart enough. cherry-picking is essentially idempotent. [21:23] *** vmspb left [21:24] masak++, another month of blogging, writing a big game in Perl6, giving away prizes, hell yeah !! :-D [21:24] *** PacoAir left [21:26] awesome begets awesome. I've had an awesome weekend in Strasbourg. [21:27] eiro++ fpw++ liz++ wendy++ mst++ jnthn++ tadzik++ # and probably lots of others that I forget now [21:27] Good evening, #perl6 [21:27] jnthn! \o/ [21:27] * jnthn is safely back from the French Perl Workshop [21:27] My laptop, sadly, did not survive the trip, however. [21:27] greetings [21:28] ingy! \o/ [21:28] me is on his way back from YAPC::NA [21:28] ooh, I just made the rakudo repl freak out [21:28] r: my num $ [21:28] rakudo 1edbd3: ( no output ) [21:28] * masak mourns jnthn's laptop [21:28] * ingy took the long way home [21:36] *** adu left [21:44] notable advantage of the 'done' style of testing: you can have a variable number of tests, essentially running some tests only if prior tests pass. [21:45] *** wooden joined [21:45] *** wooden left [21:45] *** wooden joined [21:47] pmichaud: yes, it worked. I now have a much usable REPL. [21:48] *** M_o_C joined [21:55] \o/ masak, jnthn [21:56] masak: that's also what 'skip' is for, just saying [21:57] aye. [21:57] you're not wrong. [21:57] :) [21:59] *** rjbs left [21:59] <[Coke]> jnthn: welcome back. [22:00] [Coke]: Thanks :) [22:01] <[Coke]> moritz++ is getting us closer to winderspanda. [22:02] winderspanda? [22:02] oh [22:03] windows panda [22:03] :) [22:06] *** M_o_C left [22:10] *** rjbs joined [22:11] is this one in RT? [22:11] $ perl6 -e 'multi MAIN("foo bar") {}' foo bar [22:11] Usage: [22:11] -e '...' foo bar [22:13] lol, I blogged! http://strangelyconsistent.org/blog/july-1-2012-hanoi-as-a-black-box [22:14] moritz: check out https://github.com/masak/crypt/blob/2fecc9137c1a24bcb20eb8527c7e86a39ee20a1c/crypt.pl -- I'm very happy with the fruits of your exceptions labor, and it feels wonderful to use it in app code. [22:15] sorear: I'm very interested in getting crypt.pl to work with Niecza and keep developing on both impls in parallel. but I'm unlikely to back out of the exceptions stuff, and that seems to be the main blocker. [22:16] * [Coke] wonders if shell() is broken on windows. :P [22:16] sorear: I also got a ?? !! parsing error on line 71 that doesn't look wrong to me. curious to hear what you think about it. https://github.com/masak/crypt/blob/2fecc9137c1a24bcb20eb8527c7e86a39ee20a1c/crypt.pl#L71 [22:16] (on Niecza) [22:20] tadzik: I saw red pandas in 成都 -- they look more like red raccoons, to be honest. none of them did any twittering or tweeting in our precense. they moved slowly and weren't as adorably cute as the pandas. [22:20] presence* [22:25] masak++ #blog post and hanoi game :) [22:26] :) [22:28] oh crap, someone changed the API of &dir and now my blogging software needs updating... [22:34] *** kst left [22:35] by the way, the "Devastate The Adventure Game" contest, it goes for the Hanoi game, too. make it crash in some interesting way, going through its external interface. [22:37] *** larks left [22:45] ;) [22:46] * jnthn gets some rest [22:46] Will be back to hacking on stuff tomorrow :) [22:51] *** fridim_ left [22:52] *** kst joined [22:56] darn, just missed jnthn++ :( [23:07] *** thelazydeveloper left [23:11] <[Coke]> r: goto HECK [23:11] rakudo 1edbd3: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&HECK' called (line 1)␤Undefined routine '&goto' called (line 1)␤» [23:14] *** spider-mario left [23:20] *** gesh left [23:25] *** Chillance left [23:42] 'night, #perl6 [23:47] *** seldon left