01:48 ilbot3 left 01:57 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:05 dct left
Geth nqp: jstuder-gh++ created pull request #455:
Rakudo Issue 1886: Remove erroneous decont op in chain compilation
02:07
04:55 lizmat left 05:01 lizmat joined
AlexDaniel squashable6: next 05:11
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 1 day and ≈4 hours (2018-06-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
05:49 skids left 06:50 Ven`` joined 06:54 Ven`` left, Ven`` joined
lizmat Files=1239, Tests=76373, 323 wallclock secs (15.49 usr 5.56 sys + 2218.57 cusr 226.81 csys = 2466.43 CPU) 07:57
yoleaux 30 May 2018 22:15Z <tbrowder_> lizmat: you, and others, have done lots of nqp optimizations and shown how certain ops (or op combos) versus another for the same result are faster. do you have a list of those that we could put in a doc in nqp/docs? has anyone searched the code base to see if there are places where the faster op might be used? i can’t think of a specific example, but something like “@arr.push($item)” is slower or faster
than
AlexDaniel huh, is signal handling broken or am I being dumb 08:04
pretty sure that code worked in the past
AlexDaniel squints
alright? I updated my rakudo and it works again 08:07
lizmat yeah, signal handling should now be less fragile on different systems 08:09
Jeremy Studer++
AlexDaniel so we shipped 2018.05 with an issue, right? 08:10
… and even 2018.04? 08:11
AlexDaniel tests
I mean, the fact that numeric values of signals were incorrect was a very old bug, that I know 08:15
but signal(SIGUSR1) worked nonetheless
even though +SIGUSR1 was wrong
I think?
08:25 pmurias joined
lizmat AlexDaniel: so you're saying it's not working correctly now? 08:30
AlexDaniel lizmat: no, it's working correctly, but we shipped 2018.04 and 2018.05 with a bug that wasn't there previously 08:31
I think
testing it right now
lizmat I think the bug went back years
AlexDaniel I wrote some code earlier that year that definitely worked
unless I'm really dumb :)
testi 2018.03 right now… 08:32
ng*
lizmat AlexDaniel: could be that your code depended on the bug :-)
there's a lot of that going around in the Perl world :-(
AlexDaniel it works on HEAD :)
Geth rakudo: 4109ce36a5 | (Elizabeth Mattijsen)++ | src/Perl6/World.nqp
Rename 'use p5isms' to more general 'use isms <perl5>

  - as proposed in GH #1887
  - should allow for other isms to be added later
  - internally still called 'p5isms' to allow for easier checking
   - this may need some attention if other alternatives are added in
   the future. But at least that will be work to do if we need
   rather than work now when we don't.
