🦋 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.
00:00 reportable6 left 00:02 reportable6 joined
Geth rakudo/ugexe/remove-unneeded-nqp-lib: 4a66191130 | (Nick Logan)++ | src/vm/moar/ModuleLoaderVMConfig.nqp
Remove nqp/lib from vm search paths

The removed comment suggests that this code shouldn't be needed anymore, since `:from<NQP>` was implemented at some point. The passing `make test` and `make spectest` also suggest this code is not needed anymore. However, to be clear, I'm not sure why the
  `:from<NQP>` adverb might make this library inclusion required.
00:06
rakudo: ugexe++ created pull request #5304:
Remove nqp/lib from vm search paths
00:07
ugexe 🤷 00:10
Geth rakudo/main: 0e0aae3768 | (Nick Logan)++ (committed using GitHub Web editor) | src/core.c/Any.pm6
Removed resolved/old comment
00:15
ugexe github.com/rakudo/rakudo/blob/64c4...#L449-L452 I wonder which can be deleted -- the comment or the code the comment references... 00:18
github.com/rakudo/rakudo/blob/64c4...ain=1#L340 -- lol... renamed Perl6 -> Raku, but left Parrot in the architecture 00:21
MasterDuke i think i tried removing that exact code once and something broke, don't remember what though
hm. or maybe it was an `#if jvm` thing i'm thinking of... 00:22
ugexe ah, probably is referenced by github.com/rakudo/rakudo/blob/0e0a...cture.html which does say its obsolete
oh sorry, you meant the ARGS thing 00:23
can probably just remove the comment then
github.com/rakudo/rakudo/blob/0e0a...in.nqp#L81 -- i wonder if this 'transcode' option is used anymore 00:25
MasterDuke oh, i think github.com/rakudo/rakudo/blob/0e0a...qp#L59-L67 is what i was thinking of, tried to consolidate them and couldn't 00:27
ugexe that seems familiar... did you maybe try to consolidate those as well as modify the block of code i linked? cause that seems like it would "fix" and discrepancy in behavior at first glance 00:29
MasterDuke re 'transcode', src/HLL/Compiler.nqp:546 looks like maybe it's still relevant 00:30
re ARGS pieces of code, i don't remember what i tried exactly
ugexe that line calls apply_transcodings which doesn't do anything on any of the backends 00:32
it just returns the first argument and ignores the second
MasterDuke ugh...i know why my DirRecurse!pull-one change was causing it to not recurse. 'boot-sycall' ne 'boot-syscall', but it was wrapped in the try and i never saw any error...
ugexe i.e. github.com/Raku/nqp/blob/492fe69d1...qp#L93-L95
MasterDuke ha
is it just NYI? or did something else in the past and now doesn't? 00:33
ugexe heh yeah, the only error i was afraid of when i added it was typos in the future
my guess is that parrot used it
MasterDuke new huh. `Failed to stat file: too many symbolic links encountered` 00:34
but it is now recursing... 00:35
ugexe that sounds like a limitation we might enforce in rakudo or moarvm 00:36
although i guess maybe it could be libuv
MasterDuke that message is from libuv
but why didn't we get it before? 00:37
timo are you logging the stat calls? for example with strace? 00:38
MasterDuke sort of, i was just printing them
ugexe is it from nqp::stat or nqp::lstat
MasterDuke stat
more precisely, my new syscall with calls the moarvm implementation function with is_lstat = 0 00:39
timo i think we manually follow links in the dir-recurse code with resolve
MasterDuke *which calls
ugexe yeah, that :transcode option was used by parrot. every other backend just returns the first argument 00:41
github.com/Raku/nqp/blob/27bc87370...nqp#L5-L13
do you have a diff of dir-recurse with your changes? 00:42
MasterDuke timo: yeah, github.com/rakudo/rakudo/blob/main....pm6#L1400
ah, moving is seems to have worked... 00:43
gist.github.com/MasterDuke17/1e920...a062a83de2
ugexe wouldn't you need to reverse the ACCEPTS / stat call? 00:44
if ACCEPTS returns false $s wont be set
MasterDuke yeah
`time raku -I . -e 'use Test'` doesn't seem to be any faster 00:47
though we do seem to be calling stat on every entry with '.' and '..' added... 00:48
ugexe don't reverse the ACCEPTS on the directory 00:49
that will avoid some of those cases
MasterDuke i didn't
ugexe oh right, i see
MasterDuke i think it comes from self!next 00:50
doh. of course it does
well, adding `(next if $entry eq '.' or $entry eq '..'),` reduced the number of stat calls by ~30k, but didn't seem to change the timing very much 00:55
stock rakudo does ~171k stats. with my initial changes it does ~156k. skipping . and .. it does ~126k 00:59
in a directory where `find . | wc -l` reports ~113k 01:01
ugexe might be nice if someone using a raspberry pi was able to benchmark it 01:05
i guess they sort of can by just timing for 1..30000 { nqp::stat(...) }
MasterDuke i could try it in some directory on my spinning rust disk 01:07
ugexe not sure if thats a good benchmark either though based on however filesystems might cache that
if i still had a laptop with FUZE on it i'd probably try that as well (i.e. sshfs) 01:22
MasterDuke well, it seems like a worthwhile change regardless of exactly how much faster it is. not a large diff, but does reduce the number of stats by a decent amount 01:30
ugexe agreed
timo only using one stat on the same file instead of two also helps against inconsistent results inside the recursion itself 01:47
though you're still going to get cases where something returned from dir recurse or whatever else can get deleted between when you got the result to when you try to actually open it, that's just the nature of file systems and processes and what not 01:48
i wonder if we can do anything for users for this case to make it less painful in general
actually, does DirRecurse die when a folder gets deleted at an inopportune moment while you're iterating over it? 01:49
MasterDuke dunno
timo easy to do if you pause execution in gdb rather than having to get the timing just right
or doing something like sleep 0.1 in the loop bodyd 01:50
MasterDuke btw. my change doesn't make much of an improvement when run in a directory with 37k files on a spinning disk (though i assume stuff being cached by the os is why) 01:51
huh. even when mounting said directory via sshfs from my slow laptop it still doesn't make a really noticeable difference 02:04
but the numbers are *extremely* variable, so maybe i'm just not getting good measurements
02:06 Util left
ugexe i guess it would make sense for something like sshfs to cache file attributes and directory contents really aggressively 02:07
MasterDuke yeah, by my numbers, when run right after each other, vary between 7s and 30s
so it's not caching everything 02:08
*but my
Geth rakudo/ugexe-patch-1: 53440ad774 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/code.rakumod
Fix syntax error when building on JVM
03:48
rakudo: ugexe++ created pull request #5305:
Fix syntax error when building on JVM
05:13 reportable6 left, linkable6 left, committable6 left, evalable6 left, notable6 left, bisectable6 left, sourceable6 left, coverable6 left, greppable6 left, bloatable6 left, statisfiable6 left, shareable6 left, nativecallable6 left, squashable6 left, unicodable6 left, releasable6 left, benchable6 left, quotable6 left, tellable6 left 05:14 benchable6 joined, linkable6 joined, quotable6 joined, reportable6 joined 05:15 coverable6 joined, bisectable6 joined, unicodable6 joined, shareable6 joined, nativecallable6 joined, greppable6 joined, committable6 joined, evalable6 joined 05:16 notable6 joined, squashable6 joined, releasable6 joined, tellable6 joined, statisfiable6 joined, sourceable6 joined, bloatable6 joined 06:00 reportable6 left 06:02 reportable6 joined 07:02 benchable6 left, coverable6 left 07:03 coverable6 joined 07:04 benchable6 joined
gfldex 08:10
08:11 sena_kun joined 12:00 reportable6 left 12:01 reportable6 joined
ugexe github.com/Raku/nqp/blob/main/src/core/IO.nqp - i don't think the documentation in some of these files is valid pod or pod6 13:42
Geth rakudo/main: 53440ad774 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/code.rakumod
Fix syntax error when building on JVM
14:03
rakudo/main: 9db68fbef1 | (Nick Logan)++ (committed using GitHub Web editor) | src/Raku/ast/code.rakumod
Merge pull request #5305 from rakudo/ugexe-patch-1

