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.
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
|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
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
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
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
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
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
Geth roast: 6b2e75ea87 | (Elizabeth Mattijsen)++ | S03-metaops/infix.t
Add more exhaustive infix metaop tests
14:54
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
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
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
Geth roast: ac08d5ca52 | (Elizabeth Mattijsen)++ | S03-metaops/infix.t
Add a bunch of infix metaop tests on QuantHashes
21:24