[00:17] <SmokeMachine> now I remember, the only problem I got with RakuAST is the interpolation...

[00:27] *** hankache_ joined
[00:31] *** hankache left
[01:55] <SmokeMachine> m: class Expression { method Str { self } }; multi infix:<~>(Str() $left, Expression $right) { "SQL concat" }; say "prefix: { Expression.new }"

[01:55] <camelia> rakudo-moar e17a1d43b: OUTPUT: «SQL concat␤»

[01:56] *** kylese left
[01:57] <SmokeMachine> in my machine it keeps breaking... could someone test that locally?

[01:57] *** kylese joined
[01:58] <SmokeMachine> I keek getting this: https://usercontent.irccloud-cdn.com/file/iBQ6lXHD/image.png

[02:02] *** lizmat left
[02:15] *** kylese left
[02:15] *** kylese joined
[02:23] *** lizmat joined
[03:18] *** stanrifkin_ joined
[03:19] *** stanrifkin_ left
[03:21] *** stanrifkin left
[05:08] *** vrurg joined
[05:09] *** vrurg_ left
[06:29] *** Sgeo left
[06:39] *** hankache_ left
[07:06] *** stanrifkin joined
[08:01] *** nine_ left
[08:01] *** nine joined
[08:04] <lizmat> c: HEAD class Expression { method Str { self } }; multi infix:<~>(Str() $left, Expression $right) { "SQL concat" }; say "prefix: { Expression.new }"

[08:04] <committable6> lizmat, ¦HEAD(50379ea): «This type cannot unbox to a native string: P6opaque, Expression␤  in block <unit> at /tmp/WrikKPnEPQ line 1␤␤ «exit code = 1»»

[08:07] <lizmat> looks like the new infix is invisible in interpolation

[08:09] <lizmat> c: HEAD class Expression { method Str { self } }; multi infix:<~>(Str() $left, Expression $right) { "SQL concat" }; say "prefix: " ~ Expression.new"

[08:09] <committable6> lizmat, ¦HEAD(50379ea): «===SORRY!=== Error while compiling /tmp/FlJuRdNEXR␤Two terms in a row␤at /tmp/FlJuRdNEXR:1␤------> ncat" }; say "prefix: " ~ Expression.new<HERE>"␤ «exit code = 1»»

[08:09] <lizmat> c: HEAD class Expression { method Str { self } }; multi infix:<~>(Str() $left, Expression $right) { "SQL concat" }; say "prefix: " ~ Expression.new

[08:09] <committable6> lizmat, ¦HEAD(50379ea): «SQL concat␤»

[08:24] <lizmat> https://github.com/rakudo/rakudo/issues/6860

[08:33] <xinming> W

[09:35] <Voldenet> >but at the same time it makes me feel like not being good/smart enough to finish my own work…

[09:35] <Voldenet> IMO mysql driver is the thing that llm should be good at and humans not necessarily

[09:36] <Voldenet> because humans would get assumptions from implementing previous drivers

[09:37] <Voldenet> while LLM wouldn't, and given any implementation of the previous driver, it should be able to translate technologies

[09:37] <Voldenet> s/should/might/

[09:37] <evalable6> Voldenet, rakudo-moar 50379ea28: OUTPUT: «Use of uninitialized value $_ of type Any in string context.␤Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at /tmp/UXtVCYFD74 line 1␤»

[09:39] <Voldenet> especially when driver in e.g. php exists

[09:40] <Voldenet> though still, with good instructions and well-thought architecture output would be better

[10:07] <apogee_ntv> LLM could also get those assumptions since it'll be trained on all the other drivers.

[10:08] <apogee_ntv> I don't feel the same way tbh because I know I'm defeated by time much more than ability. There's nothing in Selkie I couldn't write manually, I wrote notcurses applications for a decade but never had the time to put into making the framework I wanted.

[10:09] <apogee_ntv> I expect the same is true for both of you. If you had to do it without AI and you had infinite time you would be able to.

[10:10] <apogee_ntv> What AI does more than anything is compresses and offloads the time requirement.

[11:11] *** samebchase joined
[11:12] *** samebchase left
[11:33] *** samebchase joined
[11:59] *** fdp left
[12:17] <Voldenet> I mean, assumptions from mssql don't necessarily translate to mysql