08:46
synopsebot RAKUDO#1887 [open]: github.com/rakudo/rakudo/issues/1887 Should 'use p5isms' be renamed / removed / documented & tested
AlexDaniel lizmat: so what are your thoughts on turning perl5 isms on by default? 08:49
lizmat I would not be in favour for that
AlexDaniel lizmat: ok, but why? As I see it, we can recommend “no isms<perl5>” in all 5to6 docs, so that anyone who is actually interested in these warnings will know about this feature, at the same time anyone who never touched perl5 will never see unrelated warnings. 08:52
otherwise it's only useful if non-perl5 devs explicitly declare that they're not writing in perl5, which is rather weird, no? 08:53
lizmat the default is "no isms <perl5>", which means you *will* get warnings for Perl 5 constructs 08:54
AlexDaniel yes, and I'm saying it shouldn't be the default
lizmat my primary goal for this pragma is to allow CPAN Butterfly Plan P5xxx modules to work without generating these warnings 08:55
and in some case, to work at all
which, I guess, is different from your goal :-) 08:56
AlexDaniel re signals – yes, it works on 2018.03 and on HEAD, it's definitely broken on 2018.05 and I assume it's also broken on 2018.04 08:57
c: 2018.03,2018.04,2018.05,HEAD use NativeCall; sub kill(int32, int32) is native {*}; my $x = signal(SIGUSR1).Channel; kill $*PID, 10; sleep 0.5 09:01
committable6 AlexDaniel, ¦2018.03,HEAD(4109ce3): «» ¦2018.04,2018.05: « «exit signal = SIGBUS (10)»»
AlexDaniel well, that's not SIGBUS, but that's because committable itself is running slightly older rakudo, I think 09:03
I'm not quite sure what to do about that
is there a workarond?
you can't do signal(10)
c: 2018.03,2018.04,2018.05,HEAD use NativeCall; sub kill(int32, int32) is native {*}; my $x = signal(Signal(10)).Channel; kill $*PID, 10; sleep 0.5 09:04
committable6 AlexDaniel, ¦2018.03: « «exit signal = SIGBUS (10)»» ¦2018.04,2018.05,HEAD(4109ce3): «»
AlexDaniel not really
the reason I noticed it now is that whateverable is using this 09:05
so while I was trying to prepare for the squashathon I noticed that things don't quite work
there was no test for this particular case, so I haven't noticed any issues in the past two months 09:06
github.com/rakudo/rakudo/issues/1888 09:16
R#1888 09:17
synopsebot R#1888 [open]: github.com/rakudo/rakudo/issues/1888 [regression][testneeded] Issues with signal(SIGUSR1)
AlexDaniel please let me know what you think
09:19 ExtraCrispy joined
El_Che AlexDaniel: it would be weir to enable p5isms by default. They are marked as such because they are unnatural in perl6 09:20
lizmat AlexDaniel: if you do 'kill $*PID, +SIGUSR1, doesn't that work for you then? 09:21
AlexDaniel lizmat: the kill is not a problem
lizmat: the problem is that signal(SIGUSR1) doesn't catch the signal
lizmat but it does, at least for me 09:22
AlexDaniel lizmat: on HEAD, yes, but on 2018.04 and 2018.05 it's broken
lizmat ah, ok
AlexDaniel so both latest rakudo release and latest Star release are broken
but on 2018.03 it was working just fine
lizmat well, all I can say is that you should use the +SIGUSR1 instead of just 10 09:23
as SIGUSR1 on my system is 30, so your code didn't work on HEAD now for me
AlexDaniel lizmat: that's correct, but the signal typically comes from elsewhere
lizmat :q 09:24
AlexDaniel so it's likely that SIGUSR1 comes from another program
lizmat oops
yeah, and if that other program also uses +SIGUSR1 , all should be fine
AlexDaniel I left a comment in an attempt to clarify it: github.com/rakudo/rakudo/issues/18...-393472456 :) 09:30
El_Che: aren't they unnatural only if you're coming from perl5? 09:37
El_Che: e.g. what is unnatural about `say`, why do I have to write `say()`?
note that currently isms pragma does not affect that enough to avoid the compile-time error completely, but still 09:38
09:41 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Rename 'use p5isms' to more general 'use isms <perl5> 09:41
travis-ci.org/rakudo/rakudo/builds/386080942 github.com/rakudo/rakudo/compare/e...09ce36a52e
09:41 travis-ci left
buggable [travis build above] ☠ All failures are due to: failed make test (1 failure). Across all jobs, only t/06-telemetry/01-basic.t test file failed. 09:41
lizmat looks like a flapper, /me restarts job 09:44
actually, no, will wait for result of next commit
El_Che AlexDaniel: if the use case is natural in perl6 sure, but I fear some perl5isms may not make sense any more besides tradition 09:50
$hash{foo}
AlexDaniel El_Che: not sure I understand your point 09:52
El_Che that's a perl5ism to read a hash value
would you adopt this -convoluted- example to make the transition easier?
lizmat m: my $m = Hash.new; $m<foo> = 42; dd $m 09:53
camelia Hash $m = ${:foo(42)}
lizmat El_Che: or are you referring to the bareword inside {} ?
El_Che mostly, but not completely
the canonical way is that the hash sigil stays (I know there are other ways, but using the perl5 construction would make the code les readable) 09:54
and the bareword inside { }
perl6 code will be read by non perl5 programmers 09:55
requiring knowledge of Perl5 and 6 for working on a perl6 project is fine for me personally, but it sound like a bad idea
lizmat ok, I think the scope of discussion if going much too far 09:56
my point was that a module developer wanting to provide Perl 5 like constructs in Perl 6 couldn't because of these warnings / errors 09:57
El_Che take my remarks from someone far away, maybe I am missing the point
my point is that if you use isms, it's ok
it's explicit
lizmat all I wanted to do is to create a pragma that would allow a *user* to say: yes I know I'm using P5isms, and I'm fine with it 09:58
El_Che (so you can stay away from that code because you don't want to deal with that or at at least prepared)
but I argue against enabling it by default
lizmat: yes, that's a good idea
I was commenting on AlexDaniel's idea to enable it by default 09:59
AlexDaniel well, at least now I understand why it was called p5isms :) 10:12
Geth rakudo: c80ea2f289 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp
Oops, missed another case for use isms <perl5>

