🦋 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:03 reportable6 joined 01:09 reportable6 left, tellable6 left, coverable6 left, sourceable6 left, committable6 left, shareable6 left, nativecallable6 left, releasable6 left, statisfiable6 left, evalable6 left, greppable6 left, benchable6 left, unicodable6 left, bloatable6 left, linkable6 left, quotable6 left, notable6 left, squashable6 left, bisectable6 left, squashable6 joined, reportable6 joined, linkable6 joined, bisectable6 joined 01:10 statisfiable6 joined, quotable6 joined, benchable6 joined, shareable6 joined 01:11 committable6 joined, greppable6 joined, unicodable6 joined, evalable6 joined 01:12 notable6 joined, coverable6 joined, bloatable6 joined, nativecallable6 joined, tellable6 joined, sourceable6 joined, releasable6 joined 02:22 linkable6 left, evalable6 left 02:23 evalable6 joined
MasterDuke hm. 'exists' isn't quite like the other stat calls. the other ones all throw an exception if the file doesn't exist, and require a concrete object that's the result of a successful stat 02:39
i could just have 'exists' redo the stat and not throw an exception, which is how it's currently done 02:40
but then it's the only one that wouldn't need to take a stat struct as an argument and could(should?) instead just take a path 02:42
i'm not quite sure how much i should have the syscalls mimic moarvm's api or rakudo's api 02:44
i was going to pr my moarvm and rakudo changes, but now i think it needs a little more thought. it wouldn't be major changes either way (i don't think), but it's a little too late for me to be sure i've got all the possibilities covered 02:46
04:00 linkable6 joined 06:00 reportable6 left 06:02 reportable6 joined 07:02 evalable6 left 07:03 evalable6 joined 07:43 sena_kun joined 08:12 ab5tract joined
Geth rakudo/main: 5fa96e3755 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6
RakuAST: handle synthetics in Markup parser properly

The initial implementation assumed that one could use the same index in both the Uni representation, as well as an index in nqp::eqat. Synthetic codepoints break this assumption, as they are always decoded as decomposed.
... (6 more lines)
rakudo/main: 7d037bbb42 | (Elizabeth Mattijsen)++ | src/core.c/RakuAST/Fixups.pm6
RakuAST: fix off-by-one error on << >> parsing
09:26 sena_kun left
lizmat notable6: weekly 10:06
notable6 lizmat, 1 note: 2023-06-26T19:54:27Z <lizmat>: dev.to/lizmat/moving-printf-format...rward-1m3p
lizmat notable6: weekly reset
notable6 lizmat, Moved existing notes to “weekly_2023-07-03T10:06:35Z”
10:16 ab5tract left 11:16 reportable6 left, linkable6 left, benchable6 left, evalable6 left, committable6 left, unicodable6 left, nativecallable6 left, squashable6 left, bloatable6 left, bisectable6 left, notable6 left, releasable6 left 11:17 reportable6 joined, committable6 joined 11:18 releasable6 joined, linkable6 joined 11:19 notable6 joined, bisectable6 joined 12:00 reportable6 left 12:19 nativecallable6 joined 12:20 squashable6 joined 12:23 evalable6 joined
Geth ¦ nqp: patrickbkr self-assigned CI pipeline is broken github.com/Raku/nqp/issues/805 12:32
lizmat And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2023/07/03/2023-...g-rakudoc/ 12:58
13:10 reportable6 joined
Xliff I am still having issues with "Malformed UTF8 characters" in my react block. 13:25
"react { whenever $proc.stdout {} and whenever $proc.stderr {} ... }" seem to be the culprits. 13:26
How can I isolate these so that they do NOT kill my script. It's critical I get this fixed and working so I can show $dayJob raku is Production ready!
lizmat are you 100% sure the process doesn't produce invalid UTF8 ? 13:29
Xliff No. 13:30
But I don't care if the Proc produces invalid UTF8. 13:31
Maybe put stdout and stdin into :bin somehow?
lizmat docs.raku.org/type/Proc#routine_new shows a :bin arg 13:33
and run does as well: docs.raku.org/type/independent-routines#sub_run
nemokosch I regularly just piped the process into iconv and ignored the non-compliant characters xD 13:43
Xliff lizmat: Doesn't look like Proc::Async.new does, but I think the .stderr and .stdout methods do, so that's what I'm going to try. Thanks! 13:45
15:00 sjn left, sjn joined 15:12 ab5tract joined 15:23 ab5tract left 16:13 benchable6 joined
Geth roast: d504d52613 | (Elizabeth Mattijsen)++ | S32-list/repeated.t
Remove unneeded =finish

