morganw has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
lisp123 has quit [Client Quit]
lisp123 has joined #commonlisp
<lisp123>
anyone work with lamport timestamps or other distributed computer algorithms?
<lisp123>
or operational transformation
<hayley>
I'm not sure how operational transformations relate, but I've worked with distributed algorithms.
dipper has joined #commonlisp
<lisp123>
i'm using a bit of lamport's 'happen before' in OT
<lisp123>
wanted to read some CL code in this space - and is this something that can be used in multi threading?
<hayley>
"Happens-before" relations are common in memory models, but those are seldom expressed in programming languages like Common Lisp.
<lisp123>
I see
Oladon has quit [Quit: Leaving.]
peterhil_ has joined #commonlisp
anticomputer has quit [Ping timeout: 255 seconds]
anticomputer has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
ClickHacker has joined #commonlisp
jeosol has joined #commonlisp
ClickHacker has quit [Ping timeout: 264 seconds]
azimut has joined #commonlisp
jolby has quit [Quit: Client closed]
nij- has quit [Quit: Using Circe, the loveliest of all IRC clients]
akoana has quit [Quit: leaving]
pve has quit [Quit: leaving]
scymtym__ has quit [Ping timeout: 246 seconds]
scymtym__ has joined #commonlisp
jvdydev has quit [Remote host closed the connection]
jolby has joined #commonlisp
agent1011001 has joined #commonlisp
peterhil_ has quit [Remote host closed the connection]
ClickHacker has joined #commonlisp
peterhil has quit [Ping timeout: 246 seconds]
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
jolby has quit [Quit: Client closed]
avocadoist has joined #commonlisp
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
lisp123 has joined #commonlisp
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
lisp123 has quit [Ping timeout: 260 seconds]
terrorjack has quit [Ping timeout: 264 seconds]
terrorjack has joined #commonlisp
waleee has quit [Quit: WeeChat 3.7.1]
Oladon has joined #commonlisp
akonai has quit [Ping timeout: 255 seconds]
lispnik has joined #commonlisp
son0p has quit [Ping timeout: 260 seconds]
akonai has joined #commonlisp
dipper has quit [Remote host closed the connection]
dipper has joined #commonlisp
akonai has quit [Ping timeout: 260 seconds]
akonai has joined #commonlisp
akonai has quit [Ping timeout: 248 seconds]
lispnik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
azimut has quit [Ping timeout: 255 seconds]
lispnik has joined #commonlisp
akonai has joined #commonlisp
lispnik has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tyson2 has quit [Read error: Connection reset by peer]
cdegroot has quit [Ping timeout: 260 seconds]
robin has quit [Quit: Leaving]
akonai has quit [Ping timeout: 246 seconds]
akonai has joined #commonlisp
cdegroot has joined #commonlisp
akonai has quit [Ping timeout: 248 seconds]
azimut has joined #commonlisp
akonai has joined #commonlisp
akonai has quit [Ping timeout: 260 seconds]
akonai has joined #commonlisp
son0p has joined #commonlisp
akonai has quit [Ping timeout: 252 seconds]
Inline has joined #commonlisp
akonai has joined #commonlisp
ec_ has quit [Ping timeout: 255 seconds]
agent1011001 has quit [Quit: Client closed]
ec_ has joined #commonlisp
aartaka has joined #commonlisp
akonai has quit [Ping timeout: 252 seconds]
akonai has joined #commonlisp
Oladon has quit [Quit: Leaving.]
masinter has quit [Remote host closed the connection]
azimut has quit [Ping timeout: 255 seconds]
prokhor has joined #commonlisp
ClickHacker has quit [Ping timeout: 272 seconds]
akonai has quit [Ping timeout: 246 seconds]
akonai has joined #commonlisp
peterhil has joined #commonlisp
igemnace has joined #commonlisp
igemnace has quit [Client Quit]
prokhor has quit [Remote host closed the connection]
prokhor has joined #commonlisp
pve has joined #commonlisp
igemnace has joined #commonlisp
igemnace has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
get_in_the_fucki has quit [Quit: You have been kicked for being idle]
inline__ has joined #commonlisp
Inline has quit [Ping timeout: 260 seconds]
shka has joined #commonlisp
inline__ has quit [Quit: Leaving]
rgherdt has joined #commonlisp
<AadVersteden[m]>
There is some substantial movement on the AI space with respect to software development tools. I don't see any lisp-like languages included in the datasets used to train these. This does not serve as an endorsement, but is there any activity on getting lisp included there? Am I not looking in the right place?
<beach>
I think Lisp is not much involved in the way modern AI is done.
<hayley>
As input to AI training, not for implementing AI.
<beach>
Do you think Lisp has an advantage there?
<hayley>
I suppose it would help if one wants to use AI to generate Lisp code.
<AadVersteden[m]>
I don't know. I doubt Assembly or Python or TypeScript really have one. However, "next-generation" software development tools are being constructed on top of it.
<AadVersteden[m]>
It's mostly code-generation indeed. Sometimes quite impressive. But regardless of their validity, I suspect a new generation of developers will rely on these tools. We should have them too.
<AadVersteden[m]>
*no-defun-allowed*: I can support that statement, but looking at a newer generation of developers, they might just not do the programming thing without it. I also don't think we've seen the real impact of these tools yet.
<hayley>
There are also questions around the licensing of generated code. For that and the forementioned security issues, I think it would be a very bad idea to enable that kind of behaviour.
<AadVersteden[m]>
So it's not so much a "I want this" but rather "perhaps lisp needs this to stay relevant"
<splittist>
I guess if we feed vast numbers of almost-identical ERP systems or CRUD apps written in CL into a giant summarizer then body-shops can cut and paste from that instead of subtly wrong stackoverflow answers
<beach>
AadVersteden[m]: I don't think Lisp needs to be present in every possible domain in order to stay relevant.
<splittist>
The search for relevance is a strong indicator of imminent death. Ignoring fashion is often the long-term survival strategy.
<AadVersteden[m]>
As much as the licensing issues exist, some datasets include the accompanied license. It would not be rocket science for GitHub's copilot to include the license constraint I think. It seems to have been an active choice not to take it into account. I dislike it too and I don't want the generated code in our company at this stage (even though I can't really check it).
<hayley>
If these security and legal issues still exist, it would be better to be irrelevant than relevant, suable and hackable.
<AadVersteden[m]>
beach: I don't think this is a domain. This is a developer paradigm shift very similar to code completion or documentation lookup being readily available.
<AadVersteden[m]>
splittist: Yes, I agree. Though ignoring changing times might not be the best way to stay relevant either.
<splittist>
We'll rely on second-mover advantage
<AadVersteden[m]>
Hmmm. Perhaps to clarify: these tools are trained on datasets. They don't care about the programming language behind it that dataset. Lisp is not in these datasets today. If it would be, then the lessons learned and created tools would apply here too.
<AadVersteden[m]>
So it's not about adopting our libraries to paradigms, but rather letting the research happening on this front also happen on Lisp.
<splittist>
AadVersteden[m]: why do you think lisp is not included in the datasets?
<AadVersteden[m]>
Takeaway point is that nothing is happening on this front at this time. I also don't know people constructing the datasets at this point.
<AadVersteden[m]>
splittist: I don't know. I have not asked. A few suspects: not that popular of a language (though relevant according to Tiobe) so perhaps less source-code available; I suspect they may want to train by running test-cases on the code and I can imagine this not being available.
<ixelp>
codeparrot/github-code-clean · Datasets at Hugging Face
<beach>
Didn't we see several examples where Chatgpt generated Lisp code?
<splittist>
AadVersteden[m]: I think you could fake it with some sort of hippie-expand function pointed at your quicklisp downloads.
<splittist>
beach: yes
<beach>
Then, Lisp code must have been present in the training set, no?
Lord_of_Life has quit [Ping timeout: 265 seconds]
Lord_of_Life has joined #commonlisp
<AadVersteden[m]>
beach: oh, I did not see that. OpenAI is not very open anymore. I was looking at datasets for open models.
<AadVersteden[m]>
might also have indexed books on lisp rather than source-code.
<splittist>
I have no intuition about what a system that produces plausible text about every prime number having a another prime away from it can do. ChatGPT is the Beanie Babies of AI.
<splittist>
AadVersteden[m]: surely it would be harder to _exclude_ lisp code than include it?
<AadVersteden[m]>
splittist: if you only take OpenAI (for instance for ChatGPT) into account, then yes. I'm not that much looking into corporate research but more into the datasets I could find as a mere mortal.
<AadVersteden[m]>
I would expect GPT4 to also take whatever they can get their hands on into account.
<AadVersteden[m]>
I do hope the next generation of development tools isn't tied to a subscription
<AadVersteden[m]>
beach: cool! This fits in the narrative of GPT3 consuming everything it can get its hands on, but it it doesn't help open tools being crated that'd be applicable in Common Lisp.
<AadVersteden[m]>
Unfair GPT3 has gotten the time to learn about McCLIM and I haven't XD
<beach>
AadVersteden[m]: I guess I know longer understand the problem you see. Can you give an example?
<AadVersteden[m]>
beach: Part of the leading research is happening through OpenAI in a closed system. The intent of OpenAI was to create an open ecosystem of AI research IIRC, but later it was decided that the datasets and models should not be opened. I suspect because there's much value to be gotten out of that.
<splittist>
AadVersteden[m]: you can comfort yourself by taking the view that GPT3 hasn't, actually 'learned' anything in any self-conscious sense. And McClim will be available for you to learn and understand in a precisely self-conscious sense for ever.
<AadVersteden[m]>
The datasets for OpenAI seem to contain anything they can get their hands on. I don't know but it seems that way.
<beach>
AadVersteden[m]: And how is this problem related to Common Lisp again? Sorry for being so dense.
<AadVersteden[m]>
There is a separate and open research going on in parallel. The datasets for this and the corresponding models are often opened up. I don't see lisp in these open datasets. I was wondering if there were ongoing efforts on getting lisp in these open datasets for open research.
<beach>
I think I see. Thanks.
<AadVersteden[m]>
splittist: Yeah, I'm not blind for the double meaning of the term learn in that sentence. That is a very nice thing to say though :D One day McClim knowledge will be mine!
<AadVersteden[m]>
beach: Welcome! I very much appreciate the added questions!
<beach>
AadVersteden[m]: Wouldn't it be up to the researchers of that parallel research to decide what goes into their datasets?
<beach>
AadVersteden[m]: I mean, what could Lispers possibly do to make them change their minds?
<AadVersteden[m]>
beach: I'm not that much at home in the space to know either, but looking at the datasets I found I doubt there was prior research done to figure out what to put in these datasets. Perhaps there are real reasons but perhaps I/we should find the right place to just ask.
<beach>
OK.
aartaka has quit [Ping timeout: 260 seconds]
aartaka has joined #commonlisp
cage has joined #commonlisp
dipper has quit [Remote host closed the connection]
morganw has joined #commonlisp
<jackdaniel>
to me models like gpt is a way to wash software licenses without consent (nor compensation)
<jackdaniel>
(and resell it under the ai pixie dust excuse)
<ixelp>
AN Open Source Lawyer’s View on the Copilot Class Action Lawsuit – Law Offices of Kate Downing
<jackdaniel>
splittist: I saw these, thanks
prokhor_ has joined #commonlisp
<jackdaniel>
what is glaring in these articles is not even that they are alightly evasive but the fact, that the lawyer in question has background that is hard to pass as not biased
<pjb>
jackdaniel: I agree with you, given the result we got from chatgpt when asked to write tests for nconc…
<pjb>
those "AI" don't understand anything, they're not better than eliza.
<jackdaniel>
slightly*, afair she works as a person whose job is to make corpo entities easier wrt opensource
<jackdaniel>
life easier*
prokhor has quit [Ping timeout: 264 seconds]
<jackdaniel>
well, I'm certainly imprrssed by these tools - what I find objectionable is copyright theft by big guys from small guys
<jackdaniel>
and these models are not even open
<jackdaniel>
impressed*
<pjb>
I'm not impressed. GPS demonstrate better understanding than GPT…
<pjb>
But the problem is not exactly one model vs. the other. It's to realize that we need to merge both statistical AI and symbolic AI…
<splittist>
jackdaniel: that's not the way I read them. But then I'm coming from my own background.
<splittist>
pjb: I like the GPS / GPT line (:
<hayley>
"What do we want?" "Program synthesis!" "When do we want it?" ?WHEN
<coat>
!help
<coat>
just checking if there is any channel bot I can use for querying FAQ-type questions
<hayley>
Speaking of, I wrote a program today which generates conservative and reversible circuits (from the controlled-swap gate) that implement truth tables and functions. After some optimisation I could brute-force a full adder circuit, but it's too slow for anything else.
<beach>
coat: We will play the role of the bots.
<coat>
thanks beach :)
<beach>
coat: If you are just learning Common Lisp, you may also want to visit #clschool. This channel is not really for newbie questions (I don't know whether you are one of course), but newbie questions are tolerated to some degree.
<hayley>
What else could I do here? I could keep equivalent circuits to Boolean logic gates, try to synthesise Boolean circuits, and then simplify the circuit, but I fear that could produce very sub-optimal results.
<hayley>
Enumerating all ways to write a Boolean expression seems easier than enumerating all circuits of some size, since most circuits are not even correct.
<hayley>
...no, I can produce infinitely many equivalent Boolean expressions.
<hayley>
...and I am trying to reduce the number of controlled-swap gates used, not any measure on Boolean expressions. This is probably yet another compiler problem, but restricted to combinatorial logic.
<AadVersteden[m]>
jackdaniel: I fully follow you on the theft portion. Furthermore, I think it would be possible to train within the scope of a license and enforce that license. And to add, a defense I heard recently regarding consent for using artwork to train on being "it's really not feasible to ask 20k people to let us train on this data" is impressively bad.
<phoe>
"well maybe then you shouldn't be doing what you are doing"
lisp123 has joined #commonlisp
epony has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 246 seconds]
<jackdaniel>
the worst case scenario - people will stop to share, but that would be the second best outcome for microsoft
aartaka has joined #commonlisp
<hayley>
In my experience the quality of generated code is too low. In an ideal world, this would cause people to not use AI tools, but this is not an ideal world.
<lisp123>
hayley: it will get better. What is interesting is that it may likely result in a lot more boilerplate code which makes programs harder to maintain
jolby has joined #commonlisp
<lisp123>
We may see a fair few 'low-code' / 'no-code' solutions popping up
epony has joined #commonlisp
<hayley>
I am not holding my breath. At least many low code/graphical approaches have some degree of soundness to them.
<lisp123>
What has been interesting for me, is that I tend to write very descriptive function names / variable names, in a consistent style. As a result, I find GitHub Pilot guesses the correct code more often than not (for 2-3 liners)
<lisp123>
e.g. if I have a function groupIntoConcurrentOperations and a predicate isConcurrentOperations, GH will be able to guess the former
azimut has joined #commonlisp
<AadVersteden[m]>
lisp123: does CoPilot work on common lisp code?
<lisp123>
yes it does
<lisp123>
i just tested it
<lisp123>
give me a sample incomplete form nd i'll letyou know what it returns (if any)
<_death>
these are bullshit machines, and they generate bullshit code.. if there's a need for lots of boilerplate/bullshit code, they may be useful.. but I don't see why a language like Lisp such a thing should be needed or encouraged
<AadVersteden[m]>
_death: I had assumed the same. Though seeing it in practice on JavaScript code, it generates better code than what I expect of some junior profiles and I can also assume it helps people learn good patterns. I see a lot of the negatives too.
<AadVersteden[m]>
lisp123: Cool, thanks for letting me know!
<AadVersteden[m]>
Perhaps we're just getting back into the Java era of loads of boilerplate code being written automatically because we decided not to solve the actual problem.
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
<_death>
these technologies ("LLMs") are mainly useful for generating fake traffic and propaganda, befuddling people into strange beliefs.. their use in generating code is just another instance of the can/should issue humans always get themselves into, where they inevitably pick the former rather than think about the latter
jmdaemon has quit [Ping timeout: 268 seconds]
rodicm has joined #commonlisp
rodicm_ has joined #commonlisp
rodicm has quit [Client Quit]
rodicm_ has quit [Remote host closed the connection]
rodicm has joined #commonlisp
<_death>
note that they could be used for information retrieval and NLU tasks, but because these often require significant domain-specific effort, they are not the most popular use cases, although they're probably the most valuable (translation or NER I guess can be less domain-specific and still valuable).. I don't know the extent that the companies behind these models make them easy to repurpose.. it's off topic so.. back to Lisp
<splittist>
Is there actually anything to the argument that you shouldn't intern lots of things into the KEYWORD package?
rodicm has quit [Quit: Leaving]
sbenitezb has joined #commonlisp
<splittist>
As opposed to interning them into another package, that is.
<Bike>
i don't think the particular package is important. the concern as i have heard it is that once a symbol is interned it will never be garbage collected until the package is, so e.g. if you read user input they could DoS you with a bunch of symbols. but that applies pretty much identically with non-keyword packages given that packages are rarely deleted
<_death>
well, keywords usually stick around, while you may want to delete a package made for that special purpose.. it also makes symbol completion less useful
jealousmonk has joined #commonlisp
<splittist>
Good points.
<splittist>
I guess I can make they self-evaluating wherever I intern them (if they're just 'markers')
<splittist>
s/they/them/
<_death>
and export them
tyson2 has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
<_death>
but if that's important, then there could also be the advantage of demarcating these symbols, animals:brown-tree-snake vs. just :brown-tree-snake
aartaka has joined #commonlisp
<_death>
but then you lose some properties of the keyword package of course (it's always there; automatic export/binding)
<phoe>
_death: in theory you could write a custom make-keyword-like function that also defconstants and exports the symbol in question as appropriate
<phoe>
but yeah, it's not easy to achieve keyword-package-like semantics in pure CL
<phoe>
some sort of ext:make-keyword-like-package would be nice but that would be up for every implementation to define
Catie has quit [Ping timeout: 256 seconds]
<_death>
the keyword package is always there because CL specifies it.. that will not be true for other packages
<phoe>
yes, but I could assume that e.g. loading an ASDF system would require some keywordlike package to be there too
<_death>
sure, that property of the keyword package may or may not be advantageous depending on the use case
lisp123 has quit [Remote host closed the connection]
Josh_2 has quit [Remote host closed the connection]
<_death>
this discussion reminded me that I need to make some non-keywords into keywords (as part of making some interface public) ;)
jolby has quit [Quit: Client closed]
<pjb>
phoe: indeed, you'd need a hook into INTERN or to replace it. You may use a trick like in IBCL to shadow CL and use a CL package with your own INTERN, or patch the implementations to provide such hooks.
<pjb>
Too bad we have a *macroexpand-hook*, but not a *funcall-hook* or a *compiler-macro-expand-hook* (and anyways, we can't write a compiler macro for CL:INTERN).
<pjb>
see for example the behavior of the LINUX package in clisp: symbols interned in that package are interned case sensitively, instead of being interned by the readtable-case setting. To implement custom packages with such behavior easily, you'd need some hooks too.
avocadoist has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 272 seconds]
aartaka has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
igemnace has joined #commonlisp
tyson2 has joined #commonlisp
anticomputer_ has joined #commonlisp
anticomputer has quit [Remote host closed the connection]