Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:01 leont left 00:09 Kaiepi left, leont joined 00:10 p6bannerbot sets mode: +v leont 00:11 Kaiepi joined 00:12 p6bannerbot sets mode: +v Kaiepi 00:21 leont left 00:32 Kaypie joined, Kaiepi left 00:33 p6bannerbot sets mode: +v Kaypie
AlexDaniel fresh results from Blin: gist.github.com/AlexDaniel/d8020ef...7fa87a196f 00:37
TL;DR all modules with `use v…` already have a PR with a fix pending 00:38
releasable6: status 00:39
releasable6 AlexDaniel, Next release will happen when it's ready. 2 blockers. 80 out of 168 commits logged (⚠ 1 warnings)
AlexDaniel, Details: gist.github.com/31edad3d2f02e100d4...f63fbc8e96
AlexDaniel except modules mentioned in these two blockers, these have a different issue
so yeah, I guess we figure out what to do with the blockers and we're good to go 00:46
(hopefully) 00:47
00:56 Kaypie left, Kaypie joined 00:57 p6bannerbot sets mode: +v Kaypie 02:13 statisfiable6 left, notable6 left, unicodable6 left, releasable6 left, bisectable6 left, nativecallable6 left, squashable6 left, undersightable6 left, bloatable6 left, committable6 left, greppable6 left, reportable6 left, shareable6 left, coverable6 left, evalable6 left, quotable6 left, benchable6 left 02:14 notable6 joined, ChanServ sets mode: +v notable6, benchable6 joined, coverable6 joined, p6bannerbot sets mode: +v notable6 02:15 releasable6 joined, p6bannerbot sets mode: +v benchable6, reportable6 joined, ChanServ sets mode: +v reportable6, p6bannerbot sets mode: +v coverable6, p6bannerbot sets mode: +v releasable6, undersightable6 joined, bisectable6 joined 02:16 p6bannerbot sets mode: +v reportable6, evalable6 joined, ChanServ sets mode: +v evalable6, p6bannerbot sets mode: +v undersightable6, p6bannerbot sets mode: +v bisectable6 02:17 p6bannerbot sets mode: +v evalable6, unicodable6 joined, statisfiable6 joined, ChanServ sets mode: +v statisfiable6, greppable6 joined, bloatable6 joined, ChanServ sets mode: +v bloatable6, committable6 joined, ChanServ sets mode: +v committable6, shareable6 joined, p6bannerbot sets mode: +v unicodable6, p6bannerbot sets mode: +v statisfiable6 02:18 p6bannerbot sets mode: +v greppable6, quotable6 joined, nativecallable6 joined, p6bannerbot sets mode: +v bloatable6, squashable6 joined, ChanServ sets mode: +v squashable6, p6bannerbot sets mode: +v committable6, p6bannerbot sets mode: +v shareable6 02:19 lizmat left, p6bannerbot sets mode: +v quotable6, p6bannerbot sets mode: +v nativecallable6, p6bannerbot sets mode: +v squashable6 02:20 MasterDuke left 02:29 Kaypie left 02:30 Kaypie joined 02:31 p6bannerbot sets mode: +v Kaypie 02:58 SqrtNegInf left 03:06 ufobat_ joined 03:07 p6bannerbot sets mode: +v ufobat_ 03:10 ufobat___ left 03:20 Kaypie left 03:21 Kaypie joined, p6bannerbot sets mode: +v Kaypie 03:46 discoD joined 03:47 p6bannerbot sets mode: +v discoD 07:31 discoD left 08:00 lizmat joined, p6bannerbot sets mode: +v lizmat 08:05 robertle joined, p6bannerbot sets mode: +v robertle 08:21 Kaypie left, Kaypie joined 08:22 p6bannerbot sets mode: +v Kaypie 08:56 Kaypie left 08:58 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi
|Tux| Rakudo version 2018.10-168-g8854bbd3f - MoarVM version 2018.10-82-g9468b7f75 09:32
csv-test-xs-20 0.426 - 0.428
test-t --race 0.799 - 0.826
csv-ip5xs 0.889 - 0.897
test-t 1.713 - 1.759
csv-ip5xs-20 6.966 - 7.025
test 7.819 - 7.908
test-t-20 --race 10.097 - 10.283
csv-parser 21.046 - 21.550
test-t-20 29.395 - 29.929
09:33 nine left 09:35 nine joined, p6bannerbot sets mode: +v nine 09:46 nine left 09:49 nine joined 09:50 p6bannerbot sets mode: +v nine 09:52 camelia joined 09:53 p6bannerbot sets mode: +v camelia
nine Turns out, my server was running in the rescue system all day after I had to fix an ssh issue. Needed to reboot it using Hetzner's admin panel to deactivate the rescue system. Since the rescue system is based on KVM itself, one cannot run VMs in there. 09:56
m: say "I'm alive"
camelia I'm alive
lizmat nine++ # whee! 10:04
10:07 AlexDani` joined 10:08 p6bannerbot sets mode: +v AlexDani`
Geth rakudo: 72b896c8ee | (Stefan Seifert)++ | t/08-performance/99-misc.t
Make running timing based tests optional - for slow build servers