[12:17] <Voldenet> example is how param bindings are positional in mysql, named in mssql

[12:19] <apogee_ntv> Oh right, yeah what I meant is the LLM will look for i.e. 'the mssql driver in Python' and copy assumptions from that, not from the adjacent raku mysql driver.

[12:19] <Voldenet> indeed, most coders don't do that

[12:24] <apogee_ntv> Thats how I would generally have approached the problem but I guess if you assume sql is sql you wouldn't think to.

[12:25] <lizmat> "the mssql driver in Python' and copy assumptions from that,"   which potentially introduces licensing issues

[12:26] <apogee_ntv> Possibly, idea-expression distinction *should* cover most of it.

[12:31] <Voldenet> with the introduction of AI, we've abandoned the concept of software licenses

[12:32] <Voldenet> sadly it's the state of things

[12:32] <apogee_ntv> No I mean even historically, copyright protects your expression of an idea, not the idea itself.

[12:33] <apogee_ntv> The code is more protected than the general means by which you solved the problem.

[12:33] <Voldenet> I mean, agents get fed proprietary code every day

[12:34] <Voldenet> it's pretty obvious

[12:34] <apogee_ntv> If I allocate a 128 byte buffer, it doesn't obligate everyone who's read my code to solve the problem without allocating a 128 byte buffer.

[12:35] *** lizmat left
[12:36] <apogee_ntv> Oh for sure.

[12:36] <apogee_ntv> My agents definitely do but they run locally or on ZDR endpoints.

[12:37] <Voldenet> on the other hand, if you allocate N 128 byte buffers for json deserialization, it could be considered novel

[12:37] <Voldenet> despite it being mostly just allocation, depending on the algorithm

[12:37] <apogee_ntv> Possibly yes. It could cross from being 'the idea' (deserialize JSON) to 'the expression' (novel method of deserializing JSON).

[12:38] <Voldenet> though people have patented pretty crazy things

[12:38] <apogee_ntv> I guess the difference is historically if I got ideas from Django I'd know I got ideas from Django and probably put in the readme 'This bit of code is inspired by Django (XYZ license)' whereas now I have no idea where that inspiration came from.

[12:39] <apogee_ntv> or the comments

[12:39] <Voldenet> like one-click purchase in amazon

[12:39] <apogee_ntv> Even with very permissive licenses that allow derivative work, I'd know 'this license allows derivative work' because I had to go find the work I was deriving from.

[12:40] <Voldenet> ah, this actually happened with lzw in gif iirc

[12:41] <apogee_ntv> Like Selkie derives a *lot* from re-frame.

[12:41] <apogee_ntv> Not so much the code but the API

[12:41] <apogee_ntv> is heavily inspired

[12:43] <Voldenet> re-frame itself is MIT

[12:43] <Voldenet> so I doubt it'd be a problem if it's even copied 1:1

[12:43] <Voldenet> I do wonder if one could copy the api from the MIT without mentioning it at all

[12:44] <Voldenet> though it'd be practical to say that it's reused from X, so people could look for design patterns in that other library too

[12:44] <apogee_ntv> It is mentioned in the as-yet unreleased 0.99 readme, cant remember if its mentioned in the 0.16 one (which is far less close to it).

[12:52] <apogee_ntv> That was part of the aim in 0.99, get much closer to re-frame's API instead of being similar enough to be confusing where different (also useful with LLMs which are accustomed to re-frame patterns).

[13:04] <apogee_ntv> Though obviously web framework doesn't translate 1:1 to TUI framework.

[13:05] *** ShimmerFairy left
[13:22] *** acidsys joined
[13:22] *** lizmat joined
[13:35] *** ShimmerFairy joined
[13:42] *** kylese left
[13:42] *** scott2 left
[13:42] *** Pixi left
[13:42] *** coleman left
[13:42] *** kjp left
[13:42] *** cm left
[13:48] *** kylese joined
[13:48] *** scott2 joined
[13:48] *** Pixi joined
[13:48] *** coleman joined
[13:48] *** kjp joined
[13:48] *** cm joined
[13:51] <disbot> <antononcube> For experienced programmers LLMs / AI-agents are amplifiers and/or "force multipliers". For anything "protocolish" or repetitive AI-agents would be always faster and better (on average.)

