[00:01] *** virtualsue left [00:07] *** vendethiel- left [00:09] *** pmurias left [00:12] *** vendethiel joined [00:19] *** beck_ joined [00:21] *** BenGoldberg joined [00:22] *** denis_boyun_ left [00:30] m: my %hash=(a=>"A-key"); say "GOOD" if (%hash:exists && True) [00:30] *** Alula left [00:30] rakudo-moar 91d899: OUTPUT«GOOD␤» [00:30] m: my %hash=(a=>"A-key"); say "GOOD" if (True && %hash:exists) [00:30] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/Bjg9uQhlGj␤You can't adverb that␤at /tmp/Bjg9uQhlGj:1␤------> ; say "GOOD" if (True && %hash:exists⏏)␤ expecting any of:␤ pair value␤» [00:34] *** raiph joined [00:35] *** vendethiel left [00:40] *** vendethiel joined [00:41] Just read the S03, the adverb being applied to the operator..(I thought they were tighter for some reason) [00:44] *** Alula joined [00:58] it modifies the loosest operator tighter than comma [00:59] m: my %hash = a => "A-key"; say "GOOD" if True and %hash:exists [00:59] rakudo-moar 91d899: OUTPUT«GOOD␤» [00:59] good place for the loose variant of && [01:01] and you don't need any of those superstitious parens :) [01:17] I had just chosen the parens form over 'and' out of superstition. Changing it since you called me out on it. (looks much better now) [01:19] *** rurban left [01:22] *** vendethiel left [01:31] *** ron1230 joined [01:34] Forgot to mention ... Could someone please drop an atomic bomb or two on Israel and blow up 1 WTC / the Freedom Tower. Microwaving babies me also be a relavant answer to some of the targeted abuse I see. [01:34] *** ron1230 left [01:40] *** dayangkun joined [01:46] classic ron, lol [01:48] *** ssqq joined [01:59] *** vendethiel joined [02:03] *** ron1230 joined [02:05] s/relavant/relevant/ [02:06] *** ron1230 left [02:11] *** jimmy__ joined [02:11] moritz: 7th annual edition? Isn't 6th? [02:17] *** perltricks left [02:17] *** jimmy__ is now known as JimmyZ_ [02:24] *** vendethiel left [02:32] :m my $x = 'str'; given $x { when 5 { say 'int' } when 'str' { say 'str' }} [02:34] m: my $x = 'str'; given $x { when 5 { say 'int' } when 'str' { say 'str' }} [02:34] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/IPit9TR4zM␤Missing semicolon.␤at /tmp/IPit9TR4zM:1␤------> 'str'; given $x { when 5 { say 'int' } ⏏when 'str' { say 'str' }}␤ expecting any of:␤ postfix␤ …» [02:36] m: my $x = 'str'; given $x { when 'str' { say 'str' } when 5 { say 'int' }} [02:36] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/zhxDFt5MRU␤Missing semicolon.␤at /tmp/zhxDFt5MRU:1␤------> r'; given $x { when 'str' { say 'str' } ⏏when 5 { say 'int' }}␤ expecting any of:␤ postfix␤ …» [02:36] m: my $x = 'str'; given $x { when 5 { say 'int'; }; when 'str' { say 'str'; };} [02:36] rakudo-moar 91d899: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏str' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:13766␤ in sub infix:<==> at src/gen/m-CORE.setting:4599␤ in sub infix:<==> at src/gen/m…» [02:37] oooo, that seems bad [02:40] m: say "str" ~~ 5 [02:40] rakudo-moar 91d899: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏str' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:13766␤ in sub infix:<==> at src/gen/m-CORE.setting:4599␤ in sub infix:<==> at src/gen/m…» [02:42] m: my $x = 'str'; given $x { when 'str' { say 'str' }; when 5 { say 'int' }} [02:42] rakudo-moar 91d899: OUTPUT«str␤» [02:45] ugexe: predicate with Str should at first if *$_* maybe is Str. [02:46] oh, please file a bug :P [02:47] m: my str $x = 'str'; given $x { when 5 { say 'int'; }; when 'str' { say 'str'; };} [02:47] rakudo-moar 91d899: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏str' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:13766␤ in sub infix:<==> at src/gen/m-CORE.setting:4599␤ in sub infix:<==> at src/gen/m…» [02:47] m: my Str $x = 'str'; given $x { when 5 { say 'int'; }; when 'str' { say 'str'; };} [02:47] rakudo-moar 91d899: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏str' (indicated by ⏏)␤ in method Numeric at src/gen/m-CORE.setting:13766␤ in sub infix:<==> at src/gen/m-CORE.setting:4599␤ in sub infix:<==> at src/gen/m…» [02:49] m: my Str $x = 'str'; given $x { when 'str' { say 'of course its a str' } } [02:49] rakudo-moar 91d899: OUTPUT«of course its a str␤» [02:50] m: my Str $x = 'str'; given $x { when Int { say 'huh' }; when 'str' { say 'of course its a str' } } [02:50] rakudo-moar 91d899: OUTPUT«of course its a str␤» [02:50] m: my Str $x = 'str'; given $x { when Int { say 'huh' } } [02:50] rakudo-moar 91d899: ( no output ) [02:50] m: my $x = '123'; given $x { when 5 { say 'huh' } } [02:50] rakudo-moar 91d899: ( no output ) [02:50] m: my $x = '123'; given $x { when 123 { say 'huh' } } [02:50] rakudo-moar 91d899: OUTPUT«huh␤» [02:51] m: my $x = '123'; given $x { when False { say 'huh' } } [02:51] rakudo-moar 91d899: ( no output ) [02:51] m: say so 'str' ~~ Int; [02:51] rakudo-moar 91d899: OUTPUT«False␤» [02:52] *** chenryn joined [03:12] m: say rx/ 'abc' / ~~ 123; [03:12] rakudo-moar 91d899: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in sub infix:<==> at src/gen/m-CORE.setting:4599␤ in method ACCEPTS at src/gen/m-CORE.setting:4370␤ in block at /tmp/HyVppHmc24:1␤␤» [03:14] *** Mso150_s joined [03:30] *** noganex_ joined [03:34] *** noganex left [03:48] *** Mso150_s left [03:52] m: my @a = (^5).pick(*); my $p = Promise.new; for ^4 -> $id { my @b = @a; start { say "$id begun"; repeat { print $id; @b .= pick(*) } until [<=] @b; $p.keep(@b); say " $id done" } }; say 'await'; say await $p; # concurrent bogosort! [03:52] rakudo-moar 91d899: OUTPUT«0 begun␤01 begun␤12 begun␤2await␤3 begun␤3102130210321032103213021032132013201320132032013201320123102301230123012301203123012301231021302130213021302310231020312032031230213023021302130213021302130213021302130213021320132013201320312031203120312…» [03:52] m: my @a = (^5).pick(*); my $p = Promise.new; for ^4 -> $id { my @b = @a; start { say "$id begun"; repeat { print $id; @b .= pick(*) } until [<=] @b; $p.keep(@b); say " $id done" } }; say 'await'; say await $p; # concurrent bogosort! [03:52] rakudo-moar 91d899: OUTPUT«0 begun␤01 begun␤12 begun␤2await␤3 begun␤0132103120312302310130 2 done␤13010130 1 2 3 4␤01» [03:54] *** kurahaupo left [03:57] *** kurahaupo joined [03:57] *** kurahaupo left [03:58] *** vendethiel joined [04:30] *** anaeem1 joined [04:38] *** perturbation left [04:41] *** vendethiel left [04:43] *** Woodi left [04:43] *** Woodi joined [04:51] *** chenryn left [04:51] *** mr-foobar left [04:51] *** mr-fooba_ joined [04:54] *** kaleem joined [05:02] *** kaare_ joined [05:06] *** vendethiel joined [05:06] *** bjz_ left [05:07] *** chenryn joined [05:07] *** dayangkun left [05:08] *** bjz joined [05:18] *** bjz left [05:19] *** kaleem left [05:28] *** vendethiel left [05:29] *** ssqq left [05:33] good morning [05:36] *** vendethiel joined [05:40] *** BenGoldberg left [05:55] good morning [05:57] *** vendethiel left [05:58] *** kaare_ left [06:01] *** telex left [06:02] *** telex joined [06:11] *** mr-fooba_ left [06:18] *** [Sno] left [06:19] *** raiph left [06:22] *** mr-foobar joined [06:22] *** kaare_ joined [06:30] *** vendethiel joined [06:50] *** cognominal left [06:52] *** vendethiel left [06:56] *** cognominal joined [07:10] *** kaleem joined [07:17] *** ssqq joined [07:17] :m package Foo::Bar {}; package Bar is Foo {}; [07:18] m: package Foo::Bar {}; package Bar is Foo {}; [07:18] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/DROS8jkoGD␤Foo does not support inheritance, so Bar cannot inherit from it␤at /tmp/DROS8jkoGD:1␤------> ␤» [07:18] How to declar a *inheritable* package? [07:20] *** dj_goku left [07:20] *** [Sno] joined [07:26] *** jluis joined [07:31] How to declare *inheratable* package? [07:34] *** dj_goku joined [07:35] *** denis_boyun joined [07:36] *** KCL_ joined [07:44] ssqq: "class" [07:45] You need class in both places instead of package there. [07:45] m: class Foo {}; package Bar is Foo {}; [07:45] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/vEkFSoZGXT␤Method 'add_parent' not found for invocant of class 'Perl6::Metamodel::PackageHOW'␤at /tmp/vEkFSoZGXT:1␤------> ␤» [07:45] *both* [07:46] m: class Foo {}; class Bar is Foo {}; [07:46] rakudo-moar 91d899: ( no output ) [07:47] In Perl 6 we have a number of package declarators (package, module, class, role, grammar) which provide different behaviors. [07:48] *** FROGGS joined [07:50] :m class Foo { our $foo = 1; }; class Bar is Foo { say Foo::<$foo> } [07:50] :jnthn thanks. [07:50] m: class Foo { our $foo = 1; }; class Bar is Foo { say Foo::<$foo> } [07:50] rakudo-moar 91d899: OUTPUT«1␤» [07:52] *** bjz joined [07:56] m: my %hash = :a; if %hash:exists { say '%hash exists " } [07:56] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/FEEmjmaFwr␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/FEEmjmaFwr:1␤------> ash:exists { say '%hash exists " }⏏␤ expectin…» [07:56] m: my %hash = :a; if %hash:exists { say '%hash exists ' } [07:56] rakudo-moar 91d899: OUTPUT«%hash exists ␤» [07:57] The syntax of *%hash:exists* is come from NQP? [07:57] *** gfldex joined [07:57] No, was spec'd in Perl 6 from the start [07:57] NQP doesn't support it. [08:03] jnthn: I could find this symbol in CORE::.keys; *exists* is a internal attribute of Hash? [08:03] I could not find it [08:03] tadzik: fyi supernovus changed the HTTP::Easy default host to 0.0.0.0 (any interface), so deploying Bailador app to Heroku works now out of the box :-) https://github.com/pnu/heroku-buildpack-rakudo#usage [08:06] *** zakharyas joined [08:07] *** virtualsue joined [08:08] Note that Rakudo does not yet implement operator adverbs. As a workaround you can use the non-standard exists method. [08:09] jnthn: How to get all predeclared *package-name* of perl6? [08:11] m: say GLOBAL::.keys [08:11] rakudo-moar 91d899: OUTPUT«␤» [08:12] hm [08:13] moritz: Where could learn more NPQ sepe or documents? [08:13] sepe = spec [08:13] what do you want to learn? [08:14] JimmyZ_: yes, I think NQP should more easier than perl6. [08:14] ssqq: https://github.com/edumentab/rakudo-and-nqp-internals-course is one of the better learning resources [08:14] it's harder actually [08:15] its structure is simpler, which makes it easier to understand, but you have to do more yourself [08:15] if you don't want to hack a compiler, then nqp is not your course [08:17] JimmyZ_: I think Perl 6 is only suitable language to hack compiler. [08:17] m: say CORE::.keys [08:17] rakudo-moar 91d899: OUTPUT«%DEPRECATIONS @UNITS $init-time-num %FILETEST-HASH %CLEAN-PARTS-NUL &zip %pvalcodecache %propcodecache $?TABSTOP $UINT64_UPPER $sprintfHandlerInitialized $default &samewith &lastcall &nextsame &callsame &nextwith &callwith &redo &next &last &return &return…» [08:17] oh, packages [08:18] m: say CORE::.grep(!*.value)>>.key [08:18] rakudo-moar 91d899: OUTPUT«%DEPRECATIONS @UNITS $init-time-num %FILETEST-HASH %CLEAN-PARTS-NUL &zip %pvalcodecache %propcodecache $?TABSTOP $UINT64_UPPER $sprintfHandlerInitialized $default &samewith &lastcall &nextsame &callsame &nextwith &callwith &redo &next &last &return &return…» [08:18] *** darutoko joined [08:18] oh? :) [08:18] ssqq: yeah, you can learn what you chioce :) [08:18] m: say CORE::.grep({ !.value.DEFINITE })>>.key [08:18] rakudo-moar 91d899: OUTPUT«%DEPRECATIONS @UNITS $init-time-num %FILETEST-HASH %CLEAN-PARTS-NUL &zip %pvalcodecache %propcodecache $?TABSTOP $UINT64_UPPER $sprintfHandlerInitialized $default &samewith &lastcall &nextsame &callsame &nextwith &callwith &redo &next &last &return &return…» [08:18] *** rurban joined [08:19] hmm [08:19] m: say CORE::.keys.grep(/^\w/) # :P [08:19] rakudo-moar 91d899: OUTPUT«Mu Any Cool Nil Attribute Signature Parameter Code Block Routine Sub Method Submethod Regex Str Int Num Parcel Iterable Iterator ListIter List Array LoL EnumMap Hash Capture ObjAt Stash Scalar Proxy Grammar Junction PROCESS Bool False True ContainerDescrip…» [08:20] *** Isp-sec joined [08:22] Note taht :exists is a named argument to indexing an array. [08:22] Not a package. [08:22] Also, Rakudo very much does implemnt operator adverbs and has for a while now...so guess something is outdated... [08:22] teaching & [08:23] m: say CORE::.exist('Mu'); [08:23] rakudo-moar 91d899: OUTPUT«No such method 'exist' for invocant of type 'PseudoStash'␤ in block at /tmp/T89vh8k8we:1␤␤» [08:23] m: say CORE::.exists('Mu'); [08:23] rakudo-moar 91d899: OUTPUT«No such method 'exists' for invocant of type 'PseudoStash'␤ in block at /tmp/dI_9Xsp5Y4:1␤␤» [08:25] m: say CORE:::exists [08:25] rakudo-moar 91d899: OUTPUT«True␤» [08:25] really teaching, now everyoen is here... :) & [08:27] happy teaching :) [08:27] *** yeahnoob joined [08:27] *** yeahnoob left [08:27] *** yeahnoob joined [08:31] *** abraxxa joined [08:37] *** KCL_ left [08:40] jnthn: Where could get a NQP interpreter? [08:40] nqp-m: say('hi ssqq'); [08:40] nqp-moarvm: OUTPUT«hi ssqq␤» [08:41] *** beck_ left [08:42] moritz: O, rakudo have buit-in NQP interpreter. [08:42] ssqq: well, if you build rakudo, you first build nqp [08:42] ssqq: though of course you can download and build nqp on its own too [08:46] *** ssqq left [08:47] *** vendethiel joined [08:51] morning, #perl6 [08:51] *** Mso150 joined [08:52] * masak feels sorry for ron1230 :( [08:56] *** dagerik joined [08:56] use v6;my @f=1,1,{$^a+$^b}...*;say @f[42]~".html"; [08:56] what does this do [08:57] m: use v6;my @f=1,1,{$^a+$^b}...*;say @f[42]~".html"; [08:57] rakudo-moar 91d899: OUTPUT«433494437.html␤» [08:57] *** sergot joined [08:57] dagerik: does "it prints '433494437.html'" answer your question? [08:57] hi o/ [08:58] how does it print that. i dont know perl. where does it get numbers from [08:59] dagerik: this article explains it: http://justrakudoit.wordpress.com/2010/08/28/the-serial-operator-and-memoization/ [09:02] less test failures in lwp-simple hopefully [09:03] \o/ [09:04] sergot: it would be awesome if you could write a post for the Perl 6 advent calendar about your gsoc project [09:09] *** vendethiel left [09:10] moritz: with pleasure :) [09:12] *** pecastro_ left [09:14] moritz: how many posts do we already have? [09:16] sergot: 9 [09:16] I will write it, should I send it to you then? [09:16] or how does it work? [09:16] sergot: no, you should claim a day in the perl6/mu/ repo in misc/perl6advent-2014/schedule [09:16] sergot: and I'll send you an invitation for the blog system [09:17] *** vendethiel joined [09:17] moritz++ great, it is clear now :) [09:18] *** virtualsue left [09:21] *** dakkar joined [09:22] *** ptc_p6 joined [09:32] mu: 306d7ad | sergot++ | misc/perl6advent-2014/schedule: [09:32] mu: p6 advent calendar post added [09:32] mu: review: https://github.com/perl6/mu/commit/306d7add7c [09:37] sergot: btw you can write your post whenver you want, and schedule it for publication within wordpress [09:38] *** vendethiel left [09:40] *** vendethiel joined [09:41] moritz: awesome :) [09:41] thanks! [09:42] *** yeahnoob left [09:42] *** dagerik left [09:57] *** ptc_p6 left [09:57] *** ptc_p6 joined [09:59] *** myp left [10:03] *** Isp-sec left [10:04] *** fhelmberger joined [10:05] *** myp joined [10:09] *** kurahaupo joined [10:12] *** Ven joined [10:12] *** virtualsue joined [10:12] moritz++ [10:12] also, oyez, #perl6 [10:12] *** virtualsue left [10:16] *** virtualsue joined [10:16] Salut, Ven! [10:19] *** Ugator joined [10:26] *** vendethiel left [10:29] *** JimmyZ_ left [10:31] o/ [10:32] *** araujo joined [10:34] *** mvuets joined [10:37] *** jluis left [10:37] *** daxim joined [10:37] connection refused when running panda. known? [10:38] *** bjz left [10:38] *** Mso150 left [10:40] it's come up a bunch of times in the recent days [10:40] it seems to be due to trying the AAAA first and not falling back to the A record when we get a connection refused [10:41] and i have no idea why the server isn't listening on AAAA [10:41] *** jluis joined [10:42] * masak learns about 'oyez' [10:43] *** vendethiel joined [10:43] I recognize it as (pretty old) French. Does it have more recent use too? [10:45] seems to be used in English courts. [10:45] cognate with Latin 'audire'. [10:46] and spanish oír [10:47] Right, that makes sense [10:48] osfameron: oíc [10:48] :D [10:48] Trust the English to keep random bits of French hanging around =D [10:49] from the disgusting-sentences-you-did-not-expect-to-hear-when-you-woke-up-this-morning department. [10:49] :P [10:50] arnsholt: it is old french, yes :) [10:51] chivalry time stuff... [10:51] (I once looked at a list of "french words used in english", I couldn't recognize half of them) [10:54] does someone want to explain value types to theo on the mailing list? [10:55] * Ven checks the mailing lists [10:57] haha. [11:02] *** pecastro joined [11:03] * masak pens an answer [11:05] *** noganex joined [11:06] *** vendethiel left [11:07] sent. [11:08] *** noganex_ left [11:08] thanks [11:14] *** rindolf joined [11:15] *** pmurias joined [11:19] *** |Tux| left [11:25] pnu: wow, awesome :) [11:27] tadzik: can you have a look at why the panda metadata server doesn't respond to v6 connections? [11:27] timotimo: yeah [11:27] thanks [11:27] *** TuxCM joined [11:27] fixed [11:27] that was quick [11:28] why didn't you do that like four days ago? :) [11:28] I did :) [11:28] 'tis a fragile thing [11:31] what makes it so fragile? and how hard would it be to have a fallback server somewhere? [11:31] well, mostly feather reboots make it fragile [11:32] does feather have systemd? you could set it up to run the server even on your uid/gid [11:32] and it's still just a starman server running on my account, which I restart after every reboot [11:32] hm [11:33] i think someone said we would have that server run on port 80 on "the regular" web server at some near point [11:34] and of course we'll have cpanda soon-ish [11:35] huh [11:36] installing gtk-simple with panda works, with ufo it errors out either when building or when running tests [11:39] *** rindolf left [11:39] *** rindolf joined [11:42] *** noganex_ joined [11:42] now i'm annoyed [11:43] i was under the impression that GTK::Simple was broken and i needed to find a workaround [11:44] *** kaleem left [11:44] gtk-simple: 457871d | (Timo Paulssen)++ | lib/GTK/Simple.pm6: [11:44] gtk-simple: remove superfluous .so from library name [11:44] gtk-simple: review: https://github.com/perl6/gtk-simple/commit/457871d1e0 [11:44] *** jluis left [11:44] *** darutoko left [11:45] *** noganex left [11:49] *** darutoko joined [11:50] *** jluis joined [11:51] nqp-js: b438b9a | (Pawel Murias)++ | / (3 files): [11:51] nqp-js: Avoid having a mini-nqpmo, concatentate the nqpmo in the standard manner. [11:51] nqp-js: review: https://github.com/pmurias/nqp-js/commit/b438b9a5b4 [11:51] nqp-js: d212c74 | (Pawel Murias)++ | src/core/NQPMu.nqp: [11:51] nqp-js: Revert "Temporarly add nqp-js hacks to the setting." [11:51] nqp-js: [11:51] nqp-js: This reverts commit b3387d74ff2173ed852530585ae9b587cd7e4274. [11:51] nqp-js: review: https://github.com/pmurias/nqp-js/commit/d212c74895 [11:51] nqp-js: d2fb4b8 | (Pawel Murias)++ | tools/build/ (2 files): [11:51] nqp-js: Hardcode less things while building mininqpmo. [11:51] nqp-js: review: https://github.com/pmurias/nqp-js/commit/d2fb4b8c64 [11:51] nqp-js: 7368510 | (Pawel Murias)++ | / (3 files): [11:51] nqp-js: Stop calling nqpmo "mininqpmo". [11:51] nqp-js: review: https://github.com/pmurias/nqp-js/commit/7368510b64 [11:51] i just made a fresh rakudo moar + panda build via rakudobrew++ [11:51] 30 Nov 2014 20:12Z <[Coke]> mvuets: using .tell is more likely to get heard later. [11:51] and panda crashes: http://paste.scsys.co.uk/449465 [11:52] is it me or something new? [11:52] *** Ven left [11:52] [Coke]++ noted, thanks (-: [11:55] *** chenryn left [11:59] *** pecastro left [11:59] *** pecastro_ joined [12:05] *** bjz joined [12:05] *** atta_ left [12:05] *** atta joined [12:10] *** vendethiel joined [12:11] rakudobrew could get a "share to twitter" feature [12:13] I am finding that rakudo isn't practical for a CGI webapp as each process uses too much memory :( [12:13] carlin: :( how much does it use? Which backend? [12:13] *** JimmyZ_ joined [12:14] carlin: it is! [12:15] carlin: why would you do CGI webapps? it's 2014, almost 2015. that's about 15 years after the point where nobody would ever want to use CGI for anything ever [12:15] moar backend, each process uses around 70MB [12:15] carlin: https://github.com/unbit/moarvm-uwsgi-skel [12:15] are you for real? [12:15] that used to be more! [12:16] a rakudo-moar process is 120 megabytes of ram on my system :( [12:17] so ~30 concurrent requests will bring down the server, whereas with P5 and python 100s of requests don't even register [12:18] (server has 2GB RAM) [12:18] yeah [12:18] we're aware rakudo uses more ram than is sensible [12:18] on the other hand [12:18] you can have a rakudo process run with multiple processes [12:18] and do async I/O [12:18] so you don't need the same amount of processes [12:19] yeah there are definitely a better way to do it [12:19] python and perl5 do have some async i/o, too, but it can still bottlenecked on CPU [12:19] just the simplest possible thing that works doesn't work [12:19] basically every other way is better, like FastCGI [12:19] *** noganex joined [12:19] and FastCGI isn't even that good [12:20] are there any plans regarding the memory usage? what makes it so high? [12:21] several things [12:22] a good source of memory usage reduction had been to only deserialize objects, static frames and codes, types and stuff when they are used for the first time [12:22] *** noganex_ left [12:22] i'm hoping we can get some more usage reduction out of that [12:22] yeah, like lazy_load, lazy-deserialization, NSA, spesh [12:23] NSA and spesh don't help reduce the minimum memory usage [12:23] actually, i'd argue spesh increases it [12:23] but it shouldn't be very noticable [12:23] um [12:23] i may be mistaken [12:24] and on-stack-allocation frame? [12:24] disabling spesh gets "say 'test'" from 120 megabytes down to 107 megabytes [12:24] JimmyZ_: you mean what we'll get when we have escape analysis? [12:25] leaving spesh on but turning off the jit gets us to 112 megabytes [12:25] timotimo: nope, I mean what brrt ever said [12:25] ah, right [12:25] i thought that was mostly a cpu-time improvement [12:28] *** chenryn joined [12:28] and we don't have static optimizer before writing .moarvm [12:29] which may reduce the size ... [12:29] *** pecastro_ left [12:29] ah, yes [12:30] i was thinking we're probably generating excessive set instructions by having InstructionList objects with a given result_reg and not using the knowledge of that result_reg in the "last" instruction [12:31] *** pecastro joined [12:31] if we have smart static optimizer like GCC :P [12:32] there's no reason why we couldn't have an off-line optimizer [12:33] like a program that loads a .moarvm file, optimizes the bytecode, writes it back [12:33] we could invoke that during installation for excessively big things like the core setting as well as the stage0 [12:33] yup [12:33] *** vendethiel left [12:34] maybe we could make the process that does the optimization "portable" so that it could be moved into moarvm itself at some point [12:35] like: mark it as static optimization or dyn optimization? [12:35] *** vendethiel joined [12:35] that's not what i mean [12:35] our dynamic optimizer should of course always grow, because it has more data to work with [12:36] we don't have the necessary data from the logging stage and the arguments passed when we'd statically optimize [12:46] yeah [12:49] *** mvuets left [12:49] *** mvuets joined [12:51] *** rindolf left [12:52] *** rindolf joined [12:55] *** anaeem1 left [12:57] *** smls joined [12:58] *** rindolf left [12:58] *** rindolf joined [12:59] *** vendethiel left [13:00] *** chenryn left [13:01] moritz: Shouldn't the p6advent post title start with «Day 01 - » ? [13:01] m: rand(1); # (1..N) should probably be (0..^N) [13:01] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/rZptIGSoZ6␤Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick␤at /tmp/rZptIGSoZ6:1␤------> rand⏏(1); # (1..N) should probably be (0..^N)␤» [13:07] *** pecastro left [13:08] *** vendethiel joined [13:10] smls: yes [13:12] *** xinming_ left [13:13] *** xinming joined [13:13] nice post, btw, moritz++ [13:15] thanks [13:17] * [Coke] welcomes our US team back to work today. [13:19] earth rotation temporarily completed [13:20] *** kaleem joined [13:23] *** xinming left [13:24] *** xinming joined [13:26] m: if 1, 2 -> $, $ { ... }; # any way this can be made to work [13:26] rakudo-moar 91d899: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block at /tmp/zckVIq3LGB:1␤␤» [13:27] b2gills: it doesn't make sense, because a two-element list is always True in boolean context [13:28] m: if 1, 2 -> [$a, $b] { .say for $a, $b }; [13:28] rakudo-moar 91d899: OUTPUT«1␤2␤» [13:28] What moritz said, though. [13:29] more simply written as { my ($a, $b) = 1, 2; .say for $a, $b } [13:30] *** vendethiel left [13:31] *** cibs left [13:31] *** cibs joined [13:34] So there is no way to cache two values in the same `if` block. [13:34] ( and have the `if` block actually test the values ) [13:37] b2gills: you haven't told us yet how you want them tested? [13:37] any? or? xor? [13:37] *** pmurias left [13:38] s/any/and/ [13:41] hm, that's an interesting question. i can imagine such pseudo use case: if $a, $b = foo(); !$a && $b > 42 { ... } # where $a and $b are bound to the lexical scope of if [13:42] (well, i stole it from golang) [13:43] *** vendethiel joined [13:48] What is that code supposed to do [13:48] Is the condition the bit after the semicolon? [13:48] yes [13:49] So the idea is to make $a and $b equal to foo(), but only for the purpose of the if [13:49] it's like the first bit in the classic C-loop [13:49] Not globally [13:49] right [13:49] rational: avoid polluting a scope [13:49] *** sven_123_ left [13:49] Not exactly a joy to read, though [13:49] agreed (-: [13:50] if .some.expensive.operations -> $a { if .another-expensive-operation -> $b { $a.say; $b.say }} [13:50] *** sven_123 joined [13:51] Rounin: golang uses that construct mostly for error checking (returned from functions) as it has no exceptions [13:52] Hmmm... [13:52] HMMMM.... [13:52] In my day we returned null if we didn't like something [13:52] what would be a single argument analogue in p6? in p5 it's: if ((my $x = foo()) == 42) { ... } [13:53] *** mvuets left [14:00] Rounin: ... and read the error string from a global variable. Bad old days :-) [14:02] *** noganex_ joined [14:04] moritz: Error string? Just print "Kernel image segmentation 0xFFAAADF09AB09" and no one will dare question it [14:04] *** noganex left [14:04] tadzik: I was wondering about the reasons to make something as vital as panda installation dependent on something as unreliable as a running feather service. [14:05] *** vendethiel left [14:05] m: (if (0, 10).pick -> $x { say $x } else { say 'nope' }) for ^10 [14:05] rakudo-moar 91d899: OUTPUT«nope␤nope␤10␤10␤nope␤nope␤10␤10␤10␤10␤» [14:06] *** onebitboy left [14:06] mvuets: ^^ the arrow syntax does work, and for a single argument it can even makes sense to use it :) [14:07] m: (if (0, 10).pick -> $x { say $x } else { say $x }) for ^10 [14:07] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/lKYVBAQAuE␤Variable '$x' is not declared␤at /tmp/lKYVBAQAuE:1␤------> 10).pick -> $x { say $x } else { say $x⏏ }) for ^10␤ expecting any of:␤ postfix␤» [14:08] m: (if (0, 10).pick -> $x { say $x } else -> $x { say $x }) for ^10 [14:08] rakudo-moar 91d899: OUTPUT«0␤10␤10␤10␤10␤10␤0␤10␤10␤10␤» [14:08] :) [14:09] the nice syntax just doesn't work for storing + comparing [14:09] for that you still have to use if 42 == (my $x = ...) { } [14:09] oh, right [14:10] but there's really a limit for how much sugar you can provide without causing diabetes :-) [14:10] .oO( if 42 == (foo -> $x) { ... } ) [14:10] *** ptc_p6 left [14:12] Perl 5 "solves" it by making variables declared in a block header, lexical to the block. But that's an inconsistency Perl 6 tried to avoid... [14:12] masak: it's only recently unreliable [14:16] *** vendethiel joined [14:20] yes, granted. [14:20] another solution is given foo() -> $x { when 42 { say $x } } [14:21] *** PerlJam joined [14:26] masak: any good esc paper suggestion? [14:27] *** ptc_p6 joined [14:31] *** kaare_ left [14:32] *** onebitboy joined [14:38] *** noganex joined [14:41] #perl6++ (for starting to fill in the advent schedule) [14:41] *** noganex_ left [14:43] PerlJam: will you write the "table of contents" post for this year? [14:43] *** pecastro joined [14:43] sure [14:49] *** pecastro left [14:50] *** pecastro joined [14:50] *** exixt left [14:53] JimmyZ_: maybe http://www.ssw.uni-linz.ac.at/Research/Papers/Stadler14PhD/Thesis_Stadler_14.pdf [14:53] masak: oh, thanks [14:54] pretty big one :) [14:54] and pretty new: May, 2014 [14:54] *** pecastro left [14:57] aye. [14:58] can't vouch for its quality, since I only skimmed it. [14:58] but it looks like it hits some very nice points. [15:02] *** vendethiel left [15:02] <[Coke]> an inline:p5 article would be awesome. [15:02] oh yes [15:03] nine? [15:03] * masak realizes that "nine" would have been the perfect nick around the time of p4-p5 integration [15:09] masak: oh, it also mentioned Allocation Sinking optimization too [15:09] the paper [15:10] 9.2.1 LuaJIT [15:10] *** vendethiel joined [15:11] *** pecastro joined [15:12] *** mvuets joined [15:13] *** onebitboy left [15:14] * mvuets catching up on irc.perl6.org [15:15] *** noganex_ joined [15:16] * jnthn just managed that :) [15:17] Agree that the if thing is probably already at the right level of sugar :) [15:17] Easy to get addicted and want more though :) [15:17] then define custom statement forms :> [15:18] not everything has to be solved in core. [15:18] *** [Sno] left [15:18] Hey, you the macro guy :P [15:18] i have to read up on this arrow operator [15:18] *** noganex left [15:19] Well, it's a way to write a block takng parameters rather tahn an operator [15:19] m: my $lol = -> $a, $b { $a ~ 'wtf' ~ $b }; say $lol('omg', 'bbq') [15:19] rakudo-moar 91d899: OUTPUT«omgwtfbbq␤» [15:20] looks like we can steal many optimization ideas from luajit :P [15:20] yes, it's not an operator so much as the start of a term. [15:21] m: my &b = -> $what { say "look, I'm a $what!" }; b "term" [15:21] rakudo-moar 91d899: OUTPUT«look, I'm a term!␤» [15:21] masak: thank, it really hits some very nice points [15:21] *thanks [15:22] m: my $lol = sub ($a, $b) { $a ~ 'wtf' ~ $b }; say $lol('omg', 'bbq') [15:22] rakudo-moar 91d899: OUTPUT«omgwtfbbq␤» [15:23] is an anonymous sub much different from an arrow block? [15:23] can i call it lambda? [15:23] or closure? [15:23] Yes, in fact -> is parsed in the gramamr by a rule lambda [15:23] It is a closure too [15:23] Tehre are two differences with anonymous sub [15:24] 1) -> blocks are transparent to return [15:24] 2) The default type constraint on a pointy block param is Mu, whereas in a sub it's Any [15:24] Oh, also you can .wrap a Sub, but not a Block. [15:25] ok, it raises even more questions (-: [15:25] i better stop here for now [15:25] thanks for the explanation though! [15:30] *** kaleem left [15:31] *** telex left [15:31] m: my &f = -> $a { say $a; return $a; }; sub test() { &("hello"); say "Got here"; }; test(); [15:31] rakudo-moar 91d899: OUTPUT«Got here␤» [15:32] m: my &f = -> $a { say $a; return $a; }; sub test() { &f("hello"); say "Got here"; }; test(); [15:32] rakudo-moar 91d899: OUTPUT«hello␤» [15:32] * colomon had no idea. [15:32] mvuets++ # asking good questions [15:32] *** telex joined [15:33] Well, you probably did have an idea, just didn't generalize :) [15:33] sub foo() { for @xs -> $x { if $x == 42 { return 'badger' } } [15:34] ;) [15:34] That "obviously" returns from the sub :) [15:34] right [15:34] but it never occurred to me that would be true for any anonymous sub. [15:35] I mean, if you'd asked me how it worked, I'd have probably come up with some sort of BS explanation involving "for" capturing return exceptions and passing them on. [15:39] is there a way to tell if a pipe command is finished before closing it? [15:39] *** kaare_ joined [15:39] on jvm specifically im getting an error with my $handle = pipe($cmd, :r); $handle.close.status; [15:40] although the error is random [15:41] o/ #perl6 [15:42] https://github.com/ugexe/panda/blob/master/lib/Panda/Tester.pm#L27 [15:43] java.lang.IllegalThreadStateException: process hasn't exited [15:45] *** rindolf left [15:50] hoelzro: \o [15:50] hoelzro\ [15:50] hm, right, a process may close its stdout and stderr before actually exiting [15:53] so should it be closing the handle, then waiting for a status? [15:54] *** molaf joined [15:55] *** abraxxa left [15:55] *** rurban left [15:58] *** rindolf joined [15:58] hm, not sure [15:59] *** mr-foobar left [15:59] o/ mvuets, jnthn [16:06] *** rurban joined [16:07] * rjbs looks at travel plans for FOSDEM. :-) [16:07] *** raiph joined [16:10] *** denis_boyun left [16:11] it seems like every call to wval is followed by a set instruction, but the QASTCompilerMAST is already using the target register for both the wval call and the instruction list's target register [16:11] is it too late to suggest an advent topic? [16:11] and do they have to all be implementation specific [16:12] *** bjz left [16:12] I see 3 RT bugs I think are related (#123323, #118705, #123005); do I just add comments to each in RT saying "see also" the other two? [16:12] Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123323 [16:13] Ulti: no and no [16:13] *** bjz joined [16:13] okdeoke, I'll see if the author of BioPerl6 wants to write something about bioinformatics and P6 with me then [16:14] because there is already a lot of nice stuff in core for people doing bioinformatics as well as the ecosystem [16:14] ++Ulti [16:14] Ulti: real world use cases and applications - sounds awesome! [16:14] aye, most advent posts are not about that kind of thing, which possibly makes the advent calendar seem one-sided [16:15] *** treehug88 joined [16:16] like I think you guys perhaps underestimate how utterly useful bag is for someone working in bioinformatics [16:17] * rjbs blinks, realizing Ulti ne Util. :) [16:17] and that not that many languages have counting dictionaries available as core [16:17] especially ones that also have grammar engines too :D [16:18] rjbs yeah it's unfortunate, I'm more chatty and less useful than Util :3 [16:18] *** dwarring left [16:19] I still haven't properly used the nice regex converter Util made for me [16:19] * tadzik grumbles at wordpress [16:20] *** JimmyZ_ left [16:21] hotel & [16:23] preview of the future available: http://perl6advent.wordpress.com/?p=2285&preview=true&preview_id=2285 [16:23] proofreading welcome :) [16:24] Error 404 - Not FoundError 404 - Not Found [16:25] *** sqirrel_ joined [16:25] oh noes [16:25] perhaps it's for editors only, let me provide you with a snapshot somehow... [16:27] ugexe: http://feather.perl6.nl/~tjs/rakudobrew.md is close enough :) [16:27] the funny-looking characters are unicode quotes [16:32] *** FROGGS left [16:36] perl6-roast-data: 1d25fb2 | coke++ | / (4 files): [16:36] perl6-roast-data: today (automated commit) [16:36] perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/1d25fb2aa3 [16:37] tadzik: rakudobrew build panda ? or build-panda in re: to rakudostar? [16:37] *** psch joined [16:38] 'lo #perl6 o/ [16:38] <[Coke]> looks like moar flapped again today on os x. [16:42] tadzik: grammar change suggestions https://gist.githubusercontent.com/ugexe/67eda0aa9c3578615a6a/raw/63ae287c28dcb67affa15fa08443ca81143d821b/gistfile1.txt [16:43] ugexe: third has 'uses' instead of 'use' [16:44] roger that [16:44] what's our vector victor [16:44] ask ron [16:45] *** zoosha_ left [16:46] *** mvuets left [16:46] *** kaleem joined [16:48] *** [Sno] joined [16:49] tadzik: there's a "writer's tools" button below the edit box where you can "get a link without sending an email" [16:50] *** zakharyas left [16:52] *** zoosha joined [16:54] *** anaeem1_ joined [16:54] *** benz_ joined [16:55] *** anaeem1_ left [16:55] *** benz_ left [16:56] can I rely on .keys and .values ordering to be matched? [16:56] <[Coke]> I think so, but use .kv instead. [16:56] well I want each as a different list anyway [17:03] moritz I just put up an issue with SVG not sure if it's me or you ;P [17:05] *** pyrimidine joined [17:09] *** kaleem left [17:14] \o [17:15] *** sqirrel_ left [17:15] m: slurp [17:15] rakudo-moar 91d899: ( no output ) [17:16] *** anaeem1 joined [17:17] *** atroxaper joined [17:17] locally, it fails with «set encoding requires an object with REPR MVMOSHandle» and «slurp($handle,...) [...] deprecated since v2014.10 [...] Please use slurp($path,...) instead.» [17:19] *** anaeem1 left [17:21] *** atroxaper left [17:21] *** vendethiel left [17:25] *** anaeem1_ joined [17:26] *** vendethiel joined [17:27] *** raiph left [17:31] *** fhelmberger left [17:32] <[Coke]> are you running it locally with command line args, or in repl, or? [17:32] perl6 -e 'slurp' does it [17:33] may be picking the wrong multi sub slurp [17:34] in io_operators.pm [17:34] ugexe: both work :) [17:34] (as for build panda) [17:35] ugexe: thanks for the grammar :) [17:36] *** raiph joined [17:41] http://pragmaticperl.com/issues/22/pragmaticperl-22-perl-6-xxi-%D0%B2%D0%B5%D0%BA%D0%B0.html [17:41] long article about Perl 6 in Russian [17:41] looks interesting! [17:43] on the memory usage issue, when I get done debugging my epsilon-removing optimization, NFAs will be about 40% smaller [17:43] that should help startup time too [17:43] TimToady++ [17:44] unfortunately epsilon removal uncovers a bug where something is producing a state with no edges [17:44] Whoops [17:44] so removing an epsilon point to it blows up [17:44] *pointing [17:45] about 2/3s of the epsilon can be removed though, just leaving the ones that describe a state fanout [17:45] which will get us a lot closer to DFAability [17:45] Sounds promising [17:46] We don't want to make them deterministic in all cases though, do we? [17:46] 'sudo cp perl6 /usr/bin' :cringe: [17:46] *** dwarring joined [17:46] there are various considerations [17:47] certainly we can't just do the naïve thing and generate all the states [17:47] Yeah, that's what my memories of finite state automata reminded me [17:47] it would have to cache common states [17:47] and maybe just the first character of a token could usefully use a DFAish mapping to the first set of states without doing the whole thing [17:48] also, DFA interferes with any instrumentation you want to collect along the way, such as which alternative was taken, or what was the longest literal [17:49] plus it's more storage to cache DFA states, even if we don't generate them all [17:49] (and we can't, because our NFAs would certainly go exponential) [17:51] but those NFAs that start out with 50 or 100 tests could usefully dispatch to a known subset of states per character at least, since NFAs tend to be used to recognize the same tokens over and over [17:52] so I'll probably try DFAing the first decision point and see how it goes [17:53] but first I've got to get the reduced NFAs working right; they're fine if I just link past the useless epsilons, but it blows up if I remap the state numbers right now [17:53] due to the aforementioned bug [17:54] which I'm not fixing while I'm gabbing here... :) [17:55] *** Sqirrel left [17:56] *** Sqirrel joined [17:57] *** zakharyas joined [17:59] *** mvuets1 joined [18:00] *** dakkar left [18:09] *** Mso150 joined [18:09] *** virtualsue left [18:10] *** denis_boyun_ joined [18:12] *** Isp-sec joined [18:15] *** anaeem1_ left [18:16] *** anaeem1_ joined [18:16] *** mr-foobar joined [18:16] *** anaeem1_ left [18:22] TimToady++ # fixing the places where our NFA are Not ... Awesome [18:23] *** raiph left [18:26] *** j4janicej is now known as j4jackj [18:28] mu: 5155b36 | Ulti++ | misc/perl6advent-2014/schedule: [18:28] mu: 15th Bioinformatics stuff [18:28] mu: [18:28] mu: Probably going to include parsing a file with a Grammar, and doing some nice stuff with primitive Perl6 types (Range and Bag esp.) as well as super basic parallel programming just to demonstrate how easy it can be. [18:28] mu: review: https://github.com/perl6/mu/commit/5155b36db0 [18:29] *** raiph joined [18:30] ^ Chris Fields (official BioPerl6) is either going to weigh in with his opinion/comments or write some stuff too. So that covers the two people in the world doing bioinfo stuff >:3 [18:30] *** ab5tract joined [18:34] *** beastd joined [18:34] o/ #perl6 [18:34] i've added some more thoughts to my pull request: https://github.com/rakudo/rakudo/pull/335#issuecomment-64990267 [18:35] any thoughts would be most appreciated [18:38] *** Mso150_l joined [18:38] *** Mso150 left [18:40] *** j4jackj is now known as j4janicej [18:45] *** anaeem1_ joined [18:46] tl;dr - i posit that the current approach to set operators is broken because a) coercion is inconsistent, and b) mixes may as well be hashes for all the love they get from set operators [18:48] doc: 239bee5 | (Konrad Borowski)++ | lib/Language/operators.pod: [18:48] doc: Fix compilation error in Foo.Bar::baz exmample. [18:48] doc: review: https://github.com/perl6/doc/commit/239bee52de [18:48] promotion to a wider type seems reasonable to me, though I'd like to see whether that produces any counter-intuitive effects on the other side [18:50] and if there are set or bag operators that make no sense on mixes, those probably should refuse to work with a mix argument rather than downcasting [18:50] if we take this approach [18:52] tl;dr I think I probably agree :) [18:53] *** rindolf left [18:53] *** rindolf joined [18:54] just as you can poke a boolean into an integer, and an integer into a floater, without loss of information, but the reverse operations require explicit conversion [18:54] *** noganex joined [18:57] TimToady: \o/ [18:57] :) [18:57] i have a silly question, sorry in advance. i remember STD.pm6 was an official reference Perl 6 grammar, but oddly i cannot find such file in my rakudo.git clone. is STD.pm6 used somewhere? [18:58] *** noganex_ left [18:58] mvuets1: not by rakudo (yet) [18:58] mvuets1: https://github.com/perl6/std [18:58] ab5tract: yeah, that one (-: [18:59] :) [18:59] TimToady: so what would you like in the way of assurances that there are not counter-intuitive effects for this approach? [19:00] mvuets1: the only implementations that actually use STD.pm6 are in that repo and niecza (https://github.com/sorear/niecza) [19:00] shall i just implement it and then we can see? [19:00] std: 1 [19:00] std 76ccee1: OUTPUT«ok 00:00 135m␤» [19:01] *** FROGGS joined [19:02] *** spider-mario joined [19:02] ab5tract: I'm fine with that, as long as you're fine with reverting it if it turns to tragedy :) [19:04] mvuets1: STD was a prototype parser, meant to be emulated and then thrown away at some point, which point we're getting closer to [19:04] PerlJam: ah! so that std thingy does only parsing into ast (or whatnot)? [19:05] mvuets1: you mean camelia's std? Think of it mostly as a syntax validator. [19:05] or maybe we'll just keep it around as a kind of pet :) [19:06] also something of a reference regarding how failures should look [19:06] * psch remembers the "gobble" incident [19:06] TimToady: what other options do we have? :) [19:06] how does rakudo parse p6 then? [19:06] mvuets1: IT has it's own grammar (Based on STD) [19:06] well, I'm not really terribly interested in bringing up a full compiler on top of P5, which is what the STD parser runs on [19:07] the intent of STD was to give a target for implementations to converge on, and rakudo has mostly converged by now [19:07] *** rindolf left [19:08] ab5tract, TimToady: Although part the reason why automatically casting to the widest numeric type works out well for numeric operators, is that non-numeric arguments like a strings can be quite DWIM'ily mapped to one of the numeric types. [19:08] and in many ways has surpassed STD [19:08] e.g. "1" --> Int, "1.0" --> Rat [19:08] ah, sorry, i meant aside from me implementing the set promotions even in the face of a potential revert [19:08] smls: in what way does casting a Set to a Bag or Mix violate that? [19:09] Well, which of the Set/Bag/Mix types would the set operators map other types such as lists to? [19:09] Or would non-setty types no longer be allowed as arguments to those operators? [19:09] always the most complicated partner [19:09] *** zakharyas left [19:09] smls: if you pass two lists, you get Set [19:10] if you pass a list and a Bag, it bags the list [19:10] ab5tract: humans aren't that good at predicting the future, thus the whirlpool model of development where we try stuff to see what happens :) [19:10] hm [19:10] so the coercion logic is consistent [19:10] smls: we do some dwimmery on things that are forced through the textual bottleneck, sure, but what abstract said [19:10] you're worrying about the types of the keys, but ab5tract++ is talking about the types of the values [19:11] *** pecastro left [19:11] all of these things take objects as keys, and can coerce a list of objects [19:11] i must have wrong understanding all this time. my vision was that synopses defined moving parts and behavior of the language and STD.pm6 was an integral supplementing part that defined what the language syntax looked like [19:11] the only influence on the values is possible multiplicity in the input [19:12] or pairs, if you're coercing [19:12] *** denis_boyun_ left [19:12] the setops do coerce, currently [19:12] *** anaeem1_ left [19:13] *** anaeem1 joined [19:13] smls: in which case, you say what you intend to coerce to, or coerce to the more general of the mix types [19:13] the more general of the provided args, I should clarify [19:13] mvuets1: the specs and std are guidelines for writing tests, and for implementing to those tests [19:14] but it's really the tests that define the language [19:14] m: say <2, 4, 6> (<+) <2, 4, 4, 6, 6> [19:14] rakudo-moar 91d899: OUTPUT«True␤» [19:14] which is a good thing, because nobody here is good at writing specs, and if anyone was good at it, the rest of us might run away screaming :) [19:14] to all p6 advent authors: please put your posts into the "2014" category [19:15] TimToady: ARe you (or someone else) going to vet all of the tests in roast at some point? [19:15] well, I started a pass on all the fudges, and got partway through S02 :) [19:15] smls: yes, but they do not all coerce the same way. the listy ones tend to coerce to Bag if a Bag is present, whereas the comparators coerce to Set [19:16] Well, that's why there are separate baggy comparators [19:16] <[Coke]> TimToady: do we have a syntax agreed on yet for marking tests as part of a certain version of the spec? [19:17] TimToady: ah-ha! now i see! you reminded this: "In the past the Synopses have often been referred to as "the formal Perl 6 specification" and "specs", but this usage is being deprecated in favor of treating tests from the "roast" test suite as official specifications." taken from the synopses index page [19:17] *** anaeem1 left [19:17] okay, then why are there not separate baggy operators for _all_ the operators? [19:17] [Coke]: nope [19:17] also, why do none of our set operators treat Mixes as Mixes? [19:17] if you look at my pull request, i try to address all of this [19:17] *** Mso150_l_b joined [19:18] [Coke]: probably whatever someone starts using will either be adopted or cause motion towards another syntax ;) [19:18] *** Mso150_l left [19:18] <[Coke]> maybe #? and eventually #?- [19:18] *** robinsmidsrod left [19:18] <[Coke]> #?v6.0.0 e.g. [19:19] well, I think the question comes down to how you treat a list with dups in it, by default [19:19] what is meant by fudges in the context of roast.git? [19:19] ab5tract: Well, maybe there *should* be 3 complete sets of operators for sets/bags/mixes [19:19] only if there were a systematic way to name them all, which there isn't [19:20] given we support math notations that already violate that... [19:20] .u union [19:20] U+222A UNION [Sm] (∪) [19:20] *** robinsmidsrod joined [19:21] .u n-ary [19:21] U+2140 DOUBLE-STRUCK N-ARY SUMMATION [Sm] (⅀) [19:21] U+220F N-ARY PRODUCT [Sm] (∏) [19:21] U+2210 N-ARY COPRODUCT [Sm] (∐) [19:21] .u n-ary.union [19:21] U+002D HYPHEN-MINUS [Pd] (-) [19:21] U+002E FULL STOP [Po] (.) [19:21] U+0061 LATIN SMALL LETTER A [Ll] (a) [19:21] er... [19:22] ab5tract's proposal feels a little like "let's get rid of separate `==` and `eq` so we have less operators". [19:22] smls: i *strongly* disagree with that position [19:22] i wouldn't interpret the proposal as such, either [19:22] it's more like, let's use + regardless of what kind of numbers we're adding [19:22] on the contrary, imagine if we had separate operators for addition for Int and Rat [19:22] thanks TimToady :) [19:23] (and let's *not* use plus for concatenation!) [19:23] yeah, we learned that one from JS :o) [19:23] well, not me [19:24] I've learned it from any number of languages, but not JS... [19:24] it seems to be a common failing among language designers [19:24] ohh yes, I just wanted to say that one can see now that it proved to be the wrong way [19:26] well, if you think you're language is not extensible, you make the mistake of thinking you have to reuse your existing operators for other purposes, with resulting tragedies like >> in C++ [19:27] *your [19:28] * TimToady hates on English orthography a bit... [19:28] I find & in VB very disturbing (amongst many many other things) [19:28] * TimToady hates on ASCII a bit too [19:29] maybe one could sell Perl 6 to M$ so they'd do a Perl6-for-applications :o) [19:29] Nah they'd fold it into "Skype for coders" [19:29] *** anaeem1 joined [19:30] and then only keep up a .NET backend that relies heavily on winapi calls to native [19:30] *** denis_boyun_ joined [19:31] in general, past history has shown that languages designers should try to keep an arms-length distance from large corporations [19:32] too much temporary corporate blessing usually backfires in the wider scheme of things [19:34] The reason Javascript is the way it is, is in part because the designer was told to make it look like Java [19:35] I wouldn't mind getting sponsored by a bigger company though :o) [19:35] b2gills: but happily it does not feel like Java :o) [19:36] * TimToady very much enjoys being sponsored by a small company, craigslist++ [19:37] * FROGGS still dreams of a Star Trek world where money does not exist anymore [19:37] Ulti: advent calendar on biological data sounds like a good idea :) [19:39] variety++ [19:42] biological variety! :D [19:43] now we also have to get brrt to blog about his gosc project [19:44] *** ab5tract left [19:46] FROGGS: I don't see that happening without a cataclysmic event. ( Even in the Star Trek universe it was required ) [19:48] *** noganex_ joined [19:49] b2gills: let's just hope that the post atomic horror won't happen this century :o) [19:50] ... or that the event doesn't have anything to with with atomic anything [19:50] nah, it's the internet doing us in by making it too easy to feed our confirmation biases [19:51] <[Coke]> TimToady: anyone else at CL looking into using p6 yet? [19:51] *** noganex left [19:52] I'm not pushing it there yet, but give it a year or so :) [19:53] * TimToady just makes sure to point out that P6 is better whenever P5 does something screwy :) [19:54] *** anaeem1 left [19:54] but as to CL's actual plans, that's all sekrit :) [19:55] *** anaeem1 joined [19:55] *** anaeem1 left [19:56] *** anaeem1_ joined [19:56] *** anaeem1_ left [19:57] other than that they plan to support me for another year :) [19:58] what if they stop supporting you once it is "done" O.o [19:59] if it's done right, I can retire and go fly fishing :) [19:59] * FROGGS imagines TimToady doing PHP homework for kids for $ [19:59] :D [19:59] ... by writing a p6 to PHP compiler :-) [19:59] eeeks [20:00] <[Coke]> I am reminded that right now I am my own biggest blocker to getting it adopted here in my group. blah. [20:00] hehe [20:00] [Coke]: well, stop using those silly macs :P [20:00] SOAP is still my blocker... yeah, and time [20:00] pyrimidine coming from an organic molecule that means a lot! [20:00] <[Coke]> huh. I should start a perl tech group inside $dayjob; I'm sure lots of people are using it. [20:01] <[Coke]> (perl) beaten to it. [20:03] darn it, how'd it get to be lunchtime already? [20:04] *** Mso150 joined [20:04] *** Mso150_l_b left [20:08] *** darutoko left [20:10] *** anaeem1_ joined [20:11] *** ptc_p6 left [20:12] *** ptc_p6 joined [20:15] *** treehug88 left [20:15] *** treehug88 joined [20:17] *** ab5tract joined [20:20] *** colomon left [20:21] *** dario joined [20:23] mu: 2659089 | (Pepe Schwarz)++ | misc/perl6advent-2014/schedule: [20:23] mu: [perl6advent] Added topic. [20:23] mu: [20:23] mu: Contents will at least be "what is needed for multis and how far am I". [20:23] mu: Completeness of the implementation is dependent on how I get. [20:23] mu: review: https://github.com/perl6/mu/commit/2659089737 [20:23] eh, how *far* [20:23] :/ [20:24] hoi la [20:24] psch: do you already have a p6advent login? [20:24] moritz: no. i think i don't even have a wordpress account [20:25] psch: /msg me your email address, I'll send you an invitation [20:25] moritz: done [20:26] psch: invitation sent [20:27] moritz: thanks, i'll take care of that during the next jvm build [20:27] *** anaeem1_ left [20:27] *** dario left [20:29] * PerlJam tries to think of something that intersects fun/interesting, perl 6 related, and not already done by someone else so that he can contribute to the advent calendar this year [20:29] *** anaeem1 joined [20:33] *** anaeem1 left [20:33] PerlJam: write a program that uses introspection to find type and method names from Perl 6, and uses that to markov-chain a poem, or so [20:37] *** anaeem1_ joined [20:57] *** Isp-sec left [20:57] Is there a place where all the cool Perl people are staying for FOSDEM? /me books. [21:00] * pyrimidine thought that rjbs was one of the 'cool people' [21:00] I thought the cool people did all such planning last minute? :) [21:00] *** anaeem1_ left [21:01] all the cool people are staying at home because they aren't going to FOSDEM (they're too cool for that! ;) [21:01] ^ [21:03] *** Mso150 left [21:05] *** anaeem1_ joined [21:10] *** colomon joined [21:14] *** Mso150 joined [21:15] *** Isp-sec joined [21:17] *** virtualsue joined [21:22] *** anaeem1_ left [21:22] *** mephinet- joined [21:22] *** perltricks joined [21:22] *** mr-fooba_ joined [21:24] *** raiph left [21:24] *** perlpilot joined [21:24] *** romel_ joined [21:24] *** atta_ joined [21:26] *** rurban left [21:26] *** flussenc1 joined [21:27] *** oetiker_ joined [21:28] *** vike1 joined [21:28] *** treehug88 left [21:29] *** FROGGS left [21:29] *** Celelibi left [21:29] *** treehug88 joined [21:30] *** timo joined [21:30] *** ptc_p61 joined [21:30] *** timo is now known as Guest18863 [21:34] and the *really* cool ones were too cool for breathing, and stopped dead after about three minutes [21:35] *** ptc_p6 left [21:35] *** mr-foobar left [21:35] *** PerlJam left [21:35] *** atta left [21:35] *** TuxCM left [21:35] *** [Tux] left [21:35] *** romel left [21:35] *** vike left [21:35] *** j4janicej left [21:35] *** hugme left [21:35] *** oetiker left [21:35] *** timotimo left [21:35] *** mephinet left [21:35] *** flussence left [21:35] *** telex left [21:35] *** Celelibi joined [21:36] *** lizmat joined [21:36] *** hugme joined [21:36] *** ChanServ sets mode: +v hugme [21:36] *** telex joined [21:39] I thought they cooled after they stopped breathing... [21:40] * lizmat arrived in Perl earlier this evening, and had dinner in the Perler Hof [21:40] I'm pretty sure TimToady remembers the place :-) [21:41] in a PTSDy sort of way :) [21:42] .oO( tuxic shock syndrome :) [21:46] *** blackbolt10 joined [21:48] *** Gladiator_ joined [21:48] *** noganex joined [21:48] *** Gladiator_ left [21:48] *** perlpilot is now known as PerlJam [21:49] *** Sqirrel left [21:50] hi, i got problem with install GTK::Simple on debian VM. "*test stage failed for NativeCall: Tests faild". Someone can help me? [21:50] *** woolfy joined [21:51] blackbolt10: are you by chance on a 32bit system? [21:51] blackbolt10: also, which backend? [21:51] *** noganex_ left [21:51] i have 64bit windows with vm virtualbox [21:51] *** lizmat left [21:52] blackbolt10: is the vm 32bit? did you install perl6 from the debian repositories? [21:52] *** colomon left [21:52] Diagnosing it is interesting, though the most likely workaround is to pass --notest or so to the installer... [21:52] i can install by panda other modules [21:53] blackbolt10: I had that .. I think the shared library it tries to load is named differently [21:53] psch: debian is 32bit [21:54] itz: how can i "reapir" it? [21:54] blackbolt10: then what jnthn++ said should work for you for installing NativeCall, i.e. do 'panda install --notests NativeCall' [21:54] blackbolt10: I think I cheated with a sym link [21:55] trying to find what I did [21:55] *** anaeem1 joined [21:55] In our hotel room in the city of Perl. lizmat asks me "have you seen the tv in this room". "Yep, it is right in front of you, on your desk, next to your laptop". Hmmm.... [21:56] psch: it help me. [21:56] gtk install with no problem [21:56] *** atta_ is now known as atta [21:58] *** anaeem1 left [22:00] *** lizmat joined [22:00] I think I added this sym link on 64 bit Debian stable [22:00] lrwxrwxrwx 1 root root 13 Oct 15 21:02 /usr/lib/x86_64-linux-gnu/libgtk-3.so -> libgtk-3.so.0 [22:00] I should have fixed it properly :\ [22:04] itz: When i install gtk on Ubuntu VM i need libgtk-3-dev [22:04] itz: like jnthn say --notests helped [22:06] Will NativeCall find its way into rakudo sometime before 6.0.0? [22:08] *** Alina-malina left [22:08] <[Coke]> Into the compiler? I would vote no. [22:08] *** anaeem1_ joined [22:09] *** kaare_ left [22:11] *** Alina-malina joined [22:12] *** blackbolt10 left [22:15] *** colomon joined [22:15] <[Coke]> That also raises the question: is Rakudo Star still going to be the bundled release? If so, what are we bundling with it for 6.0? [22:17] *** wtw left [22:17] *** wtw joined [22:17] *** mvuets1 left [22:19] *** j4jackj joined [22:20] *** Mso150 left [22:22] ugexe: re http://irclog.perlgeek.de/perl6/2014-12-01#i_9742729 (perl6 -e slurp) [22:22] <[Coke]> we have a "most wanted" module list somewhere, might be nice to start curating that with an eye toward the initial 6.0 bundle (if there is one) [22:22] I'm pretty sure I fixed that with: https://github.com/rakudo/rakudo/commit/70df096d6b86300bd8 [22:24] [Coke]: i think 6.0 is a perfect opportunity for Rakudo Star to shine :) [22:26] *** anaeem1_ left [22:26] *** j4jackj is now known as j4janicej [22:26] *** ptc_p61 left [22:28] <[Coke]> Andrew Shitov++ # the russian pragmatic perl 6 article. [22:29] *** TuxCM joined [22:31] *** [Tux] joined [22:36] *** BenGoldberg joined [22:41] *** Isp-sec left [22:41] [Coke]: I saw it, but I don't read Russian. What did it say? :) [22:48] <[Coke]> rjbs: I just hit the translate button. bunch of good stuff, with a lot of intro-to-perl6. [22:49] *** spider-mario left [22:49] <[Coke]> just found a meta advent: http://perlnews.org/2014/12/advent-calendars-2/ [22:50] <[Coke]> er, which links to: http://www.lenjaffe.com/AdventPlanet/2014/index.html [22:50] <[Coke]> which has us. [22:50] *** virtualsue left [22:51] perl6-most-wanted: af2c507 | (David Warring)++ | most-wanted/modules.md: [22:51] perl6-most-wanted: Added CSS::Writer (WIP). Recategorize CSS::Tiny as minimal [22:51] perl6-most-wanted: review: https://github.com/perl6/perl6-most-wanted/commit/af2c507e47 [22:51] *** psch left [22:52] * dwarring [Coke] ++ just reminded me to update this [22:52] how would i pass a method reference to a sub? [22:53] *** denis_boyun_ left [22:55] m: class c { method g() {'g'.say;} }; sub r ($s) { 's'.say; $s(); '/s'.say; }; my $c = c.new; r(&$c.g); [22:55] rakudo-moar 91d899: OUTPUT«g␤s␤Cannot find method 'postcircumfix:<( )>'␤ in sub r at /tmp/kffPFxPSDd:1␤ in block at /tmp/kffPFxPSDd:1␤␤» [22:59] goodnight, #perl6! [23:00] *** Guest18863 is now known as timotimo [23:01] *** pmurias joined [23:02] nqp-js: 2063552 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (3 files): [23:02] nqp-js: Handle type objects better to so that tests don't break when we define NQPMu. [23:02] nqp-js: review: https://github.com/pmurias/nqp-js/commit/2063552030 [23:02] nqp-js: b0085d8 | (Pawel Murias)++ | src/vm/js/mini-setting: [23:02] nqp-js: Add a partial NQPMu to the mini-setting. [23:02] nqp-js: review: https://github.com/pmurias/nqp-js/commit/b0085d8b4b [23:02] nqp-js: 46678fd | (Pawel Murias)++ | src/vm/js/ (3 files): [23:02] nqp-js: Support mixing :foo, and |%args in the same method call. [23:02] nqp-js: [23:02] nqp-js: Pass test 25. [23:02] nqp-js: review: https://github.com/pmurias/nqp-js/commit/46678fde1c [23:02] nqp-js: b97120f | (Pawel Murias)++ | src/vm/js/ (3 files): [23:02] nqp-js: Fix existspos, pass test 59. [23:02] nqp-js: review: https://github.com/pmurias/nqp-js/commit/b97120fc64 [23:02] nqp-js: c464545 | (Pawel Murias)++ | src/vm/js/ (2 files): [23:02] nqp-js: Pass test 26. [23:02] nqp-js: [23:02] nqp-js: Fix handling of $foo."$method". [23:02] nqp-js: review: https://github.com/pmurias/nqp-js/commit/c4645453e7 [23:04] perl6-most-wanted: 8f5f7fb | (David Warring)++ | most-wanted/modules.md: [23:04] perl6-most-wanted: remove stray character [23:04] perl6-most-wanted: review: https://github.com/perl6/perl6-most-wanted/commit/8f5f7fba0b [23:05] *** Alina-malina left [23:06] *** noganex_ joined [23:09] *** noganex left [23:14] *** PacoLinux joined [23:17] *** Alina-malina joined [23:20] *** PacoLinux left [23:22] *** perltricks left [23:25] for "abcde" ~~ m:g/\w/ { say $_ } [23:25] m: for "abcde" ~~ m:g/\w/ { say $_ } [23:25] rakudo-moar 91d899: OUTPUT«False␤» [23:25] How are m:g regexes supposed to be used? [23:32] *** beastd left [23:33] *** ab5tract left [23:40] *** Ugator left [23:42] *** gfldex left [23:44] *** dalek left [23:45] *** treehug88 left [23:47] <[Coke]> m: say ("abcde" ~~ m:g/\w/) [23:47] rakudo-moar 91d899: OUTPUT«False␤» [23:47] <[Coke]> m: say ("abcde" ~~ m/:g\w/) [23:47] rakudo-moar 91d899: OUTPUT«===SORRY!=== Error while compiling /tmp/ZHu_qVaqZH␤Unrecognized regex modifier :g\w/)␤at /tmp/ZHu_qVaqZH:1␤------> say ("abcde" ~~ m/:g\w/)⏏␤» [23:47] <[Coke]> m: say ("abcde" ~~ m/\w/) [23:47] rakudo-moar 91d899: OUTPUT«「a」␤␤» [23:48] works w/o the smartmatch too (putting abcde into $_) [23:50] *** dalek joined [23:50] *** ChanServ sets mode: +v dalek [23:52] <[Coke]> m: $_='1 23 456 78.9'; .say for m:g/(\d+)/ # aye. [23:52] rakudo-moar 91d899: OUTPUT«「1」␤ 0 => 「1」␤␤「23」␤ 0 => 「23」␤␤「456」␤ 0 => 「456」␤␤「78」␤ 0 => 「78」␤␤「9」␤ 0 => 「9」␤␤» [23:52] tony-o: not precisely an answer, but if you want something to pass around and call without an object instance, a method is probably less suitable than e.g. a sub or pointy block [23:53] raydiak: i'm using an instance :) [23:53] i may just turn this into a module instead of a class tho [23:55] tony-o: in your example you're trying to pass and call the method by itself w/o the object...idk if that is going to work [23:56] * raydiak waits for someone to chime in with the right punctuation magic to make it work [23:56] *** rmgk_ joined [23:56] *** rmgk is now known as Guest58176 [23:56] *** Guest58176 left [23:56] *** rmgk_ is now known as rmgk