🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
00:02 reportable6 left
gfldex lizmat: I believe to know now why rotor was dropped as a sub. To support `<1 2 3 4> ==> rotor(2 => 1)` we would need Rakudo to support :(*@ [@list, \tail-element]). I got something that ain't pretty but works. PR will follow after some sleep. 00:04
00:05 reportable6 joined 01:06 lizmat left, lizmat joined 01:34 frost joined 04:51 linkable6 left, evalable6 left 04:52 evalable6 joined 05:22 frost left 05:53 linkable6 joined 06:02 linkable6 left, reportable6 left
releasable6 Next release in ≈2 days and ≈11 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 07:00
08:05 reportable6 joined 08:23 frost joined 09:02 linkable6 joined
lizmat gfldex: yeah, it was something like that :-) 09:16
bisectable6: dd (1..30).pick(*).grep(*>*>*) 09:20
bisectable6 lizmat, Will bisect the whole range automagically because no endpoints were provided, hang tight
lizmat, Output on all releases: gist.github.com/d8f70009bfff918d41...22bc8f774d 09:21
lizmat, More than 4 changes to bisect, please try a narrower range like old=2021.06 new=HEAD
lizmat bisectable6: old=2020.10 new=HEAD dd (1..30).pick(*).grep(*>*>*)
bisectable6 lizmat, Bisecting by exit code (old=2020.10 new=8ef34ad). Old exit code: 0
lizmat, bisect log: gist.github.com/eb76dd7e1018186e7a...bebd9be05e
lizmat, (2021-07-10) github.com/rakudo/rakudo/commit/bb...4dffbe798c
Geth rakudo: lizmat self-assigned Grep fails with more than 2 args [Regression] github.com/rakudo/rakudo/issues/4660
4e23452c01 | (Elizabeth Mattijsen)++ | 2 files

Nowadays, one apparently *must* also specify "--exclude='perl'"
09:22
10:12 discord-raku-bot left 10:13 discord-raku-bot joined
rakudo: 57801d5952 | (Elizabeth Mattijsen)++ | src/core.c/Any-iterable-methods.pm6
Fix stupid copy-pasto, fixes #4660
11:58
11:59 linkable6 left
Geth roast: 9faea9409e | (Elizabeth Mattijsen)++ | S32-list/grep.t
Add test for #4660
12:02
12:02 reportable6 left
MasterDuke lizmat: btw, github.com/Raku/roast/blob/master/....t#L33-L46 isn't quit accurate anymore. multi-dim arrays are now implemented (by you, iirc), but jagged array shapes are still NYI 12:08
lizmat MasterDuke: but only for 6.e.PREVIEW 12:18
hmmm... or not
MasterDuke m: my @a[2;2;2] = @a[1;1;1] = 42; dd @a 12:19
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot use variable @a in declaration to initialize itself
at <tmp>:1
------> 3my @a[2;2;2] = @7⏏5a[1;1;1] = 42; dd @a
expecting any of:
term
MasterDuke m: my @a[2;2;2]; @a[1;1;1] = 42; dd @a
camelia Array element = Array.new(:shape(2, 2, 2), [[Any, Any], [Any, Any]], [[Any, Any], [Any, 42]])
Geth roast: b49755d75b | (Elizabeth Mattijsen)++ | S02-types/multi_dimensional_array.t
Make skip message more correct
12:20
ugexe Why is *must* emphasized? that isnt correct 12:22
Nowadays, one apparently *must* also specify "--exclude='perl'"
lizmat because without it, it won't install ?
Inline::Perl5 that is?
ugexe Certainly it installs for some people... it wasn't added just to annoy people
lizmat the line is intended to be copy-pasted, and the line as such didn't install Inline::Perl5, but complained about missing dependencies 12:23
so therefore, one *must* also specify --exclude='perl' ? 12:24
to be able to install?
or am I missing something?
ugexe it sounds like what you are saying is you expect yourit to behave that way for everybody 12:25
but thats not true. suggesting to use --exclude=perl is fine, i just dont want you to think its a requirement instead of just whatever finds the perl binary in zef not being sufficient for some people 12:26
( which fwiw is the code here -- github.com/ugexe/zef/blob/7d6b48db...#L170-L181 ) 12:27
lizmat m: run <perl -v> 12:28
camelia
This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-thread-multi

Copyright 1987-2017, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may b…
MasterDuke i believe it was needed for me also and i have a rather different setup from lizmat (archlinux, moarvm/nqp/rakudo checked out into three separate repos all build with a common --prefix)
ugexe i.e. a dependency on perl:from<bin> just uses that `which` function to see if it finds a 'perl'
lizmat I have a standard user layout: perl Configure.pl --gen-moar --make-install
is what I do to build Rakudo
can't get much more vanilla than that, no? 12:29
ugexe i dunno, i linked to a 10 line function which is pretty vanila too
lizmat m: run <which perl > 12:30
camelia /usr/bin/perl
lizmat I understand that won't work on Win, but still, for all other cases it would ? 12:31
ugexe shelling out to parse dependencies is a ba idea
technically it doesnt apply until the resolution stage but still 12:32
lizmat running that sub on my machine, I get: ["/usr/local/bin/perl".IO "/usr/bin/perl".IO] 12:33
could that be the issue? that it gets more than one ?
they're different versions: the local one is built by me some time ago (5.28) and the other is the system one (5.18) 12:34
MasterDuke i get just one entry
btw, 'which' is a source of debate, whether one should use 'type' or 'command -v' instead 12:36
ugexe hmmm that seems like it should work then... the caller is just github.com/ugexe/zef/blob/7d6b48db...umod#L1072
MasterDuke lwn.net/Articles/874049/ 12:37
lizmat ugexe: say so Zef::Utils::FileSystem::which('perl') # True
ugexe yeah i still dont see why its not working in some cases -- github.com/ugexe/zef/blob/7d6b48db...kumod#L401 12:51
that applies the 'is-installed' filter just a few lines down from the 'exclude' filter (which obviously works)
lizmat BTW, the \ at the end of the line, has not been needed for a long time? 12:54
ugexe that code is probably older than a long time 12:57
lizmat yeah :) 12:59
13:00 linkable6 joined 13:04 reportable6 joined
Geth rakudo: gfldex++ created pull request #4661:
implement sub rotor
14:49
ugexe ah, it looks like perl:from<bin> was recently removed from Inline::Perl5 which is probably what your error was referencing 15:34
I get `===> Failed to find dependencies: perl:from<native>` but i don't have libperl installed 15:36
MasterDuke s/bin/native/
ugexe oops
MasterDuke but yeah, guess that was the root cause
[Tux] Rakudo v2021.10-131-g57801d595 (v6.d) on MoarVM 2021.10-117-g7d58542da
csv-ip5xs0.879 - 0.912
csv-ip5xs-205.380 - 5.604
csv-parser4.336 - 4.391
csv-test-xs-200.411 - 0.451
test7.265 - 8.322
test-t1.671 - 1.889
test-t --race0.959 - 0.963
test-t-2024.621 - 25.801
test-t-20 --race7.662 - 8.278
15:57
Geth rakudo/cpucores-once: 6c3530340b | (Elizabeth Mattijsen)++ | 2 files
Revert behaviour of Kernel.cpu-cores

