| disbot | <_.mu._> Scrolled back for the coding assistent issue but that wasn't really enlightening. Is there some ressource somewhere stating project policy or blog posts people have made to explain their stance? | 00:22 | |
| elcaro | Maybe it's already been mentioned, but I just realised there's no pre-compiled binaries for 2026.08 on rakudo.org/downloads | 00:32 | |
|
01:23
Voldenet_ joined,
Voldenet left
01:24
Voldenet_ is now known as Voldenet
|
|||
| Voldenet | > LLM is just an excellent tool to attract new users | 01:29 | |
| my upper management also believes this, but was this ever… confirmed anyhow? | |||
| It feels more like a meme | |||
| LLM is only useful if in you review its code | 01:34 | ||
| lucs: you're not matching full string, just 2ab | |||
| m: say '4a2ab' ~~ /:r (\d) 'a' 'b'/; say ~$0; | |||
| camelia | 「2ab」 0 => 「2」 2 |
||
| Voldenet | m: say '4a2ab' ~~ /:r ^ (\d) 'a' 'b' $/; # this doesn't match | 01:35 | |
| camelia | Nil | ||
| Voldenet | m: say '2ab' ~~ /:r ^ (\d) 'a' 'b' $/; # this does match | ||
| camelia | 「2ab」 0 => 「2」 |
||
| lucs | Oh. Hmm... | 01:39 | |
| Voldenet | and no backtracking means that after matching part of the regex, engine will not backtrack | 01:48 | |
| m: say <aaab> ~~ /a+ b/ # engine will greedily match a, then b, this will work | 01:49 | ||
| camelia | 「aaab」 | ||
|
01:49
kylese left
|
|||
| Voldenet | m: say <aaab> ~~ /a+ ab/ # engine will greedily match a, then after exhausting all `a` letters, it'll never match a | 01:49 | |
| camelia | 「aaab」 | ||
| Voldenet | erm | ||
| m: say <aaab> ~~ /:r a+ ab/ # engine will greedily match a, then after exhausting all `a` letters, it'll never match a | |||
| camelia | Nil | ||
| Voldenet | m: say <aaab> ~~ /:r a+ b/ # this works with ratchet as well | 01:50 | |
| camelia | 「aaab」 | ||
|
01:50
kylese joined
|
|||
| [Coke] | el_che: did you do 2026.08 binary? | 01:58 | |
| patrickb: did you do 2026.08 binary? | |||
|
02:01
greppable6 left,
releasable6 left,
benchable6 left,
unicodable6 left,
nativecallable6 left,
committable6 left,
coverable6 left,
sourceable6 left,
quotable6 left,
linkable6 left,
shareable6__ left,
bloatable6 left,
bisectable6 left,
evalable6 left,
huggable6 left,
notable6 left,
tellable6 left
|
|||
| Voldenet | btw, in your example `4a` simply fails and then `2ab` gets matched, so there's no backtracking - you need example where one token is ambiguously matched by previous term and next term can't match it | 02:02 | |
| m: say <4a2ab> ~~ /:r \w+ ab/; # no matches | 02:03 | ||
| camelia | Nil | ||
| Voldenet | m: say <4a2ab> ~~ /\w+ ab/; # at first no matches, but after backtracking there's an obvious match | ||
| camelia | 「4a2ab」 | ||
|
02:04
releasable6 joined,
shareable6 joined,
evalable6 joined,
greppable6 joined,
huggable6 joined,
bisectable6 joined,
sourceable6 joined,
linkable6 joined
02:05
quotable6 joined,
coverable6 joined,
committable6 joined,
bloatable6 joined,
benchable6 joined
02:06
notable6 joined,
nativecallable6 joined,
tellable6 joined,
unicodable6 joined
|
|||
| lucs | Voldenet: I think I was confusing the backtracking as something that happens in the regex (in my example, can't go back to try the \d once it has been matched) rather than in the string (irrelevant in my example, just restart trying the match at 2, which succeeds). | 02:09 | |
| Thanks for the clear examples. | |||
|
02:15
kylese left,
kylese joined
02:18
bisectable6 left,
tellable6 left,
evalable6 left,
greppable6 left,
benchable6 left,
quotable6 left
02:21
bloatable6 left,
coverable6 left,
nativecallable6 left,
notable6 left,
committable6 left,
sourceable6 left,
huggable6 left,
shareable6 left,
releasable6 left
02:22
unicodable6 left,
linkable6 left
02:23
bloatable6 joined,
evalable6 joined,
greppable6 joined,
benchable6 joined,
quotable6 joined,
shareable6 joined
02:24
linkable6 joined,
nativecallable6 joined
02:25
coverable6 joined,
sourceable6 joined,
unicodable6 joined,
releasable6 joined,
bisectable6 joined,
committable6 joined,
huggable6 joined
02:26
tellable6 joined,
notable6 joined
|
|||
| disbot | <demanddystopia> i recall there was a site that had like a visualization of the grammar, incl like when it fails trying to find what, don't think that applied to single regexes though that'd be kinda useful too | 02:30 | |
| Voldenet | github.com/FCO/Grammar-Editor | 02:53 | |
| [Coke] | feel like the instructions should be for an installed version, not a git clone version. ^^ | 02:55 | |
| Voldenet | I remember seeing website version, can't find it though | 03:09 | |
| elcaro | fco.github.io/GrammarEditor/ | 03:27 | |
|
04:18
Pixi joined
04:20
Pixi` left
04:41
Pixi left
05:35
kjp joined
05:44
Sgeo left
05:48
abraxxa joined
05:50
gfldex left
05:51
gfldex joined
|
|||
| patrickb | [Coke]: I did not. 2026.08 fails to build because of a bug in zmij. Now that you remind me, I still need to bump the zmij version... | 06:57 | |
|
07:56
dakkar joined
09:34
oodani left,
oodani joined
|
|||
| El_Che | [Coke]: yes | 11:40 | |
|
11:52
Pixi joined
|
|||
| disbot | <antononcube> You can start a discussion on www.reddit.com/r/rakulang/ | 12:01 | |
| <antononcube> Grammar visualization can be done with Mermaid-JS both deterministically and with LLMs. | 12:06 | ||
| <antononcube> rakuforprediction.wordpress.com/20...-grammars/ | 12:07 | ||
| <antononcube> I probably have to update "FunctionalParsers" to produce Graphviz DOT and Raku graphs for EBNF strings. | 12:08 | ||
| Voldenet | but it doesn't literally visualise raku grammars sadly | 12:15 | |
| disbot | <antononcube> It does via other packages. | ||
| Voldenet | Like, I'm not sure if this approach can explain the difference of regex with :r and without | 12:16 | |
| disbot | <antononcube> No, it is not that fine-grained. | 12:17 | |
| <antononcube> Well, I am not sure. Maybe. "FunctionalParsers", "EBNF::Grammar", and "Grammar::TokenProcessing" can produce EBNF strings corresponding to Raku grammars and corresponding visualizations. I think at some point I made a corresponding use case workflow. (I will try to find it.) | 12:19 | ||
| Voldenet | Grammar::Debugger is also not fine-grained enough either | 12:21 | |
| timo chucks gist.github.com/timo/0c15d5b3f1ab2...a42bbc1c8d into the chat | 12:32 | ||
| but yes, Grammar::Debugger only operatos on | 12:33 | ||
| a per-routine level | |||
| disbot | <antononcube> The package "Grammar::TokenProcessing" parses Raku grammars, its to-ebnf-grammar takes both strings and Raku grammar classes. But it needs to be updated -- while installing it I see some legacy warning messages. | 12:34 | |
| <antononcube> Also, it does not parse certain token specs, it seems. | 12:35 | ||
| <antononcube> This works: | 12:38 | ||
| <antononcube> cdn.discordapp.com/attachments/633...9f85e& | |||
| <antononcube> But using this grammar does not: grammar MyGrammar { token TOP { <letter>+ } token letter { <vowel> || <consonant> } token vowel { <[aeiou]> } token consonant { <[bcdfghjklmnpqrstvwxyz]> } } (The grammar is not fully parsed.) | 12:39 | ||
| Voldenet | in fact, :r is such a technical detail that I'm not sure it can be explained easily with ebnf | 12:42 | |
| disbot | <antononcube> Also, it can be visualized without some additional legend or explanations. | 12:44 | |
| Voldenet | about the above, rakuast produces very clean `Regex::Assertion::CharClass` btw | 12:46 | |
| disbot | <antononcube> BTW, I used those packages to automate my work with DSL grammars. I haven't used them in the last few years. Also, at this point, LLMs can be used instead. But it will be good idea to make them work in more robust manner. | ||
| Voldenet | meh idk, LLMs are not good fit for code that should be fully generated | 12:47 | |
| it's possible to convert RakuAST to ebnf directly and the other way around | 12:48 | ||
| and I'd rather ask LLM for the converter | |||
| disbot | <antononcube> Agh, yes, I made "Grammar::TokenProcessing" because RakuAST was not that useful or accessible at the time. And the advances or RakuAST means less need that package. | ||
| <antononcube> Right, I would rather have a deterministic converter. And, yeah, should not be hard to make one with the current LLMs / AI-agents. | 12:49 | ||
| Voldenet | yeah, RakuAST makes such code easier to write for sure | 12:50 | |
| but it'd still be large project, especially when you consider that raku grammars are way richer than ebnf | 12:52 | ||
| disbot | <antononcube> I was given a similar warning few years ago -- Raku grammars are too rich, etc, to make an interpreter of them. | 12:54 | |
| <antononcube> But, of course, one can make a parser-interpreter on a subset of Raku grammars. (Like, "Grammar::TokenProcessing".) | |||
| <antononcube> In my opinion, grammar converters are "must have" for the Raku ecosystem. | 12:55 | ||
| <antononcube> (Since, grammars, are Raku's "calling card".) | 12:56 | ||
| <antononcube> For example, this grammar converter "ANTLR4::Grammar" has to be reviewed / updated / extended. | 12:59 | ||
| <antononcube> That package converts ANTLR grammars to Raku. But it can also convert Raku grammars to ANTLR then dedicated visualizers can be used. (Standalone, via packages, or IDEs.) | 13:02 | ||
| lizmat | sadly DrForr is no longer among us, so somebody else will need to do that | 13:03 | |
| El_Che | :( | 13:04 | |
| lizmat | if more people would donate to raku.foundation/Donations we could actually set up a grant system to pay someone to do that | 13:15 | |
| (as afaik TPRF will no longer accept new Raku grant requests) | |||
| Voldenet | antononcube: that was easier than I expected glot.io/snippets/hmcin3oqkl | 13:20 | |
| [Coke] | Speaking of donations - I'm sure this is not easy to setup on the donation side, but I'd be willing to do matching donations up to a limit. | 13:22 | |
| (I'm also not sure if there are rules about that sort of thing on the foundation side. I know this is a common thing in the US) | 13:24 | ||
| lizmat | Actually, this was discussed in the board, and it was felt it would be too soon to do this | 13:25 | |
| disbot | <antononcube> @Voldenet Ollama LLMs -- i.e. relatively small ones, run locally -- can reliably produce Mermaid-JS visualizations: | 13:26 | |
| <antononcube> cdn.discordapp.com/attachments/633...85448& | |||
| [Coke] | ah. Well, instead I encourage everyone to donate a small amount if they can. | 13:27 | |
| Voldenet | yes, but it's such a waste of cpu power to get something non-deterministic | 13:28 | |
| it's like writing a calculator with an llm | |||
| disbot | <antononcube> @Voldenet Even very detailed ones: | ||
| <antononcube> cdn.discordapp.com/attachments/633...4c3c2& | |||
| <antononcube> I understand, but that is not a great argument. | |||
| <antononcube> I prefer deterministic solutions, of course, but with the LLMs I can easily get "one of" results and move on. | 13:29 | ||
| Voldenet | depends on the use case I suppose | 13:30 | |
| disbot | <antononcube> Well, sort of. LLMs being unreliable and slow can make certain "LLM employment" a fairly long and frustrating endeavor. | 13:31 | |
| Voldenet | I'm proudly writing scripts for 4 hours so I can avoid 20 minutes of work, but then I can do that work in just 5 seconds! :P | ||
| disbot | <antononcube> I made a model about LLM usage accumulation of money and frustration 3 years ago. Now it is old, because of the AI-agents use. | 13:33 | |
| [Coke] | Voldenet: story of my life. | 13:34 | |
| disbot | <antononcube> But, much of my LLM-related work (I get payed for) comes from the perspective that LLMs are unreliable and slow. | ||
| ab5tract | [Coke]++ # for his very generous offer | 14:18 | |
| [Coke] | ab5tract: I didn't mention how much, maybe it's not that generous. :) | ||
| ab5tract | while true, it's still a very appreciated gesture regardless of whatever details you fill in later | 14:19 | |
| mayhaps it will even inspire some others to follow your example :) | 14:28 | ||
|
15:40
human-blip left
15:42
human-blip joined
15:48
human-blip left
15:50
human-blip joined
15:52
Geth__ joined
15:53
Geth__ left,
Geth__ joined
15:54
ChanServ sets mode: +o lizmat
15:55
Geth left
15:56
Geth__ left,
Geth joined,
ChanServ sets mode: -o lizmat
17:02
dakkar left
19:59
johnjay left
20:21
pippo joined
20:24
johnjay joined
|
|||
| pippo | m: my %a = 'A' => 1, B => '1', C => '3'; %a.append('A' => 2); | 20:28 | |
| camelia | ( no output ) | ||
| pippo | m: my %a = 'A' => 1, B => '1', C => '3'; say %a.append('A' => 2); | 20:29 | |
| camelia | {A => [1 2], B => 1, C => 3} | ||
| pippo | m: my %a = 'A' => 1, B => '1', C => '3'; %a ,= 'A' => 2; say %a; | 20:30 | |
| camelia | {A => 2, B => 1, C => 3} | ||
| pippo | is ",=" supposed to replace or append? | 20:31 | |
| In the documentation ",=' seems to be a concatenation operator... | 20:33 | ||
|
20:40
pippo left
21:21
kelt0m left
21:23
kelt0m joined
21:28
johnjay left
21:30
johnjay joined
21:31
johnjay left
21:32
johnjay joined
|
|||
| ugexe | %a ,= 'A' => 2 means %a = %a, 'A' => 2 | 21:41 | |
|
22:00
johnjay left
|
|||
| disbot | <demanddystopia> is the documentation wrong or slightly misleading then? | 22:10 | |
| <demanddystopia> cause it says > Creates an object that concatenates, in a class-dependent way, the contents of the variable on the left-hand side and the expression on the right-hand side: but it doesn't seem to do the contents but the variable itself? Or maybe that's a consequence of the item context stuff idk, just felt that it rarely behaved as I thought it would | 22:12 | ||
|
22:19
DemandDystopia joined
22:25
DemandDystopia left
22:26
DemandDystopia joined
22:27
DemandDystopia left,
DemandDystopia joined
22:33
DemandDystopia left
22:37
johnjay joined
|
|||
| lizmat | weekly: andrewshitov.com/2026/09/15/raku-l...-italiano/ | 22:48 | |
| notable6 | lizmat, Noted! (weekly) | ||
|
23:41
Sgeo joined
23:55
lucs left
|
|||