19 Nov 2024
ab5tract I’m signing off for tonight though, sleep has been both chasing and eluding me 21:09
lizmat ack 21:18
sleep well! recharge! kick those bed bugs out!
Geth roast: raiph++ created pull request #866:
s/`|w`/`?wb`/ (switch from Rakudo feature to Raku feature)
23:16
20 Nov 2024
releasable6 Next release in ≈1 day and ≈15 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
[Coke] lovely. powershell isn't utf8. it's "utf8 with BOM" 12:53
and if no BOM, you get some windows encoding, and so mojibake. 12:59
(also chcp doesn't seem to fix it. :( 13:19
timo how does "utf8 with bom" even work for a shell 13:24
given the path to a source file installed in a CompUnit Repository, how do i find the distribution it belongs to? the only way i can see is to search through the dist/ folder for any files that have the filename in it 15:04
i can go from the source to any files that are precomped from it, but that only gives me stuff that file depends on, and apparently not a hint for where the file comes from? 15:06
ugexe it probably doesnt matter, but you'd have to ask to find source files installed i a CompUnit Repository *Installation* 15:10
other CURs may not even have files on disk, i.e. github.com/ugexe/Raku-CompUnit--Re...ry--Github
otherwise you can probably grep the files in dist/ for provides.values.file 15:11
when distributio is installed the meta6.json provides section is mutated (which is bad and dumb but lets ignore that) to contain vallue of not "Foo::Bar" but "Foo::Bar" => { "file":$some_sha1 } 15:12
timo ah, right. i'm writing a piece of code that turns the path from an annotation in bytecode into something clickable to open the source (hopefully even at the right line number). so that would be a file:/// url in some cases, an https:// url in other cases, and just nothing in the more complicated cases 15:13
so it's okay if there's not actually a file on disk that i can point the user at, as long as i can get something url-like in common cases 15:14
ugexe ah ok. note that you can't edit such source files and have those changes visible, but certainly still useful for seeing the code itself 15:18
timo indeed. there would ideally be some kind of mechanism for the user to provide a way to find the local checkout they installed that dist from 15:19
though on the other hand, this is for the debugger, so jumping to the file on disk that was used for compilation is better than going to the "latest" version of the file in the source code repo 15:20
ugexe in this scenario do you care if they have been loaded already? CompUnit object has the distribution set on it
although maybe that is only set when in certain situations
timo the debug client runs in its own process, and while it can theoretically invoke code on the debuggee, i'm not sure if i want to do it like that? 15:21
ugexe the thing is if it jumps to the file used for compilation and you edit that file, the original compiled file would still exist and thus be loaded
timo oh, is there a lexical actually somewhere in the outers of any frame i might have? 15:22
or is it like a PseudoStash situation where the lookup would be done relatively late
yes, that's true
... when it's in a backtrace, the file names have the distribution name in them in parenthesis LOL 15:23
ugexe those are module names i thought 15:24
timo oh, yes that's right
but also, when they go into the tables used inside of moarvm for breakpoints, i cut that off because until now the user would have to know to literally type it in exactly like that
ugexe zef locate $some-sha1 --sha1 15:26
github.com/ugexe/zef/blob/a103ae4a...#L801-L829
that is how zef looks them up although its using some implementation details like assuming the directory structure of CURI 15:27
timo i think i'd like a 20/80 solution here :D 15:30
Comma has a big benefit here, since it already knows basically everything about the code you're debugging, since if i remember correctly you can't just attach it to a random program you're running manually 15:32
plus it has a proper parse tree of the code and all that jazz 15:33
annoyingly, there is currently nothing in the debug server protocol that lets us get an object's WHO or HOW or WHAT 15:40
patrickb I still want to put the source into the comp unit itself. But I also still have no idea what I'm doing in that domain. :-P 17:04
timo that's fine if you have a good way to display it 20:09
ugexe i think most places we do CompUnit.new(...) we have a mechanism for accessing the source for when set handle => $precomp-code // &load-fromsource 21:23
for example: github.com/rakudo/rakudo/blob/d00d...od#L33-L42 21:25
ah i guess in that example you dont know the source file if $precompiled is true 21:26
timo the debug client is very happy when asked about the positionals of an array with 78518 entries 21:41
there's a spot where i flatten the list of things when formatting them for table printing, so it's now hard-capped to 65535 until i change that, but what's the sense in spewing 65k lines to the terminal 21:43
and maybe the positionals request should also be able to do pagination so you don't have to transfer the entirety of an object's contents to the client 21:46
ab5tract That pagination idea sounds perfect! 22:13
timo also annoying to implement i think 22:17
but what i just made is a "show" that combines the effects of "metadata" + whichever are appropriate out of "attrs", "pos", and "assoc", and also recurses two levels deep 22:18
something i have dearly missed for ... a little while :) 22:22
ab5tract I can’t wait to see it in action 22:56
releasable6 Next release in ≈19 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
timo ab5tract: asciinema.org/a/ZUydbBeO06o54VelwomN7y3bG here's a quick recording of it 23:16