libera/#commonlisp - IRC Chatlog
Search
4:37:02
basicnpc
Have you tried that? I'm just curious if it's really incapable while compare with seasoned programmers.
4:37:31
Pixel_Outlaw
You have to rotate your idols and genuflect properly so your petition will be answered eh? ;)
4:38:10
bike
i already have to do "tricks" in normal programming. the idea of doing that for a system that's nondeterministic, in something as imprecise as natural language, is not appealing
4:39:33
bike
let me give an example. we were trying it for Clasp and had it generate code to make "trampolines" for bytecoded functions, i.e. native coded functions that'll show up in backtraces for profiling purposes
4:39:57
bike
and what it came up with was generating the code with LLVM (which we already use, so that's fine) along with hardcoded handcoded DWARF
4:40:30
bike
so, it worked, apparently, and in a sense it's impressive that it can do that, but in another sense it's very fragile and the next time LLVM codegen changes the DWARF would go out of sync and everything would break
4:41:53
aeth
I'm not particularly interested in taking an activity that's essentially free (plenty of perfectly capable "e-waste" systems out there that might not web browse well and might not run current Windows/macOS, but can still run Emacs) and placing it behind a subscription that will only go (way) up in price.
4:42:08
aeth
For someone who can already program, it's not too far off from being told that you should pay for canned air.
4:42:37
aeth
Maybe if you're in a hurry, but it doesn't get the details right and if I didn't want to get the details right, I could probably program 10x faster than I do.
4:44:37
aeth
I don't mind AI (the broader subject before it got corrupted to exclusively mean "LLM chatbots") and I don't mind codegen (macros!), but I do mind subscriptions.
4:44:49
basicnpc
bike Was your prompt clear that it shouldn't just generate a fragile hack? Once you've seen that hack, did you try further by asking it to find a less fragile solution (and provide your reasonings on why that's fragile)?
4:46:03
bike
we did ask it to try a less fragile solution, and what it did was come up with a solution that was fragile in a different way, which it lied about in comments, and which took me like two hours of code review to understand
4:47:59
basicnpc
When it made that mistake the second time, has its context window been >50%? I see a major decline of quality after it passes 50~70%..
4:50:08
aeth
basicnpc: I think the problem with such heuristics is that the heuristics for how to work with it will probably be completely different in 2 years as it was 2 years ago, so there's no real benefit to being an early adopter here (possibly a drawback because you'll keep using old heuristics).
4:50:53
bike
at that point i was annoyed enough to not be super interested in tweaks. did i not make that clear? if it was a person i'd be asking them what the hell they thought they were doing
4:51:33
basicnpc
And tools need to be used correctly. (Not saying that you weren't. I don't know what's correct anyway either.)
4:52:43
basicnpc
aeth I dunno. How did you tell that the fire which burnt you a few years ago is similar to the fire that's in front of you?
4:53:43
bike
it's a tool that's sold to me as a person, and which I control through natural language instead of strict configuration. if i had a new employee and they did that shit, and someone was like "oh John's just a little goofy like that, have you tried getting him donuts?" i'd think they were mocking me
4:54:24
basicnpc
Haha yeah I get that. I just think it may be more productive to use it as a tool, not a person.
4:54:58
aeth
basicnpc: Fire might be literally the worst analogy you could have chosen because humans have been using fire for possibly 2 million years. At that point, it's not just one of the oldest technologies, it's technology that we may have literally evolved deep instincts about.
4:57:51
aeth
The only way you can learn an AI model is if it's an unchanging local one that you control. If it's some SaaS, they could be patching it daily.
4:58:27
bike
i could try a local model i guess, and then i might actually have some interest in tweaks
4:58:54
bike
the way people come up with prompts just seems really prone to magical thinking of various kinds
4:59:16
aeth
Maybe 5 years before any are usable, idk. Maybe your local computers are vastly more powerful.
4:59:43
bike
"the LLM hallucinates a lot, but if i just write DON'T MAKE STUFF UP NEVER MAKE STUFF UP enough times that'll be fixed"
5:06:49
bike
seems like a trap, since it is not a person, but all my experience with something in this position would be treating it as a person, so if i get into negotiations with it i'll probably just fall flat on my face
5:07:56
aeth
Yes, either it needs effective online learning (and is basically approaching personhood at that point) or a more precise UI
5:08:29
aeth
Gigantic context windows can't fake it long enough and various compression compression hacks don't seem to work like how proper continuous, online learning would work.
5:14:48
Pixel_Outlaw
A lot of the "fun" of Lisp is actually designing in a very open language - making choices, seeing how they play out. If the sculpting phase is taken out a lot of very good programmers won't be having much fun.
5:15:30
aeth
The idea is to remove the boilerplate with the right abstraction so nobody ever has to deal with the low-level again.
5:16:35
aeth
That current-gen AI can do any useful work at all is a failure of popular APIs, as well as a failure of popular languages to abstract over those APIs.
5:18:33
Pixel_Outlaw
jackdaniel, did you get to go on the saltmine tour? Looked like they needed X many people.
5:18:38
aeth
jackdaniel: but that's what boilerplate-filled languages like Java and Go were designed to do in the first place
5:20:04
jackdaniel
I've went to the salt mine straight from the central station after I have arrived in Krakow, they were coincidentally leaving at the same time
5:20:49
Pixel_Outlaw
jackdaniel, probably a prime time to get that place outfitted with those mine sensors mentioned (the CL project).
5:23:12
jackdaniel
varjag had a very nice blog post about it two years ago: https://blog.funcall.org/lisp%20psychoacoustics/2024/05/01/worlds-loudest-lisp-program/
5:33:45
Pixel_Outlaw
Hmm Hexchat had trouble opening that. I better purchase a better IRC client. :P (I got it though, thanks, that was a good refresher)
9:20:21
pl
jcowan: lol. I find it works much better when you wrap instructions in tools that verify correctness. Takes extra time watching poor machine fight with linter, but is worthwhile if the job was valid to outsource
9:28:10
jcowan
The thing is, why should the tool in question (if an LLM) not lie and say the code passes?
9:36:17
jcowan
I have an algorithm problem, but I don't know where to go to talk about it. I have a dependency dag where each node is associated with an action.
9:36:51
jcowan
I need to walk from the root to a chosen state (or vice versa), executing all the actions required by the graph.
9:37:33
jcowan
If it was a tree, I'd just walk up the tree, collect the actions, and execute them in reverse order, but having multiple dependencies at a node is a requirement of the problem.
9:38:34
jcowan
It's easy to find the nodes to execute, but figuring out in which order to execute them baffles me.
9:53:41
random-jellyfish
So you have a task with dependencies that have dependencies that have dependencies etc. And you want to trace all the dependencies that neet to be executed before the main task is? And it's a graph structure?
9:55:23
random-jellyfish
Independent dependencies can be executed in any order. Ones that have dependencies need to be executed in the order of their dependencies.
9:55:42
random-jellyfish
An interesting corner case is that of circular dependencies it that's allowed.
10:07:42
random-jellyfish
With mark and sweep you can "clean" up all the dependencies that are not linked to your root
10:17:40
random-jellyfish
Or you can look into topological sort as well. Not sure which one is better.
10:22:29
jcowan
All dependencies are always linked to the root; they represent actions taken in the past that need to be re-executed.
10:29:36
jcowan
Okay, I have now extended the problem: see https://gist.github.com/johnwcowan/ef01ad6e375171e0d0a9c8f842f0c340?permalink_comment_id=6147900#gistcomment-6147900 or just refresh the page.