This should now allow bareworded functions such as "say" to not croak when "use isms <perl5>" is used.
10:16
El_Che AlexDaniel: without trolling, my minds reads it as pessimisms 10:24
AlexDaniel
.oO( pfffisms )
10:33
11:11 Ven`` left
El_Che perl6 domains look to be down 11:52
moritz: perl6 domains look to be down
it's back 11:53
12:31 Ven`` joined 12:46 Ven` joined, Ven` left 12:47 Ven` joined 12:49 Ven`` left 13:21 Ven` left, Ven`` joined 13:52 skids joined 13:56 Ven`` left 14:01 Ven`` joined 14:47 brrt joined 15:03 brrt left, brrt joined 15:05 Ven`` left 15:09 Ven`` joined 15:33 Ven`` left 15:56 brrt left 16:31 ExtraCrispy left 16:44 brrt joined 17:13 brrt left
AlexDaniel m: say Signal(0) 18:00
camelia SIGTHR
AlexDaniel e: say Signal(0)
evalable6 SIGINFO
AlexDaniel haha
these are from FreeBSD I think
lizmat m: say $*KERNEL.name 18:01
camelia linux
lizmat camelia is not running on a FreeBSD
AlexDaniel that's exactly the problem :D
github.com/rakudo/rakudo/issues/1891 18:04
R#1891
synopsebot R#1891 [open]: github.com/rakudo/rakudo/issues/1891 [regression][⚠ blocker ⚠] Signal(0) gives FreeBSD signals on Linux
El_Che fix: install freebsd? 18:05
AlexDaniel El_Che: what's the result of Signal(0) on freebsd? 18:06
El_Che AlexDaniel: I only had freebsd shortly on a laptop, not anymore
AlexDaniel c: HEAD^^^^,HEAD^^^,HEAD^^,HEAD^,HEAD say Signal(0) 18:07
committable6 AlexDaniel, ¦HEAD^^^^: «SIGBREAK␤» ¦HEAD^^^: «SIGTHR␤» ¦HEAD^^: «SIGEMT␤» ¦HEAD^,HEAD(c80ea2f): «SIGINFO␤»
samcv i have a vm if someone wants me to test soething?
just tell me what you want the output of
AlexDaniel samcv: IMO it's not critical, so don't bother
but if you want to have some fun, then sure, just `say Signal(0)` 18:08
El_Che AlexDaniel: it looks random 18:09
AlexDaniel c: HEAD^^^^,HEAD^^^,HEAD^^,HEAD^,HEAD say Signal(0)
committable6 AlexDaniel, ¦HEAD^^^^: «SIGBREAK␤» ¦HEAD^^^: «SIGTHR␤» ¦HEAD^^: «SIGEMT␤» ¦HEAD^,HEAD(c80ea2f): «SIGINFO␤»
AlexDaniel El_Che: random per build :)
and all these are non-linux signals, I think
geekosaur two of them are just aliases 18:10
El_Che AlexDaniel: the list is here: man7.org/linux/man-pages/man7/signal.7.html
ctrl+f "Standard signals"
AlexDaniel c: 2018.03,HEAD say Signal(28) 18:11
committable6 AlexDaniel, ¦2018.03,HEAD(c80ea2f): «SIGWINCH␤»
AlexDaniel c: 2018.03,HEAD say Signal(50)
committable6 AlexDaniel, ¦2018.03,HEAD(c80ea2f): «(Signal)␤»
AlexDaniel c: 2018.03,HEAD say Signal(30)
committable6 AlexDaniel, ¦2018.03: «SIGUSR1␤» ¦HEAD(c80ea2f): «SIGPWR␤»
AlexDaniel c: 2018.03,HEAD say Signal(32)
committable6 AlexDaniel, ¦2018.03: «SIGTHR␤» ¦HEAD(c80ea2f): «(Signal)␤»
lizmat m: sqrt(-4) # shouldn't that be 2i ?
camelia WARNINGS for <tmp>:
Useless use of "sqrt(-4)" in expression "sqrt(-4)" in sink context (line 1)
lizmat m: say sqrt(-4) # shouldn't that be 2i ? 18:12
camelia NaN
geekosaur lizmat, auto-promotion to Complex is rarely what you want because very little code will expect it
so IEEE default is NaN and you work explicitly in complex if that's what you want
lizmat m: say sqrt(-4+0i) # I see what you mean :-) 18:13
camelia 0+2i
geekosaur there might be times when a pragma setting the default expectation would be handy, but I suspect that requires a fair amount of work 18:14
(might be nice anyway, to tell it to e.g. stick to (Fat)Rats as much as possible instead of auto-promoting to Num)
use AncientGreeks; # :p 18:15
18:23 pmurias left 18:42 j3nnn1 joined 18:49 brrt joined
brrt can i ask the regular benchmarkers to benchmark the MoarVM branch 'jit-stack-walker' again 18:52
i expect compiled code size reduction and maybe a performance improvement
lizmat brrt: looks like Travis is a bit red for your PR: travis-ci.org/MoarVM/MoarVM 19:05
afk& 19:06
brrt heh, that's the no-jit variant 19:07
i'll fix that up
AlexDaniel squashable6: next 19:15
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in ≈14 hours (2018-06-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
19:17 brrt left 20:05 brrt joined 20:40 brrt left 21:17 lizmat left 21:19 lizmat joined 21:40 skids left
samcv oh btw Signal(0) on freebsd is SIGSTKFLT 22:22
whatever that is ¯\_(ツ)_/¯
AlexDaniel
22:57 entonian joined 23:01 entonian left, entonian joined 23:08 entonian left, entonian joined 23:11 entonian left
samcv if i turn off hash randomization i get the same thing for Signal(0) on two different rakudo builds 23:33
El_Che samcv: you didn't it break it :) 23:34
or you did :)
great post btw
liked it 23:35
samcv thanks :)
El_Che explanations for us mortals :)
samcv i mean did anything break? i mean
or just signals that didn't mean anything
El_Che I run at least 1 Perl 5 program that catches SIGUSR1 and 2 23:36
samcv get signals seems to return a hash 23:37
nqp::getsignals
El_Che I thought AlexDaniel started hist debugging with that signal
samcv so. idk why would it work previously?
El_Che <blank> 23:38
samcv i mean it shouldn't work at all
or maybe it was broken but not for commonly used signals?
m: use nqp; say nqp::signals 23:39
camelia ===SORRY!===
No registered operation handler for 'signals'
samcv m: use nqp; say nqp::getsignals
camelia {SIGABRT => 6, SIGALRM => 14, SIGBREAK => 0, SIGBUS => 7, SIGCHLD => 17, SIGCONT => 18, SIGEMT => 0, SIGFPE => 8, SIGHUP => 1, SIGILL => 4, SIGINFO => 0, SIGINT => 2, SIGIO => 29, SIGKILL => 9, SIGPIPE => 13, SIGPROF => 27, SIGPWR => 30, SIGQUIT => 3,…
samcv m: use nqp; my %hash = nqp::getsignals; say %hash.sort(*.value.Int) 23:41
camelia (SIGINFO => 0 SIGEMT => 0 SIGBREAK => 0 SIGTHR => 0 SIGHUP => 1 SIGINT => 2 SIGQUIT => 3 SIGILL => 4 SIGTRAP => 5 SIGABRT => 6 SIGBUS => 7 SIGFPE => 8 SIGKILL => 9 SIGUSR1 => 10 SIGSEGV => 11 SIGUSR2 => 12 SIGPIPE => 13 SIGALRM => 14 SIGTERM => 15 SIG…
samcv and it only adds things > 1 23:42
El_Che samcv: github.com/rakudo/rakudo/issues/1888 Did you see that where jstuder says it's to changes he introduced?
samcv at least from the section i'm looking at
El_Che due
samcv ah ok 23:43
also we should make sure we have some tests for the signals too :) 23:46