jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
jeffrey has quit [Ping timeout: 248 seconds]
lucas_ta has joined #commonlisp
dipper_ has joined #commonlisp
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
occ has joined #commonlisp
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 248 seconds]
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
Noisytoot has quit [Excess Flood]
bollu has quit [Quit: The Lounge - https://thelounge.chat]
Noisytoot has joined #commonlisp
bollu has joined #commonlisp
lucas_ta has quit [Quit: Leaving]
karlosz has quit [Quit: karlosz]
lucasta has joined #commonlisp
waleee has quit [Ping timeout: 265 seconds]
lucasta has quit [Remote host closed the connection]
lucasta has joined #commonlisp
Noisytoot has quit [Ping timeout: 276 seconds]
lucasta has quit [Client Quit]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 255 seconds]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
drainpipe has joined #commonlisp
specbot has joined #commonlisp
lucasta has joined #commonlisp
specbot has quit [Remote host closed the connection]
lucasta has quit [Read error: Connection reset by peer]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
drainpipe has quit [Ping timeout: 255 seconds]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
minion has joined #commonlisp
minion has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
specbot has joined #commonlisp
specbot has quit [Remote host closed the connection]
lucasta has joined #commonlisp
lucasta has quit [Remote host closed the connection]
lucasta has joined #commonlisp
neon has joined #commonlisp
specbot has joined #commonlisp
minion has joined #commonlisp
Oladon has joined #commonlisp
lucasta has quit [Quit: Leaving]
X-Scale has quit [Quit: Client closed]
[ has joined #commonlisp
neon has quit [Ping timeout: 250 seconds]
[ has joined #commonlisp
[ has quit [Excess Flood]
[ has joined #commonlisp
NicknameJohn has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
pfd has joined #commonlisp
mzan has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
mzan has joined #commonlisp
Noisytoot has joined #commonlisp
drainpipe has joined #commonlisp
dilated_dinosaur has joined #commonlisp
drainpipe has quit [Ping timeout: 248 seconds]
Oladon has quit [Quit: Leaving.]
neon has joined #commonlisp
mason has left #commonlisp [#commonlisp]
drainpipe has joined #commonlisp
jeosol has joined #commonlisp
drainpipe has quit [Ping timeout: 250 seconds]
occ has quit [Ping timeout: 276 seconds]
NicknameJohn has quit [Ping timeout: 252 seconds]
zyd has joined #commonlisp
triffid has quit [Remote host closed the connection]
Noisytoot has quit [Ping timeout: 255 seconds]
dilated_dinosaur has quit [Ping timeout: 255 seconds]
zyd has quit [Remote host closed the connection]
euandreh has quit [Remote host closed the connection]
dcb has quit [Quit: MSN Messenger 3.8]
Guest6 has joined #commonlisp
<Guest6> Hi there, does someone have an example of a REST API created with caveman2 and/or clack? Or event a demo website to understand how to use routes, manage cookies etc
neon has quit [Ping timeout: 260 seconds]
Noisytoot has joined #commonlisp
occ has joined #commonlisp
dilated_dinosaur has joined #commonlisp
OlCe has quit [Read error: Connection reset by peer]
OlCe has joined #commonlisp
Devon has quit [Ping timeout: 248 seconds]
epony has joined #commonlisp
drainpipe has joined #commonlisp
pvb has joined #commonlisp
drainpipe has quit [Ping timeout: 248 seconds]
rgherdt has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 248 seconds]
Noisytoot has quit [Ping timeout: 255 seconds]
shka has joined #commonlisp
gxt__ has quit [Remote host closed the connection]
gxt__ has joined #commonlisp
kenran has joined #commonlisp
lottaquestions_ has quit [Remote host closed the connection]
lottaquestions_ has joined #commonlisp
Cymew has joined #commonlisp
pve has joined #commonlisp
Devon has joined #commonlisp
tychoish has quit [Remote host closed the connection]
tychoish has joined #commonlisp
Guest6 has quit [Quit: Client closed]
igemnace has joined #commonlisp
Cymew has quit [Ping timeout: 260 seconds]
Noisytoot has joined #commonlisp
Cymew has joined #commonlisp
dilated_dinosaur has joined #commonlisp
OlCe has quit [Ping timeout: 248 seconds]
LW has joined #commonlisp
holycow has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 255 seconds]
lucasta has joined #commonlisp
dilated_dinosaur has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
pranavats has joined #commonlisp
holycow has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
euandreh has joined #commonlisp
jeffrey has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 276 seconds]
pfd has quit [Ping timeout: 260 seconds]
Noisytoot has quit [Quit: ZNC 1.8.2 - https://znc.in]
<prxq> What's the easiest and fastest way to read a binary file into memory in one swoop? Loop over read byte seems suboptimal....
<jackdaniel> read-sequence
<hayley> Loop over READ-SEQUENCE.
<hayley> Or ALEXANDRIA:READ-FILE-INTO-BYTE-VECTOR
<jackdaniel> but keep in mind that you may want to limit the length (unless you know that file has some reasonable size)
Noisytoot has joined #commonlisp
Brucio-61 has joined #commonlisp
scymtym has joined #commonlisp
<Shinmera> prxq: mmap
<prxq> hayley: that's the one. Thanks!
<prxq> jackdaniel: right, thanks
dipper_ has quit [Remote host closed the connection]
<prxq> Shinmera: that's the "mathematician in a hot air baloon" answer :-)
<Shinmera> Eh? It is fast *and* easy.
<Shinmera> (mmap:mmap path) done.
<prxq> Shinmera: you are not kidding? :-) What happens when that goes out of scope. GC closes it?
<Shinmera> It doesn't of course.
<Shinmera> But you can use mmap:with-mmap instead to close it.
<Shinmera> or munmap if it's not in dynamic-extent
<Shinmera> Either way point being it's not hard, and it is definitely the fastest.
<Shinmera> thereby fulfilling your constraints the best
Fare has quit [Ping timeout: 260 seconds]
<prxq> Shinmera: ok, thanks.
drainpipe has joined #commonlisp
ahc has joined #commonlisp
drainpipe has quit [Ping timeout: 264 seconds]
occ has quit [Ping timeout: 255 seconds]
<jackdaniel> I think that it is worth noting that using mmap involves probably cffi and ties you to posix (and perhaps windows), i.e that wan't work on mezzano and other exotic platforms
<jackdaniel> (like wasm runtime)
LW has quit [Quit: WeeChat 3.6]
<prxq> it also leaves you with a handful of live wires to play around. Good for a boring rainy day :-)
OlCe has joined #commonlisp
NicknameJohn has joined #commonlisp
jmdaemon has quit [Ping timeout: 260 seconds]
<Shinmera> sure, but those were not part of the mentioned constraints
<Shinmera> it would already be ruled out if you said "into a vector" rather than "into memory"
azimut_ has joined #commonlisp
azimut has quit [Ping timeout: 255 seconds]
<jackdaniel> I see that you are the 'technically correct is the best' kind of person (nothing wrong with that ,)
bitmapper has joined #commonlisp
drainpipe has joined #commonlisp
drainpipe has quit [Ping timeout: 260 seconds]
Posterdati has quit [Remote host closed the connection]
Posterdati has joined #commonlisp
MajorBiscuit has joined #commonlisp
LW has joined #commonlisp
LW has quit [Client Quit]
random-nick has joined #commonlisp
karlosz has joined #commonlisp
[ has quit [Remote host closed the connection]
<Shinmera> not really, I just gave an answer to the literal question and nobody ever reformulated it to be what the actual constraints are.
<Shinmera> though this did remind me that I really wish it were possible to wrap a vector around an arbitrary memory region, without having to involve the heavy weight of the extensible sequences protocol.
pranavats has left #commonlisp [Disconnected: Hibernating too long]
avocadoist has quit [Ping timeout: 265 seconds]
morganw has joined #commonlisp
pranavats has joined #commonlisp
tyson2 has joined #commonlisp
jonatack1 has joined #commonlisp
jon_atack has quit [Ping timeout: 255 seconds]
drainpipe has joined #commonlisp
Cymew has quit [Ping timeout: 268 seconds]
scymtym_ has joined #commonlisp
avocadoist has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
Brucio-61 has joined #commonlisp
dipper has joined #commonlisp
scymtym has quit [Ping timeout: 248 seconds]
pve has quit [Ping timeout: 248 seconds]
dipper has quit [Client Quit]
pve has joined #commonlisp
avocadoist has quit [Ping timeout: 264 seconds]
avocadoist has joined #commonlisp
Gleefre has quit [Ping timeout: 260 seconds]
Fare has joined #commonlisp
avocadoist has quit [Ping timeout: 260 seconds]
avocadoist has joined #commonlisp
Gleefre has joined #commonlisp
NicknameJohn has quit [Ping timeout: 246 seconds]
attila_lendvai has quit [Ping timeout: 260 seconds]
kenran has quit [Remote host closed the connection]
prokhor has quit [Ping timeout: 252 seconds]
scymtym_ has quit [Read error: Connection reset by peer]
scymtym has joined #commonlisp
Brucio-61 has quit [Ping timeout: 260 seconds]
avocadoist has quit [Ping timeout: 255 seconds]
<prxq> does anyone have experience with the blob datatype in conjunction with mito?
Brucio-61 has joined #commonlisp
epony has quit [Ping timeout: 268 seconds]
<_death> Shinmera: an old poc is https://github.com/death/marray
<ixelp> GitHub - death/marray: Memory mapped files as Lisp arrays
ahc has quit [Quit: Client closed]
avocadoist has joined #commonlisp
epony has joined #commonlisp
jeosol has quit [Quit: Client closed]
occ has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 265 seconds]
<Shinmera> _death: ah, yeah I figured splitting pages would also be possible, but it seems quite excessive to have to keep an entire page for the header. That, and it shill won't allow fun stuff like offsetting into a packed region
Noisytoot has quit [Ping timeout: 248 seconds]
yuna has joined #commonlisp
<Shinmera> Do not talk to me about displaced arrays
triffid has joined #commonlisp
X-Scale has joined #commonlisp
<_death> right.. if one puts time into it, some of the limitations described can be removed (so e.g. you could pass :start and :end arguments) which I guess could help in some scenarios.. in my use cases an entire page was insignificant, but of course that's a limitation that's more difficult to remove
Noisytoot has joined #commonlisp
avocadoist has quit [Ping timeout: 265 seconds]
avocadoist has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
NicknameJohn has joined #commonlisp
yuna has quit [Remote host closed the connection]
dilated_dinosaur has joined #commonlisp
NicknameJohn has quit [Ping timeout: 260 seconds]
Noisytoot has quit [Read error: Connection reset by peer]
Noisytoot has joined #commonlisp
tyson2 has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 260 seconds]
yuna has joined #commonlisp
drainpipe has quit [Ping timeout: 276 seconds]
<Shinmera> I specifically would like to provide some kinda "view" system where an opaque binary blob can be viewed and traversed if you define the data types and the root type to use.
<Shinmera> This would be very handy to have because de/serialising is rather expensive
<_death> that could be handy in some specialized situations, but maybe not as often as one would like.. it's reminiscent of the old C programmer mistake of "writing/reading raw objects to/from disk".. https://adeht.org/usenet-gems/info-rep.txt
<_death> so even if you do define "binary structures" that map easily, at some point you may need to index stuff or maintain some state that's not advantageous to store.. and then you're back to munging/copying
dilated_dinosaur has joined #commonlisp
drainpipe has joined #commonlisp
drainpipe has quit [Client Quit]
glaucon has joined #commonlisp
dilated_dinosaur has quit [Ping timeout: 265 seconds]
<drmeister> Hi Shinmera - I'd like to work with C-style structs of plain-old-data in memory from Common Lisp.
<Shinmera> _death: it happens a *lot* in games.
<_death> Shinmera: I agree, especially in the old days when portability wasn't a goal
<Shinmera> Especially more advanced use relies on declaring memory layouts for data buffers on the GPU. Uploading that data requires having the same layout on the CPU, then pointing GL to it. You can even mmap share it to avoid copying altogether.
<Shinmera> Having to "serialise" all that data to memory every frame *sucks*
prokhor has joined #commonlisp
<drmeister> I want to say here is a memory layout of a C-style struct and here is a pointer to it - let me read and write the fields.
<_death> in many domains where performance is critical there are often advantages to zero-copy (or dumb bitblt)
Sauvin has quit [Ping timeout: 252 seconds]
<_death> drmeister: but then you still have an issue with tagged memory and indirection
Sauvin has joined #commonlisp
<drmeister> What issue with tagged memory?
Bocaneri has joined #commonlisp
Bocaneri is now known as Guest9137
<_death> drmeister: for example a Lisp array might need a header, or a number might need to be boxed
Sauvin has quit [Ping timeout: 248 seconds]
<_death> cffi for example requires a type for mem-aref an cannot bound check and needs to translate between representations.. maybe that's one reason you're working on clasp?
tevo has quit [Quit: Leaving.]
bitmapper has quit [Quit: Connection closed for inactivity]
tevo has joined #commonlisp
morganw has quit [Remote host closed the connection]
<Shinmera> well the idea is that whatever system would ultimately use cffi underneath, just also already infer the type needed from the known surrounding type.
dcb has joined #commonlisp
<Shinmera> at least that's what I'm thinking about
<_death> wouldn't that imply repeated translation?
<Shinmera> repeated translation in the sense of having a single mem-ref, sure.
<Shinmera> *a single mem-ref per read/write
<Shinmera> I've written a system like that in Trial, but it sucks.
<Shinmera> Then I wrote another system like that in cl-gltf, but it sucks (though less than trial's)
<Shinmera> I hope to at some point write one that only sucks a teeny bit :)
Lumine has quit [Remote host closed the connection]
<_death> there's that mismatch between Lisp land and C land that can be handled by either pulling data to one side of the border (preferably once) or somehow grabbing more of the land by means of low-level implementation programming
dilated_dinosaur has joined #commonlisp
<drmeister> To do it well I think it will need compiler and runtime support.
X-Scale has quit [Quit: Client closed]
X-Scale has joined #commonlisp
glaucon has quit [Quit: Leaving.]
kenran has joined #commonlisp
NicknameJohn has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
glaucon has joined #commonlisp
jmdaemon has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
piotr_ has joined #commonlisp
<piotr_> guys
piotr_ is now known as FIlystyn
<FIlystyn> how to run external command in lisp and get it's return value, stderr and stdout
<FIlystyn> hymu ?
<FIlystyn> don't even answer just tell me it's easy or not
<FIlystyn> it fits lisp or it does not
<FIlystyn> I wnat to hear your opinion
<contrapunctus> FIlystyn: pretty sure UIOP has something for that
<ixelp> UIOP Manual
<Bike> or run-program to do it synchronously
<FIlystyn> so we have synch and asynch
<FIlystyn> very cool
<FIlystyn> thx this si all I wanted
avocadoist has quit [Ping timeout: 260 seconds]
dirtcastle has quit [Quit: IRCNow and Forever!]
deadmarshal has quit [Quit: IRCNow and Forever!]
avocadoist has joined #commonlisp
NicknameJohn has quit [Ping timeout: 255 seconds]
avocadoist has quit [Read error: Connection reset by peer]
waleee has joined #commonlisp
glaucon has quit [Quit: Leaving.]
glaucon has joined #commonlisp
deadmarshal_ has joined #commonlisp
NicknameJohn has joined #commonlisp
Gleefre has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Guest9137 is now known as Sauvin
dirtcastle has joined #commonlisp
Guest62 has joined #commonlisp
Guest62 has quit [Client Quit]
pranavats has left #commonlisp [Error from remote client]
glaucon has quit [Read error: Connection reset by peer]
<copec> _death (re: that link) I get that writing raw objects to disk is almost always wrong for various technical reasons, but I disagree with that author's hardline viewpoint about what amounts to a historic arbitrary abstraction.
pranavats has joined #commonlisp
<pjb> copec: nonetheless, save-lisp-image.
jeffrey has quit [Ping timeout: 256 seconds]
<_death> copec: what arbitrary abstraction?
Fare has quit [Ping timeout: 265 seconds]
<copec> The filesystem was invented because of memory limits and for persistence of moving stuff in and out of memory, but that doesn't make it the only solution. This led to the notion of external and internal data formats
lucasta has quit [Remote host closed the connection]
<pjb> Of course, as demonstrated by EROS-OS.
<pjb> Also, assuming you're using only saved images as persistence mechanism, you may still want to keep "not live" aka "serialized" objects in some "database" structure (say a hash-table), instead of live objects, for several reasons. (notably memory compaction).
Brucio-61 has quit [Ping timeout: 260 seconds]
scymtym has quit [Ping timeout: 265 seconds]
<_death> copec: in information theory, there is already a distinction (source coding vs. channel coding) that recognizes different aims
<copec> Those distinctions aren't always the same as internal memory object vs representation on filesystem, but just almost always
Fare has joined #commonlisp
Gleefre has joined #commonlisp
kenran has quit [Remote host closed the connection]
<_death> it's possible that in a very different context there would be no need for a distinction, but I guess Naggum didn't live within that context
<FIlystyn> are lisp languages similar or cliscp is very differnet ?
<_death> there's a paper about a persistent CL (UCL+P) that I need to read sometime
<copec> I get what he is saying though.
<ixelp> UCL+P - a persistent common lisp | Institutional Repository | J. Willard Marriott Digital Library
Brucio-61 has joined #commonlisp
NotThatRPG has joined #commonlisp
<NotThatRPG> Is there a consensus on what pattern-matching library one should use?
Guest52 has joined #commonlisp
<copec> _death: I think I would ask the original author what his opinion on using raw objects in files only in situ of main memory for the life of the program? (Which applies to save-lisp-image)
<copec> He would probably emphasize that you want important data to not be orphaned if any whole host of things changes from that point in time
<_death> copec: that makes sense
<copec> source vs channel coding is the superior way to think about it, I'll remember that
<_death> copec: I only mentioned that to note that different aims often lead to different representations, so whether you have to explicitly deal with persistent storage or not is not the only consideration
makomo has quit [Quit: WeeChat 3.6]
yuna has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
<copec> This is actually very applicable to devops that I do because i'v inherited VMs and containers in the past for which something is dependent on, but would be extremely difficult to reconstruct from scratch, although it is really a problem in the opposite direction
<FIlystyn> i found my answer ;-)
avocadoist has quit [Ping timeout: 246 seconds]
<jackdaniel> NotThatRPG: trivia basically
<NotThatRPG> Thanks, @jackdaniel -- I haven't been using pattern matching much, but it could really improve my productivity on something I am working on now.
<copec> Writing your own pattern matcher is step 2 after writing your own lisp
X-Scale has quit [Ping timeout: 260 seconds]
<NotThatRPG> My "Common Lisp" is spelled without "not invented here."
Guest52 has quit [Quit: Client closed]
avocadoist has joined #commonlisp
avocadoist has quit [Client Quit]
avocadoist has joined #commonlisp
johnjaye has quit [Ping timeout: 260 seconds]
Guest52 has joined #commonlisp
johnjaye has joined #commonlisp
avocadoist has quit [Ping timeout: 248 seconds]
tyson2 has joined #commonlisp
MajorBiscuit has quit [Quit: WeeChat 3.6]
zyd has joined #commonlisp
igemnace has quit [Remote host closed the connection]
spec has quit [Remote host closed the connection]
kevingal_ has quit [Ping timeout: 260 seconds]
kevingal has quit [Ping timeout: 268 seconds]
spec has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
fbytez has quit [Changing host]
fbytez has joined #commonlisp
akoana has joined #commonlisp
kevingal has joined #commonlisp
kevingal_ has joined #commonlisp
FIlystyn has quit [Quit: Lost terminal]
shka has quit [Ping timeout: 268 seconds]
tyson2 has joined #commonlisp
jonatack2 has joined #commonlisp
jonatack1 has quit [Ping timeout: 252 seconds]
son0p has quit [Ping timeout: 252 seconds]
son0p has joined #commonlisp
<AadVersteden[m]> Would it then still be '(My "Common Lisp") or has it then become '(Our "Common Lisp")?
beach` has joined #commonlisp
ahc has joined #commonlisp
beach has quit [Ping timeout: 260 seconds]
rgherdt has quit [Remote host closed the connection]
notzmv has quit [Ping timeout: 248 seconds]
eddof13 has joined #commonlisp
pawa2 has joined #commonlisp
eddof13 has quit [Client Quit]
jmdaemon has quit [Ping timeout: 248 seconds]
roygbyte has joined #commonlisp
jmdaemon has joined #commonlisp
akoana has quit [Ping timeout: 248 seconds]
pve has quit [Quit: leaving]
Lord_of_Life has quit [Ping timeout: 260 seconds]
Lord_of_Life has joined #commonlisp
dim has quit [Ping timeout: 246 seconds]
dim has joined #commonlisp