jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
akoana has left #lisp ["Leaving"]
Oladon has quit [Quit: Leaving.]
random-nick has quit [Ping timeout: 260 seconds]
dbotton has quit [Ping timeout: 272 seconds]
iissaacc has joined #lisp
quazimodo has joined #lisp
smazga has joined #lisp
jprajzne has joined #lisp
smazga has quit [Ping timeout: 246 seconds]
jprajzne has quit [Quit: jprajzne]
smazga has joined #lisp
dbotton has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
smazga has quit [Ping timeout: 260 seconds]
smazga has joined #lisp
frost-lab has joined #lisp
smazga has quit [Ping timeout: 264 seconds]
EvW has joined #lisp
samtineld has quit [Remote host closed the connection]
earl-ducaine has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
rgherdt has quit [Ping timeout: 272 seconds]
mbomba has joined #lisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life has joined #lisp
dbotton has quit [Ping timeout: 260 seconds]
aindilis has quit [Remote host closed the connection]
brainfunnel has quit [Quit: whoops]
aindilis has joined #lisp
Jeanne-Kamikaze has quit [Ping timeout: 260 seconds]
dbotton has joined #lisp
earl-ducaine has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
Alloc has quit [Ping timeout: 240 seconds]
pillton has joined #lisp
Alloc has joined #lisp
dbotton_ has joined #lisp
sbodin has joined #lisp
sbodin has quit [Excess Flood]
dbotton has quit [Ping timeout: 272 seconds]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
jealousmonk has quit [Quit: Leaving]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
smazga has joined #lisp
EvW has quit [Ping timeout: 260 seconds]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
smazga has quit [Ping timeout: 246 seconds]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
smazga has joined #lisp
sbodin has joined #lisp
sbodin has quit [Excess Flood]
smazga has quit [Ping timeout: 240 seconds]
Alloc has quit [Ping timeout: 240 seconds]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
mbomba has quit [Quit: WeeChat 2.9]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
sbodin has joined #lisp
sbodin has quit [Excess Flood]
Alloc has joined #lisp
shifty has joined #lisp
sbodin has joined #lisp
sbodin has quit [Excess Flood]
thmprover has joined #lisp
astronavt has quit [Quit: Leaving]
astronavt has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
edgar-rft has quit [Quit: Leaving]
wxie1 has joined #lisp
shifty has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
dbotton_ has quit [Quit: -a- IRC for Android 2.1.59]
dbotton has joined #lisp
shifty has quit [Ping timeout: 272 seconds]
shifty has joined #lisp
cer0 has joined #lisp
iissaacc has quit [Ping timeout: 246 seconds]
iissaacc has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
torbo has quit [Remote host closed the connection]
Bike has quit [Remote host closed the connection]
shifty has quit [Ping timeout: 260 seconds]
Josh_2 has quit [Ping timeout: 260 seconds]
thmprover has quit [Quit: ...and miles to go before I sleep.]
iissaacc has quit [Ping timeout: 240 seconds]
miasuji has joined #lisp
nicktick has joined #lisp
miasuji has quit [Remote host closed the connection]
asarch has joined #lisp
semz has quit [Ping timeout: 260 seconds]
dbotton__ has joined #lisp
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
dbotton__ has quit [Ping timeout: 260 seconds]
smazga has joined #lisp
orivej has joined #lisp
smazga has quit [Ping timeout: 264 seconds]
cer0 has quit [Quit: cer0]
rgrmrts has joined #lisp
wxie1 has quit [Ping timeout: 260 seconds]
edgar-rft has joined #lisp
Stanley00 has joined #lisp
smazga has joined #lisp
smazga has quit [Ping timeout: 260 seconds]
quazimodo has joined #lisp
edgar-rft has quit [Quit: Leaving]
<beach> Good morning everyone!
<beach> scymtym: I like the idea of using conditions for reporting progress. Never thought about that.
<Nilby> Good morning
<Nilby> and "Welcome to LDB"
mbomba has joined #lisp
iissaacc has joined #lisp
Alloc has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
yonkunas has quit [Quit: Connection closed for inactivity]
mbomba has quit [Quit: WeeChat 2.9]
rgrmrts has quit [Quit: beep boop]
Alloc has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
IPmonger has quit [Ping timeout: 272 seconds]
IPmonger has joined #lisp
Kaisyu has joined #lisp
shka_ has joined #lisp
gravicappa has joined #lisp
asarch has quit [Quit: Leaving]
smazga has joined #lisp
smazga has quit [Ping timeout: 246 seconds]
lalilulelo has quit [Quit: Leaving]
smazga has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
quazimodo has joined #lisp
nicktick has quit [Ping timeout: 260 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
nicktick has joined #lisp
smazga has quit [Ping timeout: 272 seconds]
narimiran has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
smazga has joined #lisp
Nilby has quit [Read error: Connection reset by peer]
quazimodo has joined #lisp
smazga has quit [Ping timeout: 260 seconds]
smazga has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
smazga has quit [Ping timeout: 256 seconds]
aartaka has joined #lisp
jprajzne has joined #lisp
ljavorsk_ has joined #lisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #lisp
Cymew has joined #lisp
space_otter has quit [Remote host closed the connection]
Lord_of_Life has joined #lisp
Lord_of_Life has quit [Changing host]
<phoe> hey wait a morning in LDB is a bad morning
<no-defun-allowed> LDB is much nicer than shifting and masking bits yourself.
<beach> phoe: It's your fault. Because of your message about the book, I now can't get the song by the Who "I'm free" out of my head.
<phoe> :(
<beach> It's OK. I like that album.
Qudit314159 has joined #lisp
mmohammadi9812 has joined #lisp
mbomba has joined #lisp
aartaka_d has joined #lisp
skapata has quit [Quit: Leaving]
galex-713 has quit [Ping timeout: 272 seconds]
hendursa1 has joined #lisp
aartaka has quit [Ping timeout: 260 seconds]
nitrix-or-treat is now known as nitrix
hendursaga has quit [Ping timeout: 240 seconds]
mbomba has quit [Quit: WeeChat 2.9]
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #lisp
galex-713 has joined #lisp
frgo_ has joined #lisp
frgo has quit [Ping timeout: 260 seconds]
cosimone has joined #lisp
pve has joined #lisp
<scymtym> beach: yeah, as i said, it worked very well for me. but as shka_ mentioned, a little extra work is needed to make the approach work across multiple threads
<beach> Yes, I can see that.
amb007 has quit [Read error: Connection reset by peer]
liberliver has joined #lisp
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
gaqwas has joined #lisp
toorevitimirp has joined #lisp
daphnis has joined #lisp
smazga has joined #lisp
smazga has quit [Ping timeout: 240 seconds]
dbotton__ has joined #lisp
dbotton___ has joined #lisp
dbotton__ has quit [Ping timeout: 272 seconds]
dbotton___ has quit [Ping timeout: 256 seconds]
daphnis has quit [Ping timeout: 260 seconds]
nicktick has quit [Ping timeout: 260 seconds]
davepdotorg has joined #lisp
ggole has joined #lisp
random-nick has joined #lisp
scymtym has quit [Remote host closed the connection]
jonatack has quit [Ping timeout: 240 seconds]
mmohammadi9812 has quit [Ping timeout: 256 seconds]
* Xach uses conditions in that way in Quicklisp download progress reporting
mmohammadi9812 has joined #lisp
<beach> Interesting.
<Xach> in my innocence i imagined someone making a graphical frontend and wanted it to be able to handle progress bars without changing much
<beach> Yeah, it's a perfect mechanism for alternative front-ends.
<beach> ... including the absence of a font end entirely.
dvdmuckle has quit [Ping timeout: 264 seconds]
mmohammadi9812 has quit [Ping timeout: 246 seconds]
mmohammadi9812 has joined #lisp
<Robdgreat> the front fell off?
tankrim has quit [Ping timeout: 260 seconds]
<ck_> chance in a million!
<p_l> I seem to recall an early example of conditions being used in relation with text input editing
<Robdgreat> ck_: ^5
dbotton_ has joined #lisp
dbotton has quit [Ping timeout: 260 seconds]
choegusung has joined #lisp
amb007 has joined #lisp
scymtym has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
gaqwas has quit [Remote host closed the connection]
dddddd has quit [Ping timeout: 260 seconds]
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
daphnis has joined #lisp
aartaka has joined #lisp
aartaka_d has quit [Ping timeout: 256 seconds]
dddddd has joined #lisp
dvdmuckle has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
Inline has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
davepdotorg has joined #lisp
mmohammadi9812 has quit [Ping timeout: 256 seconds]
mmohammadi9812 has joined #lisp
troydm has quit [Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset]
davepdotorg has quit [Remote host closed the connection]
troydm has joined #lisp
davepdotorg has joined #lisp
mmohammadi9812 has quit [Ping timeout: 260 seconds]
davepdotorg has quit [Ping timeout: 260 seconds]
mmohammadi9812 has joined #lisp
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
Alloc has quit [Ping timeout: 240 seconds]
aartaka has quit [Ping timeout: 260 seconds]
davepdotorg has joined #lisp
Alloc has joined #lisp
davepdotorg has quit [Ping timeout: 258 seconds]
davepdotorg has joined #lisp
davepdotorg has quit [Ping timeout: 240 seconds]
davepdotorg has joined #lisp
Bike has joined #lisp
cosimone has quit [Quit: cosimone]
renzhi has quit [Ping timeout: 240 seconds]
madage has quit [Ping timeout: 240 seconds]
h11 has quit [Quit: The Lounge - https://thelounge.chat]
aartaka has joined #lisp
davepdotorg has quit [Ping timeout: 260 seconds]
madage has joined #lisp
Stanley00 has quit [Remote host closed the connection]
EvW has joined #lisp
nicktick has joined #lisp
Alloc has quit [Ping timeout: 272 seconds]
davepdotorg has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
davepdotorg has quit [Read error: Connection reset by peer]
davepdotorg has joined #lisp
davepdotorg has quit [Ping timeout: 272 seconds]
h11 has joined #lisp
davepdotorg has joined #lisp
EvW has joined #lisp
iissaacc has quit [Ping timeout: 265 seconds]
wsinatra has joined #lisp
davepdotorg has quit [Ping timeout: 246 seconds]
Alloc has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
choegusung has quit [Quit: leaving]
jonatack has joined #lisp
davepdotorg has joined #lisp
ljavorsk has joined #lisp
ljavorsk_ has quit [Ping timeout: 256 seconds]
davepdotorg has quit [Ping timeout: 256 seconds]
Alloc has quit [Ping timeout: 240 seconds]
Gerula has quit [Quit: Leaving]
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
kaftejiman has joined #lisp
davepdotorg has joined #lisp
davepdotorg has quit [Ping timeout: 256 seconds]
skapata has joined #lisp
Alloc has joined #lisp
dyelar has joined #lisp
ebrasca has joined #lisp
lucasb has joined #lisp
frost-lab has quit [Quit: Connection closed]
Gerula has joined #lisp
cer0 has joined #lisp
aartaka_d has joined #lisp
davepdotorg has joined #lisp
ljavorsk has quit [Ping timeout: 256 seconds]
Inline has quit [Ping timeout: 272 seconds]
aartaka has quit [Ping timeout: 260 seconds]
davepdotorg has quit [Ping timeout: 240 seconds]
Inline has joined #lisp
sjl_ has joined #lisp
dbotton has joined #lisp
dbotton_ has quit [Ping timeout: 240 seconds]
epony has quit [Remote host closed the connection]
uhrenmacher has joined #lisp
dbotton_ has joined #lisp
<uhrenmacher> Ok, hello people, just havin' two questions my knowledge in terms programming is limited to C, Java and some scripting langs. So I thtought about learning something like some Lisp dialect. What dialect do you recommend a newbie? 2. I have been using Vim for some time now, I am pretty used to it, is it worth it to go for Emacs, when coding in Lisp?
dbotton has quit [Ping timeout: 272 seconds]
<beach> uhrenmacher: This channel is dedicated to Common Lisp, so we will be biased in favor of Common Lisp.
<TMA> uhrenmacher: this is a common lisp channel. the answer is biased here
<beach> heh.
<TMA> you are faster, sir. well done
<_death> yes, it's worth trying emacs
<uhrenmacher> hmm, so, what makes Common Lisp "superior". Why did you choose to use it?
<shinohai> >Java
<beach> uhrenmacher: If you can go for Emacs, that would be good.
<shinohai> The first step is admitting you have a problem. Well done.
<uhrenmacher> Should I go full Emacs then or just as a terminal and editor?
<beach> uhrenmacher: You should use SLIME.
<beach> It's almost like an IDE for Common Lisp.
<beach> uhrenmacher: SLIME is an Emacs library.
<uhrenmacher> >Java, bruh learned it when I was like 12 to h4xx0r in gaymes, using it for GUIs only nawadays
<shinohai> xD
<beach> uhrenmacher: See random-state.net/features-of-common-lisp.html for a list of features of Common Lisp.
<uhrenmacher> Ok, so common lisp, do you recommend any compiler? Using Void Linux.
<cl-arthur> uhrenmacher: I used to use vim, now after enough lisp I use emacs (w/ SLIME). lisping with emacs/slime is far better an experience than the straight vim I used before. There's something SLIME-like for vim, but yeah go emacs.
<beach> uhrenmacher: Most people here probably use SBCL. It is not just a compiler. It is an interactive system, just like any other Common Lisp implementation.
<phoe> uhrenmacher: the interactivity of Lisp is a massive benefit over all non-interactive languages
vutral has joined #lisp
<phoe> one can, and should, inspect, debug, modify, converse with a living Lisp application without ever quitting it
<Inline> it's just that interactivity i sometimes lack especially when doing oop related stuff
<uhrenmacher> ah, yeah, that was something. Ok, this question is probably far to retarded, but...why can't I just write my code in a file, compile it and then execute it? Like just looked up some tuts on it, but couldn't find anything for this. Maybe I am to brainlet to see the advantages, idk
<uhrenmacher> *too
<Inline> then it might get cumbersome
<Inline> or i didn't find a good way to deal with yet
<Inline> heh
uhrenmacher is now known as shortername
<phoe> uhrenmacher: of course you can
davepdotorg has joined #lisp
<phoe> but then you're missing out on all the fun parts of programming
<Inline> i find myself often editing stuff and reloading my repl
<Inline> rather than staying put in the repl for ever
<phoe> when your program doesn't work then it just crashes, which means that you don't get to debug it or inspect its data structures live
<Inline> lol
<shortername> hmm, so why do people recommend against doing so?
<beach> shortername: You would create an executable only at the end of a long development cycle. We can discuss that in a few months.
shortername is now known as tamborin
tamborin is now known as pipes
<phoe> Lisp can compile incrementally, which means very short feedback loops, where a newly compiled function is available inside your program in milliseconds rather than seconds and you can immediately play with it in the REPL
<Inline> for redefining functions/macros it's ok i suppose, but really i have not found a good way to oop stuff yet
<beach> Inline: What do you mean? What kind of "oop stuff"?
madand has quit [Quit: ZNC 1.8.1 - https://znc.in]
<pipes> shortername: You would create an executable only at the end
<pipes> of a long development cycle. We can discuss that in a few
<pipes> months.
pipes has quit [Quit: ]
<jackdaniel> removing methods from a generic functions is kind of awkward, maybe that's what he means
<Xach> It's not too bad in slime
davepdotorg has quit [Ping timeout: 240 seconds]
<beach> Clouseau can do that.
<jackdaniel> that's why I've said "awkward", not "hard" ;)
madand has joined #lisp
<Xach> I still do wish for a smart remove-method-at-point
<beach> Clouseau is a delight. Not awkward at all. :)
<Xach> maybe i'd also like a nicer inspect-at-point type thing - something that knows if it's looking at a defgeneric, defun, defmethod form and inspects appropriately instead of requiring me to manually enter #'foo at the prompt
<beach> All good ideas.
mbrumlow has quit [Ping timeout: 244 seconds]
bitmapper has joined #lisp
hnOsmium0001 has joined #lisp
davepdotorg has joined #lisp
jonatack has quit [Ping timeout: 260 seconds]
jonatack has joined #lisp
mbrumlow has joined #lisp
epony has joined #lisp
<jdz> Xach: I use `slime-inspect-definition', which I think works most of the time.
daphnis has quit [Ping timeout: 256 seconds]
rippa has joined #lisp
smazga has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
skapata has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 260 seconds]
Cymew has quit [Ping timeout: 256 seconds]
aartaka has joined #lisp
flazh has quit [Ping timeout: 260 seconds]
aartaka_d has quit [Ping timeout: 246 seconds]
uniminin has joined #lisp
flazh has joined #lisp
uniminin has quit [Max SendQ exceeded]
uniminin has joined #lisp
dbotton has joined #lisp
uniminin has quit [Max SendQ exceeded]
uniminin has joined #lisp
kaftejiman_ has joined #lisp
uniminin has quit [Max SendQ exceeded]
uniminin has joined #lisp
dbotton_ has quit [Ping timeout: 260 seconds]
uniminin has quit [Remote host closed the connection]
daphnis has joined #lisp
kaftejiman has quit [Ping timeout: 260 seconds]
dbotton_ has joined #lisp
<Xach> jdz: thank you! i did not know about that
rumbler31___ has joined #lisp
<Xach> jdz: perfect!
<jdz> Xach: Yay, I've provided information and not noise! Glad to have helped!
CrazyEddy has quit [Ping timeout: 272 seconds]
shikamaru has joined #lisp
shikamaru has quit [Remote host closed the connection]
yitzi has joined #lisp
narimiran has quit [Ping timeout: 260 seconds]
rumbler31___ has quit [Ping timeout: 260 seconds]
Nilby has joined #lisp
saganman has quit [Ping timeout: 260 seconds]
saganman has joined #lisp
dbotton__ has joined #lisp
smazga has quit [Quit: leaving]
dbotton48 has joined #lisp
dbotton has quit [Ping timeout: 260 seconds]
vutral has quit [Quit: Connection closed for inactivity]
dbotton_ has quit [Ping timeout: 258 seconds]
dbotton__ has quit [Ping timeout: 264 seconds]
epony has quit [Ping timeout: 258 seconds]
rumbler31___ has joined #lisp
davepdotorg has quit [Remote host closed the connection]
davepdotorg has joined #lisp
daphnis has quit [Ping timeout: 265 seconds]
davepdotorg has quit [Ping timeout: 240 seconds]
narimiran has joined #lisp
EvW has joined #lisp
daphnis has joined #lisp
amb007 has joined #lisp
Alloc has quit [Ping timeout: 258 seconds]
Alloc has joined #lisp
daphnis has quit [Ping timeout: 264 seconds]
epony has joined #lisp
skapata has joined #lisp
Steeve has joined #lisp
karlosz has joined #lisp
bocaneri has quit [Remote host closed the connection]
aaaaaa has joined #lisp
ech has quit [Ping timeout: 240 seconds]
CrazyEddy has joined #lisp
gravicappa has quit [Ping timeout: 264 seconds]
gravicappa has joined #lisp
hineios has joined #lisp
bsd4me has joined #lisp
bsd4me has left #lisp [#lisp]
amb007 has quit [Read error: Connection reset by peer]
yitzi has quit [Quit: yitzi]
amb007 has joined #lisp
benjamindc has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<benjamindc> Does anyone know of a good tutorial the describes up-to-date best practices for Lisp project organization and build processes?
dbotton has joined #lisp
Jesin has quit [Quit: Leaving]
<benjamindc> phoe that's great. Thank you
dbotton48 has quit [Ping timeout: 260 seconds]
dbotton_ has joined #lisp
mbomba has joined #lisp
dbotton has quit [Ping timeout: 260 seconds]
Jesin has joined #lisp
notzmv has quit [Ping timeout: 258 seconds]
notzmv has joined #lisp
ech has joined #lisp
<loli> is there any literature on how to write an image based system, akin to Common lisp or those forth/smalltalk systems?
luckless has joined #lisp
<phoe> loli: I'd start by writing a Forth or Lisp interpreter
<phoe> you could try e.g. reimplementing Roots of Lisp by Paul Graham
<phoe> the basic idea of the Roots of Lisp interpreter is the same idea that stands behind all image-based systems
<dlowe> a lot of "scripting languages" are also image based systems, so I'm not sure why people acts it's so crazy when lisp does it
<phoe> I know, right? Python is one, Ruby is one
<phoe> they just aren't used that way
saganman has quit [Quit: また明日]
<dlowe> and they generally don't have optimizing, bare-metal compilers
<phoe> yes, but those aren't strictly required
<loli> can those systems save the current image, then resume on a ceratin function afterwords? I'm curious on how the format of that is, thanks for the suggestion
<phoe> a purely interpreting image-based system is still an image-based system
<no-defun-allowed> They're just tedious to use interactively; I can't break into a REPL in a Python program too easily.
<loli> hopefully roots of lisp will be useful
<phoe> loli: that's an implementation detail, albeit an important one
<loli> well I'm curious if that kind of detail is noted anywhere, as when I searched for papers on the subject it came up baren
<phoe> most Lisp implementations dump their in-memory data structures somewhere and then restore those when the image is reloaded
<no-defun-allowed> And one does not have update-instance-for-redefined class, so one is limited in what they can change while live.
<benjamindc> What about Lisp in small pieces?
<phoe> the simplest idea ever is to record all commands that were issued to the image from its start to its freezing and then replay them when the image is thawed
<phoe> I haven't read LiSP so I cannot say
<phoe> I mean, if in theory you do (defun foo () 42) (defun bar () (foo)) (dump-image "foo.image") then all that is required for the dumped image to become equivalent is to reexecute (defun foo () 42) (defun bar () (foo))
<phoe> obviously this won't work in case of filesystem interaction or other side effects, but it's a simple idea that will work for toy interpreters
<phoe> for everything else, you'd need to dump memory and restore it properly afterwards
<no-defun-allowed> Some Smalltalk implementations do that, and export a changelog pretty much like that one.
akoana has joined #lisp
<loli> how do those implementations handle side effects?
<loli> I've made a fair few interpreters in my day, I guess the saving the memory to disk in a format that is very quick to reload is what alludes me
cer0 has quit [Quit: cer0]
<phoe> it is doable
<phoe> I played with the FASL format in Clozue Common Lisp one day
<no-defun-allowed> I can't remember if they also dump an image now, but in some cases, they don't touch the filesystem at any other time.
<phoe> (I need to push that refactored FASL code upstream someday)
<loli> how was that? Is there any docuemntation on the FASL layouts?
Inline has quit [Remote host closed the connection]
Inline has joined #lisp
<loli> I'm assuming those are packed in those beefy images that save-lisp-and-die produces
<phoe> nope, CCL is woefully undocumented
<phoe> the architecture is documented well enough; the code itself is not
<phoe> but! the format is actually simple enough for me to grok
<phoe> that's after my refactoring
<phoe> DEFINE-FASL-OPERATIONS contains a declarative list of all FASL commands permitted in a CCL FASL file
benjamin` has joined #lisp
justHaunted has quit [Ping timeout: 260 seconds]
benjamindc has quit [Ping timeout: 260 seconds]
<loli> thanks for the links, I'll spend some time studying them, and hopefully have a better idea how to make a nice image environment
<phoe> the toughest part is dumping code
<phoe> but once you have it compiled in memory you can treat it as any other vector of data
benjamin` has quit [Remote host closed the connection]
benjamin` has joined #lisp
<no-defun-allowed> Wouldn't code have to be position-independent, or installable at an arbitrary location given to you?
jonatack has quit [Quit: jonatack]
<phoe> it would - but that's already not your problem
<phoe> it's the problem of the compiler author
<phoe> ...obviously this does not apply if you're the compiler author
<phoe> but e.g. if all of your code is interpreted then your code is actually data, and dumping data is easier
<no-defun-allowed> Indeed.
<loli> well I'm assuming compiled code, not really interpreting at all
<phoe> who writes the compiler then?
<loli> I am
<phoe> then your compiled code needs to take this into account - code must be reloadable like this
<Bike> sbcl does relocations when it loads an image, i think
lansiir has quit [Ping timeout: 256 seconds]
lansiir has joined #lisp
<benjamin`> Has any work begun on a Common Lisp LSP language server?
jonatack has joined #lisp
<benjamin`> oh i did come across that, but it hasn't been touched in 4 years, save for an edit to the README
mmohammadi9812 has quit [Read error: Connection reset by peer]
mmohammadi9812 has joined #lisp
liberliver has quit [Ping timeout: 256 seconds]
<Xach> too volatile for your tastes?
ebrasca has quit [Remote host closed the connection]
<phoe> there's little demand for a lisp LSP server because we have slime and sly
<benjamin`> Yeah. Sly is pretty slick.
yitzi has joined #lisp
justHaunted has joined #lisp
kaftejiman__ has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
<Xach> Who can I tell that the cmucl.org ssl cert is expired?
* Xach checks whois
kaftejiman_ has quit [Ping timeout: 260 seconds]
ggole has quit [Quit: Leaving]
<phoe> Xach: perhaps Raymond Toy?
<Xach> seems possible
Xach has quit [Changing host]
Xach has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
benjamin` has quit [Remote host closed the connection]
benjamindc has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
narimiran has quit [Ping timeout: 246 seconds]
benjamindc has quit [Remote host closed the connection]
EvW has joined #lisp
earl-ducaine has joined #lisp
dbotton has joined #lisp
madage has quit [Ping timeout: 240 seconds]
galex-713 has quit [Ping timeout: 272 seconds]
justHaunted has quit [Quit: The Lounge - https://thelounge.chat]
edgar-rft has joined #lisp
madage has joined #lisp
galex-713 has joined #lisp
mbomba has quit [Quit: WeeChat 2.9]
yitzi has quit [Read error: Connection reset by peer]
<dbotton> Is there any document that describes the interaction between threads and condition handlers? dynamic variables?
<dbotton> maybe I am over thinking on this, but not finding much info
<phoe> each thread has its own set of handlers
<no-defun-allowed> Condition handlers are per thread, yes.
<phoe> mostly because it has its own set of dynamic bindings
<no-defun-allowed> Those are usually implemented with dynamic variables, and dynamic variables are also thread-local. What phoe said.
<dbotton> got it
<Bike> i don't see condition handlers or other parts of the dynamic environment mentioned in bordeaux-threads's docs, at a glance
<dbotton> so not really useful between threads, like for msg passing
<Bike> i'm not sure i understand how you'd use signal handlers for message passing.
<no-defun-allowed> You probably should use mailboxes for message passing (eg safe-queue provides those).
epony has quit [Quit: updates]
benjamindc has joined #lisp
<aeth> multithreading is still an underexplored frontier in most languages and CL is no exception (or is that "condition"?) here
<phoe> well, in CL every thread has its own handlers since every thread has its own dynamic environment
materialfuture[m has quit [*.net *.split]
MrtnDk[m] has quit [*.net *.split]
Gnuxie[m] has quit [*.net *.split]
Oddity has quit [*.net *.split]
gendl has quit [*.net *.split]
drmeister has quit [*.net *.split]
<phoe> passing condition objects around threads is possible since they're Lisp data like any other
jackhill has quit [*.net *.split]
fengshaun has quit [*.net *.split]
jgkamat has quit [*.net *.split]
rumpelszn has quit [*.net *.split]
Grue`` has quit [*.net *.split]
Grue` has joined #lisp
rumpelszn has joined #lisp
jackhill has joined #lisp
<phoe> it's just that stack information is not passable so easily because it's strictly thread-local unlike condition objects
drmeister has joined #lisp
Oddity has joined #lisp
fengshaun has joined #lisp
<phoe> Dissect might come to help, but just a little bit
epony has joined #lisp
gendl has joined #lisp
jgkamat has joined #lisp
justHaunted has joined #lisp
drewc has quit [Ping timeout: 264 seconds]
wsinatra has quit [Quit: WeeChat 2.9]
drewc has joined #lisp
MrtnDk[m] has joined #lisp
<dbotton> I wouldn't say most languages. The idea Bike is to say to have a thread block until receives a signal etc
materialfuture[m has joined #lisp
iissaacc has joined #lisp
<aeth> dbotton: re "most"... by quantity, I wouldn't be surprised if most languages don't even have "real" (non-green) threads yet.
Gnuxie[m] has joined #lisp
<Bike> the lisp condition system isn't very much like nix interprocedural signals
<Bike> the name "signal" being shared is kind of a coincidence, as far as i know
<sm2n> dbotton, I don't really see what would stop you from writing your own scheduler that could do that though
<phoe> dbotton: that's a job for mailboxes, not CL conditions
<dbotton> understood
<dbotton> sm2n, I am actually thinking about copying some of the Ada concurrency abstractions as an exercise
justHaunted has quit [Read error: Connection reset by peer]
<_death> so, I've decided to archive the old Road to Lisp Survey submissions that were hosted on ALU wiki on github.. https://github.com/death/road-to-lisp hopefully none of those listed minds...
<dbotton> aeth maybe I am missing it, but the use of non-green threads is going to be more of the implementation or os then the language
<dbotton> most languages today have so low level support like bordeaux threads
<dbotton> have some
<dbotton> that are more or less a one to one to the OS support
<dbotton> very few have higher level abstractions for sure
justHaunted has joined #lisp
<dbotton> comes to mind as an example of what I mean by a higher abstraction
dmc00 has quit [Ping timeout: 272 seconds]
benjamindc has quit [Ping timeout: 260 seconds]
<dbotton> Bike they used conditions for synchronization
<Bike> how's that? i googled up https://oberoncore.ru/_media/wiki/lang/reali_p.active_oberon_language_report.en.pdf but it's a different sense of the word
<Bike> and this wikipedia article has no inline citations
<no-defun-allowed> There are "condition variables" which are synchronisation primitives, but not related to the condition system.
<Bike> yes
<dbotton> ok
<Bike> i mean, the wikipedia article does make it sound like lisp type conditions, but there's no detailed information
<Bike> doesn't seem to be mentioned in the JMLC paper either
<Bike> i am curious to see how this works
aartaka has quit [Ping timeout: 260 seconds]
<aeth> dbotton: most languages are single-implementation or single-dominant-implementation languages, so it's doubtful that they have something like bordeaux-threads if the dominant implementation doesn't have the need for it yet.
<aeth> dbotton: but, yes, it's technically an implementation issue
<dbotton> I mean in the sense of level of abstraction
<Bike> bordeaux is certainly a pretty low level api.
<dbotton> most langs have very minimal work on absraction
<dbotton> CL after all I have seen seems to deserve that
<dbotton> certainly more then os "thread apis"
gravicappa has quit [Ping timeout: 260 seconds]
<dbotton> at least tasks, protected types etc like Ada or perhaps something like the model of active oberon (I wish I could say have experience with it but do not but I like the idea)
dilated_dinosaur has quit [Ping timeout: 260 seconds]
justHaunted has quit [Remote host closed the connection]
scymtym has joined #lisp
justHaunted has joined #lisp
arpunk has quit [Read error: Connection reset by peer]
dilated_dinosaur has joined #lisp
shka_ has quit [Ping timeout: 260 seconds]
dbotton has quit [Remote host closed the connection]
sm2n has quit [Ping timeout: 260 seconds]
sm2n has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
edgar-rft has quit [Quit: Leaving]
<sm2n> dbotton_, CL does have some high level concurrency abstractions, for example lparallel
random-nick has quit [Ping timeout: 260 seconds]
<dbotton_> that I saw. Are there any others?
<jmercouris> chanl
<jmercouris> dbotton_: ^
<phoe> cl-actors
<dbotton_> great thanks will look at those
EvW has quit [Ping timeout: 260 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
EvW has joined #lisp
sjl_ has quit [Ping timeout: 256 seconds]
Steeve has quit [Quit: end]
gaqwas has quit [Ping timeout: 256 seconds]
galex-713 has joined #lisp
__jrjsmrtn__ has joined #lisp
rumbler31___ has quit [Ping timeout: 240 seconds]
_jrjsmrtn has quit [Ping timeout: 258 seconds]
arpunk has joined #lisp
nicktick has quit [Ping timeout: 240 seconds]
ariedro has quit [Ping timeout: 260 seconds]
mrchampion has quit [Quit: Leaving]
mbomba has joined #lisp
iissaacc has quit [Ping timeout: 256 seconds]
mrchampion has joined #lisp
bilegeek has joined #lisp
Oladon has joined #lisp
pve has quit [Quit: leaving]
Steeve has joined #lisp
hineios has quit [Quit: The Lounge - https://thelounge.chat]
iissaacc has joined #lisp
kaftejiman__ has quit [Remote host closed the connection]
hineios has joined #lisp
iissaacc has quit [Ping timeout: 260 seconds]
ariedro has joined #lisp
ariedro is now known as Guest66899
aeth_ has joined #lisp
aeth has quit [Disconnected by services]
aeth_ is now known as aeth
jxy has quit [Ping timeout: 246 seconds]
<jasom> how do I find the upstream of a system in quicklis?
<aeth> it's too big to fit in github, but you can click on, say, 1am, and then manually rename the URL
<aeth> e.g. replace "1am" with the project you want in https://github.com/quicklisp/quicklisp-projects/tree/master/projects/1am
<aeth> the source.txt is the source that quicklisp uses afaik
iissaacc has joined #lisp