»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
timotimo ZoffixWin: it'd be interesting to see how big these leaks can get. i'd expect the leakage to plateau relatively early 00:02
ZoffixWin You mean on 'hello world'? The ones from the real programs chewed through a gig and a half rather quickly: i.imgur.com/QR3cWjV.png 00:03
timotimo is that actually truly leaked? would valgrind have pointed those parts out? 00:04
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
timotimo well, yeah, we surely leak a little bit 00:06
ZoffixWin Time for me to re-learn C, I guess.
timotimo btw, the heap explorer is super cool
ha! 00:09
nqp -e 'say("hello")' just went from definitely lost: 6,971 bytes in 224 blocks to definitely lost: 2,048 bytes in 1 blocks
jdv79 C is pretty unfun except it can be blazing fast
timotimo ==11188== in use at exit: 0 bytes in 0 blocks 00:11
yay
ZoffixWin: with very latest moar, try your perl6-valgrind-m run again, it'll be a bit less noisy
i'm down to only 46 loss records with that extra patch i just pushed 00:17
was 47 before that
ZoffixWin builds
woooo 00:24
timotimo is it better?
00:25 mr-foobar left
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: gist.github.com/zoffixznet/4e5b68d...668883360a 00:25
timotimo that's not "errors"! :)
ZoffixWin ¯\_(ツ)_/¯ 00:26
timotimo oh, it *does* call them errors
i never saw that
like, i never noticed it
it's probably been there the whole time
00:26 mr-foobar joined
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
00:27 pierre_ joined
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:28
00:28 ssotka left
hotel code optimisation scares me 00:29
timotimo what kind, and in what way? 00:30
hotel anything low-ish level does too, for that matter
just, in general
idk
timotimo mhh-hmm 00:31
hotel I don't know enough and what I don't know scares me?
timotimo well, optimizing all this stuff requires knowlegde of how all the internals work and how they work together etc etc 00:33
hotel yeah exactly 00:35
timotimo all i know i've learned from jn :D 00:36
00:43 mr-foobar left 00:45 mr-foobar joined 00:47 Actualeyes joined 00:55 astj joined 00:58 ssotka joined 01:08 hotel_california joined, hotel left 01:21 skids joined 01:23 finanalyst joined 01:24 pierre_ left 01:30 TEttinger left 01:40 hotel_california is now known as hotel, zacts left, zacts joined 01:41 mr-foobar left 01:43 mr-foobar joined
hotel why would you use a backward feed over a forward one? 01:43
MadcapJake you mean ==> and <== ?
Sgeo Haskellers understand <== better? >.> 01:45
(Probably not the actual reason) 01:46
01:47 pierre_ joined
hotel yeah those 01:47
MadcapJake personal preferences, why provide one and not the other, and <== into containers looks better than ==> into containers 01:48
01:50 kid51 left
hotel mkay 01:51
MadcapJake m: my $name <== join(" ") <== reverse() <== map(*.comb.reverse.join) <== words() <== 'ossur ekaj'; say $name
camelia rakudo-moar 283b85: OUTPUT«[jake russo]␤»
geekosaur so you can feel like you're writing Haskell, I guess :p 01:53
MadcapJake except I can't figure out how to get it out of an array :P 01:54
hotel join(" ")[0]? 01:56
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␤␤»
hotel oh
MadcapJake :) feed operators are NFI (not fully implemented :)
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 BenGoldberg left, molaf left
hotel m: my $name = 'ainrofilac letoh'.words.map(*.comb.reverse.join).reverse.join(" ").Array.[0]; say $name 01:59
camelia rakudo-moar 283b85: OUTPUT«hotel california␤»
hotel might as well just do that then lol
02:00 BenGoldberg joined 02:01 BenGoldberg left
geekosaur . left to right, feed right to left, reverse haskell >.> 02:02
02:02 wbill left
hotel but you could also do ==> 02:02
02:02 BenGoldberg joined
hotel also, is there an equivalent to a try/finally block in perl6 02:03
geekosaur any block is a try block, potentially. just add a CATCH phaser 02:05
hotel but really the finally part
geekosaur and I think there's another for the finally part, m
LEAVE? 02:06
yes
doc.perl6.org/language/phasers
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…»
geekosaur semicolon needed
hotel m: try { say 'x' LEAVE { say 'y' }; };
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…»
hotel well thanks
:)
geekosaur m: { say 'x'; LEAVE {say 'y'};} 02:08
camelia rakudo-moar 283b85: OUTPUT«x␤y␤»
geekosaur m: { fail; LEAVE {say 'y'};}
camelia rakudo-moar 283b85: OUTPUT«y␤Failed␤ in block <unit> at /tmp/vAFrizBkTc line 1␤␤»
geekosaur actually that's not a good test because fail is deferred
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]␤»
hotel oh, I heard once that you can do perl right-to-left if you wanted
and I don't even need the try in this case, I can just use a closure 02:11
wow, perl is cooler than python
02:11 molaf joined 02:13 noganex joined
ZoffixWin :P 02:14
02:16 noganex_ left
hotel going to study cs next year, wonder if my profs will get mad if I turn in everything in perl6 02:18
02:19 pierre_ left 02:20 pierre_ joined, TEttinger joined
MadcapJake most classes will probably have a specific language that you're supposed to use, but you could try :P 02:21
hotel m: my @a = 10, 11; my $a, my $b = @a; say $a, $b 02:22
camelia rakudo-moar 283b85: OUTPUT«(Any)[10 11]␤»
ZoffixWin Write in Perl 6 a program whose output compiles in the $class's lang :P
MadcapJake lol
hotel oh that would be good
write it for the jvm
ZoffixWin m: my @a = 10, 11; my ($a, $b) = @a; say $a, $b 02:23
camelia rakudo-moar 283b85: OUTPUT«1011␤»
ZoffixWin m: my @a = 10, 11; my $a, my $b Z= @a; say $a, $b
camelia rakudo-moar 283b85: OUTPUT«1011␤»
hotel I was getting there :P
although what's that Z=?
MadcapJake Z is an operator operator (meta operator) 02:24
ZoffixWin hotel, docs.perl6.org/language/operators#Zip_Operators
hotel thanks
02:24 pierre_ left
hotel those are pretty cool 02:27
02:27 cdg joined 02:31 cdg left 02:32 pierre_ joined 02:36 jack_rabbit left 02:37 pierre_ left
hotel m: my @a = 1, 2, 3; my $s = ""; $s «~=« @a 02:38
camelia ( no output )
hotel m: my @a = 1, 2, 3; my $s = ""; $s «~=« @a; say $s
camelia rakudo-moar 283b85: OUTPUT«123␤»
hotel oh it does work \o/ 02:39
MadcapJake another way is with the reduce meta operator
m: say [~] 1, 2, 3
camelia rakudo-moar 283b85: OUTPUT«123␤»
02:40 BenGoldberg left
hotel noice 02:40
thanks
02:40 BenGoldberg joined 02:43 TEttinger left 02:49 BenGoldberg left 02:50 BenGoldberg joined 02:58 huggable left, huggable joined 03:00 pierre_ joined 03:01 cognominal left 03:04 pierre_ left 03:05 |2701 left 03:06 pierre_ joined
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␤␤»
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
camelia rakudo-moar 283b85: OUTPUT«WARNINGS for /tmp/WbCSo71AzN:␤Useless use of $f in sink context (line 1)␤»
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
hotel :I
03:10 cdg joined 03:13 pierre_ left, BenGoldberg left 03:17 BenGoldberg joined
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
ZoffixWin m: say "\rBar" 03:19
camelia rakudo-moar 283b85: OUTPUT«
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:25 BenGoldberg left 03:26 aleogen joined
hotel ah, forgot about map 03:28
I knew there was a better way
ZoffixWin++++
03:33 jameslen_ left 03:36 yqt left 03:49 mr-foobar left 03:50 mr-foobar joined 03:55 hotel is now known as hotel|netteiru 03:58 TEttinger joined 04:00 khw left, buharin joined 04:13 mr-foobar left 04:14 mr-foobar joined 04:22 hotel_california joined 04:23 hotel|netteiru left
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␤»
MadcapJake how can you mutate a hash's keys in-place? 04:26
04:29 molaf left
MadcapJake nvm figured it out 04:30
nvm, realized it's not possible :P 04:31
04:32 pierre_ left 04:33 ribasushi left
skids Well, you could bind Scalars as keys in an object hash, but you'd have to use the same Scalars to deref. 04:34
04:34 buharin left
MadcapJake for %h.kv -> $k, $v { if ... { %h{$k}:delete; %h{$new-k} = $v } } # this pattern should work 04:36
skids %h{$k}:delete sould return the value. 04:38
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
geekosaur arguably that is not in-place... because the key's hash would change 04:41
04:42 sortiz joined
masak morning, #perl6! 04:46
04:51 Khisanth left
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, Khisanth joined
MadcapJake skids: neat thanks! 04:52
m: await Promise.allof: gather for ^5 { take start { my $time = rand * 5; sleep $time; say "slept for $time seconds" } }
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:53
04:53 DrEeevil left, cdg left
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
But my memory is fuzzy,
04:55 Cabanossi left 04:57 xiaomiao joined
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 05:14 mr-foobar left, mr-foobar joined 05:18 skids left 05:27 mr-foobar left, mr-foobar joined 05:30 wamba joined 05:32 jjido joined, pierre_ joined 05:37 pierre_ left 05:38 pierre_ joined, mr-foobar left 05:39 domidumont joined 05:40 mr-foobar joined 05:44 domidumont left, domidumont joined 05:46 cpage_ joined 05:50 CIAvash joined 05:51 mr-foobar left 05:52 mr-foobar joined
sortiz \o #perl6 05:53
05:59 domidumont left 06:01 mr-foobar left 06:02 rurban joined 06:03 mr-foobar joined 06:06 AlexDaniel left 06:08 jjido left 06:09 cpage_ left 06:10 domidumont joined 06:11 ssotka left 06:17 mr-foobar left 06:19 mr-foobar joined 06:22 buharin left 06:23 firstdayonthejob joined, _mg_ joined 06:24 buharin joined 06:25 mr-foobar left 06:32 firstdayonthejob left 06:35 aindilis left 06:36 buharin left, aindilis joined 06:38 jjido joined 06:41 pierre_ left 06:43 pierre_ joined 06:47 jjido left
moritz \o 06:55
06:58 huggable left 06:59 mr-foobar joined 07:04 RabidGravy joined 07:05 jack_rabbit joined
RabidGravy boom! 07:12
07:14 rindolf joined 07:20 abraxxa joined 07:21 cognominal joined 07:27 abraxxa left 07:30 rurban left 07:35 cognominal left 07:36 wamba left 07:37 cognominal joined, azawawi joined
azawawi good morning #perl6 07:37
github.com/azawawi/perl6-clean # A better example :)
RabidGravy harr! 07:40
07:42 abraxxa joined 07:46 pierre_ left
sortiz azawawi, Your Cleanable is much like my Disposable :-) 07:47
azawawi sortiz: link it :) 07:48
07:48 mr-foobar left 07:49 mr-foobar joined
sortiz azawawi, Disposable isn't published, it is waiting for macro support for an usable "using ... { }" 07:51
azawawi sortiz: looking forward to see... i needed something for my nativecall libs 07:54
sortiz: robust cleanup
sortiz: that's only step #1. next exception handling... then async handling
07:54 ufobat joined
ufobat good morning 07:54
azawawi ufobat: good morning 07:55
moritz good ufo, bat
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 ;-)
RabidGravy erp 07:56
sortiz azawawi, Btw '$o.clean if $o.defined' can be '.clean with $o', more idiomatic imo. 07:57
azawawi sortiz: i see... doc.perl6.org/syntax/with%20orwith%20without ... you live another day, you learn a new thing :) thx 08:00
RabidGravy or $o.?clean
08:01 pierre_ joined
azawawi or keep it clean and use if $o.defined :) 08:02
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:03
sortiz RabidGravy, $o.?clean is more like '$o.^can('clean') // $o.clean', no? 08:04
RabidGravy yeah
sortiz So $o.?clean can be called for Cleanable:U too, no what you want. 08:06
RabidGravy well that could be fixed by making the signature tighter 08:08
sortiz Sure.
08:12 darutoko joined
azawawi sortiz: I see Type:U all the time... what does :U do? can you link some documentation for it? 08:15
08:15 pierre_ left
RabidGravy :D defined :U undefined 08:16
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.
RabidGravy the speculations had another one but that wasn't implemented 08:18
sortiz Not necessarily .defined but .DEFINITE, to cover the case of a type where its instances are .defined === False, like Failure. 08:19
azawawi i see... thx 08:21
RabidGravy I found the tiny usb ftdi serial thingy yesterday, I might take a crack at a serial port thing 08:24
08:31 grondilu joined 08:34 azawawi left
grondilu would { f($a, $b); $a++; $b++ } be slower than { f($a++, $b++) }? 08:34
probably not by much but still.
RabidGravy if in doubt benchmark 08:35
08:36 pierre_ joined
grondilu thought of it while looking at List.combinations 08:37
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:38
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␤»
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␤»
grondilu that can't be right.
psch why not?
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
sortiz m: sub f($, $) { }; my (int $a, int $b); for ^100000 { f($a++, $b++) }; say now - BEGIN now;
camelia rakudo-moar 342aef: OUTPUT«0.0549329␤»
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␤»
moritz a sufficiently smart compiler can turn a postfix ++ in sink context into prefix ++
sortiz At least the optimizer works for ints. :) 08:45
psch why that's that much faster is unintuitive to me fwiw :)
sortiz++
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
sortiz Even in the general case the first avoid two extra lookup, that can be expensive. 08:47
08:48 zakharyas joined
moritz if not inlined, the invocation of the op will dwarf any amount of processing done inside it 08:55
sortiz yep. 08:56
With prefix ++ the difference is even more notorious: 08:57
m: sub f($, $) { }; my (int $a, int $b); for ^100000 { f(++$a, ++$b) }; say now - BEGIN now;
camelia rakudo-moar 342aef: OUTPUT«0.0542253␤»
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␤»
sortiz Not much here. :/
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␤»
psch m: sub f(int $, int $) { }; my (int $a, int $b); for ^100000 { f(++$a, ++$b); }; say now - BEGIN now;
camelia rakudo-moar 342aef: OUTPUT«0.05554319␤»
RabidGravy well ~2/5 09:00
sortiz For num the ratio changes. 09:03
09:07 zakharyas left 09:09 winger_ left 09:11 rurban1 joined 09:16 webmind left 09:17 pierre_ left 09:20 wamba joined 09:22 pierre_ joined 09:24 zakharyas joined 09:37 espadrine joined 09:38 rurban1 left 09:42 YP-QMUL-W joined
RabidGravy wonders why monit thinks the icecast isn't running 09:43
Hmm that'll be because the .pid file isn't where it used to be :\ 09:48
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
09:52 winger joined 09:53 zakharyas left
RabidGravy there that's better 09:56
nine_ pid files? Sounds quite old fashioned. 10:06
10:06 pierre_ left 10:07 pierre_ joined
moritz still an unfortunate reality for many 10:10
at $work we are still stuck with some Wheezy boxes that $ops_team doesn't get around to update
so, old-fashioned init scripts :/ 10:11
pid files, start-stop-daemon, all that "fun"
hangs if a script doesn't properly daemonize (I'm looking at you, OTRS) 10:12
10:16 TEttinger left
jast reminds me of the squeeze box I haven't gotten around to updating yet 10:17
10:19 finanalyst left 10:21 The_Schmidt joined 10:22 YP-QMUL-W left
RabidGravy the pid file is just for the convenience of monit 10:26
everything else works fine without them 10:27
though I do wonder if there is some way to programmatically get the PID from systemd 10:28
because it clearly knows
well apart from "systemctl -p MainPID status ...." 10:32
nine_ Does monit actually need the pid? Or would it suffice to know that the process is up and running? 10:33
RabidGravy it doesn't need it, but it makes it better 10:35
if it knows the pid it tries to find information about the process 10:36
nine_ RabidGravy: you meant systemctl -p MainPID show memcached 10:37
RabidGravy yes I do 10:38
did
10:42 Tux__ left 10:44 pierre_ left 10:45 profan left, profan joined 10:53 kaare_ joined 10:58 uruwi left 11:03 uruwi joined 11:12 The_Schmidt left 11:19 uruwi left, finanalyst joined 11:22 pierre_ joined 11:24 kid51 joined 11:26 sortiz left, telex left 11:28 telex joined 11:43 pierre_ left 11:44 pierre_ joined
RabidGravy how many times have I done "git add lib" *before* adding the .precomp to the .gitignore 11:47
11:47 |2701 joined, kid51 left 11:48 brrt joined
moritz git add $(find lib -name '*.pm6') 11:48
11:49 kid51 joined
tadzik fun idea: something that git-adds from META6.json 11:51
11:52 cosarara_ left 11:53 vendethiel left, vendethiel- joined
RabidGravy tadzik, that could work 11:54
11:55 cosarara joined 11:56 kid51 left 11:59 _mg_ left
tadzik question is, what do people actually do first :) 12:00
12:01 aries_liuxueyang left 12:02 rindolf left 12:03 azawawi joined
azawawi hi 12:04
12:05 _mg_ joined
RabidGravy tadzik, actually no, but it does lead to an interesting family of tools 12:06
azawawi dreams of a 2x ark.intel.com/products/91317/Intel-...e-2_20-GHz 12:07
tadzik 55M of cache, neat 12:08
azawawi look at the cores :)
and max memory
RabidGravy lawks 12:09
jnthn Core blimey!
tadzik hahah
RabidGravy that would work nicely for the occasional java application
tadzik that might be beyond what I could use
with a price to match :P 12:10
jnthn spectest would be awesome on it :)
12:10 aries_liuxueyang joined
azawawi :) 12:10
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
azawawi yup 12:12
~ 8k
so that's a lot of actual cores (44 cores => 88 threads) 12:13
azawawi dreams
12:14 dustinm` left
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:14
RabidGravy it would be perfect for audio stuff 12:15
12:15 cosarara_ joined
RabidGravy fix the cpu affinity for each irq and away you go 12:16
could actually use firewire audio and the wifi at the same time ;-) 12:17
12:17 cosarara left
tadzik azawawi: hmm, it doesn't do anything -j that rakudo/nqp/moar doesn't do automatically 12:18
RabidGravy concludes that XML::Class is actually too verbose for the most common cases 12:21
I should have made elements the default rather than attributes 12:22
SooOOooo, I'm thinking an :elements parameter to the role and jobs a good-un 12:23
nine_ MoarVM's compilation benefits greatly from -j. nqp and especially rakudo less so. Unfortunately most of the time goes into rakudo 12:26
12:29 araujo_ joined
brrt yes, moarvms makefile made me appreciate both make and whoever wrote the makefile 12:30
12:30 araujo left
brrt what are the challenges for making the rakudo build benefit from parallelism, actually 12:31
12:31 profan left 12:32 profan joined
moritz mostly that there are stages that build upon each other 12:32
most of the time is spent compiling the setting, and that needs src/Perl6/{Actions,Grammar,World} compiled first
brrt right
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
psch Actions and Grammar both depend on World, do they not?
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
moritz psch: that's late bound, IIRC
nine_: I think that already happens with -j
(compiling actions and world in parallel) 12:34
and possibly also the compiler
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.
moritz nine_: it does? I use it all the time
nine_: star's makefile has that problem for sure
nine_ Maybe it's been fixed in the meantime.
12:35 jack_rabbit left
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
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.
RabidGravy 50 second stage parse? I wish, it's like 150 here
psch moritz: oh, alright
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 :)
psch well, assuming you're currently building r-m and *that* takes 150 secconds
-c
12:37 hotel joined
RabidGravy this is an i7 but quite old now ( ~5 years) and often runs hot so throttles back 12:38
12:38 hotel_california left
brrt it would also not be a giant developer goodwill leak like it is now 12:38
[Coke] m: say <2147483648/3>
camelia rakudo-moar 14b921: OUTPUT«715827882.666667␤»
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?
moritz no
brrt every bit helps
percompilation is also awesome
moritz precompilation is immensely important for performance
nine_ Well I guess it wouldn't be that easy to speed up parsing by a factor of 10000
brrt nope
there are just so many cool things to work on :-) 12:41
moritz how well does parsing JIT-compile? 12:42
lizmat which bits of code are we actually talking about here ?
moritz everything involved in parsing
nine_ so almost exclusively NQP
moritz the regex engine, the code compiled from the tokens in the grammar
the LTM engine 12:43
you name it
lizmat and directory wise, where are we talking about then ?
psch probably nqp/src/QRegex/? 12:44
well, plus the vm-specific ops for the NFA and all i suppose
moritz right
and then src/Perl6/{Actions,Grammar}*
12:45 dustinm` joined 12:48 pmurias joined, risou is now known as risou_awy, risou_awy is now known as risou
lizmat FWIW, I'm looking at Cursor.INTERPOLATE now 12:50
12:51 Sgeo left
moritz metacpan.org/pod/release/RJBS/perl...ldelta.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:51
wow, TIL 12:52
12:52 cdg joined
tadzik oh wow 12:53
moritz I did know that spaces between sigil and variable name is allowed :-) 12:55
12:56 cdg left
brrt moritz: actually pretty decently, but most logic is not implemented in the JIT 12:57
lizmat yeah, p5 is pretty weird like that
brrt or better said 12:58
most logic is falling out to functions
and in grammars, we have moarvm invocation after moarvm invocation, and those aren't too cheap (yet)
moritz but that's what jnthn++ is working on, right? 13:01
brrt aye
13:03 mr-foobar left 13:04 mr-foobar joined 13:06 sufrostico joined 13:10 azawawi left
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:11
brrt what's a bstack? 13:13
moritz backtracking strack 13:15
brrt and a cstack?
jnthn cursor stack 13:16
(So, things we captured)
brrt hmm
how does that work?
moritz magic!
brrt clearly :-)
so you have two stacks for every nfa state? 13:17
13:19 skids joined 13:21 kurahaupo joined 13:22 pierre_ left 13:24 rurban joined 13:29 cdg joined 13:30 cdg left, cdg joined
jnthn brrt: No, it's two stacks per token/rule/regex 13:32
One of integers, one of objects
brrt i see 13:36
13:39 araujo_ left, pierre_ joined 13:50 JustinHitla joined
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
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
ZoffixW JustinHitla, oh gawd.. This is Perl 6, not C :P 13:51
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:52 grondilu left
RabidGravy JustinHitla, you appear to be asking a question about Perl 5 13:53
ZoffixW Oh, yeah, that too lol
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 glot.io/new/perl6 <-- now runs 2016.04 and doesn't have the line noise in error messages :3
JustinHitla so no one knows perl5 here ?
Ulti I do
tadzik m: "5HALF-LIFE 3".index('3').say
camelia rakudo-moar 14b921: OUTPUT«11␤»
ZoffixW JustinHitla, I do
JustinHitla, but why ask here instead of #perl ?
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
kurahaupo JustinHitla: you could try the regular #perl channel
ZoffixW JustinHitla, while with a regex match that is. Or maybe map/grep on a splitted things
tadzik "any ideas how to skip one loop inside foreach?" -- you're looking for 'continue'
but it seems to me that you're doing something very awkward :P
RabidGravy or next 13:56
tadzik oh yeah, Perl spells it that way
I think you'd like to know about Twines :)
ZoffixW JustinHitla, next if $char_is_special;
JustinHitla so yes I will go with: if($skip == 1) { $skip = 0; continue};
ZoffixW JustinHitla, but then you have a problem that you can't use '
JustinHitla right 13:57
tadzik or how is that "string, data, string" data structure called
just don't do String Typing :)
Ulti JustinHitla it would be good to both see your current code in a pastebin with details of your inputs and desired outputs
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: irclog.perlgeek.de/perl6/2016-05-06#i_12441550
Well, almost. I had 20 cores instead of 22. + 98GB of RAM
jnthn ZoffixW: wow
14:00 abraxxa left 14:01 cdg left
JustinHitla I think perl6 folks evolved more than perl5 folks 14:02
ZoffixW JustinHitla, what does that mean? :)
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
ZoffixW JustinHitla, I'm a Perl 5 folk.... 14:03
tadzik perl5 people are probably the most social creatures I've ever met
I wouldn't be who I am now if Warsaw.pm folks weren't fun :)
ZoffixW hugTABTABTAB... dammit 14:04
stupid bot :(
14:04 sena_kun joined
gregf_ JustinHitla: you dont need s loop for that, something like $str =~ s/[^?]+\?// should do ;) 14:05
s/ s / a /
14:05 huggable joined
gregf_ oops; s/\?/\'/ 14:06
14:06 rindolf joined
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:06
14:08 khw joined
gregf_ oh, then ignore me :) 14:10
14:13 colomon left 14:14 colomon joined
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:23
14:24 AlexDaniel joined
JustinHitla but now I don't know how to delay printing of digits 14:25
sena_kun JustinHitla, sleep sub? 14:27
JustinHitla, doc.perl6.org/routine/sleep
JustinHitla I use "select(undef, undef, undef, $d);" for delay
AlexDaniel m: & 14:28
camelia rakudo-moar 14b921: OUTPUT«WARNINGS for /tmp/LsWXfxOrPx:␤Useless use of unnamed & variable in sink context (line 1)␤»
AlexDaniel m: &()
camelia ( no output )
JustinHitla so when it parses digit for delay the code is: "if($num>=48 && $num<=57){ $num=$num-48; $d=0.01*$num; }"
of course: $num=ord($str[$i]); 14:29
it recognizes it as number because its code is between 48 and 57
AlexDaniel why not just match it against /\d/ ? 14:30
or something
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 www.reddit.com/r/programming/comme...available/ to help make my point? 14:32
(with the understanding that you can ask me to do vice versa if somebody's being a similar muppet about a rakudo release :)
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" }
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] ␤[…»
tadzik I can chime in
timotimo oh hey tadzik
i didn't know you also play the chimes!
ZoffixW mst, www.reddit.com/r/programming/comme...le/d2ym0ip 14:33
mst \o/ ta
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
I love people. honest.
<3 #perl6
jast good response, though
RabidGravy no you don't :)
mst oh, I'm sorry, am I dripping sarcasm on the floor again? 14:35
mst gets the mop
sena_kun Here is a one-liner: if "5HALF-LIFE '3 IS GOD" ~~ m/\'(\d)/ { sleep($0.Int); say $/.prematch ~ $/.postmatch };
RabidGravy I actually don't understand the tribalism about software anymore
tadzik people think that if you're attacking something they like, you're attacking them 14:36
jast firefox > gimp!
timotimo ZoffixW: oh god you perl6 guys have to TAKE OVER EVERYTHING ABOUT PERL
jdv79 RabidGravy: tribalism is a human centered concept though 14:37
mst right, humans gonna human
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.
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 pierre_ left
mst oh for pete's sake 14:41
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?
RabidGravy yes 14:43
skids does not understand tribalism in general, not having had much of an extended family nearby during his youth.
And, not liking sports
ZoffixW m: for ^10 { $ = $_; say $ }
camelia rakudo-moar 14b921: OUTPUT«(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤(Any)␤»
mst rivalries between adjacent high schools do the same thing
and etc. and etc.
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...
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
timotimo well, every time you mention $ you get a different one 14:44
that's why your code above doesn't do what you want 14:47
ZoffixW Ah
mst m: for ^10 { say $ = $_ }
camelia rakudo-moar 14b921: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
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:47 luiz_lha is now known as Guest33353
mst oh, because of course 14:47
m: sub f($x) { say $ = $x } for ^10 { f($_) }
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 …»
mst m: sub f($x) { say $ = $x }; for ^10 { f($_) }
camelia rakudo-moar 14b921: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
mst ok, still not what I thought
m: sub f($x) { say $ ||= $x }; for ^10 { f($_) }
camelia rakudo-moar 14b921: OUTPUT«0␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
mst hah
ZoffixW m: loop { say '.'; last if $++ > 10 }
camelia rakudo-moar 14b921: OUTPUT«.␤.␤.␤.␤.␤.␤.␤.␤.␤.␤.␤.␤»
mst (I did warn you guys I was fscking terrible at this :)
ZoffixW m: loop { say $ ?? $++ > 5 !! $-- < -5; last if $++ > 10 }
camelia rakudo-moar 14b921: OUTPUT«False␤False␤False␤False␤False␤False␤True␤True␤True␤True␤True␤True␤»
ZoffixW :D
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:50
timotimo in that case why not just 93 :P 14:51
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 :(
JustinHitla well well, someone ate a clown on breackfast today
timotimo i actually still have to get breakfast; i should do that right now
JustinHitla timotimo: try red haired and red noised clown, I find them taste funny 14:53
mst JustinHitla: trout.me.uk/mongodb.jpg *burp*
JustinHitla that link sounds malicious to me
timotimo Maliciou S. Trout
ZoffixW :P 14:54
14:54 rurban left
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
JustinHitla, and this way you can sleep for 2 or for 2_000_000_000 seconds :)
ZoffixW & meeting
mst JustinHitla: if a plain jpeg file is malicious to your system, you have more problems than the fact your code is currently silly :)
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
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, pierre_ left, cbk joined
timotimo you can even put the print and the sleep into curlies inside the regex 14:58
15:02 brrt left
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
jast mst: you've got a friendly response on reddit... 15:05
15:05 ptolemarch joined
DrForr I would love to cover supply &c in the tutorial, but there's just not enough time. 15:05
15:07 samb1 left
mst jast: :D :D :D :D :D 15:07
mst also notes one of the /r/perl admins popped up to tell him he earned a ban there 15:08
15:08 CIAvash left
jast that guy isn't actually listed as a moderator in /r/perl 15:09
geekosaur that character's been popping up and trolling in multiple channels fwiw 15:10
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
geekosaur: taiarmin?
geekosaur oh, sorry, I misassociated things
15:11 itcharlie joined
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
15:15 colomon_ joined
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 colomon left, colomon_ is now known as colomon
geekosaur it's a lost art these days 15:16
jast I can spend some brain cycles on making better insults if you like
mst replies to him with only a link to www.trout.me.uk/apology.jpg 15:17
15:17 cbk left
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
jast sounds like something Bowerick Wowbagger the Infinitely Prolonged might say
mst jast: one of my personal heroes, yes 15:19
I continue to look forward to him getting to 'T'
[Coke] wonders if that reddit link from earlier today is now missing the comment that mst was complaining about.
mst [Coke]: it got downboated below -5 and is thus hidden
which is pretty much what I wanted
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:20 colomon left 15:21 colomon_ joined, pierre_ joined
mst <3 15:21
[Coke] spends way too much time seeing if he can view hidden comments. 15:22
tadzik boo, my comment was for naught 15:23
mst [Coke]: www.reddit.com/r/programming/comme...le/d2yk21j
tadzik oh no, I was looking at /r/perl post
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 ;)
huf if there are children, why are there still adults?
timotimo why are some people still children after 20 years? 15:25
huf if there are shoes, why are there still rotary hoes?
ah, rotary tiller. i knew it sounded better.
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."
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?
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
timotimo mhhh, every variable is dynamically scoped 15:29
perfect
mst I thought they finally acquired lexical scoping
huf yes, years ago
ilmari I thought someone was working on replacing that with guile?
timotimo i have no idea. as usual i'm just talking out of my proverbial ass
huf you-have-to-request-it-with-a-long-thing though, iirc
ilmari iirc guile has an elisp frontend
jast I haven't looked at emacs very hard, honestly, but I read about all these warts it has for hysterical raisins
mst it's guile's fault I have a pause account
moritz (yes-i-want-a-lexical-variable x)
ilmari lexical-let
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?
mst jast: eclipse?
timotimo how can elisp have lexical variables when they don't have any curlies? :P
jast forks with minor changes excluded
geekosaur emacs jhas been trying to replace itself (with one based on guile), not very successfully
15:30 cbk joined
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
timotimo :)
huf is there a js compiler that compiles sane js to shit js?
mst huf: babel
jast you mean more shit than 'minifiers'?
huf i am going to beat that into our head.
stmuk there was the lucid or xemacs fork and jed was somewhat emacs-like (although based on s-lang)
huf i mean it lets me use "let" in a browser 15:32
mst huf: indeed
huf and before someone brings up latest chrome or some shit like that, i mean ie :D
mst: yaay
mst I was trying to get it all installed over the weekend
but then nope.js wanted a newer g++ and I declined to go down that rathole at the time
moritz I recently read a piece about how emacs idea of being very configurable and extensible has been adopted by all major text editors
jast for some values of 'extensible' I guess
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
15:33 rurban joined
timotimo i read that, too 15:33
jast oh, that one
vim's composability *is* nice
itcharlie any idea how I can fix this error? gist.github.com/itcharlie/7047355b...d233be3e7f
error string : "Cannot locate native library"
stmuk I quite liked the sound of "vis"
mst continues to be be happy with ex-vi 15:34
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:35
timotimo itcharlie: can you see if the path it has in that line exists?
geekosaur uses nvi and emacs (and played with atom a bit)
and mst just stole my line re vimscript :p
[Coke] itcharlie: does it work with an http url?
stmuk I went to a talk about vimscript which was interesting but my main takeaway was I swore never to use it
itcharlie [Coke]: yes it works with http url 15:36
jast vimscript is very... ad hoc 15:37
vim does have bindings for various real languages, though, from what I know
timotimo that's right
15:37 ssotka joined
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
stmuk I'd probably abandon both vim and emacs if Linus wrote a replacement 15:38
jast not sure Linus is interested in that
but it's definitely possible to make something much better than both vim and emacs
mst my slow, multi-year plan, is to turn ex-vi into a libvi and then bind it into perl as an XS module
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
RabidGravy mst++ # crack addled 15:39
sena_kun stmuk, Linus uses microemacs fork afaik.
stmuk he has joked about it .. as long as its not based on uemacs it could be interesting
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.
stmuk sena_kun: yes
itcharlie [Coke]: ^ previous comment
jast I've thought about writing my own editor, just for the fun of it, but then again all this stuff takes time
RabidGravy itcharlie, yes that seems likely
masak mst: ...but did you know that in JavaScript, you can build `let` out of `throw`/`catch`? :D 15:41
(ohayo, #perl6)
mst masak: u wot
I know (function (x) { ... })(x) 15:42
masak mst: well, you can express `let x = 42; ...` as `try { throw 42 } catch (x) { ... }` 15:43
notably, `catch` is the only ES3 feature which has block scope rather than function scope! 15:44
mst ... ... ... ... ... ... ... ... *boom*
huf this is why i became a programmer!
nasty disgusting stuff like this :D
15:47 cbk left 15:48 cbk joined
tadzik oh wow 15:49
15:50 domidumont left
kurahaupo mst: is that a morse fuse going "sssssss" ? :-) 15:50
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
masak would like to recommend github.com/getify/You-Dont-Know-JS to everyone who doesn't know about it already 15:53
15:53 _mg_ left 15:54 lnrdo_ left, cbk left, cbk joined, araujo joined 15:59 pullphinger joined 16:01 ggoebel114 left 16:02 samb1 joined
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
github.com/sergot/openssl/commit/8...4dfe435cL6 16:10
tadzik oh, another module with Build gone :) ugexe++
ugexe you'll probably want to reinstall HTTP::UserAgent *after* you install IO::Socket::SSL though 16:11
16:15 rurban1 joined, finanalyst left
masak tadzik: what's the thing behind "Build gone"? I've missed that. 16:15
(I do see that the `build-depends` key went away in that commit) 16:16
16:16 rurban left
tadzik ...it did? 16:17
crap, -a bit me again
oh, wait
openssl doesn't need Build.pm anymore
and panda also no longer requires for that Build.pm to inherit Panda::Builder 16:18
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:21
e.g. I'm doing "'somefile'.IO.lines>>.split(/\s+/).map( -> ($a, $b, $c) { one => $a, two => $b, three => $c }).flat"
moritz RabidGravy: my %h; %h.push(list)
RabidGravy yeah, that's what I'm actually doing right now
moritz m: (my %h).push( 'a' => 1, 'b' => 2, 'a' = 3); say %h.perl
camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at /tmp/axxoozCZ2n line 1␤␤»
moritz m: (my %h).push( 'a' => 1, 'b' => 2, 'a' => 3); say %h.perl
camelia rakudo-moar df4eb8: OUTPUT«{:a($[1, 3]), :b(2)}␤»
ZoffixW :o 16:22
RabidGravy I'll stick with that then ;-)
moritz there's nothing more elegant than the primitive we provided FOR EXACTLY THIS USE CASE :-) 16:23
masak couldn't one also do something similar with .classify(*.key) ? 16:26
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]}␤»
masak hm. almost :)
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]}␤»
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]}␤»
masak m: say ( a => 1, b => 2, a => 3 ).classify(*.key, :as(*.value))
camelia rakudo-moar df4eb8: OUTPUT«{a => [1 3], b => [2]}␤»
16:30 domidumont joined 16:34 cbk left 16:36 cbk joined 16:38 sena_kun left
RabidGravy "goatish beef-witted pigeon-egg" 16:45
16:45 rurban joined
RabidGravy there, ported to about 5 lines of code 16:46
16:46 pullphinger left, [particle] left
timotimo from how many? 16:46
16:47 pullphinger joined, rurban1 left
RabidGravy ~20 or so 16:49
timotimo that's not bad
16:52 rurban left 16:56 cbk_ joined, cbk left, cbk_ is now known as cbk, cbk left 16:57 cbk joined
RabidGravy "goatish bat-fowling giglet" ;-O 16:59
dalek c: b8efc34 | (Sterling Hanenkamp)++ | doc/Language/ (2 files):
Fix a spelling error and wrap in phasers/concurrency
c: 25aa713 | (Jan-Olof Hendig)++ | doc/Language/5to6-perlop.pod:
Fixed a few broken links
17:00
17:01 cbk_ joined, cbk left, cbk_ is now known as cbk, molaf joined
timotimo huh, all those posts from the "perl 5.24 is available" thread got deleted along with the user 17:02
geekosaur glances at what look like DCSS imp insults in backscroll >.> 17:04
17:04 cbk_ joined 17:05 cbk left
psch that's something i haven't played in some time... 17:05
17:06 ggoebel114 joined 17:08 cbk_ left, cbk joined
ZoffixW timotimo, ... it's still there: www.reddit.com/r/programming/comme...available/ 17:11
17:11 travis-ci joined
travis-ci Doc build failed. Sterling Hanenkamp 'Fix a spelling error and wrap in phasers/concurrency' 17:11
travis-ci.org/perl6/doc/builds/128906171 github.com/perl6/doc/compare/30a4a...efc34a3570
17:11 travis-ci left
timotimo ZoffixW: um, clear your cache? 17:11
geekosaur "posts from the thread"
oh
17:12 espadrine left
ZoffixW timotimo, oh, you mean the 'better perl' guy? I thought you meant the whole thread. 17:12
17:13 hankache joined
jast the user is still there, only the posts are gone 17:13
ZoffixW I see '[deleted]' for the username
mst yes, they do that when comments are deleted 17:14
jast yeah, that happens for all deleted posts
*comments
ZoffixW Ah
hankache good evening #perl6
ZoffixW doesn't read reddit... too many trolls and haters
jast depends on where you go
17:16 firstdayonthejob joined 17:18 espadrine joined 17:20 cbk left
stmuk the negative karma thing helps 17:20
17:27 cbk joined, ZoffixW left 17:29 spider-mario joined
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
so often i cant get properly angry because the comment is gone by the time i get to it
17:32 _rubio_ joined 17:34 CIAvash joined
jast huf: just get angry about something else, Problem Solved (tm) 17:35
cbk Lol 17:36
geekosaur "I'm always angry."
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 :
gist.github.com/itcharlie/c6f47352...5619a71482
17:40 cbk left 17:41 nicq joined
nicq p6: say "hello" 17:41
camelia rakudo-moar df4eb8: OUTPUT«hello␤»
17:41 rurban1 joined
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 ( no output )
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:…»
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 "%
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:…»
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 aries_liuxueyang left
JustinHitla can something be more cryptic than that output ? 17:44
nicq ?
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...
Yeah, I have it on my machine
JustinHitla nicq: it shows up for everyone in channel too
17:45 aries_liuxueyang joined
nicq ._. 17:46
psch nicq: most importantly, your code is too long for irc :)
nicq: you could feed a gist to camelia
JustinHitla nicq: its not like when querry DCC bot
psch nicq: which also works in a query with camelia, fwiw
RabidGravy it's the end times isn't it? 17:47
JustinHitla its 03:37 here
need one bit flipped
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. 'rosettacode.org/wiki/Evolutionary_a...hm#Perl_6' 17:48
Not real sure why/how this works.
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
but once you've exceeded irc line length it's time to pick a different approach 17:49
nicq Good point. 17:50
17:50 [particle] joined 17:51 _28_ria left
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" ?
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.
mst JustinHitla: means "people who are here regularly", just like it does everywhere else 17:53
17:53 pierre_ left
psch nicq: Zeq is probably easier understood as Z[eq] 17:59
m: say <foo bar> Z[eq] <foo bar> 18:00
camelia rakudo-moar df4eb8: OUTPUT«(True True)␤»
psch m: say <foo bar> Z[eq] <foo baz>
camelia rakudo-moar df4eb8: OUTPUT«(True False)␤»
nicq psch: Oh, ok. So it compares the elements in two arrays instead of the array as a whole? 18:01
dalek c: 42d3732 | (Jan-Olof Hendig)++ | doc/Language/5to6-perlsyn.pod:
Fixed a broken link
18:02
18:03 avenj left, avenj joined, tharkun left, rurban1 left 18:05 huggable left, huggable joined
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.
psch nicq: well, Z is a meta operator that "zips" two Positionals
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
camelia rakudo-moar df4eb8: OUTPUT«(2 3 4)␤»
TimToady you can use it on any infix operator, pretty much 18:08
psch m: (my ($x, $y)) Z= 1, 2; say $x 18:09
camelia rakudo-moar df4eb8: OUTPUT«1␤»
psch ...although that specific one is kinda silly, with list-assign being a thing :)
TimToady m: my $x, my $y Z= 1,2; say $x
camelia rakudo-moar df4eb8: OUTPUT«1␤»
TimToady you can omit the parens on the left with Z=
nicq More than one way to do things 18:10
TimToady there's a slogan in there somewhere...
nicq [insert giant acronym here] 18:11
mst m: say [1,2],[3,4] ZZ* [5,6],[7,8] 18:12
camelia rakudo-moar df4eb8: OUTPUT«((5 12) (21 32))␤»
mst TimToady: not quite J, but neat. 18:13
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:14
TimToady it's just a named argument 18:15
18:15 cdg left, brrt joined
TimToady changes the default comparison operator to something else 18:15
nicq Oh! That makes much more sense. So instead of `by => &fitness` they used `:by(&fitness)`? 18:17
18:17 cpage_ joined
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 p3rl.org/List::UtilsBy to get the same behaviour
<3 that module, but the perl6 named arg stuff makes things way nicer
18:19 skink joined 18:21 tharkun joined 18:24 pierre_ joined 18:25 pierre_ left 18:26 _rubio_ left 18:28 cpage_ left
skink RabidGravy, Do you remember me mentioning OAuth2? 18:28
RabidGravy I do 18:29
skink pm?
RabidGravy eh?
18:30 tinita left
mst RabidGravy: he means "can I private message you without you setting me on fire?" 18:30
skink ^ That :)
mst there's a freenode tradition of asking permission in a channel first, for ... whatever reason 18:31
18:33 tharkun left, tharkun joined 18:39 _28_ria joined 18:45 espadrine_ joined 18:47 PotatoGim left
dalek osystem: 0626e73 | RabidGravy++ | META.list:
Add Acme::Insult::Lala