Probably leftover from some debugging
rakudo/main: b17f9c1c78 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: make =finish a directive

As discussed in
following Damian's comments
timo m: say Format ~~ Callable 16:41
camelia ===SORRY!=== Error while compiling <tmp>
Expected a term, but found either infix ~~ or redundant prefix ~
(to suppress this message, please use a space like ~ ~)
at <tmp>:1
------> say Format ~~⏏ Callable
timo ... man i haven't rakued properly in too long 16:42
oh, i made a different mistake than i thought 16:43
m: use v6.e.PREVIEW; say Formatter ~~ Callable # lizmat, should Callable be does-ed by Formatter? 16:44
camelia False
lizmat no, don't think so?
it is not a Callable, it produces one ? 16:45
timo oh then 16:46
m: use v6.e.PREVIEW; say Format ~~ Callable # lizmat, should Callable be does-ed by Format?
camelia False
timo i probably confused the two
lizmat m: use v6.e.PREVIEW; say Formatter.new('%s') ~~ Callable
camelia True
timo ah, oh
lizmat maybe Formatter shouldn't be a class 16:47
but just a package holding Formatter::Grammar and Formatter::Actions 16:48
actually: Formatter::Syntax 16:49
fwiw, in the back of my mind I thought of Formatter.new also accepting a :grammar and an :actions argument in the future 16:50
timo yeah, something to allow custom syntaxes for format strings to be put in the ecosystem would be nice 16:51
lizmat with defaults on dynamic variables
timo have something that does for format strings what rakudo grammars did to regexes
lizmat anyways, I'm glad it's working as much as it is, although I have still some issues to fix in it 16:52
leont Remind me, what's the minimum Rakudo version when you want to use RakuAST in a module? 16:59
timo the docs.raku.org page on it says "available from language version `6.e+`" which kind of makes it sounds like we have a version 6.e and a different version 6.e+ 17:12
17:30 squashable6 left
timo version 6.e+ and related RakuAST features are only available to subscribers to RakuPRO:tm: 17:35
17:44 sena_kun joined 17:55 unicodable6 joined
MasterDuke Xliff: does whatever Proc-related function you're using have an `:enc` option? if so (or you can use one that does), maybe `:enc('utf8-c8')` would help 18:00
18:00 reportable6 left
MasterDuke unrelated to that, anyone have thoughts/suggestions about how to handle `nqp::const::STAT_EXISTS` functionality with my new syscall mechanism? 18:02
18:02 reportable6 joined
ugexe hmmm. it looks like nodejs uses access instead of stat to test for existence 18:10
github.com/nodejs/node/blob/22da09...25-L300C29 18:11
regardless, it returns a bool based on if there was an error or not and doesn't return a stat structure 18:20
lizmat leont: rakudo.org/post/announce-rakudo-release-2023.02 was the first to have "use experimental :rakuast 18:27
MasterDuke ugexe: yep, for the other stat functions i'm acting on a stat struct/repr object that was saved from an initial call, which will throw an exception if the file doesn't exist (not functionality i added, i'm just using the existing moarvm functions) 18:34
so i do something like: my $s = nqp::syscall('stat'); say nqp::syscall('stat-filesize', $s);`, which doesn't perform another actual stat call in the stat-filesize implementation 18:36
but for `nqp::syscall('stat-exists')`, i would have to call it again and not throw an exception (which is how it's implemented currently in moarvm). but then it sort of breaks the assumption that one stat is performed and all the other stuff is based on the results from that 18:37
but i haven't yet looked very closely at what exactly raku/rakudo does, so maybe it'll be easier to implement that how i'm thinking than the current nqp:: op's functionality 18:39
18:42 squashable6 joined
Geth rakudo/main: a31bdc7813 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: fix typo in exception handling call
20:29 Altai-man joined 20:31 sena_kun left 21:20 bloatable6 joined
Geth rakudo/rakuast-phase-cleanup: 12 commits pushed by (Jonathan Worthington)++
review: github.com/rakudo/rakudo/compare/f...3783b52a51
japhb Huh, that isn't a terribly useful comparison link, Geth. 21:42
Xliff MasterDuke: That's another thought. Thanks! Right now I am using .stderr/.stdout with (:bin) 21:47
Is UTF8 the only encoding that will throw a fatal exception? 21:48
22:22 Altai-man left
lizmat japhb: looks like it was mostly a rebase 22:51
23:22 evalable6 left, linkable6 left 23:35 ilogger2 left 23:36 ilogger2 joined