🦋 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: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
08:55 sena_kun joined
ab5tract Should we do a similar cleanup in RakuAST? github.com/Raku/doc/pull/4397 10:13
(Curry -> prime)
lizmat probably 10:22
% rak curry -i ../../rakudo/ast --count-only 10:23
82 matches in 3 files
ab5tract That can wait for the new branch to be merged though, for sure 10:41
lizmat indeed... :-)
ab5tract nine: it's really strange.. I can't reproduce the CI issues locally 12:04
looks like `t/09-moar/00-misc.t` is failing at `Subtest: no SPESH crashes with duplicate `use Test``, but I see the same issue in `nqp` results for current main (dev.azure.com/jjmerelo0004/f5d947e.../logs/145) 12:07
Geth nqp/main: 808f0c367c | ab5tract++ | src/core/Hash.nqp
Add a few capabilities for NQP-level dd

Now we check for dump-ability and then ast-ness before going into the more specific checks.
Also, in the generic fallthrough case, we check for
  `gist` before using `Str` / ~.
12:40
ab5tract is not making heads or tails of the CI situation :( 14:12
ugexe i think the moarvm CI relies on some existing version of nqp or some such 14:15
the failure seems the same across a few different runs 14:16
MoarVM panic: Memory allocation failed; could not allocate 2109040673 bytes
t\nqp/115-nums.t .......................
Dubious, test returned 1 (wstat 256, 0x100)
i guess that can't be the case since the CI is failing in multiple repos and not just moarvm 14:24
looking at the moarvm CI statuses, my guess would be github.com/MoarVM/MoarVM/commit/62...3582f7d78b is causing it
MasterDuke: ^ could those changes potentially cause that allocation error that is shown? 14:25
to be clear i'm talking specifically about windows failures 14:27
ab5tract indeed, the Mac and (occasionally Linux) failures appear to be consistently different 14:29
14:38 finanalyst joined
ugexe ah i see, those platforms are running into the SPESH crash you mention earlier 14:39
in these situations when i have sufficient motivation I generally start pushing up commits to rakudo, nqp, etc that build with older e.g. moarvm commits. once a commit is found where the failure stop, it is probably safe to assume it has been correctly manually bisected 14:41
the number of commits that have to be checked could also probably be reduced by only initially checking commits that contain a moarvm bump 14:42
ab5tract hmmm.. 14:48
with (maybe) give that a try .. hardly the most exciting work that can be done, though 14:50
especially since the failure doesn't happen locally :/
but ugexe++ thanks for the suggestion 14:52
ugexe hmmm 14:59
dev.azure.com/jjmerelo0004/jjmerel...amp;l=1475
those 0*-misc.t tests all have `use lib <t/packages>`, which would have a 'Test' namespace 15:00
like i wonder if that spesh failure would happen with some module other than Test
i'm gonna make a PR to fix up our use of t/packages to be more precise, which may or may not help 15:01
lizmat ugexe: fwiw, I think that many of the libraries in t/packages should just be part of Test 15:02
ugexe i dont think we should add or remove things from Test api until we have a way to properly version and depend on certain versions of core modules 15:03
additionally imo there is too much nuance in Test::Helpers to be something to provide in the core 15:07
Geth rakudo/ugexe/restructure-t-packages: 012cbf6267 | (Nick Logan)++ | 36 files
Restructure Test::Helpers

Previously packages were using the `t/packages` library path which would be seen as a distribution containing other unrelated modules. This commit restructures the file layout of Test::Helpers to match what an actual distribution would use, and then updating our tests to point at the new location. This ensures code using Test::Helpers doesn't inadvertantly have access to other modules in t/packages, and potentially avoids an issue when packages were using a sub directory t/packages/02-rakudo which would already have otherwise been precompiled from loading t/packages.
15:43
rakudo/r1378: 897a93ccb9 | ab5tract++ | 2 files
Provide better feedback for ambiguous adverb usage

This fixes an LTA situation:
   > my %h = :1k; say 1 ~ %h<k>:exists ~ 1
   ===SORRY!===
   MVMArray: Can't pop from an empty array
... (10 more lines)
15:46
rakudo: ab5tract++ created pull request #5572:
Provide better feedback for ambiguous adverb usage
rakudo/r1378: 3233f2a5a6 | ab5tract++ | 2 files
Provide better feedback for ambiguous adverb usage

This fixes an LTA situation:
   > my %h = :1k; say 1 ~ %h<k>:exists ~ 1
   ===SORRY!===
   MVMArray: Can't pop from an empty array
... (10 more lines)
15:47
nqp/r1378: ff157a4f8e | ab5tract++ | src/HLL/Grammar.nqp
Provide better feedback for ambiguous adverb usage

This fixes an LTA situation:
   > my %h = :1k; say 1 ~ %h<k>:exists ~ 1
   ===SORRY!===
   MVMArray: Can't pop from an empty array
... (9 more lines)
15:50
nqp: ab5tract++ created pull request #823:
Provide better feedback for ambiguous adverb usage
15:51
ab5tract ugexe: don't forget to make a PR so that we can see the impact on the pipelines :) 15:52
(unless there's some other way to kick them?)
Geth rakudo: ugexe++ created pull request #5573:
Refactor t/packages
15:58
ugexe looks like there are some roast tests that are using Test::Helpers from rakudo instead of from the one in the roast already :/ 16:50
as in they expect to use t/packages from rakudo
lizmat yikes 16:51
ugexe github.com/Raku/roast/blob/6aaf159...ion.t#L217 17:29
that line re-writes one of the modules in t/packages
i made some changes to unrelated files, ran spectest, then ran git diff and saw packages/RT128156/lib/RT128156/Needed.rakumod gets changed 17:30
lizmat yeah, seen that happen as well
ugexe that test should be copying files to a temp location first 17:31
MasterDuke ugexe: yeah, it looks like i copied the wrong #defines
Geth roast: 99b194bbda | (Nick Logan)++ | 2 files
Use Test::Util::is_run instead of Test::Helpers::is-run

Previously some tests were relying on using `is-run`, a test helper function from the rakudo (not roast) repo. This updates the code to use the `is_run` test helper that is already included in the roast.
17:32
ugexe raku -e 'copy("S06-parameters", "foo")' 17:39
Failed to copy '/Users/nlogan/.rakubrew/versions/moar-blead/t/spec/S06-parameters' to '/Users/nlogan/.rakubrew/versions/moar-blead/t/spec/foo': Failed to copy file: operation not supported on socket
in block <unit> at -e line 1
wtf?
m: .say for dir 17:40
camelia ".cpanm".IO
".local".IO
".npm".IO
".rcc".IO
"Perlito".IO
"evalbot".IO
"log".IO
"nqp-js".IO
"p1".IO
"p2".IO
"std".IO
".bashrc".IO
"mbox".IO
".cpan".IO
"dalek-queue".IO
"rakudo-j-inst-1".IO
"rakudo-j-1".IO
"rakudo-j-ins…
ugexe m: copy(".cpanm","foo")
camelia Failed to copy '/home/camelia/.cpanm' to '/home/camelia/foo': Failed to copy file: illegal operation on a directory
in block <unit> at <tmp> line 1
lizmat wow: dalek-queue :-)
ugexe hmm 17:41
maybe its mac specific?
notice in my example it says the operation is not supported on socket
lizmat perhaps the error message is LTA ? 17:43
ab5tract m: dd (5..0).Slip
camelia slip()
ab5tract ^^ why do we even allow that to compile?
ugexe the error seems entirely wrong
lizmat ab5tract: perhaps a worry ? 17:44
ab5tract I feel like the range constructor should return a Failure, at the very least 17:45
anyway, didn't mean to jump in with another issue :)
lizmat I think I have argued that once, a long time ago (~10 years ago)
ab5tract ugexe: it does look mac specific -- I get the same failure locally 17:53
lizmat: I'll have to do an IRC log search and find some arguments to shed some tears about 17:54
ugexe here is an issue for the overwritten module files in roast - github.com/Raku/roast/issues/853 17:55
lizmat ab5tract: if you git blame Range.rakumod, then you should have some starting points, in time I mean
ab5tract m: (-6..6).rand ==> say() 18:07
camelia 2.6544324059042133
ab5tract m: (-6..6).rand xx 8 ==> say()
camelia (-4.738164827199453 5.159230762520579 5.975807979877603 -3.851074498988355 1.4637735675423649 5.836261947637158 3.9448290360490006 -4.77231175341916)
ab5tract why do we (poorly) attempt to restrict endpoints to positive numbers if it works fine with neegatives?
lizmat ab5tract: not sure I follow ? 18:18
ab5tract github.com/rakudo/rakudo/blob/5d6a...kumod#L704 18:20
that code appears to be attempting something that it is not succeeding at 18:21
and it's really not clear why it even cares 18:23
lizmat it fails if the min is larger than the max ? 18:26
MasterDuke doesn't "positive" there just mean size/length > 0?
ab5tract MasterDuke: then what on earth is a negative range? 18:31
lizmat: that's not what the failure message is describing 18:33
lizmat ok, maybe the wording is a bit LTA 18:34
m: say (2..-2).rand
camelia Can only get a random value if the range is positive
in block <unit> at <tmp> line 1
lizmat s/the range/max is larger than min 18:35
??
18:37 finanalyst left
ab5tract m: m: (1..1).rand ==> say() 18:37
camelia Can only get a random value if the range is positive
in block <unit> at <tmp> line 1
ab5tract lizmat: you mean that thing we don't actually support? 18:38
m: dd 3 ~~ 6..0
camelia Bool::False
lizmat m: dd 3 ~~ 0..6 18:39
camelia Bool::True
ab5tract ah, I thought you were clarifying what constitutes a "negative range" 18:40
lizmat no, I just meant the error message "Can only get a random value if the range is positive" is LTA 18:41
ab5tract what I have so far is: Impossible to get a random number from range containing no values.\nOnly the sequence (...) operator supoprts descension between $!min and $!max 18:42
lizmat yes, that was intentionally so 18:43
ab5tract just working on resolving R#1591 18:46
linkable6 R#1591 [open]: github.com/rakudo/rakudo/issues/1591 [LTA] LTAnesses with Range.rand
19:00 finanalyst joined
Geth rakudo/ugexe/restructure-t-packages: d25af712cd | (Nick Logan)++ | 36 files
Restructure Test::Helpers

Previously packages were using the `t/packages` library path which would be seen as a distribution containing other unrelated modules. This commit restructures the file layout of Test::Helpers to match what an actual distribution would use, and then updating our tests to point at the new location. This ensures code using Test::Helpers doesn't inadvertantly have access to other modules in t/packages, and potentially avoids an issue when packages were using a sub directory t/packages/02-rakudo which would already have otherwise been precompiled from loading t/packages.
19:38
ugexe Just a force push after some minor formatting and comment changes 19:39
ab5tract m: dd .rand with 99..99.0000000000000001 20:03
camelia 99e0
ab5tract would it make sense to exclude such endpoints, the same way we do when they are are equal? 20:04
m: dd .rand with 99..99.0000000000000001e0 20:06
camelia Failure.new(exception => X::AdHoc.new(payload => "Can only get a random value if the range is positive"))
lizmat perhaps let =~= decide ?
afk&
ab5tract good idea! 20:07
Geth rakudo/main: d25af712cd | (Nick Logan)++ | 36 files
Restructure Test::Helpers

Previously packages were using the `t/packages` library path which would be seen as a distribution containing other unrelated modules. This commit restructures the file layout of Test::Helpers to match what an actual distribution would use, and then updating our tests to point at the new location. This ensures code using Test::Helpers doesn't inadvertantly have access to other modules in t/packages, and potentially avoids an issue when packages were using a sub directory t/packages/02-rakudo which would already have otherwise been precompiled from loading t/packages.
20:34
rakudo/main: 1fc67b1f45 | (Nick Logan)++ (committed using GitHub Web editor) | 36 files
Merge pull request #5573 from rakudo/ugexe/restructure-t-packages

Refactor t/packages to follow idiomatic distribution file structure
ab5tract m: (7.94073749745355e-15).FatRat ==> say() 21:26
camelia 0
22:26 finanalyst left 22:33 sena_kun left
Geth rakudo/main: 06e45d89f2 | ab5tract++ | 2 files
Clarify Range.rand failure cases and fix infinite loop

Previously we would be quite unclear about the specific reasons for failing to produce a random number from a range:
   > .rand with NaN..NaN
... (47 more lines)
22:45
23:00 azert joined
azert Is there an option to demote Rats as “never ever get one if I never asked for it”? What about modules using Rats against your wishes? 23:02
I just don’t care about 0.1 + 0.2 == 0.3 being true. It is actually an unexpected result for me due to floating point arithmetic 23:05
The slowdown is just unacceptable. There are things in Raku that are unexplainably slow, such as the Hash, but for arithmetic it is obvious 23:06
23:07 azert left
ab5tract Num is sticky 23:28
m: dd .WHAT with 1e-3 * 1/3
camelia Num
ab5tract Beyond that, I don't know of any mechanism to prefer Num over Rat, or any plans to provide one 23:30
Geth roast: 7749803e24 | ab5tract++ | 2 files
Provide test cases for X with baggy operators

While not comprehensive for the entire range of baggy ops, these should be enough tests to catch any regressions and satisfy the closure of R#1726.
23:35
linkable6 R#1726 [open]: github.com/rakudo/rakudo/issues/1726 [tests needed][data types][operators] Baggy cross operators
ab5tract azert: patches are, of course, always welcome 23:36
tellable6 ab5tract, I'll pass your message to azert