00:18 vasko453558 joined 00:25 arkiuat left 00:32 arkiuat joined 00:40 arkiuat left 00:54 arkiuat joined
japhb That last one is good. Kinda quiet, like a cozy winter day. 00:59
01:11 johnjaye left 01:20 johnjaye joined
disbot5 <antononcube> Yeah, but it does not hint to Raku much. 01:23
01:32 johnjaye left 01:37 johnjaye joined 02:06 hulk joined 02:07 kylese left 02:23 human_blip left 02:25 human_blip joined 02:33 johnjaye left 02:34 johnjaye joined 02:39 johnjaye left
japhb antononcube: Maybe add the butterfly as a watermark or something similarly subtle? 02:40
02:47 johnjaye joined 02:59 arkiuat left 03:01 librasteve_ left 03:07 arkiuat joined 03:12 arkiuat left 03:15 hulk left, kylese joined 03:33 arkiuat joined 03:37 arkiuat left 03:45 arkiuat joined 03:55 Aedil joined 04:17 human_blip left 04:19 human_blip joined 04:21 human_blip left
arkiuat so I know that infix:<%> is for Numeric and that we should only apply infix:<mod> to Int, but both of them seem to work fine on all Numerics, but just give different results in some cases. 04:41
m: .say for -pi % 1, -pi mod 1 04:42
camelia 0.8584073464102069
-0.14159265358979312
arkiuat None of the differences seem to be tested for in roast, and maybe these differences are left out of the language spec deliberately, but I'm just curious about why
Voldenet seems like % does what programmers would expect (return reminder) and mod does what matematicians would expect (return modulo) 04:44
remainder, even
hmmm actually 04:45
m: .say for -10 mod 60, -10 % 60 # I was wrong it seems 04:46
camelia 50
50
arkiuat huh, well, you made me realize that the results for -pi are respectively the floor and the ceiling of (-pi/1) subtracted from -pi 04:47
m: .say for -pi - (-pi/1).floor, -pi - (-pi/1).ceiling 04:48
camelia 0.8584073464102069
-0.14159265358979312
04:49 johnjaye left
Voldenet % does "numeric modulo" and mod does "integer modulo" – there seems to be some distinction 04:49
though having both remainder and modulo operators would be sane
04:50 lichtkind_ joined
arkiuat right, but the tests in roast that are different only throw a couple of Rats at infix:<%> and a couple of very large Ints at infix:<mod>. There's nothing testing for this particular distinction 04:50
04:51 johnjaye joined
Voldenet (I mean, there seems to be distinction in docs) 04:52
arkiuat really? all I could find in docs was that one of them is for Int, and the other coerces to Numeric first 04:53
04:53 lichtkind__ left
Voldenet see for yourself: docs.raku.org/language/operators#infix_% 04:54
arkiuat it does give the .floor identity for that one yes, but says nothing about .ceiling for the other
anyone reading would assume that the same identity was supposed to apply to both 04:55
Voldenet in fact, mod for numerics doesn't seem specified at all 04:57
if it was actually coercing its operands to Int, it'd be 0
arkiuat right, infix:<mod> doesn't coerce, although we're told it's for Int 04:58
we're only told that infix:<%> coerces to Numeric
Voldenet > github.com/rakudo/rakudo/blob/main...kumod#L144 04:59
arkiuat ah, thank you!
Voldenet so it literally is not specified anywhere 05:00
arkiuat m: .say for &infix:<mod>.candidates, &infix:<%>.candidates 05:06
camelia (&infix:<mod> &infix:<mod>)
(&infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%> &infix:<%>)
arkiuat so there may be other versions of infix:<%> running around than just what's there in the definition of role Real 05:07
m: .say for &infix:<mod>.candidates.elems, &infix:<%>.candidates.elems 05:08
camelia 2
13
05:13 melezhik joined
arkiuat I just checked though, and those 13 are all just for different subtypes of Real, include natives and Duration 05:13
and couple or three rudimentary signatures that might just be to generate the right kind of Failure 05:15
05:15 human-blip joined 06:30 arkiuat left 06:44 arkiuat joined 06:48 arkiuat left 07:18 arkiuat joined 07:23 arkiuat left 07:36 sjn left 07:45 Sgeo_ left 07:51 arkiuat joined 07:56 arkiuat left 07:58 Aedil left 08:04 arkiuat joined 08:09 arkiuat left 08:19 arkiuat joined 08:21 abraxxa joined 08:23 arkiuat left 08:24 abraxxa2 joined 08:25 arkiuat joined
disbot5 <librasteve> arkuiat: good question, I vaguely remember coming across this when adding compass directions in Physics::Navigation … thought I’d ask my friend chat-jippity what is going on chatgpt.com/share/69256797-df78-80...c94197934f 08:25
08:27 abraxxa left
disbot5 <librasteve> arkuiat: I would say that a (very) small part of that such as the summary table or the examples would improve the Raku docs … would you be OK to make a PR? 08:27
08:32 johnjaye left, abraxxa joined 08:34 arkiuat left 08:35 arkiuat joined, abraxxa2 left 08:39 arkiuat left 08:40 johnjaye joined 08:46 arkiuat joined 08:50 arkiuat left 09:08 arkiuat joined 09:09 dakkar joined 09:19 arkiuat left 09:29 eseyman left 09:40 disbot5 left 09:41 disbot6 joined 09:44 arkiuat joined 09:48 arkiuat left 10:01 abraxxa1 joined 10:03 abraxxa2 joined, arkiuat joined 10:05 abraxxa left 10:06 abraxxa1 left 10:08 arkiuat left 10:14 arkiuat joined 10:18 arkiuat left 10:32 melezhik left 10:33 tgt joined 10:35 tgt left 10:36 arkiuat joined 10:40 arkiuat left
Voldenet in this specific example it might seem that % is remainder and mod is modulo, however it's simply weird 10:42
m: .say for -7.7 % 1.9, -7.7 mod 1.9 # so far so good
camelia 1.8
5.6
Voldenet m: .say for -7.7 % 2.1, -7.7 mod 2.1 # ????
camelia 0.7
0.7
10:43
10:54 johnjaye left 10:55 johnjaye joined 11:09 arkiuat joined 11:12 abraxxa joined 11:14 arkiuat left, abraxxa2 left 11:17 abraxxa1 joined 11:20 abraxxa left 11:24 Aedil joined 11:25 melezhik joined 11:32 arkiuat joined 11:36 arkiuat left 11:49 arkiuat joined 11:53 arkiuat left 11:55 holyghost left 12:01 abraxxa2 joined 12:02 arkiuat joined 12:04 abraxxa1 left 12:07 arkiuat left 12:08 arkiuat joined 12:15 arkiuat left 12:20 arkiuat joined 12:25 arkiuat left 12:27 abraxxa joined 12:30 abraxxa2 left 12:31 arkiuat joined, abraxxa1 joined 12:33 abraxxa left 12:38 arkiuat left 12:39 arkiuat joined 12:45 arkiuat left 12:51 manu_ joined 13:03 arkiuat joined 13:12 arkiuat left 13:17 arkiuat joined 13:32 arkiuat left 13:45 arkiuat joined 13:49 arkiuat left 13:57 arkiuat joined 14:00 abraxxa joined 14:02 arkiuat left 14:03 abraxxa1 left 14:34 arkiuat joined 14:39 arkiuat left 14:40 melezhik_ joined 14:42 itaipu left 14:50 swaggboi left 14:53 arkiuat joined 14:56 itaipu joined 14:57 sjn joined, arkiuat left
ab5tract I just realized that if the structs-by-value stuff in Moar gets merged soon, I can write an updated advent post but with unicode snowflakes instead of asterisks 14:59
15:00 arkiuat joined 15:03 sjn left, abraxxa left 15:04 arkiuat left 15:05 abraxxa joined 15:13 arkiuat joined 15:18 swaggboi joined 15:24 sjn joined
patrickb curious: how are structs-by-value connected to Unicode snowflakes? 15:31
disbot6 <librasteve> Voldenet: I was initially bemused by the % vs mod rounding ... but the chatGPT I referenced has an explanation (that I haven't double checked) in relation to continuous functions vs. eg compass direction modulo ... does that explanation make sense to you (or am I gullible and naive)? 15:54
16:12 abraxxa left
ab5tract patrickb: because Raylib takes a value struct for the functions related to loading Unicode glyphs 16:15
patrickb ah! raylib, not terminal print 16:16
ab5tract right :) 16:18
sorry, I guess it's actually a sequel post to a sequel post at this point :)
16:30 melezhik_ left 16:40 melezhik_ joined 16:47 melezhik_ left, melezhik_ joined
lizmat ++ab5tract 16:57
ab5tract .seen MasterDuke17 17:02
tellable6 ab5tract, I saw MasterDuke17 2025-10-26T21:38:28Z in #moarvm: <MasterDuke> but afk for a while &
ab5tract appropriate :) 17:03
disbot6 <antononcube> Maybe not serene enough, but, well, I got tired trying to convince ChatGPT and Grok to make a good "serene snowing silent night" image... 17:07
<antononcube> cdn.discordapp.com/attachments/633...5cef6&
ab5tract patrickb: do you know if there are any NativeCall-level changes required to get the struct-by-value magic going? 17:12
hmm, MasterDuke's branch doesn't compile when rebased to latest MoarVM 17:13
disbot6 <antononcube> Please (and vote or modify) Raku Advent 2025 images here: imgur.com/a/raku-2025-advent-revie...es-4jZ9LCD 17:14
ab5tract or maybe I bungled something when rebasing
arkiuat librasteve, yeah, no, I'm not gonna do that. Whatever the distinction may be, it's not tested for in roast, therefore not part of the specification, therefore I won't be trying to document it 17:15
17:36 melezhik_ left, melezhik_ joined 17:42 melezhik_ left, dakkar left 17:53 leah2 left 18:05 johnjaye left 18:11 johnjaye joined 18:12 melezhik left 18:15 arkiuat left 18:16 arkiuat joined 18:21 arkiuat left 18:22 melezhik_ joined 18:27 melezhik_ left 18:33 melezhik_ joined 18:35 arkiuat joined 18:40 melezhik_ left, arkiuat left 18:44 melezhik_ joined 18:46 leah2 joined 18:48 melezhik_ left 18:52 Aedil left 18:55 abraxxa-home joined 18:56 abraxxa-home left 18:57 johnjaye left 18:58 abraxxa-home joined 18:59 johnjaye joined 19:07 arkiuat joined 19:09 melezhik joined
patrickb ab5tract: Yes, there need to be NativeCall changes. The syntax needs to be extended to allow to differentiate pass-by-value and pass-by-reference. 19:15
19:15 melezhik_ joined
patrickb That info needs to be passed down to the place in Moar that performs the actual dynamic call. 19:15
And that's about it.
19:19 melezhik_ left 19:29 arkiuat left 19:35 abraxxa-home left 19:38 tgt joined, tgt left 19:42 arkiuat joined 19:46 arkiuat left 19:50 abraxxa-home joined 19:57 arkiuat joined 20:01 arkiuat left 20:05 arkiuat joined 20:12 arkiuat left 20:14 arkiuat joined 20:18 arkiuat left 20:19 arkiuat joined 20:21 manu_ is now known as eseyman 20:24 arkiuat left 20:25 arkiuat joined 20:26 abraxxa-home left 20:30 arkiuat left 20:31 arkiuat joined 20:37 arkiuat left 20:40 stanrifkin joined 20:58 arkiuat joined 21:03 arkiuat left 21:10 melezhik left