On a build farm like the OpenBuildService, individual VMs may be a lot slower than typical developer's machines. Measuring elapsed time to find performance regressions gives unreliable results there, so make it possible to skip such tests by setting RAKUDO_SKIP_TIMING_TESTS=1 in the environment.
10:11
10:12 AlexDaniel left 10:27 brrt joined 10:28 p6bannerbot sets mode: +v brrt 10:50 AlexDani` is now known as AlexDaniel 11:19 lucasb joined 11:20 p6bannerbot sets mode: +v lucasb 11:46 Kaiepi left
lucasb m: proto f(Int-->Str) {*}; multi f(|) { 10 }; say f(20) 12:08
camelia 10
lucasb ^^ proto's argument type is checked, but not its return type? 12:09
AlexDaniel releasable6: status
releasable6 AlexDaniel, Next release will happen when it's ready. 2 blockers. 80 out of 169 commits logged (⚠ 1 warnings)
AlexDaniel, Details: gist.github.com/fbe477c4834cbc6046...00618e4b92
Geth nqp: 601bccf0ae | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/MOAR_REVISION
[MoarVM Bump] Brings 8 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...g0939a10cd 0939a10cd Merge branch 'exprjit_09_20_18' 7a110b711 Add hllboolfor exprjit template 9b2ab1690 Add radix_I exprjit template 0accc8ce7 Add coerce_* exprjit templates 5167d1026 Add extend_{u,i}* exprjit templates 43c5cd4aa Add mul exprjit op to documentation 0c2b13a23 Add exprjit integer multiplication op d40bac9f0 Use arithmetic right shift in JIT of brshift_i
12:11
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...g0939a10cd
rakudo: 0dc6efd631 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/NQP_REVISION
[NQP Bump] 601bccf0a [MoarVM Bump] Brings 8 co […]

NQP bump brought: github.com/perl6/nqp/compare/2018....g601bccf0a
rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....g601bccf0a
a728bb2d9e | (Elizabeth Mattijsen)++ | src/core/Hash.pm6

Spotted while writing tests for hyper metaops
12:24 j3nnn1 joined, p6bannerbot sets mode: +v j3nnn1 12:38 leont joined 12:39 p6bannerbot sets mode: +v leont 12:50 leont left 13:02 brrt left
jnthn lucasb: Actually the proto is never really called beyond the first invocation when it's an onlystar proto 13:10
lucasb so a return type constraint in a proto will never have any effect? 13:17
I guess it still can be used as documentation? so a warning "Return type constraint in proto is ineffective" would not be desired, right? 13:18
jnthn No, that'd just be noise 13:19
lucasb so I guess if I want the typesafety I have to distribute the return type constraint to all multis
13:25 Ven`` joined 13:26 p6bannerbot sets mode: +v Ven`` 13:28 brrt joined 13:29 p6bannerbot sets mode: +v brrt 13:45 Ven`` left
lizmat m: my %a{Any} = a => 42; dd %a <<+=>> 3 # writing tests++ 13:47
camelia Cannot modify an immutable Int (42)
in block <unit> at <tmp> line 1
lizmat bisectable6: old=2018.10 my %a{Any} = a => 42; dd %a <<+=>> 3
bisectable6 lizmat, Bisecting by exit code (old=2018.10 new=0dc6efd). Old exit code: 0
lizmat, bisect log: gist.github.com/376a7ea5cac53632cf...abd10cd395
lizmat, (2018-11-16) github.com/rakudo/rakudo/commit/ca...4a4c846fc5
lizmat m: my %a{Any} = a => 42; $_ = 3 for %a.values # underlying issue 13:48
camelia Cannot assign to an immutable value
in block <unit> at <tmp> line 1
13:59 brrt left
14:51 SqrtNegInf joined 14:52 p6bannerbot sets mode: +v SqrtNegInf
Geth roast: 6b2e75ea87 | (Elizabeth Mattijsen)++ | S03-metaops/infix.t
Add more exhaustive infix metaop tests
14:54
14:55 Ven`` joined, p6bannerbot sets mode: +v Ven`` 15:49 Ven`` left 15:54 Ven`` joined 15:55 p6bannerbot sets mode: +v Ven`` 15:59 lucasb left 16:24 robertle left 17:11 robertle joined 17:12 p6bannerbot sets mode: +v robertle 17:26 lucasb joined 17:27 p6bannerbot sets mode: +v lucasb 17:41 Ven`` left 17:52 leont joined, p6bannerbot sets mode: +v leont 17:58 Ven`` joined 17:59 p6bannerbot sets mode: +v Ven`` 18:04 Ven`` left 19:12 sena_kun joined, p6bannerbot sets mode: +v sena_kun
lizmat m: dd &[+=].name; dd METAOP_ASSIGN(&[+]).name # somehow the &[+=] path does not go through METAOP_ASSIGN :-( 19:33
camelia "infix:<+=>"
"infix:<+> + \{assigning}"
timotimo perhaps the static optimizer got to it first 19:45
it's very probable, indeed
lizmat: ^
lizmat no, it is in fact very mundane: Grammar does a set_name without looking if it already has a name 19:46
timotimo oh
glad to hear that though
lizmat so that fix appears to be easy, checking now 19:47
yup, spectesting now 19:49
19:55 Ven`` joined 19:56 p6bannerbot sets mode: +v Ven`` 19:59 Ven`` left
Geth rakudo: e7ce194a77 | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp
Don't set name of metaop if it already has a name

The code path for '&[+=]' does use METAOP_ASSIGN, but then overwrote the carefully crafted name with something of its own devise. Now only sets the name if it doesn't have a name yet. Ensures metaops will use the fast path for += like ops.
20:00
lizmat m: my %a = "a".."e" Z=> 1..5; dd %a >>+=<< 3 # shouldn't this need to die ? 20:06
camelia Lists on either side of non-dwimmy hyperop of infix:<+> + {assigning} are not of the same length while recursing
left: 5 elements, right: 1 elements
in block <unit> at <tmp> line 1
lizmat ah, it does
lizmat looks at what she borked locally
m: use nqp; my %h is BagHash = a => 25; my $s := %h.values; say nqp::iscont($s[0]) # BagHash.values returns Proxy objects, this works fine 20:29
camelia 1
lizmat m: use nqp; my %h is BagHash = a => 25; my $s := %h.values; say $s.elems; say nqp::iscont($s[0]) # but put a .elems in there, and the container is gone 20:30
camelia 1
0
timotimo ha, that's weird
m: use nqp; my %h is BagHash = a => 25; my $s := %h.values; say $s.elems; say $s[0]
camelia 1
25
timotimo does .elems cause it to .cache? is that what does it? 20:31
lizmat m: my %h is BagHash = a => 25; my $s := %h.values; $s[0] = 42
camelia ( no output )
timotimo m: use nqp; my %h is BagHash = a => 25; my $s := %h.values; say $s.cache; say nqp::iscont($s[0])
camelia (25)
1
lizmat m: my %h is BagHash = a => 25; my $s := %h.values; $s.elems;; $s[0] = 42
camelia Cannot modify an immutable Int (25)
in block <unit> at <tmp> line 1
timotimo no, that's not it
lizmat I think it's the .cache that Seq.elems does under the hood
timotimo but i just tried .cache and it didn't change that time? 20:32
did i do it wrong? 20:33
lizmat m: my %h is BagHash = a => 25; my $s := %h.values; $s.cache;; $s[0] = 42
camelia ( no output )
lizmat hmm
timotimo m: use nqp; my %h is BagHash = a => 25; my $s := %h.values; say $s.count-only; say nqp::iscont($s[0])
lizmat m: my %h is BagHash = a => 25; my $s := %h.values; $s.cache.elems; $s[0] = 42
camelia No such method 'count-only' for invocant of type 'Seq'
in block <unit> at <tmp> line 1
Cannot modify an immutable Int (25)
in block <unit> at <tmp> line 1
timotimo oops
lizmat doing elems on the cache vivifies
an alternative would be to make .values having a PredictiveIterator 20:35
but that's only feasible if a nqp::iterator(hash) can tell me how many values it already has done, because keeping count in that code would cause a significant overhead 20:36
timotimo right 20:38
20:38 robertle left
timotimo that wouldn't be hard, you know :) 20:38
lizmat yeah, but out of my pay level atm
meanwhile, it looks like List.from-iterator is to blame for losing the proxyness 20:39
timotimo if you're asking for me to do it, i'd probably do it 20:40
lizmat well.. that would be nice and fix the problem I have 20:42
but in a way that's a workaround, the deeper issue is that it shouldn't make a difference if .elems gets called on a Seq or not 20:43
timotimo true 20:44
lizmat m: my %h is BagHash = a => 25; my $s := %h.values; $s.elems; $s[0] = 42 # BagHash.values returns Proxy objects
camelia Cannot modify an immutable Int (25)
in block <unit> at <tmp> line 1
lizmat m: my %h = a => 25; my $s := %h.values; $s.elems; $s[0] = 42 # hashes return just containers
camelia ( no output )
lizmat I'm going to make an issue for it... should really be preparing for trip to London tomorrow 20:45
m: my %h is BagHash = a => 25; say %h.values[0].VAR.^name 20:47
camelia Proxy
lizmat m: my %h = a => 25; say %h.values[0].VAR.^name
camelia Scalar
21:13 brrt joined 21:14 p6bannerbot sets mode: +v brrt
Geth roast: ac08d5ca52 | (Elizabeth Mattijsen)++ | S03-metaops/infix.t
Add a bunch of infix metaop tests on QuantHashes
21:24
21:27 discoD joined 21:28 p6bannerbot sets mode: +v discoD 22:00 dogbert21 joined, p6bannerbot sets mode: +v dogbert21 22:02 dogbert2_ left 22:18 lucasb left 22:22 discoD left 22:37 brrt left 23:17 sena_kun left 23:31 j3nnn1 left