| apogee_ntv | Yeah shouldnt be too hard to wrap treesitter? | 00:36 | |
| Or parse those... whats the files the JS hilite uses? | 00:37 | ||
| highlight.js config files | |||
| Should be easy with a grammar | |||
| or is it prism.js? | |||
| I dont know, I dont write a lot of JS | 00:38 | ||
| SmokeMachine | In theory AST and deparse should be able to highlight, I suppose⦠| ||
| apogee_ntv | github.com/tree-sitter/tree-sitter.../highlight Should be able to write thin FFI wrapper around this | 00:39 | |
| then nativecall to it | |||
| github.com/tree-sitter/tree-sitter...ighlight.h There's already ffi | 00:40 | ||
| SmokeMachine | m: use experimental :rakuast; say āsay 11 + 31ā.AST.DEPARSE: class Bla is RakuAST::Deparse { method hsyn($type, $content) { ā({ $type }: { $content })ā } } # apogee_ntv | 01:03 | |
| evalable6 | (core-say: say) (literal: 11) (infix-+: +) (lit⦠| ||
| SmokeMachine, Full output: gist.github.com/614e6c43bd69a0e041...41ed2e0840 | |||
|
01:13
hulk joined
01:14
kylese left
01:29
sibl joined,
sibl left,
sibl joined
|
|||
| SmokeMachine | spoon a multi line input, is there a way to get the cursor position and/or emit events when that position changes? | 02:00 | |
|
02:15
hulk left,
kylese joined
02:58
apogee_ntv left
03:00
apogee_ntv joined
03:58
mtj left
04:01
mtj joined
04:27
sibl left
04:47
thatonelutenist left
04:51
thatonelutenist joined
04:55
thatonelutenist left
05:09
Aedil left
05:11
thatonelutenist joined
05:17
sibl joined
05:19
Aedil joined
05:31
annamalai left
05:52
annamalai joined
06:08
annamalai left,
annamalai joined
06:52
dakkar joined
|
|||
| disbot2 | <librasteve> that gif is wild - amazing how it already looks so good! | 07:12 | |
|
07:31
soverysour joined
07:35
Sgeo left
07:41
soverysour left
07:43
soverysour joined,
soverysour left,
soverysour joined
07:50
soverysour left
08:21
soverysour joined,
soverysour left,
soverysour joined
08:28
soverysour left
08:52
soverysour joined
08:56
soverysour left
09:11
sibl left
|
|||
| SmokeMachine | :) | 09:35 | |
| disbot2 | <librasteve> fwiw i use Rainbow for syntax hiliting ⦠not quite RakuAST | 09:48 | |
|
10:07
justache left,
justache joined
10:22
xkr47 left
|
|||
| SmokeMachine | I donāt know how I would add colors to a MultiLineInput, neither how to do that while writing⦠apogee_ntv, any suggestion? | 10:40 | |
| apogee_ntv | SmokeMachine: It's not currently rich IIRC. I think we would want a proper editor widget. | 10:50 | |
| Since multiline doesnt support things like normal up/down navigation on multiline text, it would make a poor editor for large source files. | |||
| SmokeMachine | apogee_ntv: Sorry, what do you mean by up/down? It seems to work... usercontent.irccloud-cdn.com/file/....54.25.gif | 10:55 | |
| Scroll also seem to work... usercontent.irccloud-cdn.com/file/....56.54.gif | 10:57 | ||
| apogee_ntv | SmokeMachine: If the lines wrap, it will wrap to the logical line not the display line, it also wont preserve col if it goes past a blank line IIRC. It wont feel like vim/emacs I guess is what I mean :P | 11:00 | |
|
11:00
sibl joined
|
|||
| apogee_ntv | I mostly designed the existing widget set for an LLM inference client so 'chat-ish' purposes, an editor widget is on my todo list though | 11:01 | |
| I would like an editor written in Raku to edit Raku, good dogfooding opportunity. | |||
| SmokeMachine | apogee_ntv: you mean something like this? usercontent.irccloud-cdn.com/file/....01.55.gif | 11:02 | |
| apogee_ntv | But right now working on some other Selkie apps | 11:03 | |
| No I mean, go on one of the a's and press down | |||
| or up | |||
| It will move the cursor to the logical line above/below, not the character displayed above/below | |||
| Then go in vim and do the same | 11:04 | ||
| It will move to the character | |||
| on the display line below | |||
| And if you make 3 lines: 'abcdefg', 'zyx', and '1234567'. Put the cursor on 'f'. In any normal editor if you press down twice, cursor will end up on '6'. Here I believe it will end up on '1' or '3' (not 100% sure off hand). | 11:05 | ||
| SmokeMachine | usercontent.irccloud-cdn.com/file/....04.13.gif | 11:06 | |
| apogee_ntv | Yeah see, it should jump to the 'a' on the 2nd line directly below the 'a' you have highlighted to 'feel right' as an editor. | ||
| Though that one is less important than | 11:07 | ||
| SmokeMachine | on nvim... my last moves were using "gj" and "gk", that's why it came from a line of "a" to another line of "a"... usercontent.irccloud-cdn.com/file/....08.06.gif | 11:10 | |
| (sorry I tried to keep the same panes/windows/... positions) | |||
| apogee_ntv | Sec let me show you the bigger problem | 11:11 | |
| wormhole.app/kzBPPm#Xv_UwBkvshdYoFyJlTzsQg | |||
| SmokeMachine | on my example with MultiLineInput IMHO the biggest problem is when going back to the "a" line, it does not go back to the column it was before... | 11:12 | |
| apogee_ntv | Yeah exactly | ||
| Thats the big 'editor pane' issue | |||
| Though tbh I'd like to do one with modal editing & vim keybinds lol | |||
| At least the major ones like i, esc, hjkl. | |||
| SmokeMachine | I would like it a lot | 11:13 | |
| apogee_ntv | I'm also looking at wrapping treesitter to give it syntax highlighting | ||
| And AST level hierarchy for i.e. go to definition | 11:14 | ||
| Not going to implement a full code editor | |||
| But at least enough that it feels nice | |||
| SmokeMachine | I'm looking forward to it... it would male the playground and some other projects I'm planing to start much nicer... | 11:15 | |
| apogee_ntv | I plan to do some widgets in a Selkie::X namespace, just to avoid making the base lib huge. | 11:24 | |
| Like pulling in treesitter as a dep definitely doesnt belong in Selkie base. | |||
| Its a pretty heavy rust lib | 11:26 | ||
| Hm there's actually no full coverage treesitter plugin *for* Raku that I can find. | 11:47 | ||
| Maybe RakuAST can do this job better... | 11:48 | ||
| Hm, I will end up in a rabbithole if I keep looking at syntax highlighting :D Parking for now, its definitely doable but its a large chunk of work because the logic to do the actual highlighting from RakuAST is hard and treesitter probably cant cover slangs etc. | 11:54 | ||
| Though done right it could make the neovim experience less painful. | |||
| SmokeMachine | for syntax highlight, it seems Rainbow should be used (as librasteve_ suggested) | 12:05 | |
| apogee_ntv: is there some kind of a tree widget? I mean a widget to create trees | 12:07 | ||
|
12:08
[dpk] joined,
dpk left
|
|||
| apogee_ntv | SmokeMachine: Not currently but I have trees in one of my projects | 12:09 | |
|
12:10
[dpk] is now known as dpk
|
|||
| SmokeMachine | Would you be kind enough to share that code (or maybe if you have enough time, create a widget with that)? | 12:12 | |
| apogee_ntv | Yeah its only 1 level so not really a tree but should be easy to recurse, let me dig it up | 12:14 | |
| Actually I implemented multi-level even though data is 1 level | 12:15 | ||
|
12:19
soverysour joined,
soverysour left,
soverysour joined
|
|||
| SmokeMachine | Even better! :) | 12:19 | |
| apogee_ntv | OK it's pretty deeply embedded in a whole bunch of other render logic lol but paste2.org/zX8IO1v4 should cover all of the tree render logic. | 12:22 | |
|
12:23
soverysour left
|
|||
| apogee_ntv | This is for a TUI gtd app I've been building | 12:23 | |
| And these widgets are specifically for tasks, not just lines of text, hence all the extra logic | 12:24 | ||
| I got fed up of paying for omnifocus so decided to rebuild it | |||
| wormhole.app/Pp6ElN#RhZthZVlnzS21rXK5BWbkQ Renders like this | 12:27 | ||
| tbrowder | anyone having problems on github with "actions/checkout@v4"? if so, what's the fix? | 12:28 | |
| apogee_ntv | tbrowder: Use checkout@v5 I guess | 12:29 | |
| or v6 | |||
| I know Github actions are turning off Node 20 runners at some point but my v4s are still working atm | |||
| SmokeMachine | apogee_ntv: it looks good! Iām planing on using that to list a match returned by a grammar parse | 12:30 | |
| tbrowder | ok, thnx, i'll try v5 which i assume works. in the early days i thought a raku person had to build the actions | 12:31 | |
| apogee_ntv | I am aiming for a v1 Selkie release sometime next month with a proper website, tree widget should probably be a high priority with collapse/expand logic. | 12:35 | |
| Aiming to pull some non-Raku people over by offering the only route to notcurses that doesn't require you to know notcurses internals lol | 12:36 | ||
| Which is a vast api -- ~600 functions, full manual memory management, etc | |||
| I built ~90% Omnifocus parity in a week, thats a $150/yr commercial application. Kinda nice. | 12:40 | ||
|
12:46
sibl left
|
|||
| SmokeMachine | apogee_ntv: I totally agree Selkie is very very nice and I think it has the potential to bring people to Raku. I hope, once itās done, Selkie::UI can also help a bit⦠:) | 12:51 | |
| apogee_ntv | I think it will, Selkie is verbose for simple things. | 12:53 | |
| Selkie::UI seems not to be as verbose. | 12:54 | ||
| Well, I say Selkie is verbose, I'm used to writing raw notcurses and it's much more terse than that but probably building TUI in asm is less verbose than using notcurses (: | 12:55 | ||
| Great lib but it prioritises feature completeness & perf over DX at every junction | 12:56 | ||
| tbrowder | btw, my problem was actually caused by a spurious comma on the end of a META6.json file. not an intuitive msg... | 12:59 | |
| disbot2 | <librasteve> oh - maybe post your reddit items to reddit/r/C_Programming ... there seems to be some notcurses stuff there | 13:18 | |
| apogee_ntv | Hm they might get upset when it's not in C though :D Selkie is half pseudo-C I guess. | 13:23 | |
| Its a *lot* of NativeCall | |||
| disbot2 | <librasteve> yeah - I guess | 13:49 | |
| SmokeMachine | librasteve_: Iām sorry, but Iām curious⦠so how did you implement the PR you closed on Cromponents today? | 14:36 | |
| disbot2 | <librasteve> PR? Cromponents? Me? Today? | 14:38 | |
| <librasteve> Oh - short memory - sorry | 14:39 | ||
| SmokeMachine | github.com/FCO/Cromponent/issues/19 | 14:40 | |
| disbot2 | <librasteve> OK - three things I guess | 14:43 | |
| <librasteve> (i) Air::Base::Nav is already a thing github.com/librasteve/Air/blob/b67...kumod#L403 and it and yes it takes a List of Pairs like this github.com/librasteve/raku.org/blo...akumod#L60 I did not make C(r)omponent a target - but no reason why not | 14:47 | ||
| SmokeMachine | š | 14:50 | |
| disbot2 | <librasteve> (ii) the stubs refactor includes an explicit page tree - on reflection my thinking was to ape WordPress (!) and there an admin can dynamically change page name and reassign the parent (no restart) - so I realised that needs a catch all Cro route (here *@rest) github.com/librasteve/Air/blob/b67...kumod#L929 | ||
| <librasteve> here is how to declare and inspect the tree github.com/librasteve/Air-Examples...stubs.raku | 14:51 | ||
| <librasteve> note that this also makes a robots.txt and a sitemap.xml | 14:52 | ||
|
14:54
xkr47 joined
|
|||
| disbot2 | <librasteve> (iii) I have kept the class Page does C(r)omponent does Sitemapped {...} so that entire pages can be stored in Red and you can easily extend to have a query to eg list all pages and their create dates, titles, descriptions (thing the archive view on rakudoweekly.blog) | 14:56 | |
| <librasteve> the canonical WordPress model is that everything is a post and all gets stored in the posts table; the canonical Air model is that everything is a C(r)omponent and everything gets stored in Red via it's own model | 14:57 | ||
| SmokeMachine | makes sense | 15:02 | |
| disbot2 | <librasteve> š (you are welcome to propose improvements to Air ofc) | 15:03 | |
|
15:40
itaipu left
15:46
human-blip left
15:48
human-blip joined
|
|||
| SmokeMachine | librasteve_: I'm starting playing with this idea I think is closer to what was wanting: usercontent.irccloud-cdn.com/file/....49.05.gif | 15:52 | |
|
15:52
dakkar left
|
|||
| SmokeMachine | but I plan to make the output a tree | 15:53 | |
| and I want to make that tree selectable and when selected it would highlight the session on the string it corresponds to | 15:54 | ||
|
15:57
itaipu joined
16:06
abraxxa left
16:12
soverysour joined,
soverysour left,
soverysour joined
16:18
andinus left
|
|||
| SmokeMachine | is there a way to avoid infinite loop on generic grammars? or at least timeout grammars? when I do something wrong that starts a loop on this test, it hangs... | 16:19 | |
| librasteve_ | that looks reasonable | 16:20 | |
|
16:21
soverysour left
16:30
soverysour joined
16:40
soverysour left
16:41
human-blip left
|
|||
| lizmat | SmokeMachine: perhaps you can figure out running with -Mownup and then pressing ctrl-c when it infiniloops | 16:42 | |
| it will give you the stacktraces of all threads | |||
|
16:43
human-blip joined
16:45
soverysour joined,
soverysour left,
soverysour joined
16:47
Guest35 joined
16:48
Guest35 left
16:50
soverysour left
|
|||
| SmokeMachine | lizmat: thanks, let me try it out | 16:55 | |
| lizmat: ownup? is that builtin? it wasn't found here... | 16:56 | ||
| lizmat | oops, sorry | 16:57 | |
| -Mown-up | |||
| and yes that's a builtin module | |||
| SmokeMachine | it did not print anything... :( | 17:03 | |
| lizmat | ah? But it did stop execution? or not ? | ||
| SmokeMachine | I ctrl+c it... | 17:04 | |
| lizmat | what happens if you: | 17:07 | |
| $ raku -Mown-up -e 'loop { }' | |||
| and control-c that ? | |||
| SmokeMachine | lizmat: on this example it hanged when I pressed * (`rule char {.*}`) and then after trying to write anything, arrows, etc and nothing happening, I ctrl+c usercontent.irccloud-cdn.com/file/....05.26.gif | 17:08 | |
| let me try to golf it... | 17:09 | ||
| lizmat | yeah, looks like Selkie is stealing control-c | ||
| m: use own-up; own-up | |||
| evalable6 | (exit code 1) ===SORRY!=== Error while compilin⦠| ||
| lizmat, Full output: gist.github.com/274b49b3962c1db6fd...9efa47ef7e | |||
| lizmat | m: VM.own-up | 17:10 | |
| evalable6 | (exit code 2) ========== Thread 1 (perl6) requ⦠|
||
| lizmat, Full output: gist.github.com/14068bcce4f6c92961...293788ea64 | |||
| lizmat | if you can make it to execute "VM.own-up" an a control-c, you should be in business | ||
| SmokeMachine | www.irccloud.com/pastebin/XxlZ1rNk/ | ||
| lizmat | Thread 1 is the interesing one... | 17:11 | |
| but it doesn't tell us much :-( | 17:12 | ||
| SmokeMachine | :( | ||
| I don't know what to do... :( | 17:14 | ||
| lizmat | if you put that code in a text file and then run it, does it also hang? Am not sure whether this is a core or a Selkie issue at this point? | 17:15 | |
| disbot2 | <librasteve> I am considering a generic way to get from a Grammar to a populated object - ie if the attribute names match the token / rule names then they get loaded - a Transformer that takes a Match and a class name and returns an instance | 17:19 | |
| <librasteve> does anything like that exist? | |||
| <librasteve> (in Raku land) | |||
| lizmat | aren't actions allowing you to do that ? | 17:20 | |
| disbot2 | <librasteve> sure - but iām too lazy to write a custom Action for each target class | 17:21 | |
| <librasteve> maybe i can write a role on the class that takes the match object and then introspects :-) | 17:22 | ||
| <librasteve> does Actionable | 17:23 | ||
|
17:28
andinus joined
|
|||
| SmokeMachine | on my last message I tried that with no selfie... | 17:30 | |
| m: grammar Bla { rule TOP {<char>+}; rule char {.*} } | 17:31 | ||
| evalable6 | |||
| SmokeMachine | m: grammar Bla { rule TOP {<char>+}; rule char {.*} }; Bla.parse: "asdf" | 17:32 | |
| evalable6 | (signal SIGHUP) «timed out after 10 seconds» | ||
| lizmat | that feels like it should just match all chars... | 17:40 | |
| SmokeMachine | lizmat: that's expected to infinite loop, and that's usually ok... my problem is that I am running that grammar on every edit to the code, so it makes it much easier to happen... | 17:43 | |
|
17:46
soverysour joined
17:55
abraxxa joined
|
|||
| disbot2 | <melezhik.> o/ | 18:18 | |
| <melezhik.> So I am generating Sparrow task check DSL using Qwen 3.6 plus and results are pretty impressive | 18:20 | ||
| <melezhik.> Here are some examples for those who are interested | |||
| <melezhik.> verify output from rpm command to verify package is installed and has some specific version or greater then the one - chat.rockylinux.org/rocky-linux/pl...u4tpt5doar | 18:21 | ||
| <melezhik.> verify output from df command and validate that you have swap and home mounts , and that /root partition capacity is more then 20 percentage - rpa.st/LO4JE | 18:22 | ||
| <melezhik.> verify that input is valid date in ISO format and that this is current date - rpa.st/MPTAQ | 18:23 | ||
| <melezhik.> Sometimes it uses Python for handlers, sometimes Perl. I donāt know why )) | 18:24 | ||
| <melezhik.> github.com/melezhik/Sparrow6/blob/...kchecks.md | |||
|
18:27
abraxxa left
|
|||
| disbot2 | <melezhik.> If someone wants to try just let me know - I use Qwen for free from browsers | 18:28 | |
| <melezhik.> The question should be: āYou are sparrow task check dsl expert - use following links as documentation github.com/melezhik/Sparrow6/blob/...kchecks.md And generate task check dsl code to BLA BLA BLAā | 18:29 | ||
| Voldenet | SmokeMachine: if you don't mind memleaks on abort, then maybe raw pthreads could work | ||
| (there's no uv_thread_abort, so you can't do this github.com/MoarVM/MoarVM/blob/0915...ads.c#L185 ) | 18:35 | ||
| any reliable timeouts in EVAL would pretty much require hacky threading magic though | 18:42 | ||
|
18:42
abraxxa joined
18:47
soverysour left
|
|||
| disbot2 | <melezhik.> verify output from raku -v command and verify that raku version is greater then 2026.04 - rpa.st/PJMXS | 18:48 | |
| <melezhik.> This is kinda cool - LLM knows how to use zoom in expression ( within: ) | |||
|
19:53
perryprog left
19:54
perryprog joined
19:57
soverysour joined
19:59
soverysour left
20:17
perryprog left
20:18
perryprog joined
20:50
peder left
21:01
justache left
21:05
justache joined,
justache left
21:07
justache joined
21:35
abraxxa left
21:41
Aedil left
21:53
perryprog left
21:58
perryprog joined
|
|||
| [Coke] | easiest way to test something where you have to run the test on a given day? container? Maybe an override of Date.today? | 21:58 | |
| disbot2 | <librasteve> maybe override Date.today with a wrapper set from an ENV? | 22:00 | |
| lizmat | depends on how you create the Date object | 22:13 | |
| m: use MONKEY; my class Date is Date { method today() { "2006-04-30".Date } }; dd Date.today | 22:15 | ||
| evalable6 | Date.new(2006,4,30) | ||
| lizmat | m: my class Date is Date { method today() { "2006-04-30".Date } }; dd Date.today # don't need MONKEY that way | ||
| evalable6 | Date.new(2006,4,30) | ||
|
22:17
Sgeo joined
|
|||
| [Coke] | nice | 22:38 | |
|
22:47
silug left
|
|||
| apogee_ntv | Currently bumping all of my packages to not use node 20 github actions, hopefully nothing breaks :D | 23:15 | |
| I already had to adopt a Windows action for setting up msvc | |||
| [Coke] | don't rush with that. | ||
| let me find you the bug... | |||
| github.com/microsoft/azure-pipelin...ssues/5464 | 23:16 | ||
| Sounds like 20 is the recommended version right now and the warning was over-eager | |||
| ugexe | [Coke]: I suspect `RAKUDO_RAKUAST=1 make install` never truly worked. what would have sort of worked was doing like `make install && RAKUDO_RAKUAST=1 make install` | 23:17 | |
| which is an easy state to find yourself in and not realize it | 23:18 | ||
| [Coke] | ah, ok. | ||
| do you want github.com/rakudo/rakudo/issues/5906 ? | |||
| ugexe | since make doesn't know that environment variable means the artifacts it would generate wouuld be different | ||
| i already submitted PRs to make it work | 23:19 | ||
| apogee_ntv | [Coke]: Node 20 is EOL Apr 30th | ||
| [Coke] | ahhh. | ||
| apogee_ntv: ah, those tickets were complaining about the warning in advance, didn't realize we were that close. | |||
| ugexe | PRs 6123 through 6127 are for make install | 23:20 | |
| apogee_ntv | I dont think they will remove it from Github Actions until probably Oct | ||
| ugexe | the ones after that are for make test and make spectest | ||
| apogee_ntv | But it does go EOL today (as of UK time) | ||
|
23:21
perryprog left
|
|||
| apogee_ntv | Raku/install-rakudo action is really flaky atm | 23:21 | |
| Raku/setup-raku* | |||
| Times out on about 20% of runs. | 23:22 | ||
| ugexe | i've merged the PRs that anyone left a comment or emoji on | 23:23 | |
| [Coke] | ugexe++ | 23:29 | |
|
23:35
perryprog joined
|
|||