🦋 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
sjn joined,
tbrowder__ joined,
timo joined,
|Tux| joined,
reportable6 left,
ugexe joined
00:01
reportable6 joined
00:03
jgaz joined
00:05
guifa joined
00:27
jgaz left
00:29
jgaz joined
00:55
MasterDuke joined
|
|||
MasterDuke | `Type check failed in assignment to $s; expected Stat but got BOOTStat (BOOTStat)`. i'm now trying to create an actual class in raku and use it, but even wrapping the result of the nqp::dispatch("boot-syscall", "file-stat", "<path>") in nqp::hllizefor still give this error | 01:07 | |
where my experimentation looks like: `class Stat is repr("Stat") { method is-dir(::?CLASS:D:) { use nqp; nqp::dispatch("boot-syscall", "stat-is-dir", self) }; }; IO::Path.^add_method("stat", method (IO::Path:D:) { use nqp; my Stat $s = nqp::dispatch("boot-syscall", "file-stat", nqp::decont_s(self.absolute), 0); return $s } ); IO::Path.^compose; my | 01:09 | ||
$s = "TODO".IO.stat; say $s.is-dir` | |||
timo | the file-stat syscall could take a type as argument and create an instance of that, then you don't need to add an hll type and entries to hll structs and all that | 01:23 | |
i think maybe Stat is "special" enough that it doesn't need to get support from the hll mechanism | 01:24 | ||
MasterDuke | not sure what you mean | ||
i don't know what other types we would want to create from file-stat | |||
timo | Stat instead of BOOTStat | 01:25 | |
in fact, if the Stat-repred type is passed to the file-stat syscall, there doesn't need to be a BOOTStat at all | |||
the BOOT types are useful for when the code is run too early to have the "proper" types that are defined somewhere in nqp and/or rakudo, since we can't create an instance of something without having the class for it, and creating "proper" classes kind of needs nqp or raku code | 01:30 | ||
MasterDuke | well, would this be simpler if i actually did it in rakudo instead of at runtime (which was just to make testing faster)? | 01:34 | |
timo | i'm not sure what you mean by "in rakudo" and "at runtime" | 01:39 | |
MasterDuke | i was just running the above code via `raku -e '...'`, which is why i needed the `^compose`. but if i stick it in IO/Path.pm6, would anything change? | 01:44 | |
timo | no, there is currently nothing that makes file-stat able to return a Stat instead of a BOOTStat | 01:47 | |
hllizefor relies on a little "registry" that stores a type for a "role", and for the BOOTStat type to also have the same role | 01:48 | ||
without all that, hllizefor will just be a no-op and cause the type mismatch you see | |||
passing in the type you want as an argument to the file-stat syscall lets you bypass all that | 01:49 | ||
added bonus: if you check if it's a type object or an instance, an existing instance could be overwritten with no need to allocate if you keep the Stat around between file-stat calls | 01:50 | ||
MasterDuke | hm, interesting. thanks, i'm afk now, but will play with that later | 01:51 | |
04:13
nativecallable6 left,
evalable6 left,
sourceable6 left,
statisfiable6 left,
benchable6 left,
coverable6 left,
notable6 left,
squashable6 left,
bloatable6 left,
quotable6 left,
greppable6 left,
committable6 left,
releasable6 left,
unicodable6 left,
linkable6 left,
bisectable6 left,
reportable6 left,
tellable6 left,
shareable6 left
04:14
evalable6 joined,
shareable6 joined,
notable6 joined,
tellable6 joined,
sourceable6 joined,
coverable6 joined,
unicodable6 joined
04:15
statisfiable6 joined,
committable6 joined,
bisectable6 joined,
quotable6 joined,
linkable6 joined,
reportable6 joined,
greppable6 joined,
nativecallable6 joined,
bloatable6 joined,
benchable6 joined
04:16
releasable6 joined,
squashable6 joined
04:33
nebuchadnezzar left,
nebuchadnezzar joined
06:00
reportable6 left,
reportable6 joined
06:28
dogbert11 joined
06:29
dogbert17 left
07:17
dogbert11 left
07:25
dogbert11 joined
08:49
sena_kun joined
09:49
linkable6 left,
evalable6 left,
linkable6 joined
09:51
evalable6 joined
11:33
lucs left
11:34
lucs joined
12:00
reportable6 left,
reportable6 joined
12:05
ab5tract joined
|
|||
Geth | rakudo/main: 90aa9c66da | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6 RakuAST: fix issue with recursive markup Specifically, if outer markup was using < or <<, and inner markup was using «, then the end » would not be detected, causing misparsing and a worry. Also improve the wording of said worry. |
12:58 | |
13:05
linkable6 left,
evalable6 left,
evalable6 joined
13:07
linkable6 joined
|
|||
Geth | rakudo/main: 2c2c4d4e8a | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/LegacyPodify.pm6 RakuAST: fix podification of embedded markup after newline |
13:21 | |
timo | MasterDuke: reminder to make sure the dir recurse and whatnot handle files with terrible filenames by using utf8-c8, for example when you `touch $(printf "\xFE\xFF")` and other invalid utf8 nonsense | 13:24 | |
the result when printed would look like "xFExFF".IO that is how rakudo prints stuff that was decoded with utf8-c8 and then encoded as utf8 | 13:47 | ||
since ideally you wouldn't print bytes that aren't valid utf8 to stdout, that's just politeness | 13:48 | ||
13:58
sena_kun left
14:00
sena_kun joined
|
|||
Geth | rakudo/main: 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. |
14:06 | |
rakudo/main: 1b460be191 | (Nick Logan)++ (committed using GitHub Web editor) | 3 files Merge pull request #5306 from rakudo/ugexe/remove-nqp-lib-leftovers Remove deprecated --nqp-lib option |
|||
rakudo/main: c7e6e5af8d | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6 RakuAST: make check for meta depend on *last* | seen This allows | to be used in the lemma of L< and X< without needing to escape them. |
|||
rakudo/ugexe/distributionfy-core-dists: 339d905851 | (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. |
14:46 | ||
rakudo/ugexe/distributionfy-core-dists: 7a8b7d2276 | (Nick Logan)++ | 131 files Update tests to use core-libs/ Now that the modules in lib/ have been broken into multiple distributions inside of core-libs/ we need to actually use them. Previously this would have been handled via e.g. t/harness5 using PERL6LIB=lib. However, a single directory cannot always represent all the core distributions, so there are many cases where not ... (14 more lines) |
|||
15:03
dogbert11 left
15:50
Xliff joined
|
|||
Xliff | Raku-GLib suite timing statistics for Raku 2023.06.32.g.101.d.3.ca.5.d.0 | 15:50 | |
Using the following processor: 13th Gen Intel(R) Core(TM) i9-13900K | |||
Total number of projects: 33 (506183 loc) | |||
Total non-parallel compile times: 5434.090 (164.669 avg) | |||
Total parallel compile times: 1002.853 (30.389 avg) 5.419x speedup | |||
Geth | rakudo/main: d72c562dfe | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6 RakuAST: a better way to extract meta-info from markup Take the last atom: it *must* be a Str because we don't allow markup in the meta of L<> and X<>. Split that on the first | seen (which could well be the first character). Use that as meta. Adjust atom accordingly, or remove it if it has now become empty. This fixes some corner cases in the Raku documentation, but breaks other cases, such as L<foo::(bar|baz)|url>, which will now have to be written as L<V<foo::(bar|baz)>|url>, which sadly isn't rendered correctly by Pod::To::Text. |
16:10 | |
rakudo/main: 15f9685b0c | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6 RakuAST: fixed borked (private) method call |
16:12 | ||
lizmat | meh, tests didn't spot that | ||
16:16
SmokeMachine left,
SmokeMachine joined
17:25
ab5tract left
|
|||
nine | MasterDuke: I don't see a need for hllizefor. Your Raku class can just wrap the otherwise opaque BOOTStat object. Same as IO::Handle just stores the !PIO and passes it to nqp ops | 17:29 | |
17:51
bisectable6 left
17:53
bisectable6 joined
18:00
reportable6 left,
bisectable6 left
18:01
reportable6 joined
18:02
bisectable6 joined
|
|||
Geth | ¦ problem-solving: finanalyst assigned to coke Issue POD6 to RakuDoc revision process github.com/Raku/problem-solving/issues/375 | 18:17 | |
rakudo/main: 1beeb166ad | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6 RakuAST: fix handling of L<C<foo>> Aka, a L<> or X<> with a markup code and *no* | or meta info. This could be considered a user error, but it should handle this without dying. |
18:59 | ||
19:13
bisectable6 left
19:15
bisectable6 joined
|
|||
Geth | rakudo/main: 1b68eb7d95 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6 RakuAST: handle E< > more friendly aka, just whitespace between < >. Parse this more friendly by just leaving the atom in place without any meta information. |
19:34 | |
21:23
vrurg left
21:39
sena_kun left
21:56
vrurg joined
22:17
bisectable6 left
22:20
bisectable6 joined
23:52
linkable6 left,
evalable6 left,
evalable6 joined
23:55
linkable6 joined
|