amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
danse-nr3 has joined #commonlisp
shawnw has quit [Ping timeout: 268 seconds]
Noisytoot has quit [Excess Flood]
Noisytoot has joined #commonlisp
josrr has quit [Remote host closed the connection]
HamzaShahid has joined #commonlisp
<HamzaShahid>
Hello Everyone!
<HamzaShahid>
Long time since I was last here (exams got me)
<HamzaShahid>
I have moved on to professional projects now!
<HamzaShahid>
So I was using Raylib to create audio and a window etc.
<HamzaShahid>
I made it so that the update and render functions are separated and you can compile and basically hot reload them now
istewart has quit [Quit: Konversation terminated!]
<HamzaShahid>
This works well until I get an error in the function and I can restart it normally HOWEVER, sbcl is locked up
<HamzaShahid>
so I thought of using bordeaux-threads and make a thread
<HamzaShahid>
unfortunately there is no RETRY restart with the thread
<HamzaShahid>
I am using SLY btw (emacs)
char has joined #commonlisp
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 260 seconds]
anticomputer_ has quit [Ping timeout: 260 seconds]
Pixel_Outlaw has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
rtypo has quit [Ping timeout: 272 seconds]
molson has quit [Ping timeout: 264 seconds]
sailorCa| has quit [Ping timeout: 256 seconds]
<char>
Hey bike, for ctypes, if should (cons integer null) be a subctypep of (list-of integer)? Of course the reverse would not be true.
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3 has joined #commonlisp
<thuna`>
char: (LIST-OF TYPE) is equivalent to (OR NULL (CONS TYPE (LIST-OF TYPE))) so (CONS TYPE NULL) would be SUBTYPEP by definition, no?
sailorCat has joined #commonlisp
<char>
thuna` That is what I was thinking, but it currently returns false.
<thuna`>
Huh
<char>
There is a comment "cons types are never recursive, so they can't be subtype of clist-of" I'm not sure how that explains this situation though.
genera__ has joined #commonlisp
decweb has quit [Ping timeout: 272 seconds]
genera_ has quit [Ping timeout: 255 seconds]
<thuna`>
I don't see (C)LIST-OF in CTYPE, though
<thuna`>
Or is this about something else?
shawnw has joined #commonlisp
<HamzaShahid>
How do cffi libraries usually handle callbacks? For example if there is a function SetAudioStreamCallback which takes in a function in C then how will common lisp libraries usually handle those cases (I can't find a setaudiostreamcallback function)
<ixelp>
ctype/ext/data-structures/list-of.lisp at main · s-expressionists/ctype · GitHub
<bike>
char: hm, i might have been thinking backwards there
<bike>
oh, i think i was thinking of cases with no cdr specified
HamzaShahid has quit [Remote host closed the connection]
<bike>
which would be wrong. i can't think of why (cons x null) shouldn't be a subtype of (list-of x)
johnjaye has quit [Ping timeout: 246 seconds]
<char>
I can fix it. Also is it okay for disjointp to call subctypep?
johnjaye has joined #commonlisp
<bike>
i think disjoint calling subtypep is ok. the predicates just have to not call the constructors (like disjoin), plus obviously you have to have a bsae case eventually
shawnw has quit [Ping timeout: 268 seconds]
<char>
Cool
wacki has joined #commonlisp
<thuna`>
According to the spec (loop (foo) :for (return)) isn't a simple loop but an extended one. ECL, SBCL, and ABCL all tread it as a simple loop, and I think that that's probably the better choice. Was this/Should it be amended in WSCL? ,(let ((i 10)) (loop (format t "~d " i) :for (when (zerop (decf i)) (return))))
<thuna`>
Although, if that is the case, then what is the criteria for what make a loop a simple loop, whether the first form is a compound form or not?
<thuna`>
s/make/makes/
<beach>
I don't see how it could be a valid extended loop.
admich1 has quit [Ping timeout: 268 seconds]
<thuna`>
If we treat the loop above as an extended loop then the conformant behavior would be to signal an error
<beach>
And it can't be a simple loop either according to 6.1.1.1.1
<beach>
Yes, it's a syntax error.
admich1 has joined #commonlisp
<beach>
What does Khazern say about it?
<thuna`>
It signals an error
<beach>
Great!
<beach>
Another reason why existing Common Lisp implementations should adopt Khazern. :)
shka has joined #commonlisp
<thuna`>
:)
<beach>
The only WSCL issue I see related to LOOP is that the text of the standard contradicts the grammar shown.
<beach>
The grammar does not allow a terminating clause anywhere, but the text says that it does. I hope I got "terminating clause" right.
pfdietz has quit [Quit: Client closed]
<thuna`>
Terminating clause as in while/until/return/etc.?
<gilberth>
That's a left over from CLtL2 and CLtL1.
<beach>
"Terminating Test Clause" seems to be the right term.
<beach>
gilberth: What is?
<gilberth>
Before this extended LOOP the body was a sequence of either forms or [GO] tags. Just like tags are allowed in the body of DO. However, it is beyond me why the MIT implementation chose tho shunt this by saying `(block nil (tagbody ,tag (progn ,@keywords-and-forms) (go ,tag))) in the simple case.
<gilberth>
beach: With CLtL2 this would work (LOOP (PRINT 'HEY) (GO L2) .... L2 (PRINT 'HO))
<beach>
I see.
<gilberth>
So the version of the MIT LOOP is inconsistent. It tests for extended LOOP like CLtL2 but expands the simple LOOP like ANSI-CL.
<gilberth>
* the version I stare
<beach>
Found the paragraph that would be the subject of a WSCL issue: 6.1.4: "Termination-test control constructs can be used anywhere within the loop body".
<thuna`>
I'll file a bug report with SBCL, ABCL, and ECL then. If anyone can check other implementations that would be nice
<beach>
gilberth: I see. So existing Common Lisp should really replace their LOOP implementation by Khazern.
<thuna`>
beach: I think it's the grammar that's faulty here, no?
<beach>
thuna`: Probably. But either way, a decision between the two should be made.
<thuna`>
I am not sure how you would state the text in the grammar, though
<beach>
Yes, rewriting the grammar would be a major undertaking.
<beach>
Though perhaps scymtym already did that in the s-expression-syntax library.
<gilberth>
thuna`: You also checked CCL btw.
<beach>
That library uses a packrat parser to parse standard macros, so the grammar would have to be phrased in terms of that.
<gilberth>
But then all share about the same LOOP implementation.
<beach>
They share the LOOP implementation, but they don't share the code base.
<beach>
... so the bug has to be fixed as many times as there are Common Lisp implementations.
<thuna`>
Hmm, SBCL's implementation expands the loop like CLtL2, if I'm not misunderstanding what gilberth is saying: https://0x0.st/Xbr2.txt
X-Scale has quit [Ping timeout: 250 seconds]
<thuna`>
Wait, no, I misread
<gilberth>
Mind the PROGN.
<thuna`>
Yup
<gilberth>
As I said, it shunts atoms from being tags. Remove the PROGN and you get the CLtL2 LOOP.
<gilberth>
But this is splitting hair to a certain extend. No extended LOOP can begin in a compound form, can it?
<beach>
gilberth: What do you mean by "it shunts" here?
<gilberth>
beach: It protects atoms from being interpreted as GO tags.
<thuna`>
No, it can't but it's the difference of whether a technically-extended loop should signal an error or work as a simple loop
<beach>
thuna`: It is clearly a program error.
<beach>
And thanks for pointing out this issue. It makes me even more convinced that our work of creating modern independent modules for various parts of the standard is valid.
<thuna`>
What's (LOOP)? An infinite loop or an error?
<gilberth>
It matches (LOOP {compound-form}*) and thus is a simple loop.
<thuna`>
It matches loop [name-clause] {variable-clause}* {main-clause}* as well though
<beach>
Yes, an infinite loop.
emaczen has quit [Ping timeout: 268 seconds]
<beach>
Whether it is simple or not is not important.
<gilberth>
Oh. When it matches both then it should loop be two perhaps nested infinite loops.
<thuna`>
Hm, I guess an empty extended loop might also be considered to imply an infinite loop, though I don't see it written explicitly anywhere.
chomwitt has joined #commonlisp
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
<beach>
If there is no termination test, I think it must be an infinite loop.
<thuna`>
It's a bit interesting that the implementation for `loop-standard-expansion' is identical in all three implementations
<jackdaniel>
most implementations inherit loop from the MIT implementation, so it is not that weird
<jackdaniel>
but switching from a battle tested implementation to a 'modern solution(tm)' because a bug is found in the former is not very convincing
<jackdaniel>
especially when other ramifications are not mentioned -- i.e thou shalt have full common lisp available already (including loop I presume) to use it
bilegeek has joined #commonlisp
thuna` has quit [Ping timeout: 246 seconds]
thuna`` has joined #commonlisp
<thuna``>
ECL fixed it
<jackdaniel>
I've fixed it; ECL is innocent ,)
<jackdaniel>
thanks for the report
<thuna``>
:)
char has quit [Ping timeout: 255 seconds]
bilegeek has quit [Quit: Leaving]
shka has quit [Read error: Connection reset by peer]
shka has joined #commonlisp
awlygj has joined #commonlisp
amb007 has quit [Ping timeout: 246 seconds]
amb007 has joined #commonlisp
dino_tutter has joined #commonlisp
King_julian has joined #commonlisp
danse-nr3 has quit [Ping timeout: 240 seconds]
danza has joined #commonlisp
dino_tutter has quit [Remote host closed the connection]
admich1 has quit [Remote host closed the connection]
admich1 has joined #commonlisp
attila_lendvai has joined #commonlisp
danza has quit [Ping timeout: 252 seconds]
<beach>
scymtym: Have you worked on a parser for LOOP as part of the s-expression-syntax library?
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
mgl_ has joined #commonlisp
thuna` has joined #commonlisp
chomwitt has quit [Ping timeout: 240 seconds]
King_julian has quit [Ping timeout: 268 seconds]
dino_tutter has joined #commonlisp
danse-nr3 has joined #commonlisp
thuna`` has quit [Quit: Quit]
_cymew_ has joined #commonlisp
domovod has joined #commonlisp
admich1 has quit [Ping timeout: 240 seconds]
admich1 has joined #commonlisp
King_julian has joined #commonlisp
attila_lendvai has quit [Ping timeout: 268 seconds]
m5zs7k has quit [Ping timeout: 252 seconds]
graven` has joined #commonlisp
graven` has quit [Client Quit]
m5zs7k has joined #commonlisp
graven has joined #commonlisp
graven has left #commonlisp [#commonlisp]
graven has joined #commonlisp
akoana has joined #commonlisp
akoana has quit [Client Quit]
amb007 has quit [Ping timeout: 268 seconds]
jweeks has joined #commonlisp
waleee has joined #commonlisp
jweeks has quit [Remote host closed the connection]
jweeks has joined #commonlisp
yitzi has joined #commonlisp
<flip214>
I can't find the ELS videos - they're not (yet?) on Youtube and not (any more?) on Twitch??
nybble has quit [Ping timeout: 240 seconds]
danse-nr3 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
genera__ is now known as genera
danse-nr3 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
herjazz has joined #commonlisp
ebrasca has joined #commonlisp
amb007 has quit [Ping timeout: 264 seconds]
amb007 has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
graven has quit [Read error: Connection reset by peer]
decweb has joined #commonlisp
waleee has quit [Ping timeout: 268 seconds]
pve has joined #commonlisp
King_julian has quit [Ping timeout: 256 seconds]
domovod has quit [Quit: WeeChat 4.3.1]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
<scymtym>
beach: i have
_cymew_ has quit [Ping timeout: 256 seconds]
herjazz has quit [Quit: leaving]
ym has joined #commonlisp
random-nick has joined #commonlisp
pfdietz has joined #commonlisp
donleo has joined #commonlisp
King_julian has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
danse-nr3 has quit [Ping timeout: 260 seconds]
danse-nr3 has joined #commonlisp
decweb has quit [Ping timeout: 252 seconds]
rtypo has joined #commonlisp
danse-nr3 has quit [Ping timeout: 268 seconds]
amb007 has quit [Ping timeout: 256 seconds]
malaclyps has joined #commonlisp
mala has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
danse-nr3 has joined #commonlisp
agm has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
<agm>
one consequence of the simple loop syntax is that (LOOP (PRINT (EVAL (READ)))) is an actual valid definition of the READ-EVAL-PRINT-LOOP or REPL hehehe
King_julian has quit [Ping timeout: 260 seconds]
ronald has quit [Ping timeout: 256 seconds]
semarie has quit [Ping timeout: 255 seconds]
ronald has joined #commonlisp
semarie has joined #commonlisp
King_julian has joined #commonlisp
admich1 has quit [Ping timeout: 255 seconds]
admich1 has joined #commonlisp
admich1 has quit [Read error: Connection reset by peer]
admich1 has joined #commonlisp
johnjaye has quit [Ping timeout: 264 seconds]
johnjaye has joined #commonlisp
danse-nr3 has joined #commonlisp
mulk has quit [Ping timeout: 264 seconds]
johnjaye has quit [Read error: Connection reset by peer]
johnjaye has joined #commonlisp
<dbotton>
How would I find out what system is depending on another? For example I want to find out what system is using static-vectors? (as of a few days I can no longer build CLOG on windows since something started depending on it and can not compile it in Windows)
mulk has joined #commonlisp
<beach>
ASDF/SYSTEM:SYSTEM-DEPENDS-ON
<dbotton>
thanks
<beach>
Sure.
<dbotton>
starting to realize using UltraLisp can create issues... better to fix dependecies down
<dbotton>
but great for dev to tell others when breaking others software :)
wacki has quit [Read error: Connection reset by peer]
msavoritias has quit [Remote host closed the connection]
gilberth has quit [Ping timeout: 256 seconds]
ixelp has joined #commonlisp
wacki has joined #commonlisp
msavoritias has joined #commonlisp
admich1 has joined #commonlisp
King_julian has quit [Ping timeout: 268 seconds]
kevingal has joined #commonlisp
<dbotton>
Was able to track down, latest release of static-vectors does not work on Windows (breaks fast.io and other projects on windows)
lucasta has joined #commonlisp
ebrasca has quit [Read error: Connection reset by peer]
m5zs7k has quit [Ping timeout: 252 seconds]
awlygj has quit [Quit: leaving]
m5zs7k has joined #commonlisp
<dbotton>
fixed already :) Love the Lisp people
chomwitt has joined #commonlisp
danse-nr3 has quit [Quit: Leaving]
admich1 has quit [Ping timeout: 255 seconds]
admich1 has joined #commonlisp
admich1 has quit [Read error: Connection reset by peer]
admich1 has joined #commonlisp
msavoritias has quit [Remote host closed the connection]
<yottabyte>
hello, I don't know much about sql injection, but does a library like this: https://cl-sqlite.common-lisp.dev/ protect for it in prepared statements, like if I'm inserting raw user input data?
<ixelp>
SQLITE - Sqlite package
<yottabyte>
I guess I can try it and see
<yottabyte>
ooo, it appears to
<yottabyte>
even when I do something like (execute-non-query *db* "insert into users (user_name, age) values (?, ?)" "; drop table users" 18)
mgl_ has quit [Ping timeout: 246 seconds]
waleee has joined #commonlisp
johnjaye has quit [Ping timeout: 240 seconds]
ebrasca has joined #commonlisp
johnjaye has joined #commonlisp
gilberth has joined #commonlisp
nybble has joined #commonlisp
admich1 has quit [Ping timeout: 240 seconds]
admich1 has joined #commonlisp
ym has quit [Ping timeout: 256 seconds]
josrr has joined #commonlisp
alcor has joined #commonlisp
jonatack has joined #commonlisp
jon_atack has quit [Ping timeout: 256 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
green_ has quit [Ping timeout: 252 seconds]
m5zs7k has quit [Ping timeout: 268 seconds]
mgl_ has joined #commonlisp
m5zs7k has joined #commonlisp
tok has joined #commonlisp
cage has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #commonlisp
admich1 has quit [Read error: Connection reset by peer]
admich1 has joined #commonlisp
pfdietz has quit [Quit: Client closed]
waleee has quit [Ping timeout: 260 seconds]
green_ has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
tok has quit [Read error: Connection reset by peer]
tok has joined #commonlisp
ronald_ has quit [Ping timeout: 268 seconds]
yitzi has quit [Remote host closed the connection]
ronald has joined #commonlisp
jweeks has quit [Remote host closed the connection]
son0p has joined #commonlisp
mgl_ has quit [Ping timeout: 264 seconds]
snits has quit [Ping timeout: 272 seconds]
ronald has quit [Read error: Connection reset by peer]
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
snits has joined #commonlisp
ronald has joined #commonlisp
attila_lendvai has quit [Ping timeout: 268 seconds]
josrr has quit [Remote host closed the connection]
chomwitt has quit [Ping timeout: 268 seconds]
agm has quit [Ping timeout: 255 seconds]
josrr has joined #commonlisp
shawnw has joined #commonlisp
snits has quit [Ping timeout: 252 seconds]
snits has joined #commonlisp
<yottabyte>
I wasn't sure execute-non-query would be a prepared statement, but I guess that makes sense
<yottabyte>
side note, I'm trying to figure out what web server to use and I've seen hunchentoot and woo and now clack (which is like a web framework, I guess), and it's leaving me in a similar state I find myself in for much of the cl ecosystem: what do I do? it all seems like it's not for the faint of heart
<yottabyte>
it's like libraries are just out there, figure out how to use them. the documentation is not good
<yottabyte>
I think https://shirakumo.github.io/radiance/ is one of the best documented ones I've found, and it even talks about a rest API, which is all I want to do, a simple one at that. I thought that would be a common use case and it would've been beaten to death dozens of time already
<ixelp>
Radiance
<yottabyte>
but I guess not a lot of people use cl for web stuff, or if they do, they just figure everything out on their own/roll their own stuff?
<yottabyte>
and I think you made radiance, Shinmera?
<yottabyte>
like there are dead simple web frameworks out there like sinatra: https://sinatrarb.com/ which have been implemented in many languages. just define your route, do something, boom, done. it can be configured for more complex use cases, but most use cases are simple, get a request, specify the type (get, post), etc., read some data (content-type header), do stuff, return some response, etc.
<ixelp>
Sinatra
jon_atack has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
mrcom has quit [Read error: Connection reset by peer]
King_julian has joined #commonlisp
jonatack has quit [Ping timeout: 255 seconds]
mrcom has joined #commonlisp
scymtym has quit [Quit: Application exit]
tok has quit [Remote host closed the connection]
dino_tutter has quit [Ping timeout: 255 seconds]
ronald_ has joined #commonlisp
ronald has quit [Read error: Connection reset by peer]
King_julian has quit [Ping timeout: 255 seconds]
istewart has joined #commonlisp
scymtym has joined #commonlisp
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
kevingal has quit [Ping timeout: 268 seconds]
igemnace has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
igemnace has joined #commonlisp
pfdietz has quit [Quit: Client closed]
donleo has quit [Ping timeout: 260 seconds]
alcor has quit [Remote host closed the connection]