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/>
varjagg has quit [Ping timeout: 260 seconds]
rgherdt has quit [Remote host closed the connection]
varjagg has joined #commonlisp
varjagg has quit [Ping timeout: 248 seconds]
Lycurgus has joined #commonlisp
occ has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
Fare has joined #commonlisp
random-nick has quit [Ping timeout: 268 seconds]
Oladon has quit [Quit: Leaving.]
cognemo has quit [Ping timeout: 248 seconds]
akoana has joined #commonlisp
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
<Ap0gee> Is there a way to safely serialize & deserialize a CLOS object of unknown shape? I'm implementing a CLOS class in a library which I expect end users to extend.
<Bike> you can have de/serialization methods that look over the slots of the object's class, and that covers most stuff. in general the person extending the class might need to define their own de/serialization
<Ap0gee> Thanks, that's what I'm trying to avoid, I have a basic repository, I want it to be able to take their objects, convert them to JSON (or some other string format) and stick them in a blob field in a database, then be able to read them back from the database and reconstruct the object.
<Ap0gee> A lot of the options I've found seem to want you to define which slots to serialize
Lord_of_Life has quit [Ping timeout: 255 seconds]
Lord_of_Life has joined #commonlisp
<Bike> yeah, because for some applications that's all that makes sense
<Bike> but you can also do stuff like make-load-form-saving-slots that can just dump all slots
Fare has quit [Ping timeout: 248 seconds]
<Ap0gee> Bike: Thanks, I'll take a look into that, I was looking at (mapcar #'slot-definition-name (class-direct-slots (class-of obj))) but it feels messy.
<Ap0gee> And not sure if that picks up parent slots
<Ap0gee> I guess it'd just be class-slots
<Bike> yeah, you want class-slots.
<Bike> class-direct-slots just gets you what's specified in the particular class, which might not even include the full slot definitions.
<Ap0gee> I started writing Common Lisp a week ago, still pretty noob to the libraries/functions :D
shka has joined #commonlisp
akoana has quit [Quit: leaving]
occ has quit [Ping timeout: 252 seconds]
jeosol has joined #commonlisp
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #commonlisp
pfd has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
pfd has quit [Quit: Client closed]
pfd has joined #commonlisp
occ has joined #commonlisp
hannibal_ad_port has left #commonlisp [#commonlisp]
waleee has joined #commonlisp
peterhil has quit [Ping timeout: 252 seconds]
peterhil has joined #commonlisp
peterhil has quit [Max SendQ exceeded]
peterhil has joined #commonlisp
Lycurgus has joined #commonlisp
bilegeek has joined #commonlisp
_whitelogger has joined #commonlisp
bilegeek has quit [Quit: Leaving]
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
<beach> Shinmera: Are the logs down?
<jeosol> good morning all!
<jeosol> beach: seems so, I can't reach it
<beach> Hello jeosol. Thanks for confirming.
prokhor has quit [Ping timeout: 252 seconds]
<edgar-rft> LOL, I wondered why hexchat highlights #'slot-definition-name and found that it thinks it's an IRC channel, asking me whether I want to join that channel
<aeth> is ' valid in channel names?
<edgar-rft> probably not but hexchat is written by python programmers
waleee has quit [Quit: WeeChat 3.8]
waleee has joined #commonlisp
igemnace has joined #commonlisp
prokhor has joined #commonlisp
kenran has joined #commonlisp
Cymew has joined #commonlisp
attila_lendvai has joined #commonlisp
emanuele6 has quit [Quit: WeeChat 3.8]
aartaka has joined #commonlisp
frgo_ has joined #commonlisp
frgo_ has quit [Ping timeout: 248 seconds]
frgo has quit [Ping timeout: 268 seconds]
pve has joined #commonlisp
<semarie> ' in channel name is valid : https://www.rfc-editor.org/rfc/rfc1459#section-1.3
<ixelp> RFC 1459: Internet Relay Chat Protocol
<semarie> Channels names are strings (beginning with a '&' or '#' character) of length up to 200 characters. Apart from the the requirement that the first character being either '&' or '#'; the only restriction on a channel name is that it may not contain any spaces (' '), a control G (^G or ASCII 7), or a comma (',' which is used as a list item separator by the protocol)
rgherdt has joined #commonlisp
ec_ has joined #commonlisp
aartaka has quit [Ping timeout: 248 seconds]
avocadoist has quit [Quit: Konversation terminated!]
aartaka has joined #commonlisp
avocadoist has joined #commonlisp
ec has quit [Ping timeout: 255 seconds]
rgherdt has quit [Remote host closed the connection]
rgherdt has joined #commonlisp
aartaka has quit [Ping timeout: 260 seconds]
<jackdaniel> 1:0 for python devs (at the expense of edgar-rft)
<hayley> I hope you never have to quasiquote and use Markdown.
ec has joined #commonlisp
<jackdaniel> it works fine on my renderer if put in a block
<jackdaniel> either indented or wrapped in pair of```
<hayley> Yes, works fine in those. Not so much inline code though.
<jackdaniel> unless there is three quasiqotes at the line veginning I suppose
<jackdaniel> ah, yes, that's in-band attributes for you :)
ec_ has quit [Ping timeout: 255 seconds]
n0den1te has joined #commonlisp
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
aartaka has joined #commonlisp
* edgar-rft just successfully joined the Libera.Chat #'slot-definition-name channel :-)
<Shinmera> beach: looks like my attempt at updating things without restarting yesterday broke stuff sometime during the night.
epolanski has joined #commonlisp
Lycurgus has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
<beach> I see. Sorry to hear that!
ttree has quit [Ping timeout: 252 seconds]
<Shinmera> It always happens during the night somehow
jeosol has quit [Ping timeout: 260 seconds]
semarie has quit [Remote host closed the connection]
semarie has joined #commonlisp
occ has quit [Ping timeout: 260 seconds]
<beach> Can you trick it by setting the time of your computer to (say) Honolulu time?
<Shinmera> heh
<hayley> These days Discord seems to invent many ways to break my bot; I don't understand how it crashed to a segfault yesterday. (No corruption error from SBCL either.)
<hayley> But Shinmera's Maiden is much more stable than CL-IRC for IRC, so the IRC interface survives everything else.
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
aartaka has quit [Ping timeout: 252 seconds]
mingus has quit [Ping timeout: 260 seconds]
mingus has joined #commonlisp
Gleefre has joined #commonlisp
rgherdt has quit [Remote host closed the connection]
random-nick has joined #commonlisp
aartaka has joined #commonlisp
jmdaemon has quit [Ping timeout: 252 seconds]
Inline has quit [Quit: Leaving]
Noisytoot has quit [Ping timeout: 252 seconds]
Noisytoot has joined #commonlisp
marsia has joined #commonlisp
karlosz_ has joined #commonlisp
karlosz has quit [Ping timeout: 248 seconds]
karlosz_ is now known as karlosz
occ has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
azimut has quit [Ping timeout: 255 seconds]
Lycurgus has joined #commonlisp
azimut has joined #commonlisp
mingus1 has joined #commonlisp
mingus has quit [Ping timeout: 248 seconds]
mingus1 is now known as mingus
<Shinmera> Writin' an ELS paper
<Shinmera> Hopefully it won't be for nothing again this time!!
<beach> Good luck!
<Shinmera> I have higher hopes, since I managed to convince didier to add a new category of paper (Experience Report).
<beach> Experience from writing a game maybe?
<hayley> Reminds me to ask, I shouldn't write if I have no way of physically attending, should I?
<Shinmera> beach: yeah, it'll be about Kandria.
<Shinmera> hayley: One of the keynote speakers was just announced earlier and will be remote
<jackdaniel> hayley: some presentations are over the internet
<beach> hayley: Last year, we had virtual participants. So go ahead.
<jackdaniel> i.e the keynote is
<hayley> Oh, okay then. Will have to think about it.
<jcowan> If the keynote is remote, presumably the keynote speaker is remote too.
epony has joined #commonlisp
<jcowan> On one occasion the reverse happened: I had to bail out of going at the last moment and someone else gave my speech
<jcowan> (very sweet of him, really)
<hayley> I...can't seem to remember that aspect of ELS'22; was it pre-recorded (like ELS'21) or by teleconferencing?
<jackdaniel> I remember that people were happily chatting when giving presentations
<jackdaniel> so I guess that we have some heavy multitaskers or they were prerecorded
n0den1te has quit [Quit: leaving]
<Bike> mfiano: what is rpav's irc nick? i think i need to contact them directly - i got membership in conspack but not any actual permissions
pfd24 has joined #commonlisp
pfd has quit [Ping timeout: 260 seconds]
pfd24 has quit [Client Quit]
pfd has joined #commonlisp
<pjb> beach: TZ=Pacific/Honolulu date --> Thu Feb 2 04:39:24 HST 2023
<beach> Why are you telling me this?
<pjb> <10:36:00><beach> Can you trick it by setting the time of your computer to (say) Honolulu time?
<pjb> ;-)
occ has quit [Ping timeout: 246 seconds]
<mfiano> Bike: I don't think he pays attention to queries, but he's with us in #bufferswap (CL graphics dev organization)
<Bike> hmkay, thanks
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
<mfiano> Bike: because you're not there, should be fixed now
scymtym has joined #commonlisp
rigidus has joined #commonlisp
eddof13 has joined #commonlisp
<Bike> yes indeed, thanks. i will hang around for at least a bit rather than imposing on you to forward my mail. sorry for the trouble.
<Bike> mergin' a six year old pull request
<jackdaniel> weee, progress
eddof13 has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
<mfiano> Bike: lol
<mfiano> No trouble at all. rpav left lisp a few years ago but snuck away with us to #bufferswap, not that he codes lisp but...
sedzcat has joined #commonlisp
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
emanuele6 has joined #commonlisp
occ has joined #commonlisp
occ has quit [Ping timeout: 248 seconds]
qhong has joined #commonlisp
tyson2 has joined #commonlisp
qhong_ has quit [Ping timeout: 248 seconds]
kenran has quit [Remote host closed the connection]
pfd has quit [Ping timeout: 260 seconds]
cage has joined #commonlisp
jmdaemon has joined #commonlisp
rigidus has quit [Ping timeout: 248 seconds]
<zephyr> howdy lispers, has anyone made a Lisp webapp as a FCGI run under Apache mod_fcgid?
<jackdaniel> I remember seeing a plugin based on ecl doing that, but I don't remember where (and it is rather old)
<semarie> it seems to me that clack has a fcgi handler
mzan has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
Inline has joined #commonlisp
Cymew has quit [Ping timeout: 252 seconds]
tyson2 has quit [Remote host closed the connection]
<zephyr> thanks jackdaniel, semarie - i had ECL in mind for this :-) will keep poking around.
rigidus has joined #commonlisp
<nytpu> oh since someone just asked, i've been looking for a protocol-agnostic FastCGI library, i.e. i want to use FCGI without the library assuming it's HTTP
azimut has quit [Ping timeout: 255 seconds]
<nytpu> don't parse the body of anything, expose *all* FCGI parameters, etc.
totoro has quit [Ping timeout: 260 seconds]
tyson2 has joined #commonlisp
mzan has joined #commonlisp
morganw has joined #commonlisp
ttree has joined #commonlisp
rigidus has quit [Ping timeout: 248 seconds]
<Fade> I seem to recall many moons ago that fcgi style apps were the way the web was being done in lisp.
<Fade> I have a memory of configuring apache for this purpose.
<Fade> are we having a spasm of 'everything old is new again'?
<nytpu> well restarting a Lisp process every single request a-la CGI is dumb, and really what's the point of standing up a full HTTP server only to put it behind another HTTP server
<nytpu> but of course i'm the type of person that thinks a large proporition of """"modern"""" web development is horseshit cargo culting anyways
<Fade> forking a compile lisp artefact isn't as mad as starting up perl or python twenty times a second, but yes, I tend to agree.
<Fade> s/compile/compiled
pfd has joined #commonlisp
<nytpu> but no matter the programming language (even raw binaries) there's still more overhead to the OS mmaping the binary into the address space then just keeping the process running and responding to data from a socket. unless the service is used *very* intermittently (maybe single user?) where keeping the process perpetually running has more overhead than spinning it up on demand
<Josh_2> its useful to have a lisp webapp behind something like Nginx
<Josh_2> you can have that server serve your binary content and handle https for you
jeosol has joined #commonlisp
<Josh_2> also easy config with things like certbot
<zephyr> in my case it's just an operational requirement of this deliverable; agree that in the age of VMs and VPSs f/cgi is a rare choice. +1 running stuff behind nginx or apache if you can and have the spare cycles, tho
<Josh_2> If you can't spare cycles idk why you are using CL :joy:
zxcvz has joined #commonlisp
pfd has quit [Ping timeout: 260 seconds]
igemnace has quit [Quit: WeeChat 3.8]
<Fade> I was thinking about the fork latency more than anything.
<Fade> also, constantly setting up and tearing down sessions with your database.
<Fade> time to first render is gonna suck.
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
peterhil has quit [Remote host closed the connection]
peterhil has joined #commonlisp
aartaka has joined #commonlisp
peterhil has quit [Ping timeout: 252 seconds]
peterhil has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
peterhil has quit [Max SendQ exceeded]
Gleefre has joined #commonlisp
_cymew_ has quit [Ping timeout: 260 seconds]
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
peterhil has joined #commonlisp
peterhil has quit [Max SendQ exceeded]
hdeep has joined #commonlisp
peterhil has joined #commonlisp
<hdeep> how do you guys and ladies like Common Lisp for compiler development?
<Bike> works quite well. flexible
_cymew_ has joined #commonlisp
Inline has quit [Quit: Leaving]
avocadoist has quit [Quit: Konversation terminated!]
avocadoist has joined #commonlisp
<Josh_2> compilers for other languages?
<hdeep> yeah for other languages
<Josh_2> Have you looked at SICL?
tyson2 has quit [Remote host closed the connection]
<hdeep> no I haven't but I have read sicp and studied essentials of compilation by siek, a racket book
<Josh_2> SICL is a new distribution of CL that uses CL to write a CL distribution :joy:
Lycurgus has joined #commonlisp
<an_origamian[m]> And Clasp uses SICL.
_cymew_ has quit [Ping timeout: 260 seconds]
proportions has joined #commonlisp
hdeep has quit [Ping timeout: 260 seconds]
<proportions> all lisps and schemes should be deleted and removed and replaced with dylan
zxcvz has quit [Quit: zxcvz]
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
<Josh_2> delete you and replace you with someone called dylan
<Bike> i preordered essentials of compilation a while ago and i'm looking forward to it.
<Bike> a lot of the reason i like CL for compiler development is for the sort of larger scale stuff that doesn't come up in a research compiler, though.
sedzcat has quit [Ping timeout: 252 seconds]
<phoe> proportions: dylan should be deleted along with all lisps and replaced with borland turbo pascal 7.0 for ms dos
<phoe> ;; but I think this discussion would be kinda better in #lispcafe
<proportions> phoe: On scheme they told me it would be better on commonlisp or lisp, on commonlisp or lisp they say it would be better on lispcafe and what will they say on lispcafe
<jackdaniel> there's nothing wrong with dylan, but trolling is in a bad taste
aartaka has quit [Ping timeout: 268 seconds]
<jackdaniel> as an channel operator I feel obliged to give a single warning before using associated privigiles, so here you have it: warning
<proportions> jackdaniel: I know you are serious because you banned me in the past so thank you for warning.
<jackdaniel> sure thing
<an_origamian[m]> But trolling is so fun! 🧌
<Josh_2> 🧌
prxq has joined #commonlisp
<prxq> Hi
<Josh_2> Hello :wave:
<prxq> What are the active CL implementations nowadays? SBCL and which ones?
<jackdaniel> I can attest that ecl is active
<prxq> actively maintained I mean.
<prxq> jackdaniel: cool!
<prxq> abcl also?
<jcowan> perhaps elon should start a new company to be called the trolling company, to go with his already existing the boring company
<jackdaniel> my rought idea is that sbcl, ecl, clasp, abcl, cmucl are all actively maintined from foss implementations
<nytpu> SBCL and Clozure are the most popular ones but there's a large group of maintained ones
<jackdaniel> with ccl and clisp being rather stagnant (clisp more than ccl)
<jackdaniel> ah, and mezzano is maintained in its own steady pace
<prxq> clisp is mantained? I saw the last version is from 2010.
<jackdaniel> I've said stagnant
<random-nick> cmucl?
<jackdaniel> but there are newer commits in the repository
<Josh_2> jcowan: where do I sign up!
<jackdaniel> yes, cmucl is maintained by Raymond Toy
<Josh_2> ABCL got a big update not *that* long ago
<prxq> wow, I hadn't heard of mezzano
<jackdaniel> and there are also incomplete implementations like sicl which is actively worked on
<prxq> it's pretty cool to know that lisp is still undead and kicking :-)
<Josh_2> Its anything but dead
<nytpu> it's never been fantastically popular but it never looked dead even from the outside before i started using it
<jcowan> I suppose that makes cmucl the most useful of all toy Lisps
<jackdaniel> 'undead' hints a zombie, not alive (rme had a similar funny picture in his keynote speech about ccl)
<jcowan> (case-insensitively)
attila_lendvai has quit [Ping timeout: 248 seconds]
<jcowan> to me, undead is more vampire than zombie, really
<jackdaniel> the presentation is brilliant, read it if you have time :)
<jackdaniel> off to bed, good night \o
<jcowan> The cobol coffin looks like a sardine can
<jcowan> URL for presentation?
<jackdaniel> just chop the path from the domain in the url above
<Josh_2> jackdaniel: :thumbsup:
<ixelp> This Old Lisp
<prxq> nytpu: it looked pretty dead 2003 when I stared. It was in a LOT better shape 2013
<nytpu> prxq: oh i was two years old then so i don't know anything that far back lol. just in the last few years are all i can speak for
<Josh_2> zoomer moment
masinter has quit [Ping timeout: 268 seconds]
<prxq> nytpu: good to hear from young people lisping, that's good news!
<jcowan> This old Lisp / he played one / he played knick-knack just for fun / with a car-cdr-cons and a lexical comb / This old Lisp came rolling home
<Lycurgus> nice
cage has quit [Quit: rcirc on GNU Emacs 28.2]
masinter has joined #commonlisp
Lycurgus has quit [Quit: Exeunt: personae.ai-integration.biz]
<Ap0gee> https://plaster.tymoon.eu/view/3641#3641 Any idea why this happens? (sbcl) -- get-event is just a simple gethash lookup: https://plaster.tymoon.eu/view/3642#3642
<_death> maybe you've already defined *id*.. defvar then won't assign a new value
<_death> you can use setf or defparameter
<Ap0gee> It's the correct ID
<Ap0gee> Added a line at the bottom showing the ID for comparison
<defaultxr> does your hash-table use #'eql as its test? two strings are not necessarily eql, even if they contain the same characters in the same order
<Ap0gee> defaultxr: How can I check that?
<_death> maybe come up with a self-sufficient test case
<defaultxr> when the hash-table is printed, it shows the test like #<HASH-TABLE :TEST EQL ...>, at least for me, with sbcl
<yitzi> clhs hash-table-test
<ixelp> CLHS: Function HASH-TABLE-TEST
<pjb> For strings, use (make-hash-table :test 'equal)
<Ap0gee> Thanks, yeah it's eql
<pjb> string keys.
<Josh_2> or equalp
<pjb> for case insensitive strings.
<Ap0gee> Sorry for the noob questions, I promise I will pay it forward to the next noob when I know what I'm doing :)
<_death> if ID returned a fresh string, you'd get "not found" both times, so I assumed it's just a simple reader function.. if so, both results should be the same
<pjb> Ap0gee: if you want to feel more confortable, you may ask noobs questions in #clschool
<Ap0gee> Thanks pjb
<Ap0gee> Started writing CL a week ago and enamored :D
<ixelp> CLiki: Getting Started
<_death> what's possible is that indeed you did have a prior value for *id*, which was a string equal to that string but not the same one
<Ap0gee> It was the 'eql test
<_death> it was a confluence of two issues..
<Ap0gee> The defing *id* was me trying to work out why using the string literal didn't work
<Ap0gee> But (id *event*) did
<_death> had you used defparameter or setf, or not defined *id* earlier, you'd not get the same transcript
<pjb> Ap0gee: note: IDs such as 117C7867-E2FB-4EEB-ABDC-403CECC05345 are actually integers. You could use an EQL hash-table with those big integers.
<pjb> (integer 0 340282366920938463463374607431768211455) exactly.
<Ap0gee> Yeah, I'm using it as a string because my db adapter expects it, I want an in-memory repo to run tests against.
<pjb> (parse-integer (remove #\- "117C7867-E2FB-4EEB-ABDC-403CECC05345") :radix 16) #| --> 23243162858702490927281769689269687109 ; 32 |#
<Ap0gee> It's stored in a uuid field in postgres
<Ap0gee> So I'm trying to keep consistency with that interface for my 'testing' interface
<pjb> ok
masinter has quit [Ping timeout: 268 seconds]
masinter has joined #commonlisp
waleee has quit [Ping timeout: 255 seconds]
m5zs7k has quit [Remote host closed the connection]
m5zs7k has joined #commonlisp
m5zs7k has quit [Ping timeout: 268 seconds]
m5zs7k has joined #commonlisp
Noisytoot has quit [Quit: ZNC 1.8.2 - https://znc.in]
Noisytoot has joined #commonlisp
NotThatRPG has joined #commonlisp
<defaultxr> is there a way to see what is taking the most memory in the lisp image? i know about the "room" function but i'm wondering if there is some library or similar that would break down memory usage by package, so i can see which dependencies i might want to try eliminating. (or maybe some way i could write such a thing.) i searched the sbcl manual for "memory" and "size" but didn't find anything
<defaultxr> that seemed relevant.
eddof13 has joined #commonlisp
hineios has quit [Read error: Connection reset by peer]
hineios has joined #commonlisp
eddof13 has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
sjl has quit [Quit: WeeChat 3.6]
sjl has joined #commonlisp
Oladon has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
Gleefre has joined #commonlisp
<hayley> (room t) breaks down the heap by types.
Gleefre has quit [Remote host closed the connection]
shka has quit [Ping timeout: 268 seconds]
akoana has joined #commonlisp
Gleefre has joined #commonlisp
epolanski has quit [Quit: Connection closed for inactivity]
karlosz has quit [Quit: karlosz]
proportions has quit [Remote host closed the connection]
azimut has joined #commonlisp
Sauvin has quit [Remote host closed the connection]
Sauvin has joined #commonlisp
Gleefre has quit [Remote host closed the connection]
akoana has quit [Quit: leaving]