Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by moderator on 29 April 2018.
00:10 entonian joined 00:14 llfourn joined
Geth rakudo/release/2018.04.1+: 1188965010 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 3 files
Log all changes (+ announcement)

Also an entry in release_guide.pod
00:19
AlexDaniel ↑ feel free to review 00:20
.tell samcv I think we're ready. Please cut the point release and ping me once that is done.
yoleaux AlexDaniel: I'll pass your message to samcv.
samcv AlexDaniel: okay 00:21
yoleaux 00:20Z <AlexDaniel> samcv: I think we're ready. Please cut the point release and ping me once that is done.
samcv AlexDaniel: should just need to cut the releases/2018.04.1 branch of moarvm yes? 00:29
after updating changelog and other releasy type stuff obviously
AlexDaniel samcv: hmmm, not sure I understand your question fully. But yes, you just tag the right commit (which will be on that branch, yes) 00:32
01:00 Kaiepi joined
samcv AlexDaniel: ok release is tagged and pushed 01:16
AlexDaniel samcv: looks good! 01:21
samcv AlexDaniel: everything tests fine? 01:23
AlexDaniel well, I tested everything beforehand :)
but yeah I'll just let releasable do its thing now 01:24
samcv AlexDaniel: okay cool. updating moarvm.org now 01:30
01:38 FROGGS__ joined 01:41 cog_ joined 01:57 ilbot3 joined
moderator Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:37 ufobat_ joined 03:02 skids joined
Geth nqp/release/2018.04.1+: b27cab4aef | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/MOAR_REVISION
[release] Bump MoarVM revision to 2018.04.1
03:23
nqp/release/2018.04.1+: 8203101ed3 | (Aleks-Daniel Jakimenko-Aleksejev)++ | VERSION
[release] Bump VERSION to 2018.04.1
rakudo/release/2018.04.1+: 8bfa2dde85 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/NQP_REVISION
[release] Bump NQP revision to 2018.04.1
rakudo/release/2018.04.1+: 795954af63 | (Aleks-Daniel Jakimenko-Aleksejev)++ | VERSION
[release] Bump VERSION to 2018.04.1
rakudo/master: 7 commits pushed by (Aleks-Daniel Jakimenko-Aleksejev)++, (Zoffix Znet)++ 03:30
¦ rakudo/master: version bump brought these changes: github.com/perl6/nqp/compare/2018....g2540a6bfb
AlexDaniel there is one mistake that I see now 03:35
is that I somehow forgot to cherry-pick this commit: github.com/perl6/nqp/commit/d36869...9ba8638cab 03:36
IIRC just building r-j was not affected by that, but it's still a mistake
Geth nqp/master: 8 commits pushed by (Aleks-Daniel Jakimenko-Aleksejev)++, (Zoffix Znet)++ 03:38
¦ nqp/master: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...g43f9dcfe8
AlexDaniel samcv: btw I did the same kind ↑ of merge for moarvm 03:43
04:27 AlexDaniel joined
samcv AlexDaniel++ 05:01
AlexDaniel: for some reason though the VERSION in moarvm didn't change after the merge 05:03
AlexDaniel huuh…
that's interesting
oh 05:04
samcv: turns out this commit is not on any branch: github.com/MoarVM/MoarVM/commit/e0...cd143b2e61 05:05
samcv how can it not be on any branch 05:06
what
AlexDaniel that can be done, yes
I think you pushed the tag but didn't push the branch, or something like that
samcv ah 05:07
ok now it's fixed :)
AlexDaniel I think you can just push and we'll merge the remaining commit
samcv yeah
not sure how i did that but it's fixed now
AlexDaniel all good now 05:10
06:16 robertle joined
lizmat good * 06:21
just did a git pull, a reconfig and got a failing make install 06:22
nuked lib/.precomp
did a make install again
and mi6 dies again
guess I'll do a reconfig again and start from scratch 06:23
no, that didn't 06:28
what did fix it, was to create a local change in src/core/Int.pm (I guess any file will do) by adding an empty line 06:29
nine What would help in diagnosing this precomp issue is a rakudo install tree + .precomp dirs of the same version before and after breakage. In theory they should be identical (hence reusable), but apparently they are not. 06:44
yoleaux 29 Apr 2018 11:09Z <jnthn> nine: See my design notes at gist.github.com/jnthn/e51a06c6882f...0a3dd373e6 for what the pluggable spesh stuff is aimed at; let me know if you've any more questions :)
nine I.e. install rakudo, run code, snapshot, upgrade rakudo, run code, downgrade rakudo run (breaking) code, snapshot. Those 2 snapshots should be identical except for the additional compiler directory in .precomp 06:45
Also failed to reproduce on my desktop running openSUSE Tumbleweed :/ 06:57
07:02 gfldex joined
nine .tell jnthn in your private method example: when would $obj ever not be of type $obj.WHAT? I thought $obj.WHAT's job is precicely to give you the type of $obj? 07:02
yoleaux nine: I'll pass your message to jnthn.
nine .tell jnthn nqp::speshresolve's signature is different from where you introduce it in the design notes to the first example to the actual test code in nqp ;) 07:08
yoleaux nine: I'll pass your message to jnthn.
lizmat nine: what snapshot tool did you have in mind? 07:15
stmuk is there a ticket for the probable .precomp issue? 07:18
nine lizmat: tar :) 07:19
stmuk: github.com/rakudo/rakudo/issues/1783
.tell jnthn Ah, the Private methods example should probably read "nqp::speshresolve('privmeth', nqp::decont(self), 'foo')(self, $bar)", then it makes sense. And the Scalar assignments example "nqp::speshresolve('assign', $the-scalar-target, $tmp)($the-scalar-target, $tmp)" 07:22
yoleaux nine: I'll pass your message to jnthn.
nine .tell jnthn and I think I now understand nqp::speshguardtype($obj, $obj.WHAT). $obj.WHAT is resolved at the time the handler ran (i.e. the first run) but the guard will run several times and $obj may have changed type then. Which is what spesh guards are about after all, aren't they? :) 07:37
yoleaux nine: I'll pass your message to jnthn.
nine .tell jnthn nqp::istype($desc, StandardScalarAssigner) should be nqp::istype($desc, StandardScalarDescriptor) 07:39
yoleaux nine: I'll pass your message to jnthn.
samcv can we get toaster ran again? 08:25
|Tux| Rakudo version 2018.04.1-33-ga957b712c - MoarVM version 2018.04.1-41-gaf60a8610
csv-ip5xs0.852 - 0.892
csv-ip5xs-208.533 - 8.638
csv-parser36.713 - 37.583
csv-test-xs-200.447 - 0.466
test9.308 - 9.441
test-t2.373 - 2.482
test-t --race1.023 - 1.046
test-t-2042.967 - 43.797
test-t-20 --race14.589 - 15.665
09:05
2018-04-04 10:36:12 test-t 2.382
2018-03-29 14:32:06 test-t 2.379
2018-04-05 09:08:50 test-t 2.374
2018-04-30 10:59:13 test-t 2.373
2018-03-29 14:36:32 test-t 2.372
Geth star: 6cca65473a | (Steve Mynott)++ | 2 files
bump release to 2018.04.1
09:30
star: 14e99622ab | (Steve Mynott)++ | modules/perl6-lwp-simple
bump LWP::Simple to fix network test
09:45
stmuk pl6anet.org/drop/rakudo-star-2018.04-RC1.tar.gz 10:38
lizmat Q: what would be required to make the STORE part of NativeCall's cglobal work ? 10:42
I'm particularly interested in being able to set errno to 0
11:11 Ven`` joined
scovit m: use NativeCall; sub dlsym(Pointer, Str --> Pointer) is native() { * }; my $errno = nativecast(int, dlsym(Pointer.new(0), "errno")); say $errno 12:15
camelia Cannot resolve caller guess_library_name(Nil, Nil); none of these signatures match:
(IO::Path $lib)
(Distribution::Resource $lib)
(Callable $lib)
(List $lib)
(Str $libname, $apiversion = "")
in sub guess_library_name …
timotimo "native" needs at least one argument, but that error message is not so good 12:18
lizmat m: use NativeCall; sub dlsym(Pointer, Str --> Pointer) is native<libc.so.6> { * }; my $errno = nativecast(int, dlsym(Pointer.new(0), "errno")); say $errno 12:28
camelia Cannot locate symbol 'dlsym' in native library 'libc.so.6'
in method setup at /home/camelia/rakudo-m-inst-2/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 283
in method CALL-ME at /home/camelia/rakudo-m-inst-2/s…
lizmat scovit: void * translates to "Pointer" or should that be "Pointer is rw" ? 12:29
scovit lizmat: no shouldn't be is rw. but I am not 100% sure about passing a null pointer there. 12:31
lizmat hmm... guess so, judging from the return value
yeah, tricky :-)
scovit m: use NativeCall; sub dlsym(Pointer, Str --> Pointer) is native("libdl.so") { * }; sub open(Str, int32 --> int32) is native("libc.so.6") { * }; my $errno = nativecast(int, dlsym(Pointer.new(0), "errno")); say $errno; say cglobal("libc.so.6", "errno", int32); open("/dev/tty0", 8); say cglobal("libc.so.6", "errno", int32); say $errno 12:33
camelia 0
0
13
0
scovit you see, it does not return the right errno ..
timotimo yeah, you have to call __errno_location() to get it 12:34
AlexDaniel` samcv: why? I already did, before the release
yoleaux 09:58Z <stmuk> AlexDaniel`: maybe p6lert should be taught about 2018.04.1?
timotimo at least my errno.h has #define erno (*__errno_location ()) 12:35
AlexDaniel` I don't upload the results though
stmuk: maybe 12:36
Ok yeah will put the alert shortly 12:38
scovit m: use NativeCall; sub __errno_location(--> Pointer[int32]) is native("libc.so.6") { * }; sub open(Str, int32 --> int32) is native("libc.so.6") { * }; my $errno = __errno_location(); say $errno; say cglobal("libc.so.6", "errno", int32); open("/dev/tty0", 8); say cglobal("libc.so.6", "errno", int32); say nativecast(int32, $errno) 12:40
camelia NativeCall::Types::Pointer[int32]<0x7fd08053b690>
0
13
13
scovit the thing I didn't get was nativecast
it copies the content, right?
m: use NativeCall; sub dlsym(Pointer, Str --> Pointer) is native("libdl.so") { * }; sub open(Str, int32 --> int32) is native("libc.so.6") { * }; my $errno = dlsym(Pointer.new(0), "errno"); say $errno; say cglobal("libc.so.6", "errno", int32); open("/dev/tty0", 8); say cglobal("libc.so.6", "errno", int32); say nativecast(int, $errno); 12:41
camelia NativeCall::Types::Pointer<0x7f9cfe9da690>
0
13
13
lizmat I guess my bigger problem is that you apparently cannot export a Proxy :-( 12:44
jnthn timotimo moritz: should you be able to export a Proxy? 12:46
our $errno is export := Proxy.new( ... ) winds up being a Scalar in the namespace it is imported in 12:47
moritz lizmat: does exporting of variables work at all? 12:48
it didn't last time i tried
lizmat hmmm... lemme see...
yup, that seems to work now 12:49
and they're the same container 12:50
(the imported one and the one in the module) 12:51
12:58 AlexDaniel joined
AlexDaniel Zoffix: how can I upload my own toast db to toast.perl6.party/ ? 12:59
13:09 [TuxCM] joined 13:22 |Tux| joined
samcv AlexDaniel: i wanted to see how the hash seed randomization shaked out with regards to modules 13:26
and that was merged after 2018.04 13:27
AlexDaniel oooooooh
releasable6: status
releasable6 AlexDaniel, Next release in ≈19 days and ≈5 hours. 1 blocker. 0 out of 33 commits logged
AlexDaniel, Details: gist.github.com/375820c0f2b9134904...aff1f6a554
samcv so wanted to get a jump on that since i have no clue how many if any modules will have issues since moarvm previously had constant ordering of .keys 13:28
AlexDaniel samcv: alright, I'll run toaster now
samcv ok great :)
jnthn Cro::HTTP will sometimes fail because of that; new release later today fixes that :)
yoleaux 07:02Z <nine> jnthn: in your private method example: when would $obj ever not be of type $obj.WHAT? I thought $obj.WHAT's job is precicely to give you the type of $obj?
07:08Z <nine> jnthn: nqp::speshresolve's signature is different from where you introduce it in the design notes to the first example to the actual test code in nqp ;)
07:22Z <nine> jnthn: Ah, the Private methods example should probably read "nqp::speshresolve('privmeth', nqp::decont(self), 'foo')(self, $bar)", then it makes sense. And the Scalar assignments example "nqp::speshresolve('assign', $the-scalar-target, $tmp)($the-scalar-target, $tmp)"
07:37Z <nine> jnthn: and I think I now understand nqp::speshguardtype($obj, $obj.WHAT). $obj.WHAT is resolved at the time the handler ran (i.e. the first run) but the guard will run several times and $obj may have changed type then. Which is what spesh guards are about after all, aren't they? :)
07:39Z <nine> jnthn: nqp::istype($desc, StandardScalarAssigner) should be nqp::istype($desc, StandardScalarDescriptor)
AlexDaniel that will take a few hours, so don't hold your breath, but I'll get back to you today
13:30 AlexDaniel joined
samcv for each run of MoarVM the hashes will have the same ordering though (if queried again will return same ordering) 13:31
jnthn: i think i might put siphash implementation in src/strings/siphash if that sounds decent. it's mostly ready just figuring out where to put things 13:33
jnthn samcv: Should be fine 13:35
13:37 skids joined 13:38 brrt joined
brrt . 13:38
AlexDaniel p6lert: add Rakudo 2018.04 (note: no .1) was discovered to fail num precision tests (on i386) and also hang when parsing nums with huge exponents (on all platforms). This is fixed in 2018.04.1 point release. 13:43
p6lert AlexDaniel, Added alert ID 8: alerts.perl6.org/alert/8
13:43 Zoffix joined
Zoffix AlexDaniel: you could give me the sqlite file and I'll load it 13:43
AlexDaniel p6lert: source
Zoffix it's in perl6/alerts 13:44
p6lert: help
p6lert Zoffix, github.com/perl6/alerts P6lert commands: [insta]?add ALERT, update ID ALERT, delete ID; ALERT format: ['severity:'\\S+]? ['affects:['<-[\\]]>+']']? ALERT_TEXT
AlexDaniel p6lert: update 8 Rakudo compiler-only release 2018.04 (note: no .1) was discovered to fail num precision tests (on i386) and also hang when parsing nums with huge exponents (on all platforms). This is fixed in 2018.04.1 point release.
p6lert AlexDaniel, Updated alert ID 8: alerts.perl6.org/alert/8
AlexDaniel stmuk: ↑ 13:45
stmuk AlexDaniel++ 13:46
I suspect nativecall is broken on windows 13:48
"zef install Inline" doesn't work anymore .. looks like an assumption of UNIX shell with gcc somewhere 13:49
actually maybe just Inline (opening issue against that anyway) 13:53
oh its nothing new 13:54
13:58 Ven`` joined
Geth star: dacdbfc7f9 | (Steve Mynott)++ | 2 files
bump zef to 0.3.1 as requested by ugexe++
14:07
lizmat scovit: decided to fake setting errno: as long as you use the module Unix::errno, it shouldn't make a difference 14:48
Geth rakudo: b497311508 | (Elizabeth Mattijsen)++ | src/core/traits.pm6
Add an extra hint to a bare "sub is native" error

To remind you that you probably forgot to do "use NativeCall". Also make the basetype indication less noisy if things were already mixed in.
15:37
lizmat m: sub a() is native {*} # a bit helpful
camelia 5===SORRY!5=== Error while compiling <tmp>
Can't use unknown trait 'is native' in a sub declaration.
at <tmp>:1
expecting any of:
rw raw hidden-from-backtrace hidden-from-USAGE
pure default DEPRECATED inlinable nodal…
lizmat after this commit, it will now also say "or did you forget to 'use NativeCall'?" 15:38
15:47 Ven`` joined 15:50 robertle joined
AlexDaniel Zoffix: sure, but I'm looking for a way to do that without interrupting you, can I have ssh access or something? 16:02
16:44 Ven`` joined
dogbert17 m: say (1/2+1/2, 2/2).unique 16:52
camelia (1 1)
AlexDaniel dogbert17: gah… 17:03
I wonder what's the difference between <5/1> and 5.0 17:05
[Coke] RatStr vs. Rat 17:06
m: say <5/1>.^name
camelia Rat
[Coke] m: say < 5/1 >.^name
camelia RatStr
[Coke] sorry, misremembered. 17:07
AlexDaniel c: c8ec2999^,c8ec2999 say (1/2+1/2, 2/2).unique
committable6 AlexDaniel, ¦c8ec2999^: «(1)␤» ¦c8ec299: «(1 1)␤»
AlexDaniel (2015-09-25) github.com/rakudo/rakudo/commit/c8...2656a6c0b8
m: my @a = (1/2+1/2, 2/2); say @a.unique; @a».REDUCE-ME; say @a.unique 17:08
camelia (1 1)
(1)
AlexDaniel m: say 1/2+1/2 === 2/2 17:10
camelia True
AlexDaniel m: say 2/2 === 1/2+1/2 17:14
camelia True
AlexDaniel not sure why that ↑ doesn't give false, but basically 17:16
ah no… no… 17:17
don't know
AlexDaniel tries App::MoarVM::Debug 17:18
timotimo cool! 17:19
AlexDaniel reportable6: 2018-04-23T00:00:00Z 2018-04-30T00:00:00Z 17:25
reportable6 AlexDaniel, OK, working on it! This may take up to 40 seconds
AlexDaniel, gist.github.com/d7518e2e6e77865849...dd3fcce8cf 17:26
AlexDaniel weekly: reportable: gist.github.com/d7518e2e6e77865849...dd3fcce8cf 17:27
notable6 AlexDaniel, Noted!
AlexDaniel weekly: 2018.04.1 point release
notable6 AlexDaniel, Noted!
AlexDaniel “For best results, please run this program inside rlwrap” 17:31
arrrrghhhrrrrr
( github.com/edumentab/p6-app-moarvm...g/issues/2 ) 17:32
jnthn Is there something in the ecosystem that does readline if available and falls back if not (or on windows, or whatever)? 17:36
timotimo AlexDaniel: sadly, that's wrong 17:38
AlexDaniel: the program asynchronously outputs data, if you use readline, your prompt will get busted in that case 17:39
rlwrap does much more than that, it apparently emulates a complete tty and makes sure your input line stays healthy
i wanted to build something like that manually, but it quickly gets The Absolute Worst
AlexDaniel timotimo: well, I'm just a user reporting inconveniences I see. If there's no other way, then the docs can be changed a bit 17:44
“Install the module (you may need to disable tests): zef install --/test App::MoarVM::Debug
right there it can say to install rlwrap
stmuk strange warnings from Windows linenoise install and running but it seems to work 17:45
17:55 llfourn joined
AlexDaniel timotimo: how do I use “color on” with rlwrap? 17:55
ah, just -A I guess 17:56
no… hm. Don't know 18:00
stmuk pl6anet.org/drop/ has a R* RC2 MSI 18:02
18:05 Ven`` joined
AlexDaniel ok that's really fun 18:10
not sure if it's helpful in this particular case (not yet at least), but it's really fun to use
ah 18:13
m: say (2/2).WHICH; say (1/2+1/2).WHICH 18:14
camelia Rat|1/1
Rat|2/2
AlexDaniel App::MoarVM::Debug++
lizmat AlexDaniel: I guess that's part of Zoffix's denormalizing work 18:15
I guess that .WHICH should normalize
for Rats
stmuk my macOS R* build system (virtualsue) isn't cooperating :/
jnthn heh, I read denormalizing work as demoralizing work... :) 18:26
Geth rakudo: 8cd70d1ee3 | (Aleks-Daniel Jakimenko-Aleksejev)++ | src/core/Rational.pm6
Reduce Rats before generating WHICH

Some operations will call .REDUCE-ME in order to normalize Rats, and in other cases .REDUCE-ME is avoided to improve performance. It looks like we should normalize rats in .WHICH because otherwise the value will be different for functionally identical Rats.
18:30
roast: ad38801161 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S32-num/rat.t
Test Rat normalization with .WHICH
18:31
AlexDaniel ↑ does that make sense?
18:33 Ven`` joined
lizmat looks ok to me... 18:33
semantically speaking, performance... perhaps it makes sense to cache the .WHICH value now 18:34
Zoffix AlexDaniel: yeah. Though .REDUCE-ME is going out soon entirely. 18:52
AlexDaniel: as for toaster, no, I don't give ssh access to that box to anyone. But I can reverse proxy that URL to something you're hosting or you could host it yourself entirely. The viewer app is part of the repo: github.com/zoffixznet/perl6-Toaste...-p5-viewer 18:55
(or host it on hack) 18:56
AlexDaniel right 19:00
Geth roast: 032ce8df85 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S32-num/rat.t
Test Rational.WHICH through FatRats also
19:05
dogbert17 AlexDaniel: RT #130774 19:22
synopsebot RT#130774 [open]: rt.perl.org/Ticket/Display.html?id=130774 [BUG] Rational.REDUCE-ME has a data race
AlexDaniel dogbert17: cool thanks, left a comment there 19:33
it's still a different ticket though
Zoffix Both .WHICH identity and .REDUCE-ME data race are listed as items on the CaR grant. 19:38
19:40 evalable6 joined 20:05 Zoffix left 20:15 brrt joined
lizmat notable6: weekly 20:27
notable6 lizmat, 11 notes: gist.github.com/dc6c7d0dde4b0acd50...f63179597a
El_Che the one I sent on #perl6 is not visible 20:28
does it keep them by channel?
lizmat don't think so
El_Che releasable6: github.com/nxadm/rakudo-pkg/releas...18.04.1-01 / the packages are being built and will appear there, but so you have the release notes 20:30
releasable6 El_Che, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Releasable
El_Che releasable6: weekly github.com/nxadm/rakudo-pkg/releas...18.04.1-01 / the packages are being built and will appear there, but so you have the release notes
releasable6 El_Che, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Releasable
El_Che in that case I did something wrong :)
notable6: weekly github.com/nxadm/rakudo-pkg/releas...18.04.1-01 / the packages are being built and will appear there, but so you have the release notes
notable6 El_Che, Noted!
El_Che :)
lizmat: pkgs build fine, just fixing some stuff with the deployment part (should be ok by the time the p6w is out) 20:35
lizmat El_Che: not sure what to do with: 20:45
2018-04-26T19:40:54Z <AlexDaniel>: El_Che++ was working on a rakudo package canary ( github.com/nxadm/rakudo-pkg-canary ). The idea is to have CI-like thingy which tests that the upcoming release builds on different platforms correctly
2018-04-26T19:42:00Z <El_Che>: it has an older brother: rakudo-pkg-for-doc: a package with Rakudo , zef + all the perl6 dependencies needed to test the perl6 doc.
ok, got it now :-) 20:46
AlexDaniel lizmat: basically one of the reasons for the point release is that we didn't notice a failure in nqp tests on i386
lizmat: but now we have this: travis-ci.org/perl6/rakudo-pkg-can...tification
lizmat AlexDaniel++ :-) 20:47
AlexDaniel it's still LTA because no arm and no big endian stuff
but it's a good start, and at least it would've half-prevented the point release :)
lizmat: another possibly notable thing is that we have now squashed most of the big endian issues, and rakudo package debian maintainer seems to be happy: irclog.perlgeek.de/perl6/2018-04-30#i_16114029 20:50
El_Che: speaking of which… does it even run any of nqp tests? 20:55
El_Che last time I checked nqp had no tests
so I had to add an exception in the loop not to run make test
AlexDaniel huh?
El_Che doesn't rakudo run the nqp tests?
let me url you 20:56
travis-ci.org/nxadm/rakudo-pkg/job...2611#L1140
(it runs the tests, but I don't do make test on nqp) 20:57
dogbert17 Zoffix: did you fix RT #130155 ?
synopsebot RT#130155 [new]: rt.perl.org/Ticket/Display.html?id=130155 [BUG] Rat operations give bogus underflow
El_Che I was the instructions when I started to build packages
AlexDaniel El_Che: and where's the same line on travis-ci.org/perl6/rakudo-pkg-can.../373147587 ? 20:58
El_Che it means that the all-in-one-mathodont --gen-moar --gen-nqp does not run tests 20:59
except rakudos
AlexDaniel that's… not cool! 21:00
El_Che so it means that build script has to be fixed or we doe like in rakudo-pkg and build everything from 3 tars
make ./Configure has a --make-test
s/make/maybe/ 21:01
21:14 robertle joined 21:16 Zoffix joined
Zoffix dogbert17: partially. The denormals now work, but we still don't choose the closest representable num when degrading a Rat to a Num in some cases (that's part of the CaR Grant) 21:17
denormals = stuff that's smaller than ~1.7e-308 (e.g. 5e-324) 21:18
21:18 dct joined
dogbert17 Zoffix: cool, have you received the grant? 21:20
AlexDaniel it was approved 21:27
( news.perlfoundation.org/2018/04/mar...votes.html )
Zoffix Yes. 21:28
21:30 brrt joined
dogbert17 Zoffix, congratulations 21:33
m: say sprintf "%.{20}g", log(2) 21:37
camelia 0.6931471805599453
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/04/30/...es-galore/ 21:43
AlexDaniel m: say sprintf "%.99g", 5 21:45
camelia 5
AlexDaniel m: say sprintf "%.999g", 5
camelia NaN
21:45 dct joined
AlexDaniel wow, that weekly 21:50
lizmat++++
21:51 jnthn joined, jnthn left 21:52 jnthn joined
brrt dear #perl6-dev. I have a point of concern 21:57
the tl;dr; I recently saw a commit from Zoffix++ claiming that he made Int.lsb N times fster 21:58
where N was 2 or 3
Now, the last thing I want is to discourage this kind of work in any way 21:59
but.
lowest-set-bit is a compiler intrinsic on virtually all compilers you might care about
it is also a single machine code instruction on pretty much all architectures you might ever have heard about 22:00
lizmat then why don't we have a nqp::lsb_I and nqp::msb_I op? 22:01
brrt it is also not particularly hard to do this for bigints
that is my point exactly
lizmat well volunteered :-)
brrt (not sure what the 'm' in msb is?)
lizmat most ?
brrt happy to do it
ah, i see
hmm. not sure if that is an intrinsic as well 22:02
otoh, i'd be surprised if it weren't
but the point is, nobody asked
my concern is, why not?
lizmat well, sometimes we don't know how low the fruit is hanging
the only thing is: if you do this for Moar 22:03
we also need it for JVM / JS
brrt and on my side, sometimes I don't know what's troubling you
lizmat or we need to keep the method lsb / msb code around for those cases
brrt (plural you)
lizmat well, fwiw, I don't recall ever using .lsb / .msb in Perl 6 22:04
brrt i use 'm for bitmaps. but not in perl6 :-)
lizmat but I guess ufobat could use it for his work on Sereal
brrt ooh, Sereal support? ufobat++ 22:05
lizmat github.com/ufobat/p6-Sereal
samcv AlexDaniel: did that toaster get run? 22:07
AlexDaniel samcv: yes
samcv seeing on here only 2018.03-234 toast.perl6.party/ is there a different page? 22:08
AlexDaniel not yet 22:09
sneak peek: screenshots.firefox.com/EkAOni52l2.../127.0.0.1 22:10
samcv AlexDaniel: ok thanks :) 22:11
timotimo oh, huh, Data::MessagePack? i use that! 22:18
22:19 pmurias joined
AlexDaniel timotimo: t/107-pack-hash.t (Wstat: 512 Tests: 3 Failed: 2) 22:21
# Failed test 'hash packed correctly'
timotimo well, that sounds a whole lot like hash order reliance
lizmat yup 22:22
pmurias related thought about nqp::lsb_I, are there plans for making the JIT use native integers for small bignums 22:24
?
timotimo i've been mulling over how Data::MessagePack should handle "i want a hash, but i also want the order of keys to be determined by me" 22:25
same for JSON::Fast, actually.
samcv timotimo: just opened tick 22:28
*a ticket
22:36 [TuxCM] joined
AlexDaniel “One thing that became clear when I spent a lot of time helping the Mozilla effort before and during the launch of Firefox (2002 thru 2005) was that the new issue count was proportional to the new user count, not to bugs in the product” ( twitter.com/raiph_mellor/status/99...1884634112 ) 22:37
yes, absolutely
samcv hopefully the hash changes won't be too painful 22:44
but it needed to happen eventually :)
brrt pmurias: thought have been had, for sure 22:51
but not to the level of design
Zoffix brrt: I never replied, but I was thinking of a nqp::bitinfo op that takes a param: return msb, lsb, and popcount. I read a couple days ago popcount is also an instruction on some processors and is used in crypto. 23:02
brrt on virtually all of 'm 23:03
Zoffix brrt: "sometimes I don't know what's troubling you". Do you mean why we don't add the ops? Personally, I've no idea how to add the ops and don't know what's the policy on adding ops (e.g. are they entirely private or do we provide some user support for them from MoarVM position that once we add something we'd have to support it forever, etc, etc.)
brrt so, speaking with as much authority as anyone here, i.e. virtually none
- i don't know how -> we can always help out, and communicate 23:04
- public, private, whatever -> we can deprecate ops, we control the code generators, nobody but us is using this realistically, and we never have marketed moarvm as the one true vm for everyone
my pov is; 23:05
if there is but one correct result, and the hardware provides it directly, then we should expose it from moarvm
so in this case, popcount, lsb, etc. these are never going to have a semantically different implementation. 23:06
so there's no harm in locking them in
Zoffix fair enough
So how do you add an op to MoarVM?
brrt you hack a bunch of files
let me look it up because i haven't done so in ages 23:07
- you add it to src/core/oplist
Zoffix brrt: is that it? :) 23:18
If you can, write down the detailed instructions and stick the info somewhere in the repo. Don't think I'll have the time (due to grant work) or good know-how (I barely know any C and no assembly) to add the nqp::bitinfo op, so if you can, implement it :) 23:19
Zoffix goes to learn to drive a stick on a simulator
I knew buying the steering wheel+pedals gaming controller wasn't a giant waste of money! :P 23:20
23:20 Zoffix left 23:22 Zoffix joined, notable6 joined, bloatable6 joined, evalable6 joined, nativecallable6 joined
Zoffix Also, lizmat++ # weekly and lots of modules work 23:22
23:22 benchable6 joined, committable6 joined, greppable6 joined, coverable6 joined, quotable6 joined, releasable6 joined, reportable6 joined, squashable6 joined, bisectable6 joined, unicodable6 joined, Zoffix left, statisfiable6 joined
TimToady wow, there's 161029 precomp files on my machine 23:33
23:41 brrt joined
brrt sorry, no 23:42
you also need to add an implementation to src/core/interp.c
:-)
anyway, i'm not sure i agree with bitinfo+flag 23:43
AlexDaniel huggable: toaster
huggable AlexDaniel, nothing found
brrt i'd much rather have three separate ops
AlexDaniel huggable: toast
huggable AlexDaniel, nothing found
brrt also simpler when JITting, you know
unless you make the flag a constant. but why be conservative with op space, we have plenty
anyway, lets discuss later 23:44
AlexDaniel huggable: toasters :is: toast.perl6.party/ toast.6lang.org/ 23:45
huggable AlexDaniel, Added toasters as toast.perl6.party/ toast.6lang.org/
AlexDaniel samcv: ↑
23:46 skids joined