[14:12] *** acidsys left
[14:32] <Voldenet> nope, not better

[14:32] <Voldenet> I don't avoid assembly because compilers make great code, it's because I'm lazy ;p

[14:37] *** ShimmerFairy left
[14:39] *** ShimmerFairy joined
[15:10] <disbot> <antononcube> Hm... do you think you can write faster a better Raku package for using, say, OpenAIs API than, say, Codex or Gemini AI-agents with their OpenAI's or Google's newest LLMs?

[15:19] <apogee_ntv> Compilers do generally optimize well though. I occasionally manually write assembly (definitely don't get agents to do that, they tend to be very bad at it) but it's rare.

[15:30] <lizmat> SmokeMachine: have you considered having Expression.Str return something stringy ?

[15:30] <lizmat> cause that would(also) solve the issue

[15:31] <SmokeMachine> I need that to not return a Str, but an Red::AST... I use that to create my SQL query...

[15:31] <lizmat> or is there a deeper reason why you want to handle that through the infix?

[15:31] <lizmat> ah, ok

[15:31] <lizmat> understood

[15:33] <lizmat> would you infix be able to handle more than 2 args ?

[15:33] <lizmat> *your

[15:33] *** Sgeo joined
[15:39] <SmokeMachine> lizmat: it receives 2 by 2... https://usercontent.irccloud-cdn.com/file/LjMLuJJT/image.png

[15:40] *** ilogger2 left
[15:48] *** ShimmerFairy left
[15:50] *** ilogger2 joined
[15:50] *** ShimmerFairy joined
[16:16] *** vrurg_ joined
[16:18] *** vrurg left
[16:27] *** Sgeo left
[16:38] <disbot> <.landyacht.> Has anyone noticed a bug where stack traces are flat out wrong when the code in question is run via a code object? I have my own threadpool implementation and I'm getting useless stack traces even when the exception is thrown and caught within the code submitted to the threadpool

[16:39] <lizmat> do you also see that with the own-up functionality ?

[16:39] <disbot> <.landyacht.> own-up meaning what? Sorry, not familiar with that term yet

[16:42] <disbot> <.landyacht.> I more or less have CATCH { default { say .gist } } within the code submitted to the threadpool and the .gist points (roughly, some line numbers are weird) to where the threadpool calls into the submitted code object

[16:43] <disbot> <.landyacht.> but then the order of the stack trace is weird too, so I think it's just getting confused

[16:44] <disbot> <.landyacht.> oh sorry, you were probably responding to someone else there :^)

[16:44] <lizmat> ah, not documented  :-(

[16:44] <SmokeMachine> sorry, what's own-up?

[16:45] <lizmat> https://github.com/rakudo/rakudo/blob/main/lib/own-up.rakumod

[16:46] <lizmat> also more directly, by calling VM.own-up

[16:48] <SmokeMachine> lizmat: was that question for me? Sorry, I'm still lost...

[16:48] <lizmat> SmokeMachine: working on a fix  :-)

[16:48] <SmokeMachine> thanks! :)

[16:58] *** pierrot left
[17:01] <lizmat> SmokeMachine: https://github.com/rakudo/rakudo/pull/6868

[17:01] *** Sgeo joined
[17:02] <SmokeMachine> \o/ thanks!

[17:07] *** pierrot joined
[17:12] *** tgt joined
[17:56] *** tgt left
[17:59] *** tgt joined
[18:16] *** tgt left
[20:05] *** lizmat left
[20:05] *** lizmat_ joined
[20:36] *** hankache_ joined
[20:36] *** stanrifkin left
[20:56] *** stanrifkin joined
[21:18] *** jjido joined
[21:30] *** hankache_ left
[21:31] *** hankache joined
[21:32] *** vasko453558616 left
[21:33] *** vasko453558616 joined
[21:51] <lizmat_> RakuIRCLogger 

[21:51] *** lizmat_ left
[21:52] *** lizmat joined
[21:57] *** hankache left
[22:02] *** stanrifkin left
[22:24] *** jjido left
[23:23] *** rir joined
[23:25] <rir> Where to make an issue about https://raku.org/ content?

