p_l 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/> | ASDF 3.3.4
dgtlcmo has quit [Remote host closed the connection]
ahungry has joined #lisp
ahungry has quit [Read error: Connection reset by peer]
Involuntary has quit [Remote host closed the connection]
ahungry has joined #lisp
akoana has joined #lisp
ArthurStrong has joined #lisp
anticrisis has joined #lisp
cgay has quit [Quit: Lost terminal]
Oddity has quit [Ping timeout: 265 seconds]
Bourne has quit [Read error: Connection reset by peer]
Oddity has joined #lisp
Josh_2 has quit [Ping timeout: 265 seconds]
Aurora_iz_kosmos has quit [Ping timeout: 240 seconds]
libertyprime has joined #lisp
cgay has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Bourne has joined #lisp
cosimone has joined #lisp
ski has joined #lisp
markoong has quit [Ping timeout: 265 seconds]
cosimone has quit [Quit: Quit.]
Aurora_iz_kosmos has joined #lisp
Kundry_Wag has joined #lisp
Steinberg2010 has joined #lisp
zmt01 has quit [Quit: Leaving]
Oddity has quit [Ping timeout: 256 seconds]
bitmapper has quit [Ping timeout: 265 seconds]
Oddity has joined #lisp
lisper29 has joined #lisp
Jeanne-Kamikaze has joined #lisp
torbo has joined #lisp
gko has joined #lisp
slyrus_ has joined #lisp
zmt00 has joined #lisp
slyrus has quit [Ping timeout: 260 seconds]
karlosz has quit [Quit: karlosz]
Oddity has quit [Ping timeout: 250 seconds]
PuercoPope has quit [Remote host closed the connection]
ufaucernio has quit [Quit: Quit]
ufaucernio has joined #lisp
ahungry has quit [Remote host closed the connection]
ufaucernio has quit [Client Quit]
ahungry has joined #lisp
zaquest has quit [Quit: Leaving]
Oddity has joined #lisp
slyrus__ has joined #lisp
chipolux has quit [Quit: chipolux]
slyrus_ has quit [Ping timeout: 260 seconds]
chipolux has joined #lisp
ArthurStrong has quit [Ping timeout: 260 seconds]
ArthurStrong has joined #lisp
Steinberg2010 has quit [Ping timeout: 265 seconds]
Kundry_Wag has quit [Remote host closed the connection]
Aurora_iz_kosmos has quit [Remote host closed the connection]
Aurora_iz_kosmos has joined #lisp
sonologico has joined #lisp
ebzzry has joined #lisp
lemoinem has quit [Read error: Connection reset by peer]
lemoinem has joined #lisp
monok has joined #lisp
karswell has joined #lisp
mono has quit [Ping timeout: 260 seconds]
scipio has joined #lisp
davepdotorg has joined #lisp
Kundry_Wag has joined #lisp
davepdotorg has quit [Ping timeout: 265 seconds]
Inline has quit [Ping timeout: 265 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
iAmDecim has joined #lisp
slyrus_ has joined #lisp
madage has quit [Ping timeout: 240 seconds]
slyrus__ has quit [Ping timeout: 260 seconds]
madage has joined #lisp
sendai_ has joined #lisp
luckless has quit [Ping timeout: 272 seconds]
wxie has joined #lisp
efm has quit [Read error: Connection reset by peer]
karswell has quit [Remote host closed the connection]
karswell_ has joined #lisp
iAmDecim has quit [Ping timeout: 260 seconds]
Bike has quit [Quit: Lost terminal]
wxie has quit [Remote host closed the connection]
efm has joined #lisp
wxie has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
Kundry_Wag has joined #lisp
<beach> Good morning everyone!
igemnace has quit [Quit: WeeChat 2.8]
Kundry_Wag has quit [Ping timeout: 250 seconds]
shangul has joined #lisp
scipio has quit [Quit: leaving]
shifty has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
PuercoPope has joined #lisp
iAmDecim has joined #lisp
<ArthurStrong> beach: good morning indeed
<PuercoPope> What would be the best way to implement a lru cache with a maximum size. I was thinking of using a norvig style queue but I woud like O(1) lookup so a linked list of cons cells wouldn't work
<PuercoPope> I saw that vivache graph implements one using skip lists but I don't know anything about skip lists
<beach> PuercoPope: What kind of "lookup" do you want in an LRU cache?
iAmDecim has quit [Ping timeout: 260 seconds]
<beach> PuercoPope: If you have anything that requires a lookup of an object given a key, I think O(1) is going to be hard.
<beach> PuercoPope: A skip list is just a tree that is statistically balanced.
<beach> So any "lookup" in a skip list would be O(log n).
adam4567 has joined #lisp
karlosz has joined #lisp
<beach> If you stick your "lookup" in a parallel hash table, you can use a doubly linked list for your LRU cache. When you access an item, unlink it from its place and link it to the front. If you need to evict an item, evict the last one in the list.
xkapastel has quit [Quit: Connection closed for inactivity]
ebzzry has joined #lisp
slyrus__ has joined #lisp
mangul has joined #lisp
<PuercoPope> beach: I would like O(1). The doubly linked list + ht seems like a good idea.
<beach> You still haven't told me what "lookup" you need to do in the LRU cache.
<PuercoPope> I'm trying to fix an issue with clx-truetype where it hash-tables as a cache but because it never evicts it leads to OOM situations
slyrus_ has quit [Ping timeout: 260 seconds]
<PuercoPope> beach: you mean what key? A string
dddddd has quit [Ping timeout: 256 seconds]
<beach> A "lookup" typically means obtaining some object given a key, but that does not seem to be something you would want to do in an LRU cache.
shangul has quit [Ping timeout: 256 seconds]
<beach> With a doubly linked list, you can't afford to do any such "lookup". You would need to already have a reference to the element in the list in order to unlink it in O(1).
<beach> So if I understand what you want, I suggest using a hash table for the lookup, and the hash table contains "cells" in the list with a "previous" and a "next" pointer. The cell also contain the information you need for truetype, whatever that might be. A font maybe?
<beach> But then, this is not really an LRU cache is it?
<beach> Well, I guess it is. Sorry.
ArthurStrong has left #lisp [#lisp]
<beach> So to find an item, you do a lookup in your hash table.
<beach> If it is there, you move it to the front of the list and access the information in the cell.
<beach> If it is not there, you evict the last item in the list, load the item form disk I presume, enter a new cell into the hash table, link it to the front of the list.
<beach> But, notice that there is no "lookup" in the list.
<beach> The "lookup" is done in the hash table.
<beach> So I guess you can say that your LRU cache is a combination of a hash table and a doubly linked list.
doIreallyneedapa has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
doIreallyneedapa has quit [Remote host closed the connection]
wxie has quit [Ping timeout: 260 seconds]
Jeanne-Kamikaze has quit [Remote host closed the connection]
libertyprime has quit [Read error: No route to host]
ahungry has quit [Remote host closed the connection]
libertyprime has joined #lisp
<PuercoPope> Yeah, I only use the doubly linked list as a way to keep up the 'access history' so I can remove them when I reach a threshold. I think I got the gist of the idea. Thanks
iAmDecim has joined #lisp
gravicappa has joined #lisp
<beach> Sure. I thought of one more thing, your list elements also need to contain the hash key, so that when you evict the oldest item, you can remove it from the hash table.
iAmDecim has quit [Ping timeout: 260 seconds]
davepdotorg has joined #lisp
davepdotorg has quit [Ping timeout: 256 seconds]
lisper29 has left #lisp [#lisp]
Kundry_Wag has joined #lisp
libertyprime has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Ping timeout: 264 seconds]
libertyprime has joined #lisp
pilne has quit [Quit: He who laughs last, thinks slowest]
wxie has joined #lisp
ebzzry has joined #lisp
karswell_ has quit [Ping timeout: 250 seconds]
libertyprime has quit [Remote host closed the connection]
torbo has quit [Remote host closed the connection]
ft has quit [Ping timeout: 268 seconds]
<no-defun-allowed> In my cache, I use a minheap (system of the same name), a hash table of elements, and a hash table of times each key occurs in the heap.
<no-defun-allowed> That seems better though.
sendai_ has quit [Remote host closed the connection]
sendai_ has joined #lisp
vlatkoB has joined #lisp
donotturnoff has joined #lisp
Oladon has quit [Quit: Leaving.]
<no-defun-allowed> Oh, I asked my friends today what they would be most interested in reading about from a shortlist, and got pretty conclusive results.
xaotuk has joined #lisp
<no-defun-allowed> The top three summaries were "replacements for centralised content moderation in distributed systems", "designing self-describing data formats using schemas and presentation scripts", and "implementing a fast and adaptable distributed hash table in Common Lisp", and I guess those are strong points of my work.
<beach> Interesting. Also very hard problems, I would think.
<White_Flame> PuercoPope: there's an implementation of hashtable + doubly linked list here: https://github.com/white-flame/clyc/blob/master/larkc-cycl/cache.lisp
<White_Flame> the style is pretty old & very broken out, but you can at least see the management of the data
sarna_ has joined #lisp
sarna_ has quit [Remote host closed the connection]
scipio has joined #lisp
<no-defun-allowed> beach: On the other hand, I don't know if I've done anything new? For the former, most people are fine with having a centralised power structure controlling their distributed systems, which is quite sad, but more importantly mean I haven't heard of any other attempts.
<no-defun-allowed> (Though, using a doubly linked-list would definitely be better for a LRU cache, now that I think of it; time tends to be monotonically increasing, so keys are always inserted at one end and removed from the other.)
<beach> Your work is far from my domains of expertise, so you would have to invest in some literature research. It is tedious, but it can be fun as well. Also, it is an absolute requirement if you want to write an academic paper about your work.
<no-defun-allowed> Right.
<no-defun-allowed> Searching for "distributed moderation" from my university's library comes up with several articles that look promising.
<beach> One interesting thing to do is to find an old article on the subject, and do a "forward search".
<beach> The ACM digital library can help you do such things.
<no-defun-allowed> That does sound interesting.
<beach> It is standard practice, but unfortunately many people don't know how to do it.
<beach> You go to an article, and there is a link for "cited by", which goes forward in time.
<no-defun-allowed> Useful term: "collaborative filtering", which I think is one of the ways that my system could be used.
<White_Flame> articles on time travel go the opposite way, if they're any good
iAmDecim has joined #lisp
attila_lendvai has joined #lisp
sonologico has quit [Remote host closed the connection]
sonologico has joined #lisp
sonologico has quit [Client Quit]
iAmDecim has quit [Ping timeout: 256 seconds]
<no-defun-allowed> There's definitely a lot to dig through then.
<beach> In that domain, I would think so, yes. But you need to be selective when you look at the "cited by" list, because some articles won't be relevant.
Kundry_Wag has joined #lisp
<beach> Then you must learn to "skim" articles. You quickly need to figure out whether they are irrelevant to your search, and quit reading them then.
zxcvz has joined #lisp
<no-defun-allowed> Right.
<beach> Then, if you think it *might* be relevant and the abstract is well written, you can determine a lot from there. Unless of course they write "descriptive abstracts" like many of our Common Lisp friends do (until I correct them).
wxie has quit [Ping timeout: 256 seconds]
xaotuk has quit [Ping timeout: 265 seconds]
Kundry_Wag has quit [Ping timeout: 265 seconds]
<no-defun-allowed> Hm, "collaborative filtering" is different to what I have in mind, in that decisions that a user hasn't made are approximated by finding other users that have made similar decisions to those that they have made, and aggregating their decisions.
hhdave has joined #lisp
<no-defun-allowed> ...whereas we have users choose some delegates (friends) that would agree with them more often than not. Performing that automatically is interesting, nonetheless.
<no-defun-allowed> Gotcha.
<no-defun-allowed> Thanks for the advice.
attila_lendvai has quit [Ping timeout: 240 seconds]
PuercoPope has quit [Remote host closed the connection]
davepdotorg has joined #lisp
ggole has joined #lisp
Steinberg2010 has joined #lisp
hiroaki has quit [Ping timeout: 240 seconds]
ebzzry has quit [Read error: Connection reset by peer]
CommanderViral1 has quit [Quit: ZNC 1.7.1+deb1+bionic1 - https://znc.in]
CommanderViral has joined #lisp
iAmDecim has joined #lisp
akoana has left #lisp ["Leaving"]
Bourne has quit [Ping timeout: 240 seconds]
ecraven has joined #lisp
<MichaelRaskin> no-defun-allowed: I think there are multiple senses, recommendation engines try to cluster people and recommend based on that (old Netflix, Stumbleupon), moderation systems try to buld a single view for community (Slashdot — even if you find no articles on it, read something about it, it seems to be elaborate and interesting and has a long history to see how all of this works)
<no-defun-allowed> I see.
<MichaelRaskin> Explicit delegation… it seems harder to study, and even hard to see if it works or not. Something similar sometimes arises with some «you follow X, they liked Y» Twitter stuff, and more consciously in some places of LiveJournal friend-of-friend feed (LJ clones also count) and Tumblr (and clones) repost-based informal communities might end up similar to that
xaotuk has joined #lisp
<no-defun-allowed> Yeah, that seems less common, but I think it may complement the statistical techniques used in collaborative filtering.
heisig has joined #lisp
<MichaelRaskin> It does have some attractive sides, and it has some upfront investment properties for _each_ user that might scare people away from trying it fully
<no-defun-allowed> It could help with "cold start" problems where there is just too little information to start guessing from, and having to infiltrate social circles in a way would dissuade some manipulation.
<no-defun-allowed> Usually when I try some new discussion medium, it's cause a friend nagged me to try it.
<MichaelRaskin> Re: articles — I guess that delegation behaviour is highly sensitive to _everything_ (see: «that's too much, I unsubscribe» on Twitter), so delegation is hard to model
<no-defun-allowed> Sure.
jprajzne has joined #lisp
attila_lendvai has joined #lisp
attila_lendvai has quit [Remote host closed the connection]
jprajzne has quit [Client Quit]
dale has quit [Quit: My computer has gone to sleep]
iAmDecim has quit [Ping timeout: 265 seconds]
jprajzne has joined #lisp
hhdave has quit [Quit: hhdave]
anticrisis has quit [Quit: Leaving]
davepdotorg has quit [Ping timeout: 265 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
iAmDecim has joined #lisp
random-nick has joined #lisp
iAmDecim has quit [Ping timeout: 256 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
tichun has joined #lisp
tichun has quit [Client Quit]
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
Oddity has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
Inline has joined #lisp
Oddity has joined #lisp
Kundry_Wag has quit [Ping timeout: 265 seconds]
adam4567 has quit [Quit: zzz]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
iAmDecim has joined #lisp
davepdotorg has joined #lisp
iAmDecim has quit [Ping timeout: 265 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
ebzzry has joined #lisp
ArthurStrong has joined #lisp
Bourne has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<splittist> Didn't Gnus have something like that?
jprajzne has quit [Quit: jprajzne]
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
jprajzne has joined #lisp
<splittist> (yes - GroupLens)
rippa has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<no-defun-allowed> More stuff to read then. Thanks.
<no-defun-allowed> It also seems quite common to use that vector cosine value as a correlation coefficient.
xkapastel has joined #lisp
dddddd has joined #lisp
cosimone has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
karlosz has quit [Quit: karlosz]
random-nick has quit [Quit: quit]
random-nick has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
markoong has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
iAmDecim has joined #lisp
iAmDecim has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 265 seconds]
space_otter has quit [Ping timeout: 265 seconds]
markong has joined #lisp
tarod16 has joined #lisp
markoong has quit [Ping timeout: 265 seconds]
tarod16 has left #lisp ["Killed buffer"]
iAmDecim has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
ft has joined #lisp
jprajzne has quit [Quit: jprajzne]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
jprajzne has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
iAmDecim has quit [Ping timeout: 265 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
iAmDecim has joined #lisp
Steinberg2010 has quit [Ping timeout: 250 seconds]
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
farooqkz__ has joined #lisp
farooqkz__ has quit [Client Quit]
shangul has joined #lisp
cosimone has quit [Quit: Terminated!]
mangul has quit [Ping timeout: 265 seconds]
v88m has quit [Ping timeout: 265 seconds]
mangul has joined #lisp
shangul has quit [Ping timeout: 260 seconds]
mangul is now known as shangul
gxt has quit [Ping timeout: 240 seconds]
guest1 has joined #lisp
EvW has joined #lisp
Josh_2 has joined #lisp
guest1 has left #lisp [#lisp]
gxt has joined #lisp
watkinsr has quit [Quit: WeeChat 2.7.1]
v88m has joined #lisp
iAmDecim has quit [Ping timeout: 265 seconds]
bitmapper has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
Bike has joined #lisp
iAmDecim has joined #lisp
EvW has quit [Read error: Connection reset by peer]
EvW1 has joined #lisp
SGASAU has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
mhitchman[m] has joined #lisp
iAmDecim has quit [Ping timeout: 260 seconds]
scipio has quit [Quit: leaving]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
jprajzne has quit [Quit: jprajzne]
tiwEllien has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
jprajzne has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
iAmDecim has joined #lisp
iAmDecim has quit [Ping timeout: 265 seconds]
snits has quit [Ping timeout: 260 seconds]
iAmDecim has joined #lisp
nika has joined #lisp
snits has joined #lisp
jprajzne has quit [Quit: jprajzne]
logand has joined #lisp
jprajzne has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
Kundry_Wag has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
ym555 has joined #lisp
shifty has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
pioneer42 has joined #lisp
pioneer42 has left #lisp [#lisp]
ym555 has quit [Ping timeout: 256 seconds]
dddddd has quit [Ping timeout: 250 seconds]
pioneer42 has joined #lisp
ym555 has joined #lisp
EvW1 has quit [Ping timeout: 260 seconds]
sarna has quit []
ym555 has quit [Ping timeout: 265 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
mrrevolt has joined #lisp
<eta> how do I get sbcl to do nothing?
<eta> i.e. idle the current thread, using 0% CPU, until it gets woken up by something
Bourne has quit [Ping timeout: 260 seconds]
Oladon has joined #lisp
ym555 has joined #lisp
<eta> Bike, I guess that probably would work
<eta> essentially my problem is that the main thread of the program doesn't do much except get woken up by a timer
<phoe> condition variables that is
cosimone has joined #lisp
<eta> can the SBCL timer still wake up my thread if it's blocked on that?
Bourne has joined #lisp
<Bike> wait, so you're saying you have a thread that just does some action at certain intervals? something like that?
<Bike> maybe you can just use sleep
<eta> Bike, yeah
<eta> Bike, it currently uses trivial-timers to schedule actions
<eta> but most of the work happens on other threads I guess
<eta> hey, looks like that works, thanks :)
jprajzne has quit [Quit: jprajzne]
<beach> mrrevolt: If you want people to click on your link, you should tell them what they might expect if they do.
<beach> mrrevolt: Posting links without any explanation is typical troll behavior.
<mrrevolt> beach: knows ,next time i can’t, easy feiend
pioneer42 has quit [Quit: Leaving.]
jprajzne has joined #lisp
ym555 has quit [Ping timeout: 260 seconds]
ym555_ has joined #lisp
<phoe> mrrevolt: nice photo, but it is not lisp-related in any way
<phoe> please refrain from doing such
ym555_ has quit [Ping timeout: 258 seconds]
<eta> what's ~A but all on one line, i.e. with no newlines?
<eta> (as a FORMAT directive)
ym555_ has joined #lisp
<beach> clhs ~a
<phoe> eta: (let ((*print-right-margin* most-positive-fixnum)) ...)
<eta> phoe, ahahaha, thanks ;P
<phoe> and format ~a in there
<eta> (that's amazingly hacky)
<eta> actually tbf I'll probably just SETF that for the whole program
<phoe> don't
<phoe> this is a variable that is supposed to be set for the user
<eta> huh?
<phoe> the global value of *print-right-margin* is supposed to be settable by the user
nicktick1 has quit [Quit: Leaving.]
<eta> so why can't I set it then?
<eta> to clarify
<pjb> eta: then don't use format.
<phoe> oh - if you are the only user of the program, then sure thing
<phoe> I meant for programs that you distribute to others, such as libraries
<eta> phoe, yeah, it's a binary that's being uploaded and run headless
<eta> I mean I already overwrote *debugger-hook* with something that aborts the program, so ;P
<phoe> eta: there's implementation-defined behaviour for that, like, sb-ext:disable-debugger
<eta> also, how do I get SWANK to load everything it needs *before* I call save-lisp-and-die
<eta> I loaded the ASDF system, but then I try connecting and I get a "can't locate module: swank-io-package::swank-sbcl-exts"
<pjb> eta: note that ~A is just princ, so you cannot use princ either. What you want is to print the objects yourself, in the format you need them. Note that print-object methods may force print newlines. (mine do, because I don't know enough about the pretty printer to make it optional or pretty-printer directed).
peterhil has quit [Read error: Connection reset by peer]
<pjb> eta: this means, that for standard-objects you will also have to print the slots yourself, using the format you need to print them.
quazimodo has quit [Ping timeout: 250 seconds]
gko has quit [Ping timeout: 256 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
pilne has joined #lisp
jprajzne has quit [Client Quit]
SlashLife has quit [Excess Flood]
jprajzne has joined #lisp
SlashLife has joined #lisp
jprajzne has quit [Quit: jprajzne]
quazimodo has joined #lisp
jprajzne has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
<eta> pjb, right, thank you :)
<eta> now if only I could get SWANK to work with emacs :p
* eta hacks further
<pjb> eta: use slime. slime runs on emacs, and knows how to work with swank on CL.
<eta> pjb, no, I am
<eta> but it fails to bring up a REPL
<eta> because it can't locate some contrib module or something
<pjb> eta: when you type M-x slime RET, you can check what happens in the buffer *inferior-lisp* ; you may have an error in your rc files.
<eta> pjb, this is a remote SWANK, sorry
<eta> it's running on a different server that doesn't have any lisp stuff installed
orivej has joined #lisp
<pjb> eta: in that case, you may want to edit the contrib list, or use quicklisp slime-helper to help install and use it. https://github.com/quicklisp/quicklisp-slime-helper
<pjb> eta: with (ql:quickload :quicklisp-slime-helper)
Jeanne-Kamikaze has joined #lisp
<eta> pjb, how does one edit the contrib list?
<eta> that seems to be the issue
<eta> I tried using Emacs' inferior REPL and it didn't really work ;P
<pjb> eta: on that server, you should want to install quicklisp and use the quicklisp slime helper to install swank.
<eta> pjb, is there no way to have it all saved in the one lisp image?
<pjb> eta: yes, if you use M-x slime-connet, then *inferior-lisp* won't be used. Slime will communicate thru the network to the remote CL.
<eta> pjb, that's what I'm doing
<eta> it fails partway through connection with the above error
Kundry_Wag has quit [Remote host closed the connection]
<pjb> eta: you can indeed load swank and save an image with it. But you will have to start the swank server when you boot the image.
<pjb> This can be done.
<eta> I did
<pjb> But for the contrib, indeed, additionnal CL files might have to be loaded from an external file. I don't know if there is a way to preload them automatically. Hacking swank, you could probably set up a lisp image with them preloaded.
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
ArthurStrong has left #lisp [#lisp]
iAmDecim has quit [Ping timeout: 265 seconds]
Kundry_Wag has joined #lisp
buffergn0me has joined #lisp
Inline has quit [Ping timeout: 272 seconds]
Kundry_Wag has quit [Ping timeout: 265 seconds]
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
iAmDecim has joined #lisp
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
iAmDecim has quit [Ping timeout: 256 seconds]
jprajzne has joined #lisp
iAmDecim has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
jmercouris has joined #lisp
<jmercouris> can someone give me a practical example of using define-symbol-macro?
<jmercouris> what could it be useful for?
<eta> jmercouris, how about in COND clauses where you want to not have magic numbers
<jmercouris> why wouldn't you do a defparameter in a top level form?
<eta> sorry, CASE*
<jmercouris> or lexically bind?
<eta> I think I tried that and it didn't work
<eta> but I may be stupid
<eta> jmercouris, yeah, no, that was why
jprajzne has quit [Client Quit]
<jmercouris> interesting
<jmercouris> so in this case your keyform is evaluated to t?
<_death> eta: how would define-symbol-macro help you there
<jmercouris> instead of the value of 1?
<eta> _death, because it substitutes *test* for 1 at compile time?
<_death> eta: have you tried it?
<Bike> it won't work, just to skip ahead a bit. case keys aren't evaluated so they aren't macroexpanded.
<eta> ah bollocks
<eta> hmmm
<eta> what was I thinking of then...
<_death> jmercouris: one use of d-s-m is to simulate nonspecial global variables
<jmercouris> non special global variables
<jmercouris> what are those?
<jackdaniel> nothing special
<eta> oh yeah, no I thought I could use it with CASE and I couldn't
<eta> and used a COND instead
<eta> dunno why they stayed symbol macros after that
<jmercouris> oh I SEE
<jmercouris> you wanted one of your cases to be the value of some variable
<eta> yeah
<eta> and I thought I could be clever and it didn't work out : (
<eta> :(*
<jmercouris> apparently you mean a dynamic variable?
jprajzne has joined #lisp
mrrevolt has quit [Quit: Connection closed for inactivity]
<jackdaniel> historical note: define-symbol-macro was added for compatibility with islispa long with the lambda macro
<jackdaniel> islisp along*
<jmercouris> so
<jmercouris> backing var is in a separate package so that you can't just setf it to like a new value or something?
<_death> no, the backing var is just to provide a storage place.. the point is that with (deflex foo 42) (defun tofu () (* foo 2)) (let ((foo 123)) (tofu)) => 84
<jmercouris> I see
<jmercouris> but I was asking why backing-var is interned in a separate package
<_death> you can also define other kinds of globals using d-s-m
<Bike> it's not interned in a separate package, is it?
Inline has joined #lisp
<Bike> it's interned in the package of the variable.
<jmercouris> ah you're right
<jmercouris> whoops
Involuntary has joined #lisp
<jmercouris> so using deflex is the closest you could get to a constant in something like CL?
<Bike> it's not constant.
<jmercouris> well, it can't be dynamically bound
<Bike> it can be setf'd, and it can be lexically bound.
<jmercouris> yeah
<Bike> so, it's not constant.
<jmercouris> what's the closest you could get to a constant?
<Bike> clhs defconstant
<jmercouris> they can be setfd if I'm not mistaken
<Bike> constant variables cannot be setf'd.
<_death> here's a toy I wrote some years ago https://gist.github.com/death/51c42a208445cd797b119aadf30c0245
<phoe> except no rebinding here
<jmercouris> phoe: I like!
Jeanne-Kamikaze has quit [Ping timeout: 265 seconds]
<jmercouris> any other examples for define-symbol-macro?
<_death> defpersisted variables are lazily initialized
bars0 has joined #lisp
<jmercouris> _death: you mean defparamater and defvar?
<_death> I mean the stuff in the gist I just mentioned
<jmercouris> I don't understand the decision to use a database for this
<jmercouris> why not just save and read from a file?
shangul has quit [Ping timeout: 264 seconds]
<_death> what if you have 2 variables?
<_death> what if you want to extend it later on in some ways? say versioning or whatever
<jmercouris> 2 sexps?
<jmercouris> we used to use a database for bookmarks for example in Next, but found saving SEXPs to a file much more flexible
terpri has quit [Remote host closed the connection]
<_death> sqlite is not a traditional database management system (see https://www.sqlite.org/whentouse.html ) .. how were sexps more flexible?
terpri has joined #lisp
hiroaki has joined #lisp
<jmercouris> dont have to update schema to add/remove fields
<jmercouris> when everything can be stored in memory, it is easier to do so
<jmercouris> easier to manipulate
<jcowan> In fact, sexps are perfectly matched to dynamic typing
<jcowan> and so is ASN.1 BER if you ignore the schema part of it, which has most of the complexity
<jcowan> "dynamically typed binary representations"
Steinberg2010 has joined #lisp
<jmercouris> I can't tell if you are being sarcastic or not
<jackdaniel> not using a database for data managament is a bad practice, *especially* that there is such great solution as sqlite
<jackdaniel> having all in plain text as sexps gives you initially impression, that you do not have to update the schema, but then when you need to update it (i.e you change the format and you update on a system which already runs), you lose big
nika has quit []
<jmercouris> you don't need to update it, you can have migrated and unmigrated data in the same file
<aeth> text is for configuration, not data... you have to manually migrate if you put it in s-expressions... or, I guess, version it
<jmercouris> and when you do need to update it, well you would be writing SQL transformations anyways
donotturnoff has quit [Ping timeout: 265 seconds]
<jackdaniel> this is an example where a difference between "simple" and "easy" is very apparent
<jmercouris> it's not like I don't know both approaches in this application
<jmercouris> I've implemented both of them
<jmercouris> and let me tell you, sqlite is great, but it is no panacea
<jackdaniel> nobody said it is a panacea
<jmercouris> it is no panacea with regard to persistence
<jackdaniel> but it is clearly a cure for storing data in text files
<jmercouris> i disagree, it is often too heavy a solution
<jmercouris> very powerful, but not necessary
<jmercouris> sometimes a CSV will more than suffice, for example
<jackdaniel> well, all I can say is that it is your foot, not mine
<jmercouris> I believe in judgement on a case by case basis
Steinberg2010 has quit [Ping timeout: 272 seconds]
<buffergn0me> Another plus for s-expressions in files is less dependencies - the code and data will be easier to read and the system to run 20 years from now
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<_death> sqlite has a well-specified binary format, that will also be readable in 20 years
<jmercouris> can you read an SQL binary with a text editor?
<_death> if you need to store large arrays, say images, a binary format makes sense
hiroaki has quit [Quit: Leaving]
jmercouris has quit [Remote host closed the connection]
<_death> if you have a flat file of sexps, then looking up the value for a particular variable would be slow
<_death> these arguments are age old.. when I wrote this defpersist toy, I chose sqlite because it worked well with my perceived use cases
<_death> although I do not use it nowadays
<buffergn0me> Before sqlite, it was Berkeley DB, and before that it was dbm
<_death> buffergn0me: those are key-value stores.. I did not want to use one
<jackdaniel> and before dbm there were text files, and before that there were sheets of paper ,)
tutti has joined #lisp
<jackdaniel> and before that were people with a really really good memory
<_death> I had similar hacks involving redis though
bars0 has quit [Quit: leaving]
<buffergn0me> I think that Interlisp showed that s-expressions in files go a really long way
vlatkoB has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
sjl has quit [Quit: WeeChat 2.2-dev]
buffergn0me has quit [Ping timeout: 260 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
adam4567 has joined #lisp
dale has joined #lisp
karlosz has joined #lisp
karlosz has quit [Remote host closed the connection]
karlosz has joined #lisp
mn3m has quit [Remote host closed the connection]
mn3m has joined #lisp
zxcvz has quit [Quit: Leaving]
tutti has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
Yoshido has joined #lisp
z147 has joined #lisp
sjl has joined #lisp
anticrisis has joined #lisp
space_otter has joined #lisp
anticrisis has quit [Client Quit]
anticrisis has joined #lisp
Momonga has joined #lisp
ggole has quit [Quit: Leaving]
Phlute has joined #lisp
FennecCode has joined #lisp
heisig has quit [Ping timeout: 260 seconds]
heisig has joined #lisp
Kundry_Wag has joined #lisp
heisig has quit [Client Quit]
Momonga has left #lisp [#lisp]
gravicappa has quit [Ping timeout: 265 seconds]
<adam4567> Problem running sbcl script at Linux prompt $ sbcl --script test-cm.lisp
<adam4567>
<adam4567>
<adam4567> First lines of script are,
<adam4567> (load "/home/adam/.sbclrc")
<adam4567> (in-package :cl-user)
<adam4567> (ql:quickload "/home/adam/.quicklisp/local-projects/cm/cm.asd")
v88m has quit [Remote host closed the connection]
<adam4567> (in-package :cm)
<adam4567>
<adam4567> My .sbclrc contains quicklisp's location ".quicklisp/setup.lisp"..etc, that seems OK
<adam4567>
<adam4567> The ASDF file stats OK, but sbcl error when loading .. ??
v88m has joined #lisp
<adam4567> $ ll /home/adam/.quicklisp/local-projects/cm/cm.asd
<adam4567> -rw-rw-r-- 1 adam adam 3985 Mar 19 23:56 /home/adam/.quicklisp/local-projects/cm/cm.asd
<adam4567>
<adam4567> Unhandled LOAD-SYSTEM-DEFINITION-ERROR in .. : Error while trying to load definition for system from pathname /home/adam/.quicklisp/quicklisp/: Can't LOAD a directory: #P"/home/adam/.quicklisp/quicklisp/".
jprajzne has quit [Quit: jprajzne]
<phoe> adam4567: *PLEASE* use a pastebin.
jprajzne has joined #lisp
<adam4567> Oh. OK
<phoe> That's your first warning, and I hope I'll never get to issue another one. (;
<phoe> Now - I wonder where ASDF gets a diretory pathname from...
<phoe> shouldn't (ql:quickload "cm") be enough?
<adam4567> that seems to .. improve matters
<adam4567> no error as before. OK. Thanks. Will continue.
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
markong has quit [Ping timeout: 265 seconds]
markong has joined #lisp
buffergn0me has joined #lisp
* adlai caught one POLITE-WARNING: undefined variable: #|#LISP|::*PLEASE*
cgay has quit [Quit: leaving]
random-nick has quit [Ping timeout: 265 seconds]
Lord_of_Life_ has joined #lisp
buffergn0me has quit [Ping timeout: 260 seconds]
Lord_of_Life has quit [Ping timeout: 250 seconds]
Lord_of_Life_ is now known as Lord_of_Life
jprajzne has quit [Quit: jprajzne]
markoong has joined #lisp
jprajzne has joined #lisp
markong has quit [Ping timeout: 256 seconds]
markong has joined #lisp
markoong has quit [Ping timeout: 258 seconds]
markoong has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
buffergn0me has joined #lisp
markong has quit [Ping timeout: 258 seconds]
markong has joined #lisp
markoong has quit [Ping timeout: 250 seconds]
markoong has joined #lisp
dddddd has joined #lisp
markong has quit [Ping timeout: 265 seconds]
tutti has joined #lisp
v88m has quit [Ping timeout: 264 seconds]
tiwEllien has quit [Ping timeout: 240 seconds]
jprajzne has quit [Quit: jprajzne]
iAmDecim has quit [Ping timeout: 258 seconds]
Phlute has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
hhdave has joined #lisp
iAmDecim has joined #lisp
quazimodo has quit [Ping timeout: 256 seconds]
monok has quit [Quit: Leaving]
buffergn0me has quit [Ping timeout: 260 seconds]
jprajzne has joined #lisp
quazimodo has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
rippa has quit [Read error: Connection reset by peer]
Oladon has joined #lisp
quazimodo has quit [Ping timeout: 256 seconds]
jprajzne has quit [Quit: jprajzne]
shifty has quit [Ping timeout: 256 seconds]
jprajzne has joined #lisp
z147 has quit [Quit: z147]
X-Scale has quit [Ping timeout: 260 seconds]
X-Scale` has joined #lisp
X-Scale` is now known as X-Scale
jprajzne has quit [Quit: jprajzne]
Bourne has quit [Ping timeout: 256 seconds]
quazimodo has joined #lisp
cosimone_ has joined #lisp
cosimone has quit [Ping timeout: 260 seconds]
jprajzne has joined #lisp
iAmDecim has quit [Ping timeout: 265 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
nicktick has joined #lisp
jprajzne has joined #lisp
srandon111 has quit [Remote host closed the connection]
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
mathrick has quit [Ping timeout: 264 seconds]
quazimodo has quit [Read error: Connection reset by peer]
quazimodo has joined #lisp
sendai_ has quit [Remote host closed the connection]
sendai_ has joined #lisp
markong has joined #lisp
choegusung has joined #lisp
choegusung has quit [Client Quit]
Jesin has quit [Quit: Leaving]
markoong has quit [Ping timeout: 265 seconds]
jprajzne has quit [Quit: jprajzne]