Fix syntax error when building on JVM
15:06 dogbert17 joined
dogbert17 ESA Euclid Space Mission liftoff is imminent: www.youtube.com/watch?v=2OJ6lCFS29Y 15:07
15:17 guifa joined
lizmat it was an excellent launch with excellent views! 15:22
dogbert17 indeed it was 15:26
Geth rakudo/ugexe/remove-nqp-lib-leftovers: 55537e9b29 | (Nick Logan)++ | 3 files
Remove deprecated --nqp-lib option

The --nqp-lib option has had no effect for years, and it was supposed to be removed long ago. This removes any remaining
  --nqp-lib option related code.
15:27
rakudo: ugexe++ created pull request #5306:
Remove deprecated --nqp-lib option
15:28
dogbert17 payload will be deployed in 19 minutes 15:32
Geth rakudo/ugexe/remove-deprecated-proc-status: 91fdd538e7 | (Nick Logan)++ | src/core.c/Proc.pm6
Remove deprecated Proc.status

Proc.status wasn't intended to be part of the public api and was deprecated (see #1366). Per the existing deprecation message, this method should have been deleted a year ago. This change follows through on the deprecation message and deletes Proc.status.
15:40
rakudo: ugexe++ created pull request #5307:
Remove deprecated Proc.status
16:17 evalable6 left 16:18 evalable6 joined 16:33 ab5tract joined
Geth rakudo/main: 3c2af23720 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6
RakuAST: make sure table errors are reported correctly
17:05
17:15 ab5tract left
Geth rakudo/main: fed1515d95 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6
RakuAST: allow escaped column separators