See github.com/jonathanstowe/Acme-Insult-Lala
18:47
18:48 PotatoGim joined 18:49 espadrine left
RabidGravy just got bored halfway through this other thing I started today 18:50
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␤»
AlexDaniel awww
18:51 mr-foobar left, pullphinger left
AlexDaniel m: my $x = my $y 18:52
camelia ( no output )
18:52 pullphinger joined
psch m: my $x := my $y 18:53
camelia ( no output )
psch m: my $x R:= my $y
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␤»
nicq 'Too fiddly' 18:54
Best error message 18:55
18:55 brrt left 18:56 huggable left, huggable joined, ZoffixW joined
ZoffixW huggable, insult RabidGravy 18:57
huggable RabidGravy is a venomed hell-hated hedge-pig
ZoffixW 😂😂😂
RabidGravy :)
AlexDaniel psch: well, what you are trying to do is probably this
m: my $x := (my $y := $x); say $x.WHAT # RT #127254 18:58
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127254
camelia rakudo-moar df4eb8: OUTPUT«(Mu)␤»
AlexDaniel oh interesting
star: my $x := (my $y := $x); say $x.WHAT
camelia star-m 2016.01: OUTPUT«(signal SEGV)»
AlexDaniel so it got better!
18:59 jjido joined
AlexDaniel 2016.03 still SEGV 18:59
18:59 dalek left
AlexDaniel dalek :( 19:00
19:00 dalek joined, ChanServ sets mode: +v dalek
masak huggable: insult masak 19:01
huggable masak is a bawdy rump-fed boar-pig
masak well, yeah
psch AlexDaniel: not... really. i was just checking if := and = are equally fiddly
ZoffixW huggable, insult me
huggable ZoffixW is a froward swag-bellied wagtail
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
psch i suppose though that means that we don't really have item-bind...
perlpilot huggable: insult huggable
huggable huggable is a clouted guts-griping coxcomb
AlexDaniel huggable: insult masak 19:04
huggable masak is a rank earth-vexing vassal
AlexDaniel mmmhmm 19:05
19:05 dalek left, dalek joined, ChanServ sets mode: +v dalek
AlexDaniel huggable: insult masak 19:06
huggable AlexDaniel, masak is a bot
ZoffixW pfft
nicq oh snap
psch masak++ is the RT-ticket bot, and very good at it 19:07
that's not even an insult
ZoffixW That's because it's a factoid :)
huggable, masak
huggable ZoffixW, nothing found
ZoffixW Ohhh, I see.
AlexDaniel psch: now I have to find a new way to make it SEGV
psch: it is still a null object
ZoffixW AlexDaniel cheetsy-doodled and stored as part of a factoid
psch m: BEGIN my $x := my $y; say $x.WHAT 19:08
camelia rakudo-moar df4eb8: OUTPUT«(Mu)␤»
psch m: my $x := my $y; say $x.WHAT
camelia rakudo-moar df4eb8: OUTPUT«(Any)␤»
psch AlexDaniel: well, maybe that helps you wrt trying to make it SEGV... :)
AlexDaniel whistles innocently
m: my $x := my $y; say $x.WHICH; say $y.WHICH 19:09
camelia rakudo-moar df4eb8: OUTPUT«Any␤Any␤»
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␤␤»
masak is indeed a bot 19:11
huf masaka! 19:12
vendethiel- masak++ # auto-fixing bot
19:14 mr-foobar joined 19:15 |2701 left 19:17 Fleurety joined
dogbert17 o/ #perl6 19:18
19:18 rindolf left
dogbert17 what do you know about this class doc.perl6.org/type/Proc::Status has it been removed? 19:19
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␤␤»
nine_ commit 03b5a0abb58905f8e8e6e768186696f10e37729e Author: Rob Hoelz [email@hidden.address] Date: Fri Sep 4 13:23:15 2015 -0500 Removed a bunch of deprecated I/O constructs
dogbert17: ^^^ 19:22
dogbert17 nine_: thx
so I guess noone will be terribly disappointed if I remove this from the docs?
mst dogbert17: I would doubt it. I wonder if you could script finding things like that 19:23
ZoffixW Right, toss it.
mst Pod::Uncoverage
19:23 mr-foobar left
ZoffixW mst, well volunteered! :) 19:23
dogbert17 thx, will remove
geekosaur "voluntold" 19:24
mst ZoffixW: I was going to, but then he said 'thx'
so now I don't care anymore
ZoffixW 😂😂😂
RabidGravy I was getting a false positive about it existing as I had an ancieunte m-CORE.setting hanging around 19:25
19:25 domidumont left, mr-foobar joined, sortiz joined, nicq left
sortiz . 19:27
masak :
RabidGravy ^
ZoffixW !
19:28
Aw, it doesn't line up.
masak
dalek c: 7992f1f | (Jan-Olof Hendig)++ | doc/Type/Proc/Status.pod:
Removed doc/Type/Proc/Status.pod
19:36
19:37 dalek left, dalek joined, ChanServ sets mode: +v dalek
ZoffixW what's with dalek :/ 19:37
19:41 sufrostico left
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:41
ZoffixW Well, I finished C lesson in Learn X in Y minutes... Now I'm ready to hack on MoarVM! 19:42
\o/ 🎉 19:43
19:43 sufrostico joined
dogbert17 it says the same for 'X::Temporal::Truncation' and 'X::Syntax::Augment::Role'. Maybe they're gone as well 19:43
RabidGravy quick grepping of the source would help answer 19:44
ZoffixW dogbert17, looks like. I see no matches for Truncation nor Augment::Role in the sauce 19:45
dogbert17, which is here: github.com/rakudo/rakudo/
Types are in src/ and modules are in lib/ (and there's probably something else I don't know about :P)
mst dogbert17: awesome 19:46
dogbert17 seems as if the Temporal stuff was removed in 2013 by someone called 'masak' :) 19:47
7e10a0dfa1f410e1ea362b75cd114b5a45723ac2 19:48
[Coke] fyi, 2015 is ancient history already 19:49
(so, keep that in mind about 2013 commits)
moritz PSA: tonight between 20:00 UTC and midnight UTC, hack.p6c.org and the webserver might suffer from power loss
there's some urgent maintenance in the data center 19:50
19:50 espadrine_ left
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 ZoffixW left
psch moritz: better announced maintenance than runaway process that bring the load over 200... :) 19:52
+a
19:54 colomon_ left 19:55 CIAvash left 19:56 colomon joined
dalek c: f33f8af | (Jan-Olof Hendig)++ | doc/Type/X/ (2 files):
Removed doc/Type/X/Syntax/Augment/Role.pod and doc/Type/X/Temporal/Truncation.pod
19:57
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…»
masak 'night, #perl6 20:04
dogbert17 the src doesn't tell me much: method freeze(Pair:D:) { $!value := nqp::decont($!value) } 20:05
20:06 yqt joined
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␤␤»
psch dogbert17: does that help? :) 20:07
20:07 cpage_ joined
dogbert17 psch: not sure 20:08
m: my $pair = a => 1; $pair.value = "foo"
camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/qk88HBCvMQ line 1␤␤»
20:09 cdg joined
psch *that* looks wrong 20:09
m: my $pair = a => 1; $pair.value = 2
camelia rakudo-moar df4eb8: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/7dwRo2dH81 line 1␤␤»
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␤␤»
psch oohh
m: my $pair = a => $ = "foo"; $pair.value = "bar"; say $pair
camelia rakudo-moar df4eb8: OUTPUT«a => bar␤»
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:11
dogbert17: .freeze decontainerizes .value, which turns .value from a-box-with-a-value-inside into a value 20:12
m: my $pair = a => $ = "foo"; $pair.value = "bar"; say $pair; $pair.freeze; try $pair.value = "baz"; say "didn't work" if $!
camelia rakudo-moar df4eb8: OUTPUT«a => bar␤didn't work␤»
psch so, even though it looked wrong, it isn't, because we didn't put a container into .value 20:13
m: my $pair = ["foo"].pairs[0]; $pair.value = "bar"; say $pair 20:14
camelia rakudo-moar df4eb8: OUTPUT«0 => bar␤»
sortiz m: my $v; my $p = :foo($v); $p.value = 'hi'; $p.freeze; say $p $p.value = 'foo'; # This illustrate the case
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
camelia rakudo-moar df4eb8: OUTPUT«foo => hi␤Cannot modify an immutable Str␤ in block <unit> at /tmp/l8pSHhEAWp line 1␤␤»
dogbert17 I get it (finally) :) psch++ sortiz++ 20:16
all that remains is for me to document this then :) 20:17
psch dogbert17++ # docs
20:21 hotel_california joined 20:22 hotel left 20:23 nowan_ left 20:24 darutoko left
pmurias mst: isn't the reason for asking about pm that people often don't notice private messages in some clients? (irssi) 20:24
mst pmurias: there are definitely people who regard a pm without prior warning to be rude 20:25
pmurias: and there's a +g server side mode where queries are blocked until you unblock them, and that's easy to miss
I don't find irssi query windows themselves easy to miss
20:26 jnthn left, jnthn joined, nowan joined
RabidGravy I use a tabbed graphical client anyway 20:26
20:28 pmurias left 20:30 kaare_ left
[Coke] irc-- 20:31
tony-o that's been my understanding of asking prior to pm-ing too (rudeness) 20:32
20:32 mr-foobar left, dalek left
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/05/09/...r-strikes/ 20:32
20:33 dalek joined, ChanServ sets mode: +v dalek, mr-foobar joined
sortiz lizmat++ 20:34
20:37 hotel joined 20:38 colomon_ joined, colomon left, colomon_ is now known as colomon 20:39 hotel_california left, dalek left
AlexDaniel “The auto-threader is now 2x to 3x faster” wait, there is an auto-threader? 20:40
20:40 dalek joined, ChanServ sets mode: +v dalek
timotimo AlexDaniel: it's not what you think :) 20:40
moritz AlexDaniel: yes, it's just not mutli threaded :-)
[Coke] yes. if you
AlexDaniel oh, uh…
[Coke] whoops.
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)
camelia rakudo-moar df4eb8: OUTPUT«any(2, 4, 20)␤»
moritz that's autothreading
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␤»
psch m: sub double($x) { $x * 2 }; say double($_) for 1, 2, 10; say now - BEGIN now;
camelia rakudo-moar df4eb8: OUTPUT«2␤4␤20␤0.01977317␤»
sortiz
.oO( Poor helpless dalek )
psch ...that's probably noise
m: sub double($x) { sleep 1; $x * 2 }; say double(1|2|10); say now - BEGIN now;
camelia rakudo-moar df4eb8: OUTPUT«any(2, 4, 20)␤3.0205481␤»
psch shrugs
moritz data center maintenance over, hack survived 20:44
psch i don't what does actual parallelism yet
20:44 hotel_california joined
[Coke] .hyper, .race 20:45
20:45 hotel left
skids and start { } of course. 20:46
20:46 MasterDuke joined, hankache left
MasterDuke is there any way to profile moar? 20:53
psch MasterDuke: probably compiling with gcc -pg and gprof 20:54
MasterDuke: although i can't help but wonder why you'd want to profile moar and not rakudo
(stackoverflow.com/questions/1794816/ is where i got gprof from, fwiw) 20:56
20:56 hotel joined, khw left
psch 'cause in the end moar is just a C program 20:56
20:56 hotel_california left
MasterDuke re some conversation in the channel earlier, i find the rakudo build annoyingly slow 20:56
psch i don't think profiling moar will help your there 20:57
on the other hand, the profile output we have for rakudo probably is hard to utilize for CORE.setting compilation
s/your/you/
MasterDuke yeah, at least on my machine the slow part is: 20:59
[Coke] (profile moar) ... perl6 --profile ?
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
20:59 skids left
[Coke] Yes. that is always the slow part. 21:00
MasterDuke i was hoping for a --profile flag to moar, but no such luck
RabidGravy yeah it's huge and can't be parallelised
[Coke] MasterDuke: no, the profile flag is for perl6, not moar.
21:00 sufrostico left
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
timotimo i often perf record -g my moar stuff
psch but as i said, that's probably not useful
'cause it'll give you JSON that brings your browser to some 10+ GB ram
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)
psch *QT-based
21:02 itcharlie left
timotimo aye. it doesn't use all of the data, though 21:03
like it won't show you a list of GC cycles
dalek c: ee9f0b2 | (Christopher Bottoms)++ | doc/Language/control.pod:
Added samewith

