🦋 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
|