It will now always call nqp::cpucores for those cases where the number of CPU's can actually change.
The internal method Kernel.cpu-cores-but-one is now lazy, and will only call nqp::cpucores once in the lifetime of a process.
16:18
16:25 qorg11 left
MasterDuke m: my @uniques; my %h; for "foo".comb -> $c { %h{$c}++ }; @uniques = %h.keys; say @uniques 16:32
camelia [f o]
MasterDuke m: my @uniques; for "foo".comb -> $c { state %h; %h{$c}++; LAST @uniques = %h.keys }; say @uniques
camelia [f o]
16:33 qorg11 joined
MasterDuke ^^^ i like the second version because it keeps the `%h` inside the scope of the `for`, but both `state` and `LAST` are going to have negative performance implications 16:34
anybody have any other criticisms of the state+LAST version? 16:35
lizmat m: dd "foo".comb.Set
camelia Set.new("o","f")
japhb m: say "foo".comb.unique
camelia (f o)
MasterDuke ok, ignore the actual logic in the example, the real case is a bit more involved 16:36
japhb I had a feeling, but I couldn't resist when you asked if we had criticisms. ;-)
But in all seriousness, I'm not sure I can give proper feedback without knowing a bit more about the actual use case.
MasterDuke heh
exactly this github.com/rakudo/rakudo/pull/4650...7L233-L251 is what inspired the musing 16:37
japhb Just for code as written: Is the state version concurrency-safe? Meaning, if the whole loop was in a routine, and you called that routine concurrently, would it still work correctly? 16:39
lizmat state is not concurrency safe afaik
gfldex lizmat: the only case it can't cover is `rotor(2 => -1, 3 => 2, 1, 2, 3, 4)` because the to be rotated list might contain Pairs. It needs the list as an item as the last positional. 16:58
lizmat well, and that's the reason I think in the end I didn't do a sub rotor 16:59
MasterDuke tux.nl/Talks/CSV6/speed4.html anyone else notice how the timing went back up a bit right around nov 15? 17:04
lizmat I noticed an upward trend :) 17:10
gfldex m: (^10).hyper(:1batch).map({ ++$ }).say;
camelia (1 1 1 1 1 1 1 1 1 1)
gfldex japhb: state vars exist once per call stack. So it depends on what you do with them. 17:11
MasterDuke github.com/rakudo/rakudo/commit/95...e46ce694cf perhaps is the reason for the slowdown? 17:19
huh, that just pull in github.com/MoarVM/MoarVM/pull/1601 which is a pretty small change... 17:22
afk for a bit, but anybody have comments/suggestions for github.com/rakudo/rakudo/pull/4650 and github.com/rakudo/rakudo/pull/4651 ? 17:27
18:02 reportable6 left 18:03 reportable6 joined
Geth DBIish/rbt.markdown: 0a5c6fa964 | (Rod Taylor)++ | 2 files
Replace Pod with Markdown version

Closes #39
20:06
DBIish/rbt.markdown: 3c5e7ec05f | (Rod Taylor)++ | 2 files
Replace Pod with Markdown version

Closes #39
20:12
DBIish: 3c5e7ec05f | (Rod Taylor)++ | 2 files
Replace Pod with Markdown version

Closes #39
[Tux] MasterDuke, 16 Nov I updated my OS from openSUSE 15.2 to openSUSE 15.3. Could that be a cause? 20:30
lizmat interesting... 20:32
Geth DBIish/rbt.tidy: 3b633577a3 | (Rod Taylor)++ | META6.json
Show up in a DBDish search on modules.raku.org
20:43
japhb [Tux]: Did openSUSE 15.3 enable any new security features or default compiler options? I can easily imagine that level of performance difference from some C-level compiler change or kernel option or whatnot. 21:01
22:28 evalable6 left, linkable6 left
[Coke] got jdv's CLA 22:54
Looks like someone has gone to some effort to setup groups on rakudo, so I'll let someone else add him to the right spot. 22:55
23:29 evalable6 joined 23:31 linkable6 joined