in tables with invisible column separators
17:17
[Coke] lizmat++ 17:36
18:00 reportable6 left 18:03 reportable6 joined
Geth rakudo/main: 93dd19f8db | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6
RakuAST: make sure X<> is handled correctly

Borked in e66bcd670c
18:31
rakudo/main: fcf1c3ffbb | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6
RakuAST: fix implicit code checking

Multiple implicit code blocks intermixed with text in a single block, would only see the first implicit code block.
This was caused by not resetting the leading whitespace when text was encountered.
19:18
rakudo/main: 101d3ca5d0 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/LegacyPodify.pm6
RakuAST: make sure text in markup atoms is sanitized

when it is rendered to legacy pod
19:42
rakudo/ugexe/remove-deprecated-proc-status: e8d09805e8 | (Nick Logan)++ | t/04-nativecall/CompileTestLib.rakumod
Rename variable to actually describe what it is
19:53
rakudo/ugexe/remove-deprecated-proc-status: b78970bf7f | (Nick Logan)++ | t/04-nativecall/CompileTestLib.rakumod
Remove use of slurp-rest
rakudo/ugexe/remove-deprecated-proc-status: 6fccc7bd7f | (Nick Logan)++ | t/04-nativecall/CompileTestLib.rakumod
Remove use of Proc.status
rakudo/ugexe/remove-unused-transcode-option: 45e39e61a8 | (Nick Logan)++ | 2 files
Remove unused transcode compiler option

This appears to have only been used by Parrot. Every other backend has their apply_transcodings function in nqp return the original input without any modifications. This change stops passing the transpiler option.
20:00
nqp/ugexe/remove-unused-transcode-option: 379bc81aa9 | (Nick Logan)++ | 4 files
Remove unused apply_transcoding compiler function

This appears to have only been used by Parrot. Every other backend has their apply_transcodings function in nqp return the original input without any modifications. This change removes the apply transcodings function, and the code that called it.
20:09
nqp: ugexe++ created pull request #804:
Remove unused apply_transcoding compiler function
20:10
rakudo/ugexe/remove-unused-transcode-option: aca81e9225 | (Nick Logan)++ | 2 files
Remove unused transcode compiler option

This appears to have only been used by Parrot. Every other backend has their apply_transcodings function in nqp return the original input without any modifications. This change stops passing the transcoding option.
20:11
rakudo: ugexe++ created pull request #5308:
Remove unused transcode compiler option
ugexe When do we need to rebootstrap stage0? 20:12
git grep transcoding
Binary file src/vm/jvm/stage0/NQPHLL.jar matches
Binary file src/vm/moar/stage0/NQPHLL.moarvm matches
(those are matching on a function I removed in the above PRs)
lizmat nine MasterDuke jnthn might know 20:16
ugexe I suspect I'll be fine in this case since I'm deleting the code that would call that function 20:18
20:19 sena_kun left
Geth nqp/ugexe/remove-unused-transcode-option: 1a48ed20b9 | (Nick Logan)++ | 5 files
Remove unused transcode compiler option

This appears to have only been used by Parrot. This change stops passing the transcoding option.
20:24
ugexe patrickb: whats the best way to mark the jvm builds as ignoring failures? and should we? 20:32
Geth rakudo/ugexe/distributionfy-core-dists: e363cb5657 | (Nick Logan)++ | 35 files
Copy modules from lib/ to individual distributions at core-lib/

As the first step of splitting the core modules into multiple distributions we will copy the modules into subdirectories of core-lib/, grouping them in a way that seems logical. In a future step we will incorporate these new paths to various parts of the tooling (since we will need to do -Icore-libs/BUILDPLAN,
  -Icore-libs/NativeCall, and so on) and delete the still existing
lib/ directory.
21:31
23:11 quotable6 left, reportable6 left, coverable6 left, notable6 left, unicodable6 left, committable6 left, benchable6 left, nativecallable6 left, sourceable6 left, linkable6 left, bisectable6 left, releasable6 left, shareable6 left, tellable6 left, greppable6 left, statisfiable6 left, evalable6 left, squashable6 left, bloatable6 left, shareable6 joined, statisfiable6 joined, unicodable6 joined 23:12 notable6 joined, sourceable6 joined 23:13 coverable6 joined, greppable6 joined, squashable6 joined, releasable6 joined, quotable6 joined, bisectable6 joined, nativecallable6 joined, tellable6 joined, committable6 joined, reportable6 joined 23:14 evalable6 joined, linkable6 joined, bloatable6 joined, benchable6 joined