🦋 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 00:58 MasterDuke joined 01:35 tbrowder__ left, tbrowder__ joined 01:38 kurahaupo joined
MasterDuke well. i wonder if this is correct. patching DirRecurse.pull-one to use my new stat syscalls (i.e., only call stat once in the method, and use the saved object for subsequent calls), the time reported by `time raku -I . -e 'use Test'` in a directory with 113k files dropped from ~3.2s to ~0.19s 03:07
i'm not sure i trust that 03:10
huh. `Argument 0 to MoarVM syscall 'file-stat' had kind obj, but should be str` when i pass a `str`-typed variable instead of a literal 03:24
hm. i realized the other syscalls have an expected kind of `0` when the arg is a str, but changing that and i still get the same error 03:31
*expected repr
oh, i need to call nqp::decont_s on the arg 03:32
hm. so the file-stat sycall is being called for all the first-level entries in this directory, but nothing deeper... 03:50
anyway, time for bed, will pick this up tomorrow
04:38 ugexe left, ugexe joined 06:00 reportable6 left 06:02 reportable6 joined 06:08 kurahaupo left, kurahaupo_ joined
timo sounds like "is-dir" doesn't give the expected answer perhaps 06:50
07:33 kurahaupo_ left 07:36 kurahaupo joined 07:43 sena_kun joined 08:10 kurahaupo left
timo or perhaps is-reg returns true for dirs 08:16
08:30 kurahaupo joined 08:35 kurahaupo left 08:38 kurahaupo joined 09:17 kurahaupo left 09:21 sena_kun left 09:22 kurahaupo joined
Geth rakudo/main: 3cf10fdcc7 | (Elizabeth Mattijsen)++ | src/core.e/Format.pm6
Reorganize Format a bit

While documenting the Format class, it occurred to me that the "code" method was pretty ambiguous in its naming. Replaced that by the
  "Callable" method. Also removed the .signature method, as that now
more logically falls out of Callable.signature. Kept the "arity" and "count" methods as these are deemed to be more necessary for properly feeding the Callable from different sources (e.g. the .fmt method).
roast: 5241a0188c | (Elizabeth Mattijsen)++ | S32-str/format.t
Adapt Format test following changes in Format class
10:32 linkable6 left, evalable6 left 10:34 linkable6 joined 10:35 evalable6 joined 10:41 kurahaupo left, kurahaupo joined 10:46 ab5tract left
lizmat m: sprintf(q/% #x/,-42) 11:03
camelia ( no output )
lizmat m: say sprintf(q/% #x/,-42)
camelia 0x-2a
lizmat m: say sprintf(q/% #x/,-42).EVAL
camelia ===SORRY!=== Error while compiling /home/camelia/EVAL_0
at /home/camelia/EVAL_0:1
------> 30⏏x-2a
expecting any of:
lizmat I think it's wrong that this doesn't roundtrip
sprintf should have rendered it as "-0x2a" 11:04
m: dd "-0x2a".EVAL # which *does* roundtrip 11:05
camelia -42
timo sounds reasonable
m: say sprintf(q/% #o/, -42) 11:06
camelia 0-52
lizmat that would EVAL but not roundtrip :-)_
timo that looks just totally wrong :D
lizmat m: dd '052'.EVAL 11:07
camelia Potential difficulties:
Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o52'. If you meant to create a string, please add quotation marks.
at /home/camelia/EVAL_0:1
------> 3052⏏<EOL…
timo that as well yeah
i hadn't even seen the # directive before 11:08
11:08 kurahaupo left
lizmat there's probably a lot you don't know about sprintf formats :-) 11:08
timo i wonder if we want something that's a bit less "magic syntax" for creating formatters
like in C there's a whole bunch of constants you can use to "get the right thing" like PRIi64 11:09
Formatter.integer(:base(16), :zero-pad, :min-length(5), :max-length(10)) or whatever 11:11
do we want to support ~ with Format so that it can 1) combine multiple formats and 2) not lose too much of its compiled efficiency when we just concat a string to it 11:12
i guess concating two format strings that refer to their arguments by index could be weird to define 11:13
lizmat you can already concatenate 2 Format strings, as they act as normal strings in every other way 11:14
11:18 kurahaupo joined
timo of course you can 11:20
i just mean if we should handle it in some special way
lizmat I've thought about it, but format strings allow: * and $ 11:21
* means: fetch the value for width or precision as an argument
m: dd sprintf("%*s,-10,"foo")
camelia ===SORRY!=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------> dd sprintf("%*s,-10,"⏏foo")
expecting any of:
lizmat m: dd sprintf("%*s",-10,"foo") 11:22
camelia "foo "
lizmat and then there's $ 11:26
m: dd sprintf(q/%2$s/,"foo","bar")
camelia "bar"
12:00 reportable6 left 12:02 reportable6 joined 12:41 kurahaupo left 12:46 kurahaupo joined
lizmat another sprintf beauty: 14:21
M: dd sprintf(q/%#05x/,1)
m: dd sprintf(q/%#05x/,1)
camelia "000x1"
14:53 kurahaupo left 14:58 kurahaupo joined 15:10 kurahaupo left 15:20 kurahaupo joined 15:28 kurahaupo_ joined 15:29 kurahaupo left, kurahaupo_ left, kurahaupo joined 16:01 kurahaupo left 16:05 kurahaupo joined 16:14 kurahaupo left 16:18 kurahaupo joined 16:25 kurahaupo left 16:30 kurahaupo joined 16:31 kurahaupo_ joined, kurahaupo left 16:32 kurahaupo_ left, kurahaupo joined, kurahaupo left 16:37 kurahaupo joined 16:41 kurahaupo left 16:43 kurahaupo joined 16:44 squashable6 left 16:46 squashable6 joined 16:47 kurahaupo left 16:53 ab5tract joined 17:11 ab5tract left 17:25 sena_kun joined 18:00 reportable6 left 18:03 reportable6 joined 19:03 evalable6 left, linkable6 left 19:04 linkable6 joined 19:05 evalable6 joined 19:25 ab5tract joined 19:57 guifa left 20:08 sena_kun left 20:09 ab5tract left
MasterDuke isn't (s)printf turing complete? 20:39
21:08 squashable6 left 21:11 squashable6 joined
lizmat haven't found a way to have a sprintf change something, or be able to call an altered version of itself 22:44
but maybe I didn't try hard enough?
japhb lizmat: classic C sprintf has the ability to write data into an arg. 22:56
I doubt we would have replicated that
lizmat TIL
japhb I mean, it might as well have a sign on it saying "security hole *here*", so I wouldn't be surprised if its not even supported anymore. 22:58
lizmat pretty sure we don't want that in Raku :-) 22:59
japhb Ah yeah, here it is: n The number of characters written so far is stored into the integer pointed to by the corresponding argument. 23:01
23:11 linkable6 left, evalable6 left 23:12 linkable6 joined, evalable6 joined
Geth rakudo/main: 64c48f6cf3 | (Nick Logan)++ (committed using GitHub Web editor) | README.md
Update badge url to reference the main branch