Based this on Brad Gilbert's example here: stackoverflow.com/a/37064186/215487. I recommend further elaboration by someone who knows more about it than I do.
21:04
c: 7fb512c | RabidGravy++ | doc/Language/control.pod:
Merge pull request #509 from molecules/patch-2

Added samewith
21:05 pullphinger left
MasterDuke found it (github.com/tadzik/p6profiler-qt), going to give that a try later today 21:06
but how would i "stuff --profile into the CORE.setting compilation"?
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
well, i'm not 100% that'll work
but it's a start
MasterDuke ha, i'll see what happens
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... :)
(interestingly, profiling CORE.setting like that was on my whiteboard for a few days, until earlier this day) 21:08
(i tossed it 'cause i didn't think we anything to make it useful)
moritz oh, I think you need --profile-compile, not --profile
because --profile profiles only runtime
timotimo that's right
and --profile-filename=foobar.json will give you a slightly smalle rfile
21:09 khw joined, TEttinger joined
tadzik (but the qt profiler handles both) 21:13
timotimo yup 21:14
MasterDuke giving it a test whirl now, loads faster
tadzik it only does subset of the regular profiler features
timotimo it also doesn't heap dumps :) 21:15
tadzik angular profiler does? 21:17
timotimo no 21:18
we have a pure-perl program for heap dumps
it's more of a query-focused interface
21:25 sufrostico joined 21:27 hotel_california joined 21:28 dolmen joined, hotel left 21:32 ptolemarch left 21:34 rurban joined
lizmat good night, #perl6! 21:35
psch g'night lizmat++ o/
i just noticed that my .travis.xml change didn't matter, apparently :/ 21:36
timotimo gnite lizmat :)
and good work on the weekly
psch well, the latest one that is
the one that does "&& make test" instead of "; make test
+"
(i also thought i was in #p6dev :P)
21:38 rurban1 joined, rurban left
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.
geekosaur or something's using all of ram+swap... 21:45
psch KiB Mem: 20608392 total, 4580236 used, 16028156 free, 73572 buffers 21:46
22:00 rurban1 left 22:01 hotel joined 22:02 hotel_california left 22:03 mr-foobar left 22:04 mr-foobar joined
tony-o MadcapJake: have you been using modules.zef.pm ? 22:05
22:05 jjido left 22:06 jjido joined 22:07 jjido_ joined 22:08 jjido__ joined, Sgeo joined 22:09 jjido___ joined, hotel_california joined 22:10 jjido____ joined, kid51 joined 22:11 jjid_____ joined, hotel left, jjido left, jjido joined 22:12 jjido_ left, jjido__ left, jjido_ joined 22:13 jjido__ joined, jjido___ left 22:14 jjido___ joined 22:15 jjido____ left, jjido___ left, jjid_____ left, dolmen left 22:16 jjido left 22:17 jjido_ left 22:18 jjido__ left 22:31 spider-mario left
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 22:37 hotel_california left, hotel joined 22:39 lichtkind_ left 22:49 |2701 joined 22:52 firstdayonthejob left 22:56 huggable left, hotel_california joined 22:57 hotel left 22:59 huggable joined 23:05 ZoffixWin left
ugexe installs json parser; pulls in dependency on DBIish 23:19
23:25 pierre_ joined
RabidGravy weird 23:43
toodles #perl6 23:44
timotimo that means "goodbye" right?
23:48 RabidGravy left 23:50 SVR4 joined
skink Anyone here on OS X atm? 23:57
or a BSD
23:57 matiaslina joined
SVR4 I'm on NetBSD 23:58