Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-05-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 timotimo ZoffixWin: it'd be interesting to see how big these leaks can get. i'd expect the leakage to plateau relatively early
00:03 ZoffixWin You mean on 'hello world'? The ones from the real programs chewed through a gig and a half rather quickly: http://i.imgur.com/QR3cWjV.png
00:04 timotimo is that actually truly leaked? would valgrind have pointed those parts out?
00:05 * timotimo removed a tiny piece of leakage
00:05 ZoffixWin No idea, but statistically speaking: three different programs in three different domains that I wrote are all leaking like crazy. (a) I'm a crappy programmer. (b) something is leaking :P
00:06 timotimo well, yeah, we surely leak a little bit
00:06 ZoffixWin Time for me to re-learn C, I guess.
00:06 timotimo btw, the heap explorer is super cool
00:09 timotimo ha!
00:09 timotimo nqp -e 'say("hello")' just went from definitely lost: 6,971 bytes in 224 blocks  to  definitely lost: 2,048 bytes in 1 blocks
00:09 jdv79 C is pretty unfun except it can be blazing fast
00:11 timotimo ==11188==     in use at exit: 0 bytes in 0 blocks
00:11 timotimo yay
00:11 timotimo ZoffixWin: with very latest moar, try your perl6-valgrind-m run again, it'll be a bit less noisy
00:17 timotimo i'm down to only 46 loss records with that extra patch i just pushed
00:17 timotimo was 47 before that
00:17 * ZoffixWin builds
00:24 ZoffixWin woooo
00:24 timotimo is it better?
00:25 ZoffixWin timotimo++ 14 errors instead of 70 and "definitely lost: 54,446 bytes in 189 blocks" instead of 104,477 bytes in 2,358 blocks: https://gist.github.com/zoffixznet​/4e5b68d74379c81036c81a668883360a
00:25 timotimo that's not "errors"! :)
00:26 ZoffixWin ¯\_(ツ)_/¯
00:26 timotimo oh, it *does* call them errors
00:26 timotimo i never saw that
00:26 timotimo like, i never noticed it
00:26 timotimo it's probably been there the whole time
00:26 mr-foobar joined #perl6
00:27 timotimo i pointed those things out to jn a few minutes ago. especially the 33.6k one is interesting and fixable, but it's extremely improbable that it'd grow
00:27 pierre_ joined #perl6
00:28 timotimo all those records that come from MVM_serialization_demand_object are limited by the number of actual things in the core setting, so they can't grow without bound
00:29 hotel code optimisation scares me
00:30 timotimo what kind, and in what way?
00:30 hotel anything low-ish level does too, for that matter
00:30 hotel just, in general
00:30 hotel idk
00:31 timotimo mhh-hmm
00:31 hotel I don't know enough and what I don't know scares me?
00:33 timotimo well, optimizing all this stuff requires knowlegde of how all the internals work and how they work together etc etc
00:35 hotel yeah exactly
00:36 timotimo all i know i've learned from jn :D
00:45 mr-foobar joined #perl6
00:47 Actualeyes joined #perl6
00:55 astj joined #perl6
00:58 ssotka joined #perl6
01:08 hotel_california joined #perl6
01:21 skids joined #perl6
01:23 finanalyst joined #perl6
01:40 zacts joined #perl6
01:43 mr-foobar joined #perl6
01:46 hotel why would you use a backward feed over a forward one?
01:46 MadcapJake you mean ==> and <== ?
01:46 Sgeo Haskellers understand <== better? >.>
01:46 Sgeo (Probably not the actual reason)
01:47 pierre_ joined #perl6
01:47 hotel yeah those
01:48 MadcapJake personal preferences, why provide one and not the other, and <== into containers looks better than ==> into containers
01:51 hotel mkay
01:51 MadcapJake m: my $name <== join(" ") <== reverse() <== map(*.comb.reverse.join) <== words() <== 'ossur ekaj'; say $name
01:51 camelia rakudo-moar 283b85: OUTPUT«[jake russo]␤»
01:53 geekosaur so you can feel like you're writing Haskell, I guess :p
01:54 MadcapJake except I can't figure out how to get it out of an array :P
01:56 hotel join(" ")[0]?
01:57 MadcapJake m: my $name <== join(" ")[0] <== reverse() <== map(*.comb.reverse.join) <== words() <== 'ossur ekaj'; say $name
01:57 camelia rakudo-moar 283b85: OUTPUT«Cannot modify an immutable Str␤  in any  at /tmp/mY1UUuyXJo line 1␤  in block <unit> at /tmp/mY1UUuyXJo line 1␤␤»
01:57 hotel oh
01:57 MadcapJake :) feed operators are NFI (not fully implemented :)
01:58 MadcapJake m: my $name <== join(" ").Array.[0] <== reverse() <== map(*.comb.reverse.join) <== words() <== 'ossur ekaj'; say $name
01:58 camelia rakudo-moar 283b85: OUTPUT«[jake russo]␤»
01:59 hotel m: my $name = 'ainrofilac letoh'.words.map(*.comb.re​verse.join).reverse.join(" ").Array.[0]; say $name
01:59 camelia rakudo-moar 283b85: OUTPUT«hotel california␤»
01:59 hotel might as well just do that then lol
02:00 BenGoldberg joined #perl6
02:02 geekosaur . left to right, feed right to left, reverse haskell >.>
02:02 hotel but you could also do ==>
02:02 BenGoldberg joined #perl6
02:03 hotel also, is there an equivalent to a try/finally block in perl6
02:05 geekosaur any block is a try block, potentially. just add a CATCH phaser
02:05 hotel but really the finally part
02:05 geekosaur and I think there's another for the finally part, m
02:06 geekosaur LEAVE?
02:06 geekosaur yes
02:06 geekosaur http://doc.perl6.org/language/phasers
02:07 hotel m: try { say 'x' LEAVE { say 'y' }; }
02:07 camelia rakudo-moar 283b85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hCkKCMrrO1␤Two terms in a row␤at /tmp/hCkKCMrrO1:1␤------> 3try { say 'x'7⏏5 LEAVE { say 'y' }; }␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statemen…»
02:07 geekosaur semicolon needed
02:07 hotel m: try { say 'x' LEAVE { say 'y' }; };
02:07 camelia rakudo-moar 283b85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ibGJ9IP6tM␤Two terms in a row␤at /tmp/ibGJ9IP6tM:1␤------> 3try { say 'x'7⏏5 LEAVE { say 'y' }; };␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        stateme…»
02:07 hotel well thanks
02:07 hotel :)
02:08 geekosaur m: { say 'x'; LEAVE {say 'y'};}
02:08 camelia rakudo-moar 283b85: OUTPUT«x␤y␤»
02:08 geekosaur m: { fail; LEAVE {say 'y'};}
02:08 camelia rakudo-moar 283b85: OUTPUT«y␤Failed␤  in block <unit> at /tmp/vAFrizBkTc line 1␤␤»
02:08 geekosaur actually that's not a good test because fail is deferred
02:09 ugexe m: (1,2,3) R= my @a; say @a; # you can do regular assignment that way as well, might as well have <==
02:09 camelia rakudo-moar 283b85: OUTPUT«[1 2 3]␤»
02:09 hotel oh, I heard once that you can do perl right-to-left if you wanted
02:11 hotel and I don't even need the try in this case, I can just use a closure
02:11 hotel wow, perl is cooler than python
02:11 molaf joined #perl6
02:13 noganex joined #perl6
02:14 ZoffixWin :P
02:18 hotel going to study cs next year, wonder if my profs will get mad if I turn in everything in perl6
02:20 pierre_ joined #perl6
02:20 TEttinger joined #perl6
02:21 MadcapJake most classes will probably have a specific language that you're supposed to use, but you could try :P
02:22 hotel m: my @a = 10, 11; my $a, my $b = @a; say $a, $b
02:22 camelia rakudo-moar 283b85: OUTPUT«(Any)[10 11]␤»
02:22 ZoffixWin Write in Perl 6 a program whose output compiles in the $class's lang :P
02:22 MadcapJake lol
02:22 hotel oh that would be good
02:22 hotel write it for the jvm
02:23 ZoffixWin m: my @a = 10, 11; my ($a, $b) = @a; say $a, $b
02:23 camelia rakudo-moar 283b85: OUTPUT«1011␤»
02:23 ZoffixWin m: my @a = 10, 11; my $a, my $b Z= @a; say $a, $b
02:23 camelia rakudo-moar 283b85: OUTPUT«1011␤»
02:23 hotel I was getting there :P
02:23 hotel although what's that Z=?
02:24 MadcapJake Z is an operator operator (meta operator)
02:24 ZoffixWin hotel, http://docs.perl6.org/langu​age/operators#Zip_Operators
02:24 hotel thanks
02:27 hotel those are pretty cool
02:27 cdg joined #perl6
02:32 pierre_ joined #perl6
02:38 hotel m: my @a = 1, 2, 3; my $s = ""; $s «~=« @a
02:38 camelia rakudo-moar 283b85: ( no output )
02:38 hotel m: my @a = 1, 2, 3; my $s = ""; $s «~=« @a; say $s
02:38 camelia rakudo-moar 283b85: OUTPUT«123␤»
02:39 hotel oh it does work \o/
02:39 MadcapJake another way is with the reduce meta operator
02:39 MadcapJake m: say [~] 1, 2, 3
02:39 camelia rakudo-moar 283b85: OUTPUT«123␤»
02:40 hotel noice
02:40 hotel thanks
02:40 BenGoldberg joined #perl6
02:50 BenGoldberg joined #perl6
02:58 huggable joined #perl6
03:00 pierre_ joined #perl6
03:06 pierre_ joined #perl6
03:08 hotel m: my @a = 1=>2, 3=>4, 5=>6; my $f = ''; for @a -> $e { $f ~= $e.value.key ~ ':' ~ $e.value.value ~ "\r\n" }; $f
03:08 camelia rakudo-moar 283b85: OUTPUT«WARNINGS for /tmp/d7yWpgmkS2:␤Useless use of $f in sink context (line 1)␤Method 'key' not found for invocant of class 'Int'␤  in block <unit> at /tmp/d7yWpgmkS2 line 1␤␤»
03:08 hotel m: my @a = 1=>2, 3=>4, 5=>6; my $f = ''; for @a.pairs -> $e { $f ~= $e.value.key ~ ':' ~ $e.value.value ~ "\r\n" }; $f
03:08 camelia rakudo-moar 283b85: OUTPUT«WARNINGS for /tmp/WbCSo71AzN:␤Useless use of $f in sink context (line 1)␤»
03:09 hotel m: my @a = 1=>2, 3=>4, 5=>6; my $f = ''; for @a.pairs -> $e { $f ~= $e.value.key ~ ':' ~ $e.value.value ~ "\r\n" }; say $f
03:09 camelia rakudo-moar 283b85: OUTPUT«1:2
03:09 hotel :I
03:10 cdg joined #perl6
03:17 BenGoldberg joined #perl6
03:19 ZoffixWin m: my @a = 1=>2, 3=>4, 5=>6; my $f = ''; for @a.pairs -> $e { $f ~= $e.key ~ ':' ~ $e.value ~ "\n" }; say $f
03:19 camelia rakudo-moar 283b85: OUTPUT«0:1  2␤1:3   4␤2:5   6␤␤»
03:19 pierre_ joined #perl6
03:19 ZoffixWin m: say "\rBar"
03:19 camelia rakudo-moar 283b85: OUTPUT«
03:21 ZoffixWin m: my @a = 1=>2, 3=>4, 5=>6; @a.map({ "$_.key():$_.value()" }).join(' Δ ').say
03:21 camelia rakudo-moar 283b85: OUTPUT«1:2 Δ 3:4 Δ 5:6␤»
03:26 aleogen joined #perl6
03:28 hotel ah, forgot about map
03:28 hotel I knew there was a better way
03:28 hotel ZoffixWin++++
03:50 mr-foobar joined #perl6
03:58 TEttinger joined #perl6
04:00 buharin joined #perl6
04:14 mr-foobar joined #perl6
04:22 hotel_california joined #perl6
04:23 ugexe m: my @a = 1=>2, 3=>4, 5=>6; say join " Δ ", @a>>.kv>>.join(":")
04:23 camelia rakudo-moar 283b85: OUTPUT«1:2 Δ 3:4 Δ 5:6␤»
04:26 MadcapJake how can you mutate a hash's keys in-place?
04:30 MadcapJake nvm figured it out
04:31 MadcapJake nvm, realized it's not possible :P
04:34 skids Well, you could bind Scalars as keys in an object hash, but you'd have to use the same Scalars to deref.
04:36 MadcapJake for %h.kv -> $k, $v { if ... { %h{$k}:delete; %h{$new-k} = $v } } # this pattern should work
04:38 skids %h{$k}:delete sould return the value.
04:39 skids m: my %h = 1 => 42; %h{2} = %h{1}:delete; %h.say
04:39 camelia rakudo-moar 283b85: OUTPUT«{2 => 42}␤»
04:40 ribasushi joined #perl6
04:41 geekosaur arguably that is not in-place... because the key's hash would change
04:42 sortiz joined #perl6
04:46 masak morning, #perl6!
04:51 MadcapJake m: await Promise.allof: gather for ^10 { take start { my $time = rand * 10; sleep $time; say "slept for $time seconds" } }
04:51 camelia rakudo-moar 283b85: OUTPUT«slept for 1.58003313065313 seconds␤slept for 2.45284558565791 seconds␤slept for 2.64399243271618 seconds␤Memory allocation failed; could not allocate 16288 bytes␤»
04:51 buharin joined #perl6
04:51 Khisanth joined #perl6
04:52 MadcapJake skids: neat thanks!
04:52 MadcapJake m: await Promise.allof: gather for ^5 { take start { my $time = rand * 5; sleep $time; say "slept for $time seconds" } }
04:53 camelia rakudo-moar 283b85: OUTPUT«slept for 2.04089945715264 seconds␤slept for 2.13021557699128 seconds␤slept for 2.37540170567119 seconds␤slept for 2.72199360282895 seconds␤slept for 3.25041372973699 seconds␤»
04:54 skids ISTR playing with random sleeps and getting something similar and finding it drilled down to Interval or something not liking to cast from some floats.
04:54 skids But my memory is fuzzy,
04:57 xiaomiao joined #perl6
04:57 MadcapJake strange, seems to work just fine on my machine but not a big deal as I just wanted to make sure `await Promise.allof: gather for ... { take start { ... } }` would work
04:57 skids Yeah I cannot get it to fail locally (my build is old)
04:58 Cabanossi joined #perl6
05:14 mr-foobar joined #perl6
05:27 mr-foobar joined #perl6
05:30 wamba joined #perl6
05:32 jjido joined #perl6
05:32 pierre_ joined #perl6
05:38 pierre_ joined #perl6
05:39 domidumont joined #perl6
05:40 mr-foobar joined #perl6
05:44 domidumont joined #perl6
05:46 cpage_ joined #perl6
05:50 CIAvash joined #perl6
05:52 mr-foobar joined #perl6
05:53 sortiz \o #perl6
06:02 rurban joined #perl6
06:03 mr-foobar joined #perl6
06:10 domidumont joined #perl6
06:19 mr-foobar joined #perl6
06:23 firstdayonthejob joined #perl6
06:23 _mg_ joined #perl6
06:24 buharin joined #perl6
06:36 aindilis joined #perl6
06:38 jjido joined #perl6
06:43 pierre_ joined #perl6
06:55 moritz \o
06:59 mr-foobar joined #perl6
07:04 RabidGravy joined #perl6
07:05 jack_rabbit joined #perl6
07:12 RabidGravy boom!
07:14 rindolf joined #perl6
07:20 abraxxa joined #perl6
07:21 cognominal joined #perl6
07:30 rurban left #perl6
07:37 cognominal joined #perl6
07:37 azawawi joined #perl6
07:37 azawawi good morning #perl6
07:37 azawawi https://github.com/azawawi/perl6-clean  # A better example :)
07:40 RabidGravy harr!
07:42 abraxxa joined #perl6
07:47 sortiz azawawi, Your Cleanable is much like my Disposable :-)
07:48 azawawi sortiz: link it :)
07:49 mr-foobar joined #perl6
07:51 sortiz azawawi, Disposable isn't published, it is waiting for macro support for an usable "using ... {  }"
07:54 azawawi sortiz: looking forward to see... i needed something for my nativecall libs
07:54 azawawi sortiz: robust cleanup
07:54 azawawi sortiz: that's only step #1. next exception handling... then async handling
07:54 ufobat joined #perl6
07:54 ufobat good morning
07:55 azawawi ufobat: good morning
07:55 moritz good ufo, bat
07:55 sortiz Yep, I start with it for the needs of DBDish and all its Handlers, so I use .dispose all over the place, but without a formal does Disposable ;-)
07:56 RabidGravy erp
07:57 sortiz azawawi, Btw '$o.clean if $o.defined' can be '.clean with $o', more idiomatic imo.
08:00 azawawi sortiz: i see... http://doc.perl6.org/synta​x/with%20orwith%20without ... you live another day, you learn a new thing :) thx
08:00 RabidGravy or $o.?clean
08:01 pierre_ joined #perl6
08:02 azawawi or keep it clean and use if $o.defined :)
08:03 RabidGravy I think I must be the only person in the world who doesn't like "implicit topic invocants" - reminds me of VB too much
08:04 sortiz RabidGravy, $o.?clean is more like '$o.^can('clean') // $o.clean', no?
08:04 RabidGravy yeah
08:06 sortiz So $o.?clean can be called for Cleanable:U too, no what you want.
08:08 RabidGravy well that could be fixed by making the signature tighter
08:08 sortiz Sure.
08:12 darutoko joined #perl6
08:15 azawawi sortiz: I see Type:U all the time... what does :U do? can you link some documentation for it?
08:16 RabidGravy :D defined :U undefined
08:17 RabidGravy so in this case e.g. you could make the invocant :D:
08:17 sortiz azawawi, Given some type Foo, in a signature Foo:U match the type, and Foo:D match an instance of that type.
08:18 RabidGravy the speculations had another one but that wasn't implemented
08:19 sortiz Not necessarily .defined but .DEFINITE, to cover the case of a type where its instances are .defined === False, like Failure.
08:21 azawawi i see... thx
08:24 RabidGravy I found the tiny usb ftdi serial thingy yesterday, I might take a crack at a serial port thing
08:31 grondilu joined #perl6
08:34 grondilu would { f($a, $b); $a++; $b++ } be slower than { f($a++, $b++) }?
08:34 grondilu probably not by much but still.
08:35 RabidGravy if in doubt benchmark
08:36 pierre_ joined #perl6
08:37 * grondilu thought of it while looking at List.combinations
08:38 grondilu seems to me that lots of people are reluctant to give a ++ variable as a parameter to a function.  Yet it's kind of what is cool with ++.
08:39 psch m: sub f($, $) { }; my ($a, $b); for ^10000 { f($a++, $b++) }; say now - BEGIN now;
08:39 camelia rakudo-moar 342aef: OUTPUT«0.0426574␤»
08:39 psch m: sub f($, $) { }; my ($a, $b); for ^10000 { f($a, $b); $a++; $b++ }; say now - BEGIN now;
08:40 camelia rakudo-moar 342aef: OUTPUT«0.0280092␤»
08:40 grondilu that can't be right.
08:40 psch why not?
08:43 RabidGravy I can make several hypotheses why I would expect it to be the case
08:43 psch with a sufficiently smart compiler/optimizer it shouldn't be slower, yeah
08:43 sortiz m: sub f($, $) { }; my (int $a, int $b); for ^100000 { f($a++, $b++) }; say now - BEGIN now;
08:43 camelia rakudo-moar 342aef: OUTPUT«0.0549329␤»
08:44 sortiz m: sub f($, $) { }; my (int $a, int $b); for ^100000 { f($a, $b); $a++; $b++ }; say now - BEGIN now;
08:44 camelia rakudo-moar 342aef: OUTPUT«0.1833002␤»
08:44 moritz a sufficiently smart compiler can turn a postfix ++ in sink context into prefix ++
08:45 sortiz At least the optimizer works for ints. :)
08:45 psch why that's that much faster is unintuitive to me fwiw :)
08:45 psch sortiz++
08:46 moritz maybe one of them inlines, and the other doesn't
08:46 RabidGravy my eyes haven't woken up yet, I failed to see the extra 0
08:47 sortiz Even in the general case the first avoid two extra lookup, that can be expensive.
08:48 zakharyas joined #perl6
08:55 moritz if not inlined, the invocation of the op will dwarf any amount of processing done inside it
08:56 sortiz yep.
08:57 sortiz With prefix ++ the difference is even more notorious:
08:57 sortiz m: sub f($, $) { }; my (int $a, int $b); for ^100000 { f(++$a, ++$b) }; say now - BEGIN now;
08:57 camelia rakudo-moar 342aef: OUTPUT«0.0542253␤»
08:58 sortiz m: sub f($, $) { }; my (int $a, int $b); for ^100000 { f($a, $b); ++$a; ++$b }; say now - BEGIN now;
08:58 camelia rakudo-moar 342aef: OUTPUT«0.176574␤»
08:58 sortiz Not much here. :/
08:59 psch m: sub f(int $, int $) { }; my (int $a, int $b); for ^100000 { f($a, $b); ++$a; ++$b }; say now - BEGIN now;
08:59 camelia rakudo-moar 342aef: OUTPUT«0.1531268␤»
08:59 psch m: sub f(int $, int $) { }; my (int $a, int $b); for ^100000 { f(++$a, ++$b); }; say now - BEGIN now;
08:59 camelia rakudo-moar 342aef: OUTPUT«0.05554319␤»
09:00 RabidGravy well ~2/5
09:03 sortiz For num the ratio changes.
09:11 rurban1 joined #perl6
09:20 wamba joined #perl6
09:22 pierre_ joined #perl6
09:24 zakharyas joined #perl6
09:37 espadrine joined #perl6
09:38 rurban1 left #perl6
09:42 YP-QMUL-W joined #perl6
09:43 * RabidGravy wonders why monit thinks the icecast isn't running
09:48 RabidGravy Hmm that'll be because the .pid file isn't where it used to be :\
09:52 RabidGravy oh that old, "if the path to where the pid file doesn't exist, don't create it and start normally without the merest hint that something wasn't right"
09:52 winger joined #perl6
09:56 RabidGravy there that's better
10:06 nine_ pid files? Sounds quite old fashioned.
10:07 pierre_ joined #perl6
10:10 moritz still an unfortunate reality for many
10:10 moritz at $work we are still stuck with some Wheezy boxes that $ops_team doesn't get around to update
10:11 moritz so, old-fashioned init scripts :/
10:11 moritz pid files, start-stop-daemon, all that "fun"
10:12 moritz hangs if a script doesn't properly daemonize (I'm looking at you, OTRS)
10:17 jast reminds me of the squeeze box I haven't gotten around to updating yet
10:21 The_Schmidt joined #perl6
10:26 RabidGravy the pid file is just for the convenience of monit
10:27 RabidGravy everything else works fine without them
10:28 RabidGravy though I do wonder if there is some way to programmatically get the PID from systemd
10:28 RabidGravy because it clearly knows
10:32 RabidGravy well apart from "systemctl -p MainPID status ...."
10:33 nine_ Does monit actually need the pid? Or would it suffice to know that the process is up and running?
10:35 RabidGravy it doesn't need it, but it makes it better
10:36 RabidGravy if it knows the pid it tries to find information about the process
10:37 nine_ RabidGravy: you meant systemctl -p MainPID show memcached
10:38 RabidGravy yes I do
10:38 RabidGravy did
10:42 Tux__ left #perl6
10:45 profan joined #perl6
10:53 kaare_ joined #perl6
11:03 uruwi joined #perl6
11:12 The_Schmidt left #perl6
11:19 finanalyst joined #perl6
11:22 pierre_ joined #perl6
11:24 kid51 joined #perl6
11:28 telex joined #perl6
11:44 pierre_ joined #perl6
11:47 RabidGravy how many times have I done "git add lib" *before* adding the .precomp to the .gitignore
11:47 |2701 joined #perl6
11:48 brrt joined #perl6
11:48 moritz git add $(find lib -name '*.pm6')
11:49 kid51 joined #perl6
11:51 tadzik fun idea: something that git-adds from META6.json
11:53 vendethiel- joined #perl6
11:54 RabidGravy tadzik, that could work
11:55 cosarara joined #perl6
12:00 tadzik question is, what do people actually do first :)
12:03 azawawi joined #perl6
12:04 azawawi hi
12:05 _mg_ joined #perl6
12:06 RabidGravy tadzik, actually no, but it does lead to an interesting family of tools
12:07 * azawawi dreams of a 2x http://ark.intel.com/products/91317/Intel-X​eon-Processor-E5-2699-v4-55M-Cache-2_20-GHz
12:08 tadzik 55M of cache, neat
12:08 azawawi look at the cores :)
12:08 azawawi and max memory
12:09 RabidGravy lawks
12:09 jnthn Core blimey!
12:09 tadzik hahah
12:09 RabidGravy that would work nicely for the occasional java application
12:09 tadzik that might be beyond what I could use
12:10 tadzik with a price to match :P
12:10 jnthn spectest would be awesome on it :)
12:10 aries_liuxueyang joined #perl6
12:10 azawawi :)
12:11 azawawi but still they could have made a 21 core (42 threads) processor instead of 22 for fun :)
12:11 RabidGravy well you can put two on a motherboard (if I read that right) so all good
12:11 azawawi yup
12:12 azawawi ~ 8k
12:13 azawawi so that's a lot of actual cores (44 cores => 88 threads)
12:13 * azawawi dreams
12:14 azawawi btw is 'rakudobrew build moar' single thread cpu-bound or does the number of cores affect the compilation speed given a fast enough I/O storage device?
12:15 RabidGravy it would be perfect for audio stuff
12:15 cosarara_ joined #perl6
12:16 RabidGravy fix the cpu affinity for each irq and away you go
12:17 RabidGravy could actually use firewire audio and the wifi at the same time ;-)
12:18 tadzik azawawi: hmm, it doesn't do anything -j that rakudo/nqp/moar doesn't do automatically
12:21 * RabidGravy concludes that XML::Class is actually too verbose for the most common cases
12:22 RabidGravy I should have made elements the default rather than attributes
12:23 RabidGravy SooOOooo, I'm thinking an :elements parameter to the role and jobs a good-un
12:26 nine_ MoarVM's compilation benefits greatly from -j. nqp and especially rakudo less so. Unfortunately most of the time goes into rakudo
12:29 araujo_ joined #perl6
12:30 brrt yes, moarvms makefile made me appreciate both make and whoever wrote the makefile
12:31 brrt what are the challenges for making the rakudo build benefit from parallelism, actually
12:32 profan joined #perl6
12:32 moritz mostly that there are stages that build upon each other
12:32 moritz most of the time is spent compiling the setting, and that needs src/Perl6/{Actions,Grammar,World} compiled first
12:32 brrt right
12:33 avar You can do stuff like that with make by having {Actions,Grammar,World} built in parallel and having other stuff depend on all 3 targets..
12:33 nine_ That wouldn't be much of an issue since Actions, Grammar and World can be compiled in parallel
12:33 psch Actions and Grammar both depend on World, do they not?
12:33 nine_ Doesn't buy you much though since those are quite quick anyway. What's killing us is the 50 seconds stage parse of the setting
12:33 moritz psch: that's late bound, IIRC
12:33 moritz nine_: I think that already happens with -j
12:34 moritz (compiling actions and world in parallel)
12:34 moritz and possibly also the compiler
12:34 nine_ moritz: it does. But our Makefile is a bit buggy so actually using -j sometimes gives you a broken build. That's why I've stopped using it.
12:34 moritz nine_: it does? I use it all the time
12:34 moritz nine_: star's makefile has that problem for sure
12:34 nine_ Maybe it's been fixed in the meantime.
12:35 moritz and NQP is basically impossible to parallelize much, because it's a bootstrapped compiler, and you simply cannot with one stage before you finished the previous one
12:35 nine_ If only there was a way to parallelize the parsing
12:36 brrt we should fund someone to make parsing faster
12:36 nine_ That would be money well spent. A quicker compile/test cycle would boost my productivity very much.
12:36 RabidGravy 50 second stage parse?  I wish, it's like 150 here
12:36 psch moritz: oh, alright
12:37 psch RabidGravy: build more r-j, 150s will be perfectly fine after a few dozend r-j builds :P
12:37 nine_ RabidGravy: I treated myself with an i7 a couple of years ago. Still enjoying it :)
12:37 psch well, assuming you're currently building r-m and *that* takes 150 secconds
12:37 psch -c
12:37 hotel joined #perl6
12:38 RabidGravy this is an i7 but quite old now ( ~5 years) and often runs hot so throttles back
12:38 brrt it would also not be a giant developer goodwill leak like it is now
12:38 [Coke] m: say <2147483648/3>
12:38 camelia rakudo-moar 14b921: OUTPUT«715827882.666667␤»
12:39 brrt 'oh, perl is good for text processing. let's do some parsing in perl6..... oh well, maybe not'
12:39 RabidGravy though my termcap parser is about twice as quick as it was when I started it
12:40 nine_ Maybe I should have invested my time in speeding up parsing instead of working around that with precompilation?
12:40 moritz no
12:40 brrt every bit helps
12:40 brrt percompilation is also awesome
12:40 moritz precompilation is immensely important for performance
12:40 nine_ Well I guess it wouldn't be that easy to speed up parsing by a factor of 10000
12:40 brrt nope
12:41 brrt there are just so many cool things to work on :-)
12:42 moritz how well does parsing JIT-compile?
12:42 lizmat which bits of code are we actually talking about here ?
12:42 moritz everything involved in parsing
12:42 nine_ so almost exclusively NQP
12:42 moritz the regex engine, the code compiled from the tokens in the grammar
12:43 moritz the LTM engine
12:43 moritz you name it
12:43 lizmat and directory wise, where are we talking about then ?
12:44 psch probably nqp/src/QRegex/?
12:44 psch well, plus the vm-specific ops for the NFA and all i suppose
12:44 moritz right
12:44 moritz and then src/Perl6/{Actions,Grammar}*
12:45 dustinm` joined #perl6
12:48 pmurias joined #perl6
12:50 lizmat FWIW, I'm looking at Cursor.INTERPOLATE now
12:51 moritz https://metacpan.org/pod/release/R​JBS/perl-5.24.0/pod/perldelta.pod "It was legal until now on ASCII platforms for variable names to contain non-graphical ASCII control characters (ordinals 0 through 31, and 127, which are the C0 controls and DELETE)."
12:52 moritz wow, TIL
12:52 cdg joined #perl6
12:53 tadzik oh wow
12:55 moritz I did know that spaces between sigil and variable name is allowed :-)
12:57 brrt moritz: actually pretty decently, but most logic is not implemented in the JIT
12:57 lizmat yeah, p5 is pretty weird like that
12:58 brrt or better said
12:58 brrt most logic is falling out to functions
12:58 brrt and in grammars, we have moarvm invocation after moarvm invocation, and those aren't too cheap (yet)
13:01 moritz but that's what jnthn++ is working on, right?
13:01 brrt aye
13:04 mr-foobar joined #perl6
13:06 sufrostico joined #perl6
13:11 jnthn The other big wins in parsing would be avoiding various bits of re-scanning that we do after the NFA has figured things out, and also compiling various simple tokens etc. in a simpler way, rather than assuming they need the full monty of a bstack/cstack
13:13 brrt what's a bstack?
13:15 moritz backtracking strack
13:15 brrt and a cstack?
13:16 jnthn cursor stack
13:16 jnthn (So, things we captured)
13:16 brrt hmm
13:16 brrt how does that work?
13:16 moritz magic!
13:16 brrt clearly :-)
13:17 brrt so you have two stacks for every nfa state?
13:19 skids joined #perl6
13:21 kurahaupo joined #perl6
13:24 rurban joined #perl6
13:29 cdg joined #perl6
13:30 cdg joined #perl6
13:32 jnthn brrt: No, it's two stacks per token/rule/regex
13:32 jnthn One of integers, one of objects
13:36 brrt i see
13:39 pierre_ joined #perl6
13:50 JustinHitla joined #perl6
13:50 JustinHitla I have string "5HALF-LIFE 3" and I have some programm that parses the string and prints out that string but it recognizes digits as a delay to at which speed print the letters so I need to way to print the digit so I decided to precede it with ' so it would be "5HALF-LIFE '3" and this is the code: foreach $i (0 .. $#str){ if($str[$i]==ord("'")){
13:50 JustinHitla print "$str[$i+1]"; }; but now I need to somehow skip over the character so it will not parse that "3" digit because it allready printed it, any ideas how to skip one loop inside foreach ?
13:51 ZoffixW joined #perl6
13:51 ZoffixW JustinHitla, oh gawd.. This is Perl 6, not C :P
13:52 RabidGravy or Perl 5 for that matter
13:52 JustinHitla but actually its just one digit so I can just use code: if($str[$i]==ord("'")) print "3"; but it would be better to have universal code where I can encode or "escape" any digit
13:53 RabidGravy JustinHitla, you appear to be asking a question about Perl 5
13:53 ZoffixW Oh, yeah, that too lol
13:54 JustinHitla or I can just do:      foreach $i (0 .. $#str){ if($skip == 1) { $skip = 0; continue}; if($str[$i]==ord("'")){ $skip=1; };       right ?
13:54 Ulti https://glot.io/new/perl6 <-- now runs 2016.04 and doesn't have the line noise in error messages :3
13:54 JustinHitla so no one knows perl5 here ?
13:54 Ulti I do
13:54 tadzik m: "5HALF-LIFE 3".index('3').say
13:54 camelia rakudo-moar 14b921: OUTPUT«11␤»
13:54 ZoffixW JustinHitla, I do
13:54 ZoffixW JustinHitla, but why ask here instead of #perl ?
13:55 JustinHitla ZoffixW: we need to talk
13:55 ZoffixW JustinHitla, but even with Perl 5. Breaking up strings into arrays of characters and operating on that is a bit odd. I'd probably just use a while() with a lookbehind for your special case
13:55 kurahaupo JustinHitla: you could try the regular #perl channel
13:55 ZoffixW JustinHitla, while with a regex match that is. Or maybe map/grep on a splitted things
13:55 tadzik "any ideas how to skip one loop inside foreach?" -- you're looking for 'continue'
13:55 tadzik but it seems to me that you're doing something very awkward :P
13:56 RabidGravy or next
13:56 tadzik oh yeah, Perl spells it that way
13:56 tadzik I think you'd like to know about Twines :)
13:56 ZoffixW JustinHitla, next if $char_is_special;
13:56 JustinHitla so yes I will go with: if($skip == 1) { $skip = 0; continue};
13:56 ZoffixW JustinHitla, but then you have a problem that you can't use '
13:57 JustinHitla right
13:57 tadzik or how is that "string, data, string" data structure called
13:57 tadzik just don't do String Typing :)
13:57 Ulti JustinHitla it would be good to both see your current code in a pastebin with details of your inputs and desired outputs
13:59 tadzik I can't find anything on twine on the web now, masak might remember where to find it
13:59 ZoffixW <jnthn> spectest would be awesome on it :) <--- I did it on the weekend: TEST_JOBS=1000 make spectest: real 3m51.235s / TEST_JOBS=100 make spectest: 1m53.111s: http://irclog.perlgeek.de/p​erl6/2016-05-06#i_12441550
13:59 ZoffixW Well, almost. I had 20 cores instead of 22. + 98GB of RAM
13:59 jnthn ZoffixW: wow
14:02 JustinHitla I think perl6 folks evolved more than perl5 folks
14:02 ZoffixW JustinHitla, what does that mean? :)
14:03 JustinHitla I mean perl5 folks will extinct eventually thay are not fit for survival and they are not sociable creatures
14:03 tadzik I, for one, have 3 arms
14:03 cdg joined #perl6
14:03 ZoffixW JustinHitla, I'm a Perl 5 folk....
14:03 tadzik perl5 people are probably the most social creatures I've ever met
14:03 tadzik I wouldn't be who I am now if Warsaw.pm folks weren't fun :)
14:04 ZoffixW hugTABTABTAB... dammit
14:04 ZoffixW stupid bot :(
14:04 sena_kun joined #perl6
14:05 gregf_ JustinHitla: you dont need s loop for that, something like $str =~ s/[^?]+\?// should do ;)
14:05 gregf_ s/ s / a /
14:05 huggable joined #perl6
14:06 gregf_ oops; s/\?/\'/
14:06 rindolf joined #perl6
14:06 ZoffixW gregf_, I don't think that accomplishes part of the requirement where the 'HALF-LIFE 3' needs to be printed with 5-second intervals between letters.
14:08 khw joined #perl6
14:10 gregf_ oh, then ignore me :)
14:14 colomon joined #perl6
14:23 JustinHitla I made it so when I have digits the will be preceded by "%" in form of: "8the 8day 8may %9 3in %1%9%4%5 3is 3when 8WWII 3ended"      so all digits with "%" in front it will print as digits but other digits the programm will interpret as amount of delay for every letter
14:24 AlexDaniel joined #perl6
14:25 JustinHitla but now I don't know how to delay printing of digits
14:27 sena_kun JustinHitla, sleep sub?
14:27 sena_kun JustinHitla, http://doc.perl6.org/routine/sleep
14:27 JustinHitla I use "select(undef, undef, undef, $d);" for delay
14:28 AlexDaniel m: &
14:28 camelia rakudo-moar 14b921: OUTPUT«WARNINGS for /tmp/LsWXfxOrPx:␤Useless use of unnamed & variable in sink context (line 1)␤»
14:28 AlexDaniel m: &()
14:28 camelia rakudo-moar 14b921: ( no output )
14:28 JustinHitla so when it parses digit for delay the code is: "if($num>=48 && $num<=57){ $num=$num-48; $d=0.01*$num; }"
14:29 JustinHitla of course: $num=ord($str[$i]);
14:29 JustinHitla it recognizes it as number because its code is between 48 and 57
14:30 AlexDaniel why not just match it against /\d/ ?
14:30 AlexDaniel or something
14:31 JustinHitla actually the code was written by me back in august 2009, and I decided to change it few days ago so back then I didn't know much about perl and stuff
14:31 mst any chance I can elicit a "congratulations from the perl6 community" comment on https://www.reddit.com/r/programming/c​omments/4ij9u5/perl_524_is_available/ to help make my point?
14:31 mst (with the understanding that you can ask me to do vice versa if somebody's being a similar muppet about a rakudo release :)
14:32 ZoffixW m: my $delay = 0; for "8the 8day 8may %9 3in %1%9%4%5 3is 3when 8WWII 3ended".comb: /'%'?\d || ./ { my $l =$_; if $l ~~ /^\d$/ { $delay = $l; next }; $l ~~ s/^'%'(\d)/$0/; say "[sleep  $delay] $l" }
14:32 camelia rakudo-moar 14b921: OUTPUT«[sleep  8] t␤[sleep  8] h␤[sleep  8] e␤[sleep  8]  ␤[sleep  8] d␤[sleep  8] a␤[sleep  8] y␤[sleep  8]  ␤[sleep  8] m␤[sleep  8] a␤[sleep  8] y␤[sleep  8]  ␤[sleep  8] 9␤[sleep  8]  ␤[sleep  3] i␤[sleep  3] n␤[sleep  3]  ␤[…»
14:32 tadzik I can chime in
14:32 timotimo oh hey tadzik
14:32 timotimo i didn't know you also play the chimes!
14:33 ZoffixW mst, https://www.reddit.com/r/programming/comm​ents/4ij9u5/perl_524_is_available/d2ym0ip
14:33 mst \o/ ta
14:34 mst sorry. just ... the first comment on perl5 version 24's release shouldn't be somebody going 'use perl6!', had it been "congratulations, and remember this other awesome perl exists" I'd've upvoted him, but, no, let's just be divisive
14:34 mst I love people. honest.
14:34 mst <3 #perl6
14:34 jast good response, though
14:34 RabidGravy no you don't :)
14:35 mst oh, I'm sorry, am I dripping sarcasm on the floor again?
14:35 * mst gets the mop
14:35 sena_kun Here is a one-liner: if "5HALF-LIFE '3 IS GOD" ~~ m/\'(\d)/ { sleep($0.Int); say $/.prematch ~ $/.postmatch };
14:35 RabidGravy I actually don't understand the tribalism about software anymore
14:36 tadzik people think that if you're attacking something they like, you're attacking them
14:36 jast firefox > gimp!
14:36 timotimo ZoffixW: oh god you perl6 guys have to TAKE OVER EVERYTHING ABOUT PERL
14:37 jdv79 RabidGravy: tribalism is a human centered concept though
14:37 mst right, humans gonna human
14:38 mst I just like squishing it when I see it, because I don't like it when it escapes and gets in the way of writing code
14:38 ZoffixW sena_kun, my understanding is the requirement is to sleep on each letter with the saved delay. New digits change that delay for all subsequent letters. My convoluted eval above seems to work for that. Not sure if that's what *actually* JustinHitla wanted, since they're writing that in Perl 5.
14:40 sena_kun ZoffixW, aw, it's different then. Yeah, then your version is surely more correct. Anyway, I just tried my perl6 one-liner skills. (:
14:40 ZoffixW mst, what's funny, is on a Perl 6 facebook page, there's a guy posting "a better perl" on P6 posts, promoting P11 :P
14:41 mst oh for pete's sake
14:42 RabidGravy which is kinda barking 'cause it appears to be a "worse perl" just a bit faster
14:42 mst is he actually talking about rperl?
14:43 RabidGravy yes
14:43 * skids does not understand tribalism in general, not having had much of an extended family nearby during his youth.
14:43 skids And, not liking sports
14:43 ZoffixW m: for ^10 { $ = $_; say $ }
14:43 camelia rakudo-moar 14b921: OUTPUT«(Any)␤(Any)␤(Any)␤(Any)␤(An​y)␤(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤»
14:43 mst rivalries between adjacent high schools do the same thing
14:43 mst and etc. and etc.
14:44 mst it's annoying, but it's totally a universalish human sociological phenomenom
14:44 ZoffixW So $ is really useful for a counter, right? Can't "store" anything in it...
14:44 skids I rmember succumbing to it in high school, but just thought it was a phase everyone would grow out of... boy was I wrong.
14:44 luiz_lha joined #perl6
14:44 timotimo well, every time you mention $ you get a different one
14:44 timotimo that's why your code above doesn't do what you want
14:44 ZoffixW Ah
14:44 mst m: for ^10 { say $ = $_ }
14:44 camelia rakudo-moar 14b921: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
14:44 timotimo you can assign to it, you just have to make sure you refer to the same one when you try to pull something back out
14:45 mst oh, because of course
14:45 mst m: sub f($x) { say $ = $x } for ^10 { f($_) }
14:45 camelia rakudo-moar 14b921: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oMg9sxJL1_␤Unexpected block in infix position (missing statement control word before the expression?)␤at /tmp/oMg9sxJL1_:1␤------> 3sub f($x) { say $ = $x } for ^107⏏5 { f($_) }␤    expecting any …»
14:45 mst m: sub f($x) { say $ = $x }; for ^10 { f($_) }
14:45 camelia rakudo-moar 14b921: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
14:45 mst ok, still not what I thought
14:45 mst m: sub f($x) { say $ ||= $x }; for ^10 { f($_) }
14:45 camelia rakudo-moar 14b921: OUTPUT«0␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
14:45 mst hah
14:46 ZoffixW m: loop { say '.'; last if $++ > 10 }
14:46 camelia rakudo-moar 14b921: OUTPUT«.␤.␤.␤.␤.␤.␤.␤.␤.␤.␤.␤.␤»
14:46 mst (I did warn you guys I was fscking terrible at this :)
14:47 ZoffixW m: loop { say $ ?? $++ > 5 !! $-- < -5; last if $++ > 10 }
14:47 camelia rakudo-moar 14b921: OUTPUT«False␤False␤False␤False␤False␤​False␤True␤True␤True␤True␤True␤True␤»
14:47 ZoffixW :D
14:50 JustinHitla the only thing I haven't figured out is how to do delay more than 9, if I write "12some text" the programm will see it as 1 followed by 2 and the delay will be 2 units of time not 12 units
14:51 timotimo in that case why not just 93 :P
14:52 ZoffixW JustinHitla, your problem is you're tackling this issue as an array of characters, instead of as a list of *tokens*
14:52 tadzik JustinHitla: stop using strings for this :(
14:52 JustinHitla well well, someone ate a clown on breackfast today
14:52 timotimo i actually still have to get breakfast; i should do that right now
14:52 JustinHitla timotimo: try red haired and red noised clown, I find them taste funny
14:53 mst JustinHitla: http://trout.me.uk/mongodb.jpg *burp*
14:53 JustinHitla that link sounds malicious to me
14:53 timotimo Maliciou S. Trout
14:54 ZoffixW :P
14:54 ZoffixW JustinHitla, you have a token that changes sleep duration, token that's an escape sequence, and token that's just a plain character to print. Break up your string into those tokens. Loop over them. Change duration if it's a sleep token. Convert the escape sequence into proper character. Prrrriiiint
14:54 ZoffixW JustinHitla, and this way you can sleep for 2 or for 2_000_000_000 seconds :)
14:54 * ZoffixW & meeting
14:54 mst JustinHitla: if a plain jpeg file is malicious to your system, you have more problems than the fact your code is currently silly :)
14:56 mst and, yeah, breaking this up into an array of tokens or just crawling along with a while regexp munching a token at a time is the answer
14:56 mst I guess you *could* use a loop with a position in the string and test if $pos+1 also contains a digit, but then you're basically reinventing perl6's existing abilities to do what we already suggested
14:57 pierre_ joined #perl6
14:57 cbk joined #perl6
14:58 timotimo you can even put the print and the sleep into curlies inside the regex
15:03 RabidGravy a neat one would be to parse and return a supply that returned the characters at the appropriate interval
15:03 mst oh, yes, that would be very neat
15:05 jast mst: you've got a friendly response on reddit...
15:05 ptolemarch joined #perl6
15:05 DrForr I would love to cover supply &c in the tutorial, but there's just not enough time.
15:07 mst jast: :D :D :D :D :D
15:08 * mst also notes one of the /r/perl admins popped up to tell him he earned a ban there
15:09 jast that guy isn't actually listed as a moderator in /r/perl
15:10 geekosaur that character's been popping up and trolling in multiple channels fwiw
15:11 mst jast: mm. I *think* he may've reported it and passed it back, IME bennymack usually knows what he's talking about
15:11 mst geekosaur: taiarmin?
15:11 geekosaur oh, sorry, I misassociated things
15:11 itcharlie joined #perl6
15:15 timotimo i was going to say "i don't want someone who acts like that in my perl6 community", but i think insulting mst is a sport with proud heritage in the greater perl community, so i'll let it slide :P
15:15 colomon_ joined #perl6
15:16 mst I'd rather have somebody who can come up with better insults, but otherwise I concur
15:16 timotimo well, everybody has to start *somewhere*
15:16 geekosaur it's a lost art these days
15:16 jast I can spend some brain cycles on making better insults if you like
15:17 * mst replies to him with only a link to http://www.trout.me.uk/apology.jpg
15:18 timotimo wow, that's such a no-pology, mst
15:18 mst I was being nice, I didn't send him either hopper.jpg or gfy.gif
15:18 jast sounds like something Bowerick Wowbagger the Infinitely Prolonged might say
15:19 mst jast: one of my personal heroes, yes
15:19 mst I continue to look forward to him getting to 'T'
15:19 * [Coke] wonders if that reddit link from earlier today is now missing the comment that mst was complaining about.
15:19 mst [Coke]: it got downboated below -5 and is thus hidden
15:19 mst which is pretty much what I wanted
15:20 mst caw caw bang f**k you're dead
15:20 RabidGravy I ought to port muttley's insult code to P6 seeing as I wrote half the insults ;-)
15:21 colomon_ joined #perl6
15:21 pierre_ joined #perl6
15:21 mst <3
15:22 * [Coke] spends way too much time seeing if he can view hidden comments.
15:23 tadzik boo, my comment was for naught
15:23 mst [Coke]: https://www.reddit.com/r/programming/comm​ents/4ij9u5/perl_524_is_available/d2yk21j
15:23 tadzik oh no, I was looking at /r/perl post
15:24 timotimo "why are there two different versions of perl? after 20 years?" ... hasn't this been talked about like a bajillion times?
15:24 jast all the better, then you can answer with a link that concisely explains the situation ;)
15:24 huf if there are children, why are there still adults?
15:25 timotimo why are some people still children after 20 years?
15:25 huf if there are shoes, why are there still rotary hoes?
15:25 huf ah, rotary tiller. i knew it sounded better.
15:26 huf not as good as "rotációs kapa" but you cant win'em all :)
15:26 mst timotimo: "Two languages, one family. You might as well ask why there's more than one lisp."
15:27 moritz .oO( There's more than one way to Lisp it )
15:27 timotimo why the hell would anyone still be using scheme when there's common lisp?
15:28 timotimo come on, just let it die! even php managed to do that!
15:28 jast after brief investigation, emacs lisp is clearly superior to all others
15:28 timotimo mhhh, every variable is dynamically scoped
15:28 timotimo perfect
15:28 mst I thought they finally acquired lexical scoping
15:28 huf yes, years ago
15:28 ilmari I thought someone was working on replacing that with guile?
15:28 timotimo i have no idea. as usual i'm just talking out of my proverbial ass
15:29 huf you-have-to-request-it-with-a-long-thing though, iirc
15:29 ilmari iirc guile has an elisp frontend
15:29 jast I haven't looked at emacs very hard, honestly, but I read about all these warts it has for hysterical raisins
15:29 mst it's guile's fault I have a pause account
15:29 moritz (yes-i-want-a-lexical-variable x)
15:29 ilmari lexical-let
15:30 jast interesting topic, though. with all these upstarts trying to replace vim, is there any project that's trying to replace emacs?
15:30 geekosaur letxical?
15:30 mst jast: eclipse?
15:30 timotimo how can elisp have lexical variables when they don't have any curlies? :P
15:30 jast forks with minor changes excluded
15:30 geekosaur emacs jhas been trying to replace itself (with one based on guile), not very successfully
15:30 cbk joined #perl6
15:31 mst timotimo: if you don't know how to built let out of lambda, you're (a) not a true lisper (b) have never written javascript
15:31 jast mst: well, eclipse does have one thing going for it: it needs a lot more java packages
15:31 timotimo :)
15:31 huf is there a js compiler that compiles sane js to shit js?
15:31 mst huf: babel
15:31 jast you mean more shit than 'minifiers'?
15:31 huf i am going to beat that into our head.
15:31 stmuk there was the lucid or xemacs fork and jed was somewhat emacs-like (although based on s-lang)
15:31 huf i mean it lets me use "let" in a browser
15:32 mst huf: indeed
15:32 huf and before someone brings up latest chrome or some shit like that, i mean ie :D
15:32 huf mst: yaay
15:32 mst I was trying to get it all installed over the weekend
15:32 mst but then nope.js wanted a newer g++ and I declined to go down that rathole at the time
15:32 moritz I recently read a piece about how emacs idea of being very configurable and extensible has been adopted by all major text editors
15:32 jast for some values of 'extensible' I guess
15:33 moritz but vim's idea of having text objects and composable commands that work on them haven't been nearly as widely adopted
15:33 rurban joined #perl6
15:33 timotimo i read that, too
15:33 jast oh, that one
15:33 jast vim's composability *is* nice
15:33 itcharlie any idea how I can fix this error? https://gist.github.com/itcharlie​/7047355b323e04e1153fb4d233be3e7f
15:33 itcharlie error string : "Cannot locate native library"
15:33 stmuk I quite liked the sound of "vis"
15:34 * mst continues to be be happy with ex-vi
15:34 mst vim is ... well, I'm convinced vimscript was invented due to a drunken bet of the form "bet you can't make something that makes elisp look good"
15:34 timotimo itcharlie: can you see if the path it has in that line exists?
15:34 * geekosaur uses nvi and emacs (and played with atom a bit)
15:35 geekosaur and mst just stole my line re vimscript :p
15:35 [Coke] itcharlie: does it work with an http url?
15:35 stmuk I went to a talk about vimscript which was interesting but my main takeaway was I swore never to use it
15:36 itcharlie [Coke]:  yes it works with http url
15:36 jast vimscript is very... ad hoc
15:37 jast vim does have bindings for various real languages, though, from what I know
15:37 timotimo that's right
15:37 ssotka joined #perl6
15:37 sena_kun HTTP::Easy started with bailador collects nice headers, but HTTP::Server::Tiny recieves only Any in a @headers and fails. Why is guilty?
15:37 timotimo at least python and ruby, probably also perl
15:38 stmuk I'd probably abandon both vim and emacs if Linus wrote a replacement
15:38 jast not sure Linus is interested in that
15:38 jast but it's definitely possible to make something much better than both vim and emacs
15:38 mst my slow, multi-year plan, is to turn ex-vi into a libvi and then bind it into perl as an XS module
15:38 mst given how many years and how little progress and how it's mostly just for my own amusement, maybe I should FFI it into perl6 instead
15:38 RabidGravy mst++ # crack addled
15:39 sena_kun stmuk, Linus uses microemacs fork afaik.
15:39 stmuk he has joked about it .. as long as its not based on uemacs it could be interesting
15:39 itcharlie With a https url  I needed to install IO::SOCKET::SSL  which comes with a list of dependencies. one dependency is Find::Bundled which is what I think may be breaking it.
15:39 stmuk sena_kun: yes
15:39 itcharlie [Coke]: ^ previous comment
15:39 jast I've thought about writing my own editor, just for the fun of it, but then again all this stuff takes time
15:39 RabidGravy itcharlie, yes that seems likely
15:41 masak mst: ...but did you know that in JavaScript, you can build `let` out of `throw`/`catch`? :D
15:41 masak (ohayo, #perl6)
15:41 mst masak: u wot
15:42 mst I know (function (x) { ... })(x)
15:43 masak mst: well, you can express `let x = 42; ...` as `try { throw 42 } catch (x) { ... }`
15:44 masak notably, `catch` is the only ES3 feature which has block scope rather than function scope!
15:44 mst ... ... ... ... ... ... ... ... *boom*
15:44 huf this is why i became a programmer!
15:44 huf nasty disgusting stuff like this :D
15:48 cbk joined #perl6
15:49 tadzik oh wow
15:50 kurahaupo mst: is that a morse fuse going "sssssss" ? :-)
15:51 jast figures that I'd learn more nasty stuff about javascript in #perl6
15:51 mst kurahaupo: noise on the line until the hardware watchdog kicked in and rebooted my brain :D
15:52 lnrdo_ joined #perl6
15:52 * masak would like to recommend https://github.com/getify/You-Dont-Know-JS to everyone who doesn't know about it already
15:54 cbk joined #perl6
15:54 araujo joined #perl6
15:59 pullphinger joined #perl6
16:02 samb1 joined #perl6
16:08 * moritz always knew he didn't know JS
16:08 ugexe itcharlie: maybe `zef/panda update`... i removed the dependency on Find::Bundled for OpenSSL the other day
16:10 ugexe https://github.com/sergot/openssl/commit/​85f4413c64e6506b8bfd053b2288c7d5831be1b5#​diff-bcb1db43e3afbc2292948a804dfe435cL6
16:10 tadzik oh, another module with Build gone :) ugexe++
16:11 ugexe you'll probably want to reinstall HTTP::UserAgent *after* you install IO::Socket::SSL though
16:13 rurban1 joined #perl6
16:15 masak tadzik: what's the thing behind "Build gone"? I've missed that.
16:16 masak (I do see that the `build-depends` key went away in that commit)
16:17 tadzik ...it did?
16:17 tadzik crap, -a bit me again
16:17 tadzik oh, wait
16:17 tadzik openssl doesn't need Build.pm anymore
16:18 tadzik and panda also no longer requires for that Build.pm to inherit Panda::Builder
16:19 RabidGravy If I have a list of pairs with duplicate keys, what's the neatest way to turn that into a hash with those keys, and the values arrays of the encountered values
16:20 RabidGravy e.g. I'm doing "'somefile'.IO.lines>>.split(/\s+/).map( -> ($a, $b, $c) { one => $a, two => $b, three => $c }).flat"
16:21 moritz RabidGravy: my %h; %h.push(list)
16:21 RabidGravy yeah, that's what I'm actually doing right now
16:21 moritz m: (my %h).push( 'a' => 1, 'b' => 2, 'a' = 3); say %h.perl
16:21 camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Str␤  in block <unit> at /tmp/axxoozCZ2n line 1␤␤»
16:21 moritz m: (my %h).push( 'a' => 1, 'b' => 2, 'a' => 3); say %h.perl
16:21 camelia rakudo-moar df4eb8: OUTPUT«{:a($[1, 3]), :b(2)}␤»
16:22 ZoffixW :o
16:22 RabidGravy I'll stick with that then ;-)
16:23 moritz there's nothing more elegant than the primitive we provided FOR EXACTLY THIS USE CASE :-)
16:26 masak couldn't one also do something similar with .classify(*.key) ?
16:27 psch m: my %h = ( a => 1, b => 2, a => 3 ).classify(*.key); say %h
16:27 camelia rakudo-moar df4eb8: OUTPUT«{a => [a => 1 a => 3], b => [b => 2]}␤»
16:27 masak hm. almost :)
16:28 RabidGravy m: say ( a => 1, b => 2, a => 3 ).classify(*.key, as => { $_.value})
16:28 camelia rakudo-moar df4eb8: OUTPUT«{a => [1 3], b => [2]}␤»
16:29 masak m: say ( a => 1, b => 2, a => 3 ).classify(*.key, as => *.value)
16:29 camelia rakudo-moar df4eb8: OUTPUT«{a => [1 3], b => [2]}␤»
16:29 masak m: say ( a => 1, b => 2, a => 3 ).classify(*.key, :as(*.value))
16:29 camelia rakudo-moar df4eb8: OUTPUT«{a => [1 3], b => [2]}␤»
16:30 domidumont joined #perl6
16:36 cbk joined #perl6
16:45 RabidGravy "goatish beef-witted pigeon-egg"
16:45 rurban joined #perl6
16:46 RabidGravy there, ported to about 5 lines of code
16:46 timotimo from how many?
16:47 pullphinger joined #perl6
16:49 RabidGravy ~20 or so
16:49 timotimo that's not bad
16:52 rurban left #perl6
16:56 cbk_ joined #perl6
16:57 cbk joined #perl6
16:59 RabidGravy "goatish bat-fowling giglet" ;-O
16:59 dalek doc: b8efc34 | (Sterling Hanenkamp)++ | doc/Language/ (2 files):
16:59 dalek doc: Fix a spelling error and wrap in phasers/concurrency
16:59 dalek doc: review: https://github.com/perl6/doc/commit/b8efc34a35
17:00 dalek doc: 25aa713 | (Jan-Olof Hendig)++ | doc/Language/5to6-perlop.pod:
17:00 dalek doc: Fixed a few broken links
17:00 dalek doc: review: https://github.com/perl6/doc/commit/25aa7136ea
17:01 cbk_ joined #perl6
17:01 molaf joined #perl6
17:02 timotimo huh, all those posts from the "perl 5.24 is available" thread got deleted along with the user
17:04 * geekosaur glances at what look like DCSS imp insults in backscroll >.>
17:04 cbk_ joined #perl6
17:05 psch that's something i haven't played in some time...
17:06 ggoebel114 joined #perl6
17:08 cbk joined #perl6
17:11 ZoffixW timotimo, ... it's still there: https://www.reddit.com/r/programming/c​omments/4ij9u5/perl_524_is_available/
17:11 travis-ci joined #perl6
17:11 travis-ci Doc build failed. Sterling Hanenkamp 'Fix a spelling error and wrap in phasers/concurrency'
17:11 travis-ci https://travis-ci.org/perl6/doc/builds/128906171 https://github.com/perl6/doc/com​pare/30a4a6ec7218...b8efc34a3570
17:11 travis-ci left #perl6
17:11 timotimo ZoffixW: um, clear your cache?
17:11 geekosaur "posts from the thread"
17:11 geekosaur oh
17:12 ZoffixW timotimo, oh, you mean the 'better perl' guy? I thought you meant the whole thread.
17:13 hankache joined #perl6
17:13 jast the user is still there, only the posts are gone
17:13 ZoffixW I see '[deleted]' for the username
17:14 mst yes, they do that when comments are deleted
17:14 jast yeah, that happens for all deleted posts
17:14 jast *comments
17:14 ZoffixW Ah
17:14 hankache good evening #perl6
17:14 * ZoffixW doesn't read reddit... too many trolls and haters
17:14 jast depends on where you go
17:16 firstdayonthejob joined #perl6
17:18 espadrine joined #perl6
17:20 stmuk the negative karma thing helps
17:27 cbk joined #perl6
17:29 spider-mario joined #perl6
17:31 mst if it gets enough downvotes, it's hidden; if it gets even worse, then people will often delete the comment
17:31 huf i really hate that
17:31 huf so often i cant get properly angry because the comment is gone by the time i get to it
17:32 _rubio_ joined #perl6
17:34 CIAvash joined #perl6
17:35 jast huf: just get angry about something else, Problem Solved (tm)
17:36 cbk Lol
17:36 geekosaur "I'm always angry."
17:38 jast for instance, in allwinner's sunxi linux fork, there's a proc entry to which you can write a magic string to upgrade your current task to root privs
17:38 itcharlie ugexe: I tried to update / uninstall but doesn't work. I need a new rakudo build on Windows :
17:38 itcharlie https://gist.github.com/itcharlie​/c6f47352fd480cf690eeec5619a71482
17:41 nicq joined #perl6
17:41 nicq p6: say "hello"
17:41 camelia rakudo-moar df4eb8: OUTPUT«hello␤»
17:41 rurban1 joined #perl6
17:42 nicq p6: constant target = "METHINKS IT IS LIKE A WEASEL"; constant mutate_chance = .08; constant @alphabet = flat 'A'..'Z',' '; constant C = 100;
17:42 camelia rakudo-moar df4eb8: ( no output )
17:43 nicq p6: constant target = "METHINKS IT IS LIKE A WEASEL"; constant mutate_chance = .08; constant @alphabet = flat 'A'..'Z',' '; constant C = 100;   sub mutate { $^string.subst(/./, { rand < mutate_chance ?? @alphabet.pick !! $/ }, :g) } sub fitness { [+] $^string.comb Zeq state @ = target.comb }   loop (     my $parent = @alphabet.roll(target.chars).join;     $parent ne target;     $parent = max :by(&fitness), mutate($parent) xx C ) { printf
17:43 camelia rakudo-moar df4eb8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Strange text after block (missing semicolon or comma?)␤at /tmp/tmpfile:1␤------> 3_chance ?? @alphabet.pick !! $/ }, :g) }7⏏5 sub fitness { [+] $^string.comb Zeq sta␤    expecting any of:…»
17:43 nicq p6: constant target = "METHINKS IT IS LIKE A WEASEL"; constant mutate_chance = .08; constant @alphabet = flat 'A'..'Z',' '; constant C = 100;   sub mutate { $^string.subst(/./, { rand < mutate_chance ?? @alphabet.pick !! $/ }, :g) } sub fitness { [+] $^string.comb Zeq state @ = target.comb }   loop (     my $parent = @alphabet.roll(target.chars).join;     $parent ne target;     $parent = max :by(&fitness), mutate($parent) xx C ) {printf "
17:43 camelia rakudo-moar df4eb8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Strange text after block (missing semicolon or comma?)␤at /tmp/tmpfile:1␤------> 3_chance ?? @alphabet.pick !! $/ }, :g) }7⏏5 sub fitness { [+] $^string.comb Zeq sta␤    expecting any of:…»
17:44 nicq p6: constant target = "METHINKS IT IS LIKE A WEASEL"; constant mutate_chance = .08; constant @alphabet = flat 'A'..'Z',' '; constant C = 100;   sub mutate { $^string.subst(/./, { rand < mutate_chance ?? @alphabet.pick !! $/ }, :g) }; sub fitness { [+] $^string.comb Zeq state @ = target.comb }   loop (     my $parent = @alphabet.roll(target.chars).join;     $parent ne target;     $parent = max :by(&fitness), mutate($parent) xx C ) {printf
17:44 camelia rakudo-moar df4eb8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Strange text after block (missing semicolon or comma?)␤at /tmp/tmpfile:1␤------> 3^string.comb Zeq state @ = target.comb }7⏏5   loop (     my $parent = @alphabet.rol␤    expecting any of:…»
17:44 JustinHitla can something be more cryptic than that output ?
17:44 nicq ?
17:45 itcharlie nicq:  you have perl6 installed on your machine?
17:45 nicq Oh, I didn't realize this would show up for you too! Sorry...
17:45 nicq Yeah, I have it on my machine
17:45 JustinHitla nicq: it shows up for everyone in channel too
17:45 aries_liuxueyang joined #perl6
17:46 nicq ._.
17:46 psch nicq: most importantly, your code is too long for irc :)
17:46 psch nicq: you could feed a gist to camelia
17:46 JustinHitla nicq: its not like when querry DCC bot
17:46 psch nicq: which also works in a query with camelia, fwiw
17:47 RabidGravy it's the end times isn't it?
17:47 JustinHitla its 03:37 here
17:47 JustinHitla need one bit flipped
17:48 nicq Oh, ok. I found some code on Rosetta Code and I was trying to figure out how it works. It works fine on my machine, so I wanted to try it somewhere else as well. 'http://rosettacode.org/wiki/E​volutionary_algorithm#Perl_6'
17:48 nicq Not real sure why/how this works.
17:48 mst nicq: 's ok, the regulars are usually fairly happy with getting to see what people are doing so long as you stop after two or three
17:49 mst but once you've exceeded irc line length it's time to pick a different approach
17:50 nicq Good point.
17:50 [particle] joined #perl6
17:52 nicq I was mainly trying to figure out how the line `sub fitness { [+] ...` works. I've never seen `Zeq` used before.
17:52 JustinHitla "regulars" means "average joes" ?
17:52 itcharlie ugexe:  I'll continue working on that code in Linux. just wanted to point out that it doesn't work in Windows10. I'll wait for a new Rakudo Build for windows and test zef update and uninstall again.
17:53 mst JustinHitla: means "people who are here regularly", just like it does everywhere else
17:59 psch nicq: Zeq is probably easier understood as Z[eq]
18:00 psch m: say <foo bar> Z[eq] <foo bar>
18:00 camelia rakudo-moar df4eb8: OUTPUT«(True True)␤»
18:00 psch m: say <foo bar> Z[eq] <foo baz>
18:00 camelia rakudo-moar df4eb8: OUTPUT«(True False)␤»
18:01 nicq psch: Oh, ok. So it compares the elements in two arrays instead of the array as a whole?
18:02 dalek doc: 42d3732 | (Jan-Olof Hendig)++ | doc/Language/5to6-perlsyn.pod:
18:02 dalek doc: Fixed a broken link
18:02 dalek doc: review: https://github.com/perl6/doc/commit/42d3732247
18:03 avenj joined #perl6
18:05 huggable joined #perl6
18:06 TimToady JustinHitla: we could certainly make that message more cryptic by leaving out the "(missing semicolon or comma?)" or by not indicating exactly where the error occurred...
18:06 nicq psch: Thank you, makes sense now.
18:06 psch nicq: well, Z is a meta operator that "zips" two Positionals
18:07 nicq psch: Ok, so it was throwing a `eq` between each of them.
18:07 TimToady m: say 1,2,3 Z+ 1,1,1
18:07 camelia rakudo-moar df4eb8: OUTPUT«(2 3 4)␤»
18:08 TimToady you can use it on any infix operator, pretty much
18:09 psch m: (my ($x, $y)) Z= 1, 2; say $x
18:09 camelia rakudo-moar df4eb8: OUTPUT«1␤»
18:09 psch ...although that specific one is kinda silly, with list-assign being a thing :)
18:09 TimToady m: my $x, my $y Z= 1,2; say $x
18:09 camelia rakudo-moar df4eb8: OUTPUT«1␤»
18:09 TimToady you can omit the parens on the left with Z=
18:10 nicq More than one way to do things
18:10 TimToady there's a slogan in there somewhere...
18:11 nicq [insert giant acronym here]
18:12 mst m: say [1,2],[3,4] ZZ* [5,6],[7,8]
18:12 camelia rakudo-moar df4eb8: OUTPUT«((5 12) (21 32))␤»
18:13 mst TimToady: not quite J, but neat.
18:14 nicq So, if `Zeq` is a combination of `Z` and `eq` what does the `:by` mean in the `parent = max :by(&fitness), mutate($parent) xx C` line?
18:15 TimToady it's just a named argument
18:15 brrt joined #perl6
18:15 TimToady changes the default comparison operator to something else
18:17 nicq Oh! That makes much more sense. So instead of `by => &fitness` they used `:by(&fitness)`?
18:17 cpage_ joined #perl6
18:17 TimToady you can use either of those, yes
18:17 nicq Ok, still used to Perl 5. Forgot you could do that...
18:18 mst whereas over in perl5 land we have to have http://p3rl.org/List::UtilsBy to get the same behaviour
18:18 mst <3 that module, but the perl6 named arg stuff makes things way nicer
18:19 skink joined #perl6
18:21 tharkun joined #perl6
18:24 pierre_ joined #perl6
18:28 skink RabidGravy, Do you remember me mentioning OAuth2?
18:29 RabidGravy I do
18:29 skink pm?
18:29 RabidGravy eh?
18:30 mst RabidGravy: he means "can I private message you without you setting me on fire?"
18:30 skink ^ That :)
18:31 mst there's a freenode tradition of asking permission in a channel first, for ... whatever reason
18:33 tharkun joined #perl6
18:39 _28_ria joined #perl6
18:45 espadrine_ joined #perl6
18:47 dalek ecosystem: 0626e73 | RabidGravy++ | META.list:
18:47 dalek ecosystem: Add Acme::Insult::Lala
18:47 dalek ecosystem:
18:47 dalek ecosystem: See https://github.com/jonathanstowe/Acme-Insult-Lala
18:47 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/0626e73058
18:48 PotatoGim joined #perl6
18:50 RabidGravy just got bored halfway through this other thing I started today
18:51 AlexDaniel m: my $x, my $y Z:= 1,2; say $x; say $y
18:51 camelia rakudo-moar df4eb8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HvHSYzaf5E␤Cannot zip with := because list assignment operators are too fiddly␤at /tmp/HvHSYzaf5E:1␤------> 3my $x, my $y Z:=7⏏5 1,2; say $x; say $y␤»
18:51 AlexDaniel awww
18:52 AlexDaniel m: my $x = my $y
18:52 camelia rakudo-moar df4eb8: ( no output )
18:52 pullphinger joined #perl6
18:53 psch m: my $x := my $y
18:53 camelia rakudo-moar df4eb8: ( no output )
18:53 psch m: my $x R:= my $y
18:53 camelia rakudo-moar df4eb8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uPXTvG95vC␤Cannot reverse the args of := because list assignment operators are too fiddly␤at /tmp/uPXTvG95vC:1␤------> 3my $x R:=7⏏5 my $y␤»
18:54 nicq 'Too fiddly'
18:55 nicq Best error message
18:56 huggable joined #perl6
18:56 ZoffixW joined #perl6
18:56 ZoffixW huggable, insult RabidGravy
18:56 huggable RabidGravy  is a venomed hell-hated hedge-pig
18:57 ZoffixW 😂😂😂
18:57 RabidGravy :)
18:57 AlexDaniel psch: well, what you are trying to do is probably this
18:58 AlexDaniel m: my $x := (my $y := $x); say $x.WHAT # RT #127254
18:58 synopsebot6 Link:  https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=127254
18:58 camelia rakudo-moar df4eb8: OUTPUT«(Mu)␤»
18:58 AlexDaniel oh interesting
18:58 AlexDaniel star: my $x := (my $y := $x); say $x.WHAT
18:58 camelia star-m 2016.01: OUTPUT«(signal SEGV)»
18:58 AlexDaniel so it got better!
18:59 jjido joined #perl6
18:59 AlexDaniel 2016.03 still SEGV
19:00 AlexDaniel dalek :(
19:00 dalek joined #perl6
19:01 masak huggable: insult masak
19:01 huggable masak is a bawdy rump-fed boar-pig
19:01 masak well, yeah
19:01 psch AlexDaniel: not... really.  i was just checking if := and = are equally fiddly
19:01 ZoffixW huggable, insult me
19:01 huggable ZoffixW is a froward swag-bellied wagtail
19:03 psch AlexDaniel: hm, i suppose that's not quite right either, 'cause < my $x R= my $y > works... so, i guess it was just "let's see what happens" vOv
19:03 mst I liked hedge pig
19:03 psch i suppose though that means that we don't really have item-bind...
19:03 perlpilot huggable: insult huggable
19:03 huggable huggable is a clouted guts-griping coxcomb
19:04 AlexDaniel huggable: insult masak
19:04 huggable masak is a rank earth-vexing vassal
19:05 AlexDaniel mmmhmm
19:05 dalek joined #perl6
19:06 huggable AlexDaniel, masak is a bot
19:06 ZoffixW pfft
19:06 nicq oh snap
19:07 psch masak++ is the RT-ticket bot, and very good at it
19:07 psch that's not even an insult
19:07 ZoffixW That's because it's a factoid :)
19:07 ZoffixW huggable, masak
19:07 huggable ZoffixW, nothing found
19:07 ZoffixW Ohhh, I see.
19:07 AlexDaniel psch: now I have to find a new way to make it SEGV
19:07 AlexDaniel psch: it is still a null object
19:08 psch m: BEGIN my $x := my $y; say $x.WHAT
19:08 camelia rakudo-moar df4eb8: OUTPUT«(Mu)␤»
19:08 psch m: my $x := my $y; say $x.WHAT
19:08 camelia rakudo-moar df4eb8: OUTPUT«(Any)␤»
19:08 psch AlexDaniel: well, maybe that helps you wrt trying to make it SEGV... :)
19:08 * AlexDaniel whistles innocently
19:09 AlexDaniel m: my $x := my $y; say $x.WHICH; say $y.WHICH
19:09 camelia rakudo-moar df4eb8: OUTPUT«Any␤Any␤»
19:10 AlexDaniel m: my $x := (my $y := $x); say $x.WHICH
19:10 camelia rakudo-moar df4eb8: OUTPUT«Cannot call method 'WHICH' on a null object␤  in block <unit> at /tmp/ebeXcs9Ekx line 1␤␤»
19:11 * masak is indeed a bot
19:12 huf masaka!
19:12 vendethiel- masak++ # auto-fixing bot
19:14 mr-foobar joined #perl6
19:17 Fleurety joined #perl6
19:18 dogbert17 o/ #perl6
19:19 dogbert17 what do you know about this class https://doc.perl6.org/type/Proc::Status  has it been removed?
19:21 dogbert17 m: say Proc::Status.^methods(:local)
19:21 camelia rakudo-moar df4eb8: OUTPUT«Could not find symbol '&Status'␤  in block <unit> at /tmp/OvDNasYsVa line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/OvDNasYsVa line 1␤␤»
19:21 nine_ commit 03b5a0abb58905f8e8e6e768186696f10e37729e Author: Rob Hoelz <rob@hoelz.ro> Date:   Fri Sep 4 13:23:15 2015 -0500 Removed a bunch of deprecated I/O constructs
19:22 nine_ dogbert17: ^^^
19:22 dogbert17 nine_: thx
19:22 dogbert17 so I guess noone will be terribly disappointed if I remove this from the docs?
19:23 mst dogbert17: I would doubt it. I wonder if you could script finding things like that
19:23 ZoffixW Right, toss it.
19:23 mst Pod::Uncoverage
19:23 ZoffixW mst, well volunteered! :)
19:23 dogbert17 thx, will remove
19:23 geekosaur "voluntold"
19:24 mst ZoffixW: I was going to, but then he said 'thx'
19:24 mst so now I don't care anymore
19:24 ZoffixW 😂😂😂
19:25 RabidGravy I was getting a false positive about it existing as I had an ancieunte m-CORE.setting hanging around
19:25 mr-foobar joined #perl6
19:25 sortiz joined #perl6
19:27 sortiz .
19:27 masak :
19:27 RabidGravy ^
19:27 ZoffixW !
19:28 ZoffixW
19:28 ZoffixW Aw, it doesn't line up.
19:28 masak
19:36 dalek doc: 7992f1f | (Jan-Olof Hendig)++ | doc/Type/Proc/Status.pod:
19:36 dalek doc: Removed doc/Type/Proc/Status.pod
19:36 dalek doc: review: https://github.com/perl6/doc/commit/7992f1f92b
19:37 dalek joined #perl6
19:37 ZoffixW what's with dalek :/
19:41 dogbert17 mst: htmlify.p6 had in fact generated an error wrt Proc::Status, i.e. Type Proc::Status not found in type-graph data
19:42 ZoffixW Well, I finished C lesson in Learn X in Y minutes... Now I'm ready to hack on MoarVM!
19:43 ZoffixW \o/ 🎉
19:43 sufrostico joined #perl6
19:43 dogbert17 it says the same for 'X::Temporal::Truncation' and 'X::Syntax::Augment::Role'. Maybe they're gone as well
19:44 RabidGravy quick grepping of the source would help answer
19:45 ZoffixW dogbert17, looks like. I see no matches for Truncation nor Augment::Role in the sauce
19:45 ZoffixW dogbert17, which is here: https://github.com/rakudo/rakudo/
19:45 ZoffixW Types are in src/ and modules are in lib/ (and there's probably something else I don't know about :P)
19:46 mst dogbert17: awesome
19:47 dogbert17 seems as if the Temporal stuff was removed in 2013 by someone called 'masak'   :)
19:48 dogbert17 7e10a0dfa1f410e1ea362b75cd114b5a45723ac2
19:49 [Coke] fyi, 2015 is ancient history already
19:49 [Coke] (so, keep that in mind about 2013 commits)
19:49 moritz PSA: tonight between 20:00 UTC and midnight UTC, hack.p6c.org and the webserver might suffer from power loss
19:50 moritz there's some urgent maintenance in the data center
19:50 dogbert17 [Coke]: indeed
19:50 moritz "It's not entirely ruled out that a brief interruption of the power supply of the circuits F7, F8 and F9 can occur." is the exact wording :-)
19:52 psch moritz: better announced maintenance than runaway process that bring the load over 200... :)
19:52 psch +a
19:56 colomon joined #perl6
19:57 dalek doc: f33f8af | (Jan-Olof Hendig)++ | doc/Type/X/ (2 files):
19:57 dalek doc: Removed doc/Type/X/Syntax/Augment/Role.pod and doc/Type/X/Temporal/Truncation.pod
19:57 dalek doc: review: https://github.com/perl6/doc/commit/f33f8aff86
20:03 dogbert17 m: say Pair.^methods(:local) # anyone who knows what freeze is supposed to do?
20:03 camelia rakudo-moar df4eb8: OUTPUT«(antipair freeze fmt FLATTENABLE_LIST FLATTENABLE_HASH of new WHICH ACCEPTS Method+{<anon|44705520>}.new Method+{<anon|44705520>}.new Method+{<anon|44705520>}.new Method+{<anon|44705520>}.new Method+{<anon|44705520>}.new Method+{<anon|44705520>}.new Str gi…»
20:04 masak 'night, #perl6
20:05 dogbert17 the src doesn't tell me much: method freeze(Pair:D:) { $!value := nqp::decont($!value) }
20:06 yqt joined #perl6
20:06 psch m: my $pair = a => 1; $pair.freeze; $pair.value = "foo"
20:06 camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/pCefxN4O2y line 1␤␤»
20:07 psch dogbert17: does that help? :)
20:07 cpage_ joined #perl6
20:08 dogbert17 psch: not sure
20:08 dogbert17 m: my $pair = a => 1; $pair.value = "foo"
20:08 camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/qk88HBCvMQ line 1␤␤»
20:09 cdg joined #perl6
20:09 psch *that* looks wrong
20:09 psch m: my $pair = a => 1; $pair.value = 2
20:09 camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/7dwRo2dH81 line 1␤␤»
20:10 psch m: my $pair = Pair.new("foo", 5); $pair.value = 2
20:10 camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/nEBes4Rck5 line 1␤␤»
20:10 psch oohh
20:10 psch m: my $pair = a => $ = "foo"; $pair.value = "bar"; say $pair
20:10 camelia rakudo-moar df4eb8: OUTPUT«a => bar␤»
20:11 psch dogbert17: so, to explain my insight:  a Pair *can* be created with a container for the value, so the value can be changed
20:12 psch dogbert17: .freeze decontainerizes .value, which turns .value from a-box-with-a-value-inside into a value
20:12 psch m: my $pair = a => $ = "foo"; $pair.value = "bar"; say $pair; $pair.freeze; try $pair.value = "baz"; say "didn't work" if $!
20:12 camelia rakudo-moar df4eb8: OUTPUT«a => bar␤didn't work␤»
20:13 psch so, even though it looked wrong, it isn't, because we didn't put a container into .value
20:14 psch m: my $pair = ["foo"].pairs[0]; $pair.value = "bar"; say $pair
20:14 camelia rakudo-moar df4eb8: OUTPUT«0 => bar␤»
20:14 sortiz m: my $v; my $p = :foo($v); $p.value = 'hi'; $p.freeze; say $p $p.value = 'foo'; # This illustrate the case
20:14 camelia rakudo-moar df4eb8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cH6l7oA1md␤Two terms in a row␤at /tmp/cH6l7oA1md:1␤------> 3($v); $p.value = 'hi'; $p.freeze; say $p7⏏5 $p.value = 'foo'; # This illustrate the␤    expecting any of:␤        infix␤        infi…»
20:15 sortiz m: my $v; my $p = :foo($v); $p.value = 'hi'; $p.freeze; say $p; $p.value = 'foo'; # This illustrate the case
20:15 camelia rakudo-moar df4eb8: OUTPUT«foo => hi␤Cannot modify an immutable Str␤  in block <unit> at /tmp/l8pSHhEAWp line 1␤␤»
20:16 dogbert17 I get it (finally) :) psch++ sortiz++
20:17 dogbert17 all that remains is for me to document this then :)
20:17 psch dogbert17++ # docs
20:21 hotel_california joined #perl6
20:24 pmurias mst: isn't the reason for asking about pm that people often don't notice private messages in some clients? (irssi)
20:25 mst pmurias: there are definitely people who regard a pm without prior warning to be rude
20:25 mst pmurias: and there's a +g server side mode where queries are blocked until you unblock them, and that's easy to miss
20:25 mst I don't find irssi query windows themselves easy to miss
20:26 jnthn joined #perl6
20:26 nowan joined #perl6
20:26 RabidGravy I use a tabbed graphical client anyway
20:31 [Coke] irc--
20:32 tony-o that's been my understanding of asking prior to pm-ing too (rudeness)
20:32 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/20​16/05/09/2016-19-summer-strikes/
20:33 dalek joined #perl6
20:33 mr-foobar joined #perl6
20:34 sortiz lizmat++
20:37 hotel joined #perl6
20:38 colomon_ joined #perl6
20:40 AlexDaniel “The auto-threader is now 2x to 3x faster” wait, there is an auto-threader?
20:40 dalek joined #perl6
20:40 timotimo AlexDaniel: it's not what you think :)
20:40 moritz AlexDaniel: yes, it's just not mutli threaded :-)
20:40 [Coke] yes. if you
20:40 AlexDaniel oh, uh…
20:40 [Coke] whoops.
20:41 [Coke] junctions "auto-thread" - you can automatically invoke a sub multiple times if you pass a junction.
20:41 moritz m: sub double($x) { $x * 2 }; say double(1|2|10)
20:41 camelia rakudo-moar df4eb8: OUTPUT«any(2, 4, 20)␤»
20:41 moritz that's autothreading
20:43 psch m: sub double($x) { $x * 2 }; say double(1|2|10); say now - BEGIN now;
20:43 camelia rakudo-moar df4eb8: OUTPUT«any(2, 4, 20)␤0.0192468␤»
20:43 psch m: sub double($x) { $x * 2 }; say double($_) for 1, 2, 10; say now - BEGIN now;
20:43 camelia rakudo-moar df4eb8: OUTPUT«2␤4␤20␤0.01977317␤»
20:43 sortiz .oO( Poor helpless dalek )
20:43 psch ...that's probably noise
20:43 psch m: sub double($x) { sleep 1; $x * 2 }; say double(1|2|10); say now - BEGIN now;
20:43 camelia rakudo-moar df4eb8: OUTPUT«any(2, 4, 20)␤3.0205481␤»
20:43 * psch shrugs
20:44 moritz data center maintenance over, hack survived
20:44 psch i don't what does actual parallelism yet
20:44 hotel_california joined #perl6
20:45 [Coke] .hyper, .race
20:46 skids and start { } of course.
20:46 MasterDuke joined #perl6
20:53 MasterDuke is there any way to profile moar?
20:54 psch MasterDuke: probably compiling with gcc -pg and gprof
20:54 psch MasterDuke: although i can't help but wonder why you'd want to profile moar and not rakudo
20:56 psch (http://stackoverflow.com/questions/1794816/ is where i got gprof from, fwiw)
20:56 hotel joined #perl6
20:56 psch 'cause in the end moar is just a C program
20:56 MasterDuke re some conversation in the channel earlier, i find the rakudo build annoyingly slow
20:57 psch i don't think profiling moar will help your there
20:57 psch on the other hand, the profile output we have for rakudo probably is hard to utilize for CORE.setting compilation
20:57 psch s/your/you/
20:59 MasterDuke yeah, at least on my machine the slow part is:
20:59 [Coke] (profile moar) ... perl6 --profile ?
20:59 MasterDuke "<path>/rakudo/install/bin/moar --libpath="/<path>/rakudo/install/share/nqp/lib" perl6.moarvm --setting=NULL --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/m-CORE.setting
21:00 [Coke] Yes. that is always the slow part.
21:00 MasterDuke i was hoping for a --profile flag to moar, but no such luck
21:00 RabidGravy yeah it's huge and can't be parallelised
21:00 [Coke] MasterDuke: no, the profile flag is for perl6, not moar.
21:01 MasterDuke yeah, i quite like --profile for perl6, been using it a bit
21:01 psch i don't think it#s impossible to stuff --profile into the CORE.setting compilation
21:01 timotimo i often perf record -g my moar stuff
21:01 psch but as i said, that's probably not useful
21:01 psch 'cause it'll give you JSON that brings your browser to some 10+ GB ram
21:02 psch ISTR there was a QT profile JSON parser around, but i've never used it
21:02 MasterDuke that's true, even a 2mb profile almost kills my firefox (or chrome)
21:02 psch *QT-based
21:02 itcharlie left #perl6
21:03 timotimo aye. it doesn't use all of the data, though
21:03 timotimo like it won't show you a list of GC cycles
21:04 dalek doc: ee9f0b2 | (Christopher Bottoms)++ | doc/Language/control.pod:
21:04 dalek doc: Added samewith
21:04 dalek doc:
21:04 dalek doc: Based this on Brad Gilbert's example here: http://stackoverflow.com/a/37064186/215487. I recommend further elaboration by someone who knows more about it than I do.
21:04 dalek doc: review: https://github.com/perl6/doc/commit/ee9f0b21c1
21:04 dalek doc: 7fb512c | RabidGravy++ | doc/Language/control.pod:
21:04 dalek doc: Merge pull request #509 from molecules/patch-2
21:04 dalek doc:
21:04 dalek doc: Added samewith
21:04 dalek doc: review: https://github.com/perl6/doc/commit/7fb512cb5d
21:06 MasterDuke found it (https://github.com/tadzik/p6profiler-qt), going to give that a try later today
21:06 MasterDuke but how would i "stuff --profile into the CORE.setting compilation"?
21:07 psch "<path>/rakudo/install/bin/moar --libpath="/<path>/rakudo/install/share/nqp/lib" perl6.moarvm --setting=NULL --profile --ll-exception --optimize=3 --target=mbc --stagestats --output=CORE.setting.moarvm gen/moar/m-CORE.setting"
21:07 psch well, i'm not 100% that'll work
21:07 psch but it's a start
21:07 MasterDuke ha, i'll see what happens
21:07 psch maybe we need bits of CORE to make --profile work, in that case you'd have to shout and hope someone is around to help... :)
21:08 psch (interestingly, profiling CORE.setting like that was on my whiteboard for a few days, until earlier this day)
21:08 psch (i tossed it 'cause i didn't think we anything to make it useful)
21:08 moritz oh, I think you need --profile-compile, not --profile
21:08 moritz because --profile profiles only runtime
21:08 timotimo that's right
21:08 timotimo and --profile-filename=foobar.json will give you a slightly smalle rfile
21:09 khw joined #perl6
21:09 TEttinger joined #perl6
21:13 tadzik (but the qt profiler handles both)
21:14 timotimo yup
21:14 MasterDuke giving it a test whirl now, loads faster
21:14 tadzik it only does subset of the regular profiler features
21:15 timotimo it also doesn't heap dumps :)
21:17 tadzik angular profiler does?
21:18 timotimo no
21:18 timotimo we have a pure-perl program for heap dumps
21:18 timotimo it's more of a query-focused interface
21:25 sufrostico joined #perl6
21:27 hotel_california joined #perl6
21:28 dolmen joined #perl6
21:34 rurban joined #perl6
21:35 lizmat good night, #perl6!
21:35 psch g'night lizmat++ o/
21:36 psch i just noticed that my .travis.xml change didn't matter, apparently :/
21:36 timotimo gnite lizmat :)
21:36 timotimo and good work on the weekly
21:36 psch well, the latest one that is
21:36 psch the one that does "&& make test" instead of "; make test
21:36 psch +"
21:36 psch (i also thought i was in #p6dev :P)
21:38 rurban1 joined #perl6
21:44 psch .ask moritz did something wrt ulimits change on hack?  r-m builds get "Killed" during RESTRICTED.setting compilation for me since about half an hour ago
21:44 yoleaux psch: I'll pass your message to moritz.
21:45 geekosaur or something's using all of ram+swap...
21:46 psch KiB Mem:  20608392 total,  4580236 used, 16028156 free,    73572 buffers
22:01 hotel joined #perl6
22:04 mr-foobar joined #perl6
22:05 tony-o MadcapJake: have you been using modules.zef.pm ?
22:06 jjido joined #perl6
22:07 jjido_ joined #perl6
22:08 jjido__ joined #perl6
22:08 Sgeo joined #perl6
22:09 jjido___ joined #perl6
22:09 hotel_california joined #perl6
22:10 jjido____ joined #perl6
22:10 kid51 joined #perl6
22:11 jjid_____ joined #perl6
22:11 jjido joined #perl6
22:12 jjido_ joined #perl6
22:13 jjido__ joined #perl6
22:14 jjido___ joined #perl6
22:32 psch .tell moritz never mind, turns out i was just recursing infinitely
22:32 yoleaux psch: I'll pass your message to moritz.
22:35 lichtkind__ joined #perl6
22:37 hotel joined #perl6
22:49 |2701 joined #perl6
22:56 hotel_california joined #perl6
22:59 huggable joined #perl6
23:19 * ugexe installs json parser; pulls in dependency on DBIish
23:25 pierre_ joined #perl6
23:43 RabidGravy weird
23:44 RabidGravy toodles #perl6
23:44 timotimo that means "goodbye" right?
23:50 SVR4 joined #perl6
23:57 skink Anyone here on OS X atm?
23:57 skink or a BSD
23:57 matiaslina joined #perl6
23:58 SVR4 I'm on NetBSD

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

Perl 6 | Reference Documentation | Rakudo