judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
la-jesystani has joined #lisp
Jeanne-Kamikaze has joined #lisp
fourier has quit [Remote host closed the connection]
asdflkj has quit [Ping timeout: 264 seconds]
miasuji has joined #lisp
Bourne has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
Lord_of_Life has joined #lisp
madage has quit [Remote host closed the connection]
Lord_of_Life_ has quit [Ping timeout: 246 seconds]
madage has joined #lisp
Jeanne-Kamikaze has quit [Remote host closed the connection]
davisr_ has quit [Quit: Leaving]
davisr has joined #lisp
edgar-rft has joined #lisp
shifty has quit [Ping timeout: 272 seconds]
shifty has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
yonkunas has quit [Quit: Connection closed for inactivity]
ech has quit [Remote host closed the connection]
mmohammadi9812 has quit [Ping timeout: 256 seconds]
mmohammadi9812 has joined #lisp
drl has joined #lisp
orivej has quit [Ping timeout: 264 seconds]
miasuji has quit [Read error: Connection reset by peer]
miasuji has joined #lisp
Bourne has quit [Ping timeout: 256 seconds]
kaftejiman has quit [Ping timeout: 256 seconds]
drl has quit [Quit: Leaving]
african has joined #lisp
miasuji has quit [Ping timeout: 264 seconds]
* african
african has left #lisp [#lisp]
african has joined #lisp
african has left #lisp [#lisp]
african has joined #lisp
african has left #lisp [#lisp]
african has joined #lisp
_jrjsmrtn has joined #lisp
african has quit [Quit: leaving]
__jrjsmrtn__ has quit [Ping timeout: 246 seconds]
cer0 has quit [Quit: leaving]
miasuji has joined #lisp
Alfr_ has joined #lisp
Alfr has quit [Ping timeout: 264 seconds]
<beach>
Good morning everyone!
saganman has joined #lisp
mrchampion has quit [Quit: Leaving]
Bourne has joined #lisp
loli has quit [Quit: WeeChat 2.9]
miasuji has quit [Ping timeout: 264 seconds]
jeosol has quit [Remote host closed the connection]
loli has joined #lisp
mrchampion has joined #lisp
miasuji has joined #lisp
Krystof has quit [Ping timeout: 256 seconds]
mmohammadi9812 has quit [Quit: Quit]
toorevitimirp has joined #lisp
_whitelogger has joined #lisp
madage has quit [Ping timeout: 240 seconds]
judson_ has joined #lisp
Kundry_Wag has quit [Ping timeout: 258 seconds]
kir0ul_ has quit [Ping timeout: 264 seconds]
madage has joined #lisp
RukiSama has joined #lisp
skapata has quit [Remote host closed the connection]
miasuji has quit [Remote host closed the connection]
miasuji has joined #lisp
torbo has quit [Remote host closed the connection]
la-jesystani has quit [Quit: Lost terminal]
cantstanya has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
cantstanya has joined #lisp
miasuji has quit [Ping timeout: 264 seconds]
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pleomaxx has joined #lisp
<pleomaxx>
Hi!, how can I use `sb-ext:schedule-timer` within a binary executable? I've set `:build-operation` as `program-op` in my asd definition, and I'm using `asdf:make` to build the binary executable.
<pleomaxx>
All timers work fine when I set them from sly, but the executable just quits without caring about any pending timers. I feel like I'm missing something obvious but the SBCL manual doesn't say anything about this in the timers section.
toorevitimirp has quit [Remote host closed the connection]
<beach>
pleomaxx: Did you try asking in #sbcl? Your question is very SBCL specific.
<pleomaxx>
beach: Thanks, I didn't know the channel existed. I'll ask there.
pleomaxx has quit [Quit: Connection closed]
pleomaxxx has joined #lisp
pleomaxxx has quit [Client Quit]
_whitelogger has joined #lisp
pleomaxxx has joined #lisp
pleomaxxx has quit [Client Quit]
pleomaxx has joined #lisp
pleomaxx has quit [Client Quit]
FreeBirdLjj has joined #lisp
iamFIREc1 has joined #lisp
FreeBirdLjj has quit [Ping timeout: 240 seconds]
iamFIREcracker has quit [Ping timeout: 256 seconds]
ggole has joined #lisp
shka_ has joined #lisp
narimiran has joined #lisp
aartaka has joined #lisp
toorevitimirp has joined #lisp
pve has joined #lisp
krjst has quit [Quit: bye]
krjst has joined #lisp
_whitelogger has joined #lisp
bilegeek has quit [Quit: Leaving]
daphnis has joined #lisp
Aurora_v_kosmose has quit [Ping timeout: 240 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
daphnis has quit [Ping timeout: 256 seconds]
imode has quit [Ping timeout: 256 seconds]
Aurora_v_kosmose has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
fengshaun has quit [Ping timeout: 260 seconds]
fengshaun_ has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
Lord_of_Life has joined #lisp
Lord_of_Life has quit [Changing host]
cyraxjoe has quit [Quit: No Ping reply in 180 seconds.]
cyraxjoe has joined #lisp
<pve>
phoe: I replaced my class machinery and I'm now happy to report that my classes are no longer memory-hungry on SBCL :)
Bourne has quit [Ping timeout: 260 seconds]
Blukunfando has quit [Ping timeout: 246 seconds]
treflip has joined #lisp
iskander- has quit [Ping timeout: 264 seconds]
<pve>
In addition, I was able to achieve the "is a" circularity for the class "Metaclass", which I wasn't able to do earlier.
Blukunfando has joined #lisp
scymtym has joined #lisp
iskander has joined #lisp
<beach>
Congratulations.
<pve>
beach: thanks!
hendursaga has quit [Ping timeout: 240 seconds]
<beach>
And you did it by not using Common Lisp classes at all?
<phoe>
pve: :O
<phoe>
how did you do that?
hendursaga has joined #lisp
treflip has quit [Quit: WeeChat 2.6]
<pve>
beach: a moment, while I try to formulate this
Patzy has joined #lisp
orivej has joined #lisp
gaqwas has quit [Remote host closed the connection]
aartaka_d has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
aartaka has quit [Ping timeout: 246 seconds]
<pve>
beach: I define a subclass of standard-class to represent the classes in my language. For each class I create a single instance of that subclass which is used to receive "class" messages, such as "new" or "subclass". To this instance I give a second subclass of standard-class (specific to each class) to use as a factory for spawning in-language instances of that class.
<pve>
It sounds pretty stupid when I explain it..
<beach>
Not at all.
<pve>
but it works and allows the "class messages" to honor the class hierarchy
<beach>
I see the similarities between what you do and the first phases of SICL bootstrapping.
<beach>
I also need to create objects that behave like classes, but that aren't host classes.
iskander has quit [Ping timeout: 265 seconds]
iskander- has joined #lisp
<pve>
by "class messages" I mean something (defmethod foo ((self (eql (find-class 'my-class)))) ... ) where (call-next-method) would find the eql-method of the superclass
<pve>
aha, that's very interesting
<beach>
And I am going to have to figure out how to explain that in a presentation for the online Lisp meeting. :)
<pve>
hehe
<phoe>
beach: please do, I am curious
<beach>
Yes, that is the plan.
<pve>
phoe: by doing this replacement, I only need to have two subclasses of standard-class, so that apparently took the memory-usage down to "normal" levels
<beach>
I see.
<phoe>
pve: nice!
frost-lab has quit [Quit: Connection closed]
r3x5 has quit [Quit: Bye]
amb007 has quit [Read error: Connection reset by peer]
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
amb007 has joined #lisp
h4ck3r9696 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
villanella has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
igemnace has joined #lisp
<h4ck3r9696>
When should I use defstruct instead of defclass?
amb007 has quit [Read error: Connection reset by peer]
<phoe>
h4ck3r9696: ideally, never
<phoe>
in practice, structs are dumber and less redefinable but somewhat faster to access.
amb007 has joined #lisp
<h4ck3r9696>
What I'm doing requires a lot of performance. Is the performance impact that significant?
gaqwas has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
<beach>
What is it that you are doing?
<phoe>
again, greatly depends; just using structs over objects will give you a minor performance gain but it doesn't mean that it'll eliminate all other issues with your program's efficiency
<h4ck3r9696>
Evolution simulation using neural networks.
<h4ck3r9696>
phoe: I see
<phoe>
I'd start off by using classes and then optimize that, rather than starting with structs and cursing about their lack of programmability
<h4ck3r9696>
Yeah, i'll just use the profiler when I start noticing slowdowns. Thanks!
<phoe>
clim.flamegraph is amazing
shifty has quit [Ping timeout: 240 seconds]
<phoe>
you can use it to profile your stuff graphically.
<beach>
h4ck3r9696: It is my experience that the same people who are concerned about low-level performance are often fairly ignorant when it comes to designing efficient data structures, so the energy is better spent on those data structures. But given your domain, you have probably already done that work.
<h4ck3r9696>
beach: Well, I'm actually a C programmer that got tired of reinventing the wheel. I looked into common lisp because I read somewhere that you have the speed of C, and the elegance of smalltalk
<beach>
To get the speed of C, you need to use a very good implementation, AND you need to understand where to put type declarations that matter.
<MichaelRaskin>
It has better and more varied elegance options to choose from, even!
<MichaelRaskin>
But speed of C would probably need to have a ton of type declarations and depart from elegance in the speed-critical part
<aeth>
nah
<aeth>
you can hide inelegant code very well...
<MichaelRaskin>
Hide, sure
<MichaelRaskin>
But ut will exist
<h4ck3r9696>
I feel like the benefits of common lisp outweights the raw speed of C
<beach>
h4ck3r9696: Then you should definitely avoid DEFSTRUCT.
<h4ck3r9696>
Okay. I was wondering, because some people seem to use it.
<beach>
Those are typically the ones that I provided a description of.
<beach>
Not always, of course.
<h4ck3r9696>
For example, in "Land of Lisp", he only uses defstruct
<phoe>
defstruct structures are dumb, as in, not really programmable using CLOS which is a programmable object system
<phoe>
this has one main benefit - performance gain when accessing structure slots - and lots of issues, e.g. lack of multiple inheritance, lack of programmable slot access protocol, lack of metaclasses and such
<phoe>
the latter become more painful the more experienced you are in Lisp
<h4ck3r9696>
phoe: I'm kind of new to common lisp, it feels like black magic when you talk about "multiple inheritance" and "metaclasses". I get C++ flashbacks.
<beach>
Very different from C++.
<phoe>
actually lisp has multiple inheritance and metaclasses done right compared to C++
<beach>
Fortunately.
<h4ck3r9696>
Do you have any resources to learn lisp OOP? I'm disgusted of OOP since I touched C++ but it seems that lisp OOP is better.
<MichaelRaskin>
(Common Lisp clears some bars quite a bit higher)
<phoe>
h4ck3r9696: maybe you could check out Little Bits of Lisp on YT
<phoe>
I guess that Baggers must be talking about CLOS somewhere in there
<h4ck3r9696>
I think I know the channel. It's the OpenGL guy?
vaporatorius has quit [Ping timeout: 260 seconds]
<phoe>
yes
<phoe>
the one with an astonishing beard
<edgar-rft>
Not 100% sure if it's the same guy but Baggers did a lot of graphics stuff, too.
<h4ck3r9696>
Yes, it's him. I already watched some of his videos, i didn't know he talked about CLOS.
frost-lab has joined #lisp
<MichaelRaskin>
Reference documentation (HyperSpec) might be initially targeted at implementors, but is so well-written that as a user reference it is also pretty good.
<MichaelRaskin>
(but sure, first grab some introductions)
<h4ck3r9696>
I don't think i can read the HyperSpec yet, but it probably is the best source of documentation for common lisp
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
<MichaelRaskin>
Yeah, try reading it from time to time, once you find yourself comfortable reading it, it is a very valuable source. Still won't be your only source, of course
<beach>
We do need a language reference document though.
<beach>
Probably as a website.
aartaka_d has quit [Ping timeout: 256 seconds]
aartaka has joined #lisp
<edgar-rft>
The Hyperspec is a reference, it states how things *are* but it doesn't explain why. There are historical books like "Common Lisp the Language, 2nd edition" (the predecessor book of the hyperspec) with *lots* of explanations. But I think the best introductionary book is Perter Seibel's "Practical Common Lisp".
<h4ck3r9696>
I'm reading "Practical Common Lisp". I like it, because i think the most important thing isn't to know what features a language has, but how to uses thoses features correctly to slove a problem well.
<h4ck3r9696>
C++ does the exact inverse of this.
<beach>
All C++ books?
<h4ck3r9696>
The ones i've read. They go like : "You should use this C++24 feature instead of the C one because it's iconic C++"
<beach>
Hmm. I see.
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
daphnis has joined #lisp
random-nick has joined #lisp
saganman is now known as blackadder
orivej has quit [Ping timeout: 256 seconds]
kinope has joined #lisp
Nilby has joined #lisp
mokulus has joined #lisp
aaaaaa has joined #lisp
daphnis has quit [Ping timeout: 260 seconds]
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
<cl-arthur>
Is there any (approximately) de-facto laziness library?
<phoe>
I've seen CLAZY but did not use it
* edgar-rft
is too lazy to load libraries
karlosz has quit [Quit: karlosz]
iamFIREcracker has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
iamFIREc1 has quit [Ping timeout: 256 seconds]
vaporatorius__ has joined #lisp
vaporatorius has quit [Ping timeout: 256 seconds]
<cl-arthur>
CLAZY doesn't seem like quite what I want/need, but thanks!
iamFIREcracker has quit [Ping timeout: 260 seconds]
iamFIREcracker has joined #lisp
iamFIREc1 has joined #lisp
vaporatorius has joined #lisp
iamFIREcracker has quit [Ping timeout: 272 seconds]
vaporatorius__ has quit [Ping timeout: 240 seconds]
iskander- has quit [Ping timeout: 256 seconds]
narimiran has quit [Ping timeout: 240 seconds]
vaporatorius__ has joined #lisp
iskander has joined #lisp
iamFIREc1 has quit [Ping timeout: 256 seconds]
vaporatorius has quit [Ping timeout: 272 seconds]
h4ck3r9696 has quit [Ping timeout: 272 seconds]
iamFIREc1 has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
zge has quit [Quit: leaving]
vaporatorius has joined #lisp
iskander has quit [Ping timeout: 240 seconds]
liberliver has joined #lisp
iskander has joined #lisp
vaporatorius__ has quit [Ping timeout: 264 seconds]
iskander has quit [Read error: Connection reset by peer]
vaporatorius__ has joined #lisp
skapata has joined #lisp
iskander has joined #lisp
vaporatorius has quit [Ping timeout: 260 seconds]
frost-lab has quit [Quit: Connection closed]
iskander has quit [Quit: bye]
iskander has joined #lisp
liberliver has quit [Ping timeout: 256 seconds]
kaftejiman has joined #lisp
EvW has joined #lisp
iskander has quit [Ping timeout: 264 seconds]
iskander- has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
iskander- has quit [Ping timeout: 260 seconds]
iskander has joined #lisp
liberliver has joined #lisp
liberliver1 has joined #lisp
liberliver has quit [Ping timeout: 264 seconds]
liberliver1 is now known as liberliver
galex-713 has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
kir0ul_ has joined #lisp
iskander has quit [Ping timeout: 246 seconds]
iskander has joined #lisp
cosimone has joined #lisp
feliocrat has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
h4ck3r9696 has joined #lisp
orivej has joined #lisp
vaporatorius has joined #lisp
vaporatorius__ has quit [Ping timeout: 246 seconds]
amk has quit [Remote host closed the connection]
paule32_ has joined #lisp
paule32 has quit [Ping timeout: 260 seconds]
amk has joined #lisp
paule32_ is now known as paule32
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
iskander has quit [Read error: Connection reset by peer]
EvW has quit [Ping timeout: 264 seconds]
iskander has joined #lisp
EvW has joined #lisp
<Josh_2>
I have a list of objects, each contains a list of length N, whats the easiest way to find the object with the shortest length list?
<Josh_2>
obviously I could just use loop but I was wondering if there is a higher order function
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
iskander- has quit [Ping timeout: 256 seconds]
iskander has joined #lisp
arbv_ has joined #lisp
lucasb has joined #lisp
arbv has quit [Ping timeout: 272 seconds]
arbv_ is now known as arbv
aaaaaa has quit [Quit: leaving]
dbotton has quit [Ping timeout: 265 seconds]
cosimone has quit [Quit: cosimone]
iskander has quit [Ping timeout: 240 seconds]
iskander has joined #lisp
Inoperable has quit [Excess Flood]
Inoperable has joined #lisp
dbotton has joined #lisp
arpunk has quit [Read error: Connection reset by peer]
Aurora_v_kosmose has quit [Ping timeout: 240 seconds]
Aurora_v_kosmose has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 256 seconds]
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
cmatei has quit [Remote host closed the connection]
IPmonger has joined #lisp
emys has joined #lisp
EvW has joined #lisp
toorevitimirp has quit [Quit: Konversation terminated!]
Bhartrihari has left #lisp ["Disconnected: closed"]
Bhartrihari has joined #lisp
h4ck3r9696 has quit [Ping timeout: 272 seconds]
judson_ has joined #lisp
h4ck3r9696 has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
Bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
Bhartrihari has joined #lisp
Jeanne-Kamikaze has joined #lisp
narimiran has joined #lisp
cmatei has joined #lisp
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
emys has quit [Ping timeout: 272 seconds]
cer0 has joined #lisp
emys has joined #lisp
cer0 has quit [Quit: leaving]
h4ck3r9696 has quit [Ping timeout: 272 seconds]
judson_ has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
judson_ has quit [Client Quit]
thmprover has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
pillton has quit [Ping timeout: 260 seconds]
pillton has joined #lisp
hnOsmium0001 has joined #lisp
luckless_ has joined #lisp
rippa has joined #lisp
luckless has quit [Ping timeout: 240 seconds]
housel has quit [Ping timeout: 246 seconds]
imode has joined #lisp
housel has joined #lisp
Necktwi has quit [Ping timeout: 260 seconds]
Necktwi has joined #lisp
elosant has joined #lisp
elosant has quit [Client Quit]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
clicat has joined #lisp
iskander has quit [Read error: Connection reset by peer]
judson_ has joined #lisp
iskander has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
loli has quit [Quit: WeeChat 2.9]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<clicat>
How do you handle database access from a multi-threaded application? Do you use mutexes around every db access? Or is there any functionality of hunchentoot/mito that I should know about?
<clicat>
To be precise I have an hunchentoot web server and I'm using Mito to access a sqlite3 database, and when I hit F5 really fast on a page which requires fetching data from the database, the server fails with a broken pipe error, and won't handle any remaining connection until I restart it
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<clicat>
I don't think that making hunchentoot single-threaded is a viable option in the long term
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<Josh_2>
Surely the database handles this automatically?
<Josh_2>
and you can just lock access if you want to make sure only one access happens at a time ¯\_(ツ)_/¯
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
jdz has quit [Ping timeout: 264 seconds]
judson_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jdz has joined #lisp
iskander- has joined #lisp
iskander has quit [Ping timeout: 260 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<clicat>
Josh_2: I know sqlite3 has some locking functionality, but as it happens my application breaks when I send very frequent queries to pages requiring database access, but other pages are just fine, and the backtraces show an unhandled memory fault after mito operations
<Josh_2>
huh
loli has joined #lisp
<Josh_2>
do you have to use sqlite3 xD
<clicat>
Not necessarily, why?
judson_ has joined #lisp
<Josh_2>
you might not have the problem with a different database like Postgres
<Josh_2>
if you don't want to lock your accesses
<phoe>
clicat: could you post the stack trace somewhere? I wonder where exactly the issue lies
<clicat>
phoe: sure, give me a minute
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
dbotton has quit [Read error: Connection reset by peer]
loli has quit [Quit: WeeChat 2.9]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]