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:25 MasterDuke joined, MasterDuke left, MasterDuke joined
Geth rakudo: vrurg++ created pull request #2941:
Fix incorrect handling of unknown 6.c modifiers
00:33
rakudo: 0296102e65 | (Vadim Belman)++ | tools/templates/main-version.in
Fix incorrect handling of unknown 6.c modifiers
00:56
rakudo: e522d082f5 | (Vadim Belman)++ (committed using GitHub Web editor) | tools/templates/main-version.in
Merge pull request #2941 from vrurg/add_version_6e

Fix incorrect handling of unknown 6.c modifiers
vrurg notable6: tenesianu.blogspot.com/2019/05/per...roids.html 02:17
notable6 vrurg, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Notable
vrurg note: weekly tenesianu.blogspot.com/2019/05/per...roids.html 02:18
notable6 vrurg, Noted!
04:02 Kaypie left, Kaypie joined 04:35 chansen_ left 04:38 vrurg left 04:39 chansen_ joined 04:44 chansen_ left 04:52 chansen_ joined 05:35 squashable6 left 05:39 squashable6 joined, ChanServ sets mode: +v squashable6
lizmat Files=1262, Tests=108002, 202 wallclock secs (26.71 usr 7.48 sys + 2839.43 cusr 269.16 csys = 3142.78 CPU) 07:10
07:43 MasterDuke left 08:46 patrickb joined 10:04 HarmtH joined 10:30 patrickb left, robertle left
Geth roast: 660bcf1645 | (Elizabeth Mattijsen)++ | S07-hyperrace/basics.t
Update comment; instead of hanging, it now segfaults
10:40
rakudo: 667c75d315 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/JSON.pm6
Make to-json about 60% faster.

Ported from a PR for JSON::Fast, with the Exception handling built in again.
10:41
rakudo: 161d7eeff0 | (Elizabeth Mattijsen)++ | lib/MoarVM/Profiler.pm6
Make Callee.file always return something

So we can reliable use .file on the _by_file methods.
10:46
10:52 patrickb joined 10:54 lizmat left 11:02 lizmat joined
AlexDaniel lizmat: that's 66.7% faster or 1.67 as fast… :) 11:36
lizmat whatever... I had a 5MB unpretty JSON file that took 10 seconds to jsonify, it now only takes 6 11:37
± noise...
so I figured I'd be conservative in the speed improvement claim
AlexDaniel yeah that's pretty cool, just a reminder that we have tools/speedup.p6 that is meant to consistify these numbers :) 11:38
for anyone interested: gist.github.com/AlexDaniel/481618b...c7efdb95f9 11:39
lizmat AlexDaniel++ 11:42
11:53 ufobat_ left
Geth rakudo/SetHash-set-unset: b9d9943c34 | (Elizabeth Mattijsen)++ | src/core/SetHash.pm6
Give SetHash a set/unset method

Inspired by seeing things like:
   %sethash{$_} = True for @to-be-added;
