| ugexe | there aren't any windows specific code paths that i see | 00:46 | |
| i wonder if its specific to msvc and not windows | 00:53 | ||
|
01:02
Aedil left
01:38
topnep left
01:41
topnep joined
01:58
hulk joined,
kylese left
02:02
soverysour joined,
soverysour left,
soverysour joined
02:06
soverysour left
02:15
hulk left,
kylese joined
03:28
vasko4535586 left
03:29
vasko4535586 joined
|
|||
| Voldenet | it starts failing in 2024.01, interestingly `my $j = all($ = <a b c>) ~~ Str:D; $j ~~ Str:D` is False but if you use `$j ~~ Str:D` in REPL afterwards, it's True, using `$env:RAKUDO_OPTIMIZE_NOSM=1; raku` fixes it, but also `$env:RAKUDO_RAKUAST=1; raku` fixes it | 04:00 | |
| erm, I meant `my $j = all(@ = <a b c>); $j ~~ Str:D` windows terminal copying is pain | 04:08 | ||
| to reduce the problem `my $j = all(1); $j ~~ Str:D` doesn't work, `my $j = all(1); $j ~~ Str:D` does | 04:12 | ||
| ugh, running `$j ~~ Str:D` later does | |||
| I meant Int:D, either way, I've just copied the whole output with RAKUDO_OPTIMIZER_SM_DEBUG=1 | 04:20 | ||
| pastebin.com/B6pr5kzw | |||
| `$j ~~ Int` behaves differently, has additional `Try typematch over RHS Int` output | 04:49 | ||
| it's actually funny, there's optimizer bug that fixes the problem with `~~ Int` on windows :D | 05:09 | ||
| however, on windows both Int:D and Int are broken | 05:10 | ||
| > use nqp; say nqp::dispatch('raku-smartmatch', $ = all(1), Int, 1) # False on windows 2026.01, True on linux | 05:11 | ||
|
05:22
wayland joined
05:23
wayland76 left
05:28
atcroft joined
|
|||
| Voldenet | on windows this is 0, on linux this is 1: `use nqp; say nqp::tryfindmethod($ = all(1), <ACCEPTS>).IS-SETTING-ONLY-D` | 05:57 | |
| so this behaves differently github.com/rakudo/rakudo/blob/f1c1....nqp#L4294 | |||
| hint for `Int:D` not working is that in case of `my $j = all(1); say $j ~~ Int`, this line is hit github.com/rakudo/rakudo/blob/f1c1....nqp#L1605 | 06:15 | ||
| in case of `$j ~~ Int:D` it isn't | 06:16 | ||
| The difference between windows and linux is most likely this | 06:19 | ||
| m: use nqp; say nqp::tryfindmethod(Junction, <ACCEPTS>).file # on windows this is `'SETTING::'src/core.c/Mu.rakumod` | 06:20 | ||
| evalable6 | SETTING::src/core.c/Mu.rakumod | ||
| Voldenet | so it looks like that it's some sort of IO difference after all | ||
| in fact, there's plenty of files that use `.starts-with("SETTING::")` so all of these would probably be broken | 06:44 | ||
|
06:54
soverysour joined,
soverysour left,
soverysour joined
|
|||
| patrickb | Oh wow. I would've. never guessed that path differences would hit us this deep down in the guts. | 07:11 | |
| Good find. Thanks, | |||
| ! | |||
|
07:33
Aedil joined
|
|||
| disbot2 | <librasteve> weekly: www.reddit.com/r/CLI/comments/1sic...h_cragcli/ | 07:52 | |
| notable6 | librasteve, Noted! (weekly) | ||
| disbot2 | <librasteve> thought I'd share some Artemis armchair physics ^^ | 07:53 | |
|
07:58
topnep left
08:00
topnep joined
08:06
soverysour left
08:16
soverysour joined,
soverysour left,
soverysour joined
08:22
soverysour left
08:33
Sgeo left
08:35
soverysour joined,
soverysour left,
soverysour joined
08:39
soverysour left
08:48
soverysour joined,
soverysour left,
soverysour joined
08:53
soverysour left
09:14
soverysour joined,
soverysour left,
soverysour joined
09:39
soverysour left
09:52
dakkar joined
10:03
topnep left
10:04
topnep joined
10:20
soverysour joined,
soverysour left,
soverysour joined
10:24
soverysour left
10:28
dakkar left
10:36
soverysour joined
10:41
soverysour left
10:45
annamalai left,
annamalai joined
10:59
soverysour joined,
soverysour left,
soverysour joined
11:03
soverysour left
12:03
soverysour joined
12:08
soverysour left,
topnep left
12:09
topnep joined
12:37
soverysour joined,
soverysour left,
soverysour joined
12:41
soverysour left
13:08
soverysour joined,
soverysour left,
soverysour joined
13:25
soverysour left
|
|||
| ugexe | Voldenet: hmm i wonder if there are two parts to that issue then | 14:14 | |
| either way nice find. claude started taking me in that direction and i insisted it check other things | 14:15 | ||
| but looking at github.com/rakudo/rakudo/commit/95770d31 | 14:16 | ||
| it seems like the -U and -D candidates have their logic reversed | |||
| Voldenet | well, the most important part is that raku-smartmatch not working properly | ||
| ugexe | which would be the first problem. the second problem would be when they fall into that .starts-with() code | 14:17 | |
| and that not working | |||
| but the -U candidate for instance has | |||
| next unless $invocant-type.^archetypes.definite | |||
| && $invocant-type.^definite; | |||
| for a -U candidate i would expect it to s/unless/if/ | |||
| the -D candidate has a similar conditional in the other direction | 14:18 | ||
| that should be broken on all platform presumably | 14:19 | ||
|
14:25
soverysour joined,
soverysour left,
soverysour joined
|
|||
| ugexe | maybe i'm just assuming too much. claude says i'm wrong | 14:25 | |
| Voldenet | hm, that part looks fine IMO, the logic is just weird to read | 14:27 | |
| but it's regular search that does `for @things { next if wrong; next unless right; return 0; }; return 1` | |||
| ugexe | yeah, makes sense | 14:28 | |
| Voldenet | hm | ||
| yeah, the only part that could fail weirdly is that 'SETTING' thing | 14:29 | ||
| ugexe | just slap in a .starts-with("SETTING::" | "'SETTING::') and ship it :P | 14:30 | |
| Voldenet | i hear you like junctions, so you put a junction inside a problem with junctions ;> | 14:32 | |
| ugexe | On Windows, the shell doesn't use single quotes the same way. In cmd.exe, single quotes are literal characters, not string delimiters. So -p 'SETTING::' on Windows would set $prefix to 'SETTING::' (with the quotes included!). | ||
| Voldenet | but the same logic would have to land in Routine.rakumod and Backtrace.rakumod | ||
| ugexe | specifically `@bpm(NQP)@ @bpm(GEN_CAT)@ -p 'SETTING::' -f @nfpq(...)@` in the makefile | 14:33 | |
| Voldenet | i've danced around similar problem and the only sane solution on windows was to use file | ||
| probably the best solution would be not even doing any sort of string checking | 14:37 | ||
| but somehow marking the methods as core ones, though that would consume memory for a few rare checks | 14:40 | ||
| maybe simply having that `'SETTING::'` or SETTING:: as constant depending on the env would work | 14:41 | ||
| ugexe | it'd probably work but doesn't seem ideal | 14:47 | |
| Voldenet | well, it'd be definitely cleaner to fix the root cause :> | ||
| ugexe | i wonder if we can just remove the single quotes from the make file for that line | 14:48 | |
| Voldenet | that'd work, SETTING:: doesn't need to be quoted anyhow | 14:50 | |
| ugexe | for instance if i was writing makefile code like that i'd probably defensively add quotes like that | ||
| so they might not be there for a good reason | |||
| Voldenet | "SETTING::" would probably work too | 14:51 | |
| ridiculously enough, on old windows command line running raku code requires quoting code with "" (instead of '') | 14:54 | ||
| e.g. raku -e "my $x = 42; say $x" | 14:55 | ||
| ugexe | that i'm actually already familiar with | 15:05 | |
| although i didn't know ' was working on newer windows | 15:06 | ||
| Voldenet | actually, on powershell | 15:08 | |
| ugexe | yeah, i thought ' always worked with powershell | 15:09 | |
| Voldenet | '' works on powershell, but "" no longer works on powershell, of course, because it's interpolated | ||
| it doesn't solve fundamental problem of having one argument to CreateProcessW, so | 15:11 | ||
| quoting is still as bad | 15:12 | ||
| ugexe | the worst part is always writing out the one liner, then realizing you need to switch the quotes which means you need to switch all your other quotes | 15:13 | |
| i use e.g. q|| a lot when writing one liners from all the pain that caused me years ago working on windows | |||
| Voldenet | q<> is nicer, i also quote strings with <> on windows | 15:16 | |
| ugexe | presumably github.com/rakudo/rakudo/pull/6110 works | 15:26 | |
| Voldenet | btw, I'm not sure if it breaks optimizations for definite types like Str:D and Int:D | 15:27 | |
| I'm sure it breaks smartmatching (optimizations aside) | 15:28 | ||
| ugexe | i assumed optimization is involved due to that _NOSM environment variable | 15:29 | |
| Voldenet | I didn't check extensively what's the difference between Str:D and Str | 15:30 | |
|
15:45
soverysour left
|
|||
| Voldenet | it seems that Optimizer in case of Str:D doesn't return true on this line github.com/rakudo/rakudo/blob/f1c1....nqp#L2126 | 15:45 | |
|
15:45
soverysour joined
15:55
soverysour left
16:01
soverysour joined
16:21
vrurg_ joined
16:23
vrurg left
16:25
soverysour left,
soverysour joined
16:26
soverysour left
16:27
soverysour joined,
soverysour left,
soverysour joined
16:38
soverysour left
18:12
soverysour joined
18:17
soverysour left
18:20
Sgeo joined
18:25
topnep left
18:26
topnep joined
18:58
abraxxa joined,
abraxxa left
19:18
avuserow joined,
avuserow left,
avuserow joined
|
|||
| avuserow | m: class Foo {has $.a; method test {$.a = 5}}; my $f = Foo.new; $f.test; say $f.a | 19:19 | |
| evalable6 | (Any) | ||
| avuserow | bisect: class Foo {has $.a; method test {$.a = 5}}; my $f = Foo.new; $f.test; say $f.a; | 19:20 | |
| bisectable6 | avuserow, Will bisect the whole range automagically because no endpoints were provided, hang tight | ||
| avuserow, Output on all releases: gist.github.com/aff4b8b5c5faef441e...abb1a91ed8 | 19:21 | ||
| avuserow, Bisecting by exit code (old=2025.01 new=2025.02). Old exit code: 1 | |||
| avuserow, bisect log: gist.github.com/918e2993cb0d231c66...2598b94230 | |||
| avuserow, (2025-02-15) github.com/rakudo/rakudo/commit/a6...c5ffe83e68 | |||
| avuserow, Bisecting by output (old=2018.10 new=2018.11) because on both starting points the exit code is 1 | |||
| avuserow, bisect log: gist.github.com/8630176fa5bb22327f...a3d454bcf3 | 19:22 | ||
| avuserow, (2018-11-06) github.com/rakudo/rakudo/commit/e6...962b3f0e96 | |||
| avuserow, Bisecting by output (old=2017.05 new=2017.06) because on both starting points the exit code is 1 | |||
| avuserow, bisect log: gist.github.com/3fdfbc6454bd705ada...3c592f98e5 | |||
| avuserow, (2017-05-26) github.com/rakudo/rakudo/commit/0c...f1a759afee | |||
| avuserow, ⚠ New output detected, please review the results manually | |||
| avuserow, Output on all releases and bisected commits: gist.github.com/aad9d33bb5bd8450d2...e38458376f | |||
| avuserow | I filed github.com/rakudo/rakudo/issues/6113 (assuming this is a regression, seems LTA that it fails without a warning or anything) | 19:29 | |
| I need to fix my IRC client, so feel free to ping me on GitHub or Mastodon if I'm not here :) | 19:30 | ||
| lucs | Um, how do we get private `m:` attempts? No more camelia, and evalable6 appears not to be the way. | 19:34 | |
|
19:40
avuserow left
20:12
avuserow joined,
avuserow left
|
|||
| [Coke] | m: 3.say | 20:25 | |
| evalable6 | 3 | ||
| [Coke] | OH, I misunderstood, | ||
| you can use #whateverable, probably | |||
| more private. | |||
| c: 577a04ae4 3.say | 20:26 | ||
| committable6 | [Coke], ¦577a04a: «3» | ||
| [Coke] | that bot gives you a selection of builds to try from, also | ||
|
20:36
lichtkind joined
20:39
itaipu joined
20:43
avuserow joined
|
|||