| [Coke] | bisected to github.com/rakudo/rakudo/commit/95770d31 | 00:24 | |
| timo | return 0 unless &cand.file.starts-with: 'SETTING::'; - filenames being different on windows maybe? | 00:28 | |
| i guess those were already in there before the change | 00:29 | ||
| [Coke] | timo: any pointers on how to debug raku on windows? Building a copy from HEAD with --debug right now | 00:41 | |
| Or, is there some way to emit tons of debug output about the dispatchers? | 00:42 | ||
| wonder if dispatcher combined with RAKUDO_OPTIMIZE_NOSM helps. | 00:43 | ||
| timo | there is. you can flip a define inside moarvm's source in disp/program.c IIRC | 00:44 | |
| what's NOSM? | |||
| it can dump programs as well as recordings. not sure which one will be the interesting one, and it's really really chatty | 00:45 | ||
| [Coke] | no smartmatch, probably | ||
| ah RAKUDO_OPTIMIZER_DEBUG=1 will give me something to work with | |||
| timo | if turning the optimizer off completely, or down to 0 at least, should tell us if the optimizer has a part in the bug | 00:48 | |
| [Coke] | ... RAKUDO_OPTIMIZE_NOSM=0 avoids the bug, yes | 00:50 | |
| timo | i seem to recall you looked whether the output of --target=optimize was the same or not? | 00:51 | |
| oh, you only checked --target=ast | 00:52 | ||
| [Coke] | lovely, getting non-utf8 rendering from target=optimize. | 01:02 | |
| timo | isn't that just because windows terminal isn't utf8 by default? | 01:04 | |
| redirect to a file, perhaps that helps? | |||
| [Coke] | found the arcane output encoding invocation | 01:06 | |
| here's the target=opt outputs: gist.github.com/coke/965fed0b3161b...8d52535904 | 01:07 | ||
| they are definitely different on mac vs. win | |||
| timo | can also try diffing windows with NOSM and without | 01:08 | |
| the one on the top doesn't use the raku-smartmatch dispatcher, instead writing the logic out into nested ifs | 01:11 | ||
| [Coke] | updated gist | 01:12 | |
| so maybe the optimizer is broken and it's just not in use on mac? | 01:14 | ||
| (gist now has a run with NOSM enabled on win) | |||
| walking away from $worktop for the night. | |||
| timo | ah, I guess the smartmatch part of the optimizer is also what's responsible for spitting out a dispatch op if it can't write it all out by itself? | ||
| so we kind of have three different kinds, mac, windows with nosm, and windows without nosm are all different | 01:15 | ||
| mac with nosm would look like windows with nosm i'd expect. just a call to &infix:<~~> | |||
| you can now ask moar to spit out covered edges as they are first hit, and also what file + frame + BB each number corresponds to so you can actually figure out what each edge it spits out refers to | 03:37 | ||
| except of course you would want to `moar --dump thefilename` to go to the frame by its CUID, but then you only see instructions by their index. you would have to figure out yourself where BBs go. and I could instead of the BB index spit out the PC at the start of the block but of course that's different from the instruction index because instructions are different lengths | 03:40 | ||
| the spesh log can give you what you need but of course it doesn't spit out every frame, just the ones that end up speshed | 03:43 | ||
| that also has the bb indices right there in its own output | |||
| but my dumping code and the coverage reporting spits it out as unsigned ints because negative numbers don't really make sense here, and in the spesh log output it's showing as singed so some of the numbers are negative and you wouldn't find them in the coverage log ... haha :( | 03:46 | ||
| patrickb | Just to understand the implication: The compilation output should be the same on Win Mac Unix. But for some reason it isn't. Correct? | 07:07 | |
|
08:35
finanalyst joined
|
|||
| lizmat | also for my understanding (as the author of the bisected commit): it is *tickling* an underlying bug, but the code itself is correct ? | 08:43 | |
|
11:19
finanalyst left
12:02
finanalyst joined
|
|||
| Geth | roast: 90eb9e8b07 | (Elizabeth Mattijsen)++ | S32-exceptions/misc2.t Fix .return value test |
12:20 | |
|
12:43
finanalyst left
|
|||
| Geth | rakudo/main: 1d991f95fe | (Elizabeth Mattijsen)++ | src/core.c/Str.rakumod Fix .index(@needles) It had a (I'd say premature) optmization in it that produced the wrong results, as spotted by David Schultz++ in #6104. On closer inspection, I'd say the overhead of creating a substring to search in, is overkill. In any case, the code is much simpler now, has fewer moving parts and will probably inline better than before. |
12:53 | |
| rakudo: ugexe++ created pull request #6110: Fix SETTING:: prefix having literal single quotes on Windows |
15:25 | ||
|
16:21
vrurg_ joined
|
|||
| Geth | rakudo/main: ef3975df55 | (Elizabeth Mattijsen)++ | t/02-rakudo/03-corekeys.t Fix test for 6.e setting entries 245d07274c1df76939e5ad added infix:<mod> and infix:<div> |
16:23 | |
|
16:23
vrurg left
|
|||
| gfldex | m: my ($foo, Any:D, $buzz) = (42, Any, 'lightyear'); | 16:30 | |
| evalable6 | |||
| gfldex | This feels wrond and I don't even know what it means. | 16:31 | |
| lizmat | more worringly, the same code has a different result with RAKUDO_RAKUAST=1 | 16:35 | |
| gfldex: please make an issue for this :) | 16:36 | ||
| gfldex | m: my ($foo, Any:D $, $buzz) = (42, 'Any', 'lightyear'); | 16:45 | |
| evalable6 | |||
| gfldex | This makes sense to me. "I want to drop the value, but only if it is defined." | 16:46 | |
| lizmat | yeah, that's why your first example should be a typecheck error | 16:47 | |
| gfldex | I'm still looking at Roast if list assigments with type objects on the LHS show up at all. | ||
| [Coke] tries ugexe's PR... | 16:56 | ||
| gfldex | S06-signature/tree-node-parameters.t contains `my (Point $ ($a, $b)) := getpoints();`. So type checks on destructuring assigment is desired. However, every time I see a type check without a `:D` type smily, I'm included to ask where the code path is to handle bare type objects. | 17:00 | |
| lizmat | the list assignment code is .... special | 17:01 | |
| the last time I worked on that, I had nightmares at one point :-) | |||
| m: my $a = 42; my $b = 666; ($a,$b) = ($b,$a); dd $a, $b | 17:05 | ||
| evalable6 | $a = 666 $b = 42 |
||
| lizmat | ^^ it also needs to be able to handle that | ||
| m: my @a = ^10; @a[1,4,6,2] = <a b c d>l dd @a # and this | 17:10 | ||
| evalable6 | (exit code 1) ===SORRY!=== Error while compilin⦠| ||
| lizmat, Full output: gist.github.com/d3c1901b4a6ef8e468...75786e4d41 | |||
| lizmat | m: my @a = ^10; @a[1,4,6,2] = <a b c d>; dd @a # and this | ||
| evalable6 | [0, "a", "d", 3, "b", 5, "c", 7, 8, 9] | ||
| lizmat | m: my ($a,$b,$c) = "a"...*; dd $a, $b, $c # and this | 17:12 | |
| evalable6 | $a = "a" $b = "b" $c = "c" |
||
| Geth | rakudo/main: 1e9352870c | (Nick Logan)++ (committed using GitHub Web editor) | tools/templates/Makefile-backend-common.in Fix SETTING:: prefix having literal single quotes on Windows (#6110) The Makefile template used shell-style single quotes around the SETTING:: prefix passed to gen-cat.nqp. On Unix the shell strips these, but on Windows cmd.exe passes them literally, causing .file to return 'SETTING::'src/core.c/Mu.rakumod instead of SETTING::src/core.c/Mu.rakumod. This broke IS-SETTING-ONLY-D checks which compare .file.starts-with('SETTING::'), ... (6 more lines) |
17:17 | |
| rakudo/coke/tests: 83c23a4db9 | (Will Coleda)++ | 2 files Add test for #6109 |
18:07 | ||
| timo | holy shit that's so bad | 18:09 | |
| new rule: if you want to use raku on windows, you first have to uninstall windows and either install linux or macos. sorry! | 18:20 | ||
| say, in order to build rakudo you already have to have strawberry perl anyway right? maybe there's a lightweight but fully (or at least sufficiently) gnu make compatible implementation of make written in pure perl? | 18:22 | ||
| gfldex | filed as #6111 | 18:30 | |
| ENODOC filed as #4800 | 18:44 | ||
| Geth | rakudo: coke++ created pull request #6112: Add test for #6109 |
18:45 | |
| linkable6 | RAKUDO#6109 [closed]: github.com/rakudo/rakudo/issues/6109 [Windows][junctions] Junctions not working properly on windows | ||
| [Coke] | Glad we got there. wish I had opened that ticket last february, sorry. :| | 18:54 | |
| timo | oh shit, i think if i had told you to try MVM_COVERAGE_LOG we would have spotted the 'SETTING::'blabla issue | 18:58 | |
| do the single quotes show up in backtraces? | 18:59 | ||
| patrickb | I'm pretty sure the Junction issue wasn't the only symptom of this bug. I've seen strange warnings pop up from time to time on Windows exclusively. | 21:28 | |
| If I had all the time I wanted, I'd write a parallel execution able make impl in Perl and just use that for all of our builds. | 21:29 | ||
| Geth | rakudo/main: d8aeb7eeb8 | (Will Coleda)++ (committed using GitHub Web editor) | 2 files Add test for #6109 (#6112) |
21:42 | |
| timo | how about instead of being clever and having "rules" in the makefile, we turn it into a maximally normalized really stupid thing that's barely smarter than one big shell script | 21:45 | |
| no way for anything to go wrong | |||
| [Coke] | ... you can't fool me, there's always a way | 21:47 | |
| timo | true, we didn't have the issue with ' because the makefile was "too smart" | 21:49 | |
| it was because it uses cmd instead of sh | 21:50 | ||
| [Coke] | Looks that 'SETTING' has been that way since it was added Date: Sun Dec 11 23:20:50 2022 -0500 | 23:50 | |