in the wild. Instead, one can now do: ... (5 more lines)
12:37
rakudo: lizmat++ created pull request #2942:
Give SetHash a set/unset method
12:38
rakudo: lizmat self-unassigned @a[-1;0]:exists returns True github.com/rakudo/rakudo/issues/2929
8540c94d3d | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/JSON.pm6
12:53
lizmat bisectable6: dd (2, 4 ... 1_000_000).iterator 13:08
bisectable6 lizmat, Bisecting by output (old=2015.12 new=161d7ee) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/696698f1e1a770a001...69da5b885a 13:09
lizmat, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053
lizmat, The result looks a bit unrealistic, doesn't it? Most probably the output is different on every commit (e.g. 「bisect: say rand」)
patrickb .seen vrurg 13:10
yoleaux I saw vrurg 02:18Z in #perl6-dev: <vrurg> note: weekly tenesianu.blogspot.com/2019/05/per...roids.html
13:13 Kaypie left, Kaypie joined
ugexe m: to-json({ Foo => v1 }) 13:18
camelia Saw 1 occurrence of deprecated code.
================================================================================
Sub to-json (from GLOBAL) seen at:
<tmp>, line 1
Please use JSON::Fast, JSON::Tiny or JSON::Pretty from modules.per…»
ugexe that could be considered a regression
i'm not sure how careful we have been about stringifying versions in meta data before to-json'ing it 13:19
infact that was a difference between the port from JSON::Fast
lizmat: the new json code didn't port this bit of logic: `return "\"" ~ str-escape(~$obj) ~ "\"" if $obj ~~ Str|Version;` 13:20
lizmat ugexe: good catch, will fix 13:21
nine .tell patrickb won't be able to review anything this weekend. I'm at my bachelor (LAN-)party 13:23
yoleaux nine: I'll pass your message to patrickb.
patrickb I don't seem to have a commit bit for to perl6/nqp-configure and perl6/nqp. Even though I do have one for rakudo. Is that on purpose? If not, can I also get one for those two repos?
yoleaux 13:23Z <nine> patrickb: won't be able to review anything this weekend. I'm at my bachelor (LAN-)party
patrickb hi nine!
AlexDaniel patrickb: I don't think so, let me fix that… 13:25
lizmat ugexe: do we need string escaping for Version objects
AlexDaniel patrickb: ok, there's an invite that you need to accept 13:26
patrickb AlexDaniel: Thanks! 13:27
nine: That's ok. I'm not blocked by those PRs. 13:28
¦ problem-solving: AlexDaniel assigned to jnthn Issue Helper function on SetHashes github.com/perl6/problem-solving/issues/35 13:30
patrickb Hm. I am inclinded to merge the huge fix-everyhing PRs without nines review. They fix so many failures I'm quite sure stuff won't be worse after the merge. 13:31
AlexDaniel patrickb: better now than later 13:34
ugexe lizmat: i don't think so... " would always get turned into . anyway 13:36
lizmat well, anyway, I copied the current behaviour in the patch 13:37
AlexDaniel e: my @to-be-added = eager 1..200_000; my %sethash = SetHash.new(@to-be-added); %sethash{$_} = True for @to-be-added; 13:41
evalable6 13:42
AlexDaniel err that's not what I wanted
e: my @to-be-added = eager 1..200_000; %sethash{$_} = True for @to-be-added; say now - INIT now;
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/OwtMoRazl8
Variabl…
AlexDaniel, Full output: gist.github.com/6b3fe4dc6de4cf8f06...4ed940fc0c
AlexDaniel e: my @to-be-added = eager 1..200_000; my %sethash = SetHash.new(); %sethash{$_} = True for @to-be-added; say now - INIT now;
evalable6 0.2608523
AlexDaniel e: my @to-be-added = eager 1..200_000; my %sethash = SetHash.new(@to-be-added); say now - INIT now; 13:43
evalable6 4.1744451
lizmat wow 13:47
e: my @to-be-added = eager 1..200_000; my %sethash is SetHas = @to-be-added; say now - INIT now; 13:48
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/RjihIRQKs0
Can't u…
lizmat, Full output: gist.github.com/46533e29a6d11ddfec...2f9aa4d338
lizmat e: my @to-be-added = eager 1..200_000; my %sethash is SetHash = @to-be-added; say now - INIT now;
evalable6 0.7373008
lizmat e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash = @to-be-added; say now - $then; 13:49
evalable6 0.67547787
lizmat e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash{$_} = True for @to-be-added; say now - $then;
evalable6 1.99042913 13:50
lizmat ah...
my %sethash = SetHash.new does 2 things: it creates a SetHash, *and* then stores that in a Hash 13:51
AlexDaniel: did you mean to use := instead of = perhaps ?
e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash := SetHash.new(@to-be-added); say now - $then; 13:52
evalable6 0.35582762
lizmat e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash{$_} = True for @to-be-added; say now - $then;
evalable6 1.9214767
lizmat *phew*
dogbert17 patrickb: thx for fixing the 'nuke' bug in rakudobrew 13:54
patrickb dogbert17: Your welcome!
AlexDaniel e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash{$_} = True for @to-be-added; say now - $then; 14:00
evalable6 2.06118205
AlexDaniel e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash ,= SetHash.new(@to-be-added); say now - $then;
evalable6 0.2771428
AlexDaniel lizmat: can you bench this against your proposed .set method?
lizmat will in a mo 14:03
AlexDaniel: 0.2206553 vs 0.2176162 I would say, pretty much within noise 14:06
ah, sorry...missed the first one
AlexDaniel the first one is just a for loop so yeah, it'll be 10 times slower 14:07
lizmat 1.383803 (for), 0.2206553 (,=) and 0.2176162 (.set) 14:08
AlexDaniel I don't have an alternative for unset though
greppable6: \=\ True\ for 14:09
greppable6 AlexDaniel, 3 lines, 3 modules: gist.github.com/c79a76cf88ee72e7bb...5c3d1da30c
14:10 patrickb left
lizmat AlexDaniel: (-)= :-) 14:10
AlexDaniel e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash (+)= SetHash.new(@to-be-added); say now - $then; 14:23
evalable6 2.76878196
lizmat e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash (+)= @to-be-added; say now - $then; 14:25
evalable6 7.0819087 14:26
lizmat wow
expected that to be fasterer
AlexDaniel timotimo: what do you think, am I the only one who struggles with JSON::Fast? :) Like all the time I do something like `for %foo<blah>` and it doesn't work and then I have to add @() or [0] randomly until it works 14:30
like, I can never get it to work right away on the first try…
for example 14:32
m: use JSON::Fast; my %data = from-json(‘{"array": [1, 2, 3]}’); .say for %data<array>
camelia ===SORRY!===
Could not find JSON::Fast at line 1 in:
inst#/home/camelia/.perl6
inst#/home/camelia/rakudo-m-inst-1/share/perl6/site
inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor
inst#/home/camelia/rakudo-m-inst-1/share…
AlexDaniel mmmm
star: say 42
camelia sudo: /home/camelia/bin/perl6-m: command not found
AlexDaniel e: my %data = from-json(‘{"array": [1, 2, 3]}’); .say for %data<array>
evalable6 [1 2 3]
Saw 1 occurrence of deprecated code.
=============================================…
AlexDaniel, Full output: gist.github.com/424b6cbc586bbc3c3b...ce41a72138
AlexDaniel so that's [1 2 3], definitely not what I wanted 14:33
and how do I fix that, uhh…
e: my %data = from-json(‘{"array": [1, 2, 3]}’); .say for %data<array>[0]
evalable6 1
Saw 1 occurrence of deprecated code.
===================================================…
AlexDaniel, Full output: gist.github.com/94d838d1152199e36f...c43c50cfd4
AlexDaniel that doesn't work…
e: my %data = from-json(‘{"array": [1, 2, 3]}’); .say for @(%data<array>)
evalable6 1
Saw 1 occurrence of deprecated code.
===================================================…
AlexDaniel, Full output: gist.github.com/14e5d0cd7c4f8b2faa...28f849a535
AlexDaniel yaaay
timotimo: and that's how it goes like constantly
14:34 vrurg joined 14:35 patrickb joined
timotimo AlexDaniel: i'm sure everybody struggles like that 14:37
i'm not yet sure how to correctly go forward
like, just changing it would break people's code, so it'll have to be :api<2> or something, but what?
AlexDaniel timotimo: JSON::Easy? :) 14:46
timotimo but then it won't be fast :P
AlexDaniel timotimo: what about JSON 14:47
timotimo then it will be neither easy nor fast :P
AlexDaniel but it will be very easy to type
timotimo for gradual typing enthusiasts we shall offer J, JS, JSO, and JSON 14:50
15:06 Kaypie left
AlexDaniel e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash = |%sethash, |SetHash.new(@to-be-added); say now - $then; 15:06
evalable6 6.1007064
lizmat AlexDaniel: yeah, there isn't currently a cheap way of doing that :-( 15:18
e: my @to-be-added = eager 1..200_000; my $then = now; my %sethash is SetHash; %sethash = |%sethash, |@to-be-added; say now - $then;
evalable6 1.18713267 15:19
lizmat you don't need to make the new thing a SetHash first
patrickb vrurg: I'd be grateful for another look here: github.com/rakudo/rakudo/pull/2939...r289604989 15:20
15:30 squashable6 left 15:32 squashable6 joined
Geth ¦ problem-solving: AlexDaniel assigned to jnthn Issue Removed Syntactic Feature github.com/perl6/problem-solving/issues/36 16:27
16:41 squashable6 left 16:43 squashable6 joined 16:52 vrurg left 17:00 AlexDaniel left 17:02 gfldex left, AlexDaniel joined 17:03 gfldex joined
Geth rakudo: b20ccbae44 | (Elizabeth Mattijsen)++ | src/core/array_operators.pm6
push|append|unshift|prepend as sub die on named parameters

Fixes #2943
17:16
synopsebot RAKUDO#2943 [open]: github.com/rakudo/rakudo/issues/2943 Sub push doesn't die on named parameters
Geth roast: dd9a661f02 | (Elizabeth Mattijsen)++ | S32-array/push.t
Add tests for R#2943
17:26
synopsebot R#2943 [closed]: github.com/rakudo/rakudo/issues/2943 Sub push doesn't die on named parameters
18:08 lizmat left 18:12 lizmat joined 18:22 patrickb left 18:50 leont joined 18:54 gfldex left 18:55 gfldex joined
tobs Does anyone have an idea about R#2571? I'm bundling an executable with my module but the executable is stripped when installed. 19:24
synopsebot R#2571 [open]: github.com/rakudo/rakudo/issues/2571 %?RESOURCES execute bit lost on installation
tobs Don't know if it's too hairy to support that in a cross-platform way. Maybe the easiest solution is to make a copy to $*TMPDIR on startup and chmod that? 19:25
ugexe what needs to happen is META6.json extended to store attributes of all files in the distribution, so that upon installation CURI can try to accommodate 19:36
something like `"manifest" => [ {"path" : "lib/Foo.pm6", "perms" : "..." }, {"path" : "resources/whatever.exe" : "perms" : "..." }]` 19:37
we'd eventually also use that to mark files that are generated at build time vs not actually included in the distribution, and so on 19:38
sha1 name, file modified times, etc 19:39
lizmat m: dd [{ a => 42}], dd [{ a => 42},] # subtle differencve... and a bit of a WAT ? 19:41
camelia Array element = [{:a(42)},]
Array element = [:a(42)]
Nil
lizmat m: dd [{}] # also maybe a WAT ?
camelia Array element = []
tobs ugexe: That sounds like a bigger project. Guess I'll be able to turn the executable into something I can NativeCall into by midnight instead. 19:43
To be honest, I've been mostly cargo-culting META6 so far. I wouldn't be able to file an appropriate issue right now.
well, the file itself is documented. What I lack is understanding of CURI 19:44
ugexe you can to be able to tell CURI what to do with the file. its api doesn't take "file paths", it takes a Distribution which can be an e.g. socket. This means CURI has no way to infer what the original e.g. permissions of a file are 19:46
so those things needs to be described in META6.json somewhere, and CURI made to understand that new description 19:47
of course tooling would usually generate those entries into META6.json for path based distributions
tobs it feels a bit like reinventing tar 19:51
ugexe pretty much 19:52
tobs but it sheds some light for me on the abstractions involved, thanks
ugexe using tar files as our main distribution format (ala install literal .tar files) would solve the unicode name and case sensitivity issues on various systems 19:54
although that wouldnt work so well for non pure-perl6 distributions (i.e. NativeCall)
Geth rakudo: a6a2ba90f9 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/JSON.pm6
Remove unnecessary code

Probably stuck around from a different path in the to-json refactor.
19:57
timotimo lizmat: that's "just" single-argument rule; just like [<foo bar baz>] is the syntax to get an array of strings, though with [{ }] it's not quite as useful 20:10
lizmat yeah, I realized it was the 1arg rule.. :-) but that's really not very clear from that context 20:11
m: my @a = { a => 42 }; dd @a'
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my @a = { a => 42 }; dd @a7⏏5'
expecting any of:
infix
infix stopper
postfix
statement end
statem…
lizmat m: my @a = { a => 42 }; dd @a
camelia Array @a = [:a(42)]
lizmat ^^^ but I guess that's the same thing
timotimo yeah, that's a more explicit way to write it i guess 20:12
20:20 MasterDuke joined, MasterDuke left, MasterDuke joined
Geth rakudo: 2566db7b9d | (Elizabeth Mattijsen)++ | src/core/List.pm6
Revert "Re-imagine PR #2493"

This reverts commit 8f424c9d8ecac7c6fbf4f3aa7e0e5fc4b46ea8fe.
Not seeing a way to fix this atm, so reverting and re-opening the pull request on which this was based (as well as the issue that caused this).
20:33
synopsebot RAKUDO#2493 [closed]: github.com/rakudo/rakudo/pull/2493 Fix is-lazy propagation bug in List::Reifier
21:09 squashable6 left 21:14 squashable6 joined 21:36 gfldex left 21:38 gfldex joined
lizmat calls it a day 21:43
21:51 squashable6 left 21:54 squashable6 joined 22:07 gfldex left 22:10 vrurg joined 23:03 leont left 23:35 HarmtH left 23:41 HarmtH joined