* grobe0ba
has set away! (auto away after idling [15 min]) [Log:ON] .gz.
galex-713 has quit [Ping timeout: 272 seconds]
cosimone has quit [Quit: cosimone]
quazimodo has joined #lisp
galex-713 has joined #lisp
leilamag has quit [Remote host closed the connection]
trocado has joined #lisp
andreyor1 has quit [Quit: WeeChat 3.0]
pfdietz has quit [Remote host closed the connection]
rgherdt has quit [Ping timeout: 256 seconds]
quazimodo has quit [Remote host closed the connection]
rumbler31 has joined #lisp
quazimodo has joined #lisp
rumbler31 has quit [Ping timeout: 264 seconds]
abhixec has quit [Read error: Connection reset by peer]
abhixec has joined #lisp
Duuqnd has quit [Remote host closed the connection]
quazimodo has quit [Remote host closed the connection]
quazimodo has joined #lisp
Cesdo has quit [Read error: Connection reset by peer]
dbotton has joined #lisp
akoana has joined #lisp
perrier-jouet has quit [Quit: WeeChat 3.0]
dyelar has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
dyelar has quit [Quit: Leaving.]
nicktick has quit [Ping timeout: 256 seconds]
jeosol has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
rogersm has joined #lisp
gaqwas has quit [Ping timeout: 246 seconds]
rogersm has quit [Ping timeout: 256 seconds]
v88m has quit [Ping timeout: 264 seconds]
surabax has quit [Quit: Leaving]
v88m has joined #lisp
[d] has joined #lisp
torbo has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
semz has quit [Ping timeout: 260 seconds]
gaqwas has quit [Ping timeout: 272 seconds]
mason has left #lisp [#lisp]
torbo has quit [Ping timeout: 272 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
abhixec has quit [Ping timeout: 246 seconds]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
semz has joined #lisp
contrapunctus has joined #lisp
rogersm has joined #lisp
rogersm has quit [Ping timeout: 264 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
quazimodo has quit [Remote host closed the connection]
abhixec has joined #lisp
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
perrier-jouet has joined #lisp
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
amerigo has quit [Quit: Connection closed for inactivity]
contrapunctus has left #lisp ["Disconnected: closed"]
vutral_ has quit [Quit: Connection closed for inactivity]
contrapunctus has joined #lisp
cantstanya has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
cantstanya has joined #lisp
contrapunctus has joined #lisp
karlosz has quit [Quit: karlosz]
contrapunctus has left #lisp ["Disconnected: closed"]
dbotton has quit [Quit: Leaving]
rpg has quit [Ping timeout: 272 seconds]
contrapunctus has joined #lisp
abhixec has quit [Quit: leaving]
Stanley00 has joined #lisp
wxie has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
Alfr has joined #lisp
<beach>
Good morning everyone!
Alfr_ has quit [Ping timeout: 256 seconds]
<beach>
White_Flame: Thanks. It is probably not worthwhile to attempt to share snippets. I mean, the way things work now is that all call sites essentially do the same thing with duplicated code.
sword865 has joined #lisp
aartaka has quit [Ping timeout: 256 seconds]
mrios22 has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
mtd_ has joined #lisp
mindCrime has joined #lisp
jprajzne has quit [Quit: Leaving.]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
rogersm has joined #lisp
Bike has quit [Quit: Lost terminal]
rogersm has quit [Ping timeout: 264 seconds]
wxie has quit [Ping timeout: 240 seconds]
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
torbo has joined #lisp
torbo has quit [Remote host closed the connection]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
wxie has joined #lisp
rogersm has joined #lisp
pankajsg has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
abhixec has joined #lisp
bitmapper has quit [Quit: Connection closed for inactivity]
jrm has quit [Read error: Connection reset by peer]
jrm2 has joined #lisp
jrm2 is now known as jrm
zaquest has quit [Quit: Leaving]
mindCrime has quit [Ping timeout: 264 seconds]
oni-on-ion has quit [Quit: Quit]
mindCrime has joined #lisp
sauvin has joined #lisp
rogersm has joined #lisp
zaquest has joined #lisp
akoana has quit [Quit: leaving]
waleee-cl has quit [Quit: Connection closed for inactivity]
rogersm has quit [Ping timeout: 264 seconds]
stargazesparkle has joined #lisp
<stargazesparkle>
Hello there
jprajzne has joined #lisp
<beach>
Hello stargazesparkle.
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
<beach>
stargazesparkle: Are you new here? I don't recognize your nick.
<contrapunctus>
stargazesparkle: General Kenobi! 😏
<stargazesparkle>
I know it is late but if someone could look over the file that I am about to link to and clue me in as to why it throws the error I am going to link?
<stargazesparkle>
beach yes I am new both to CL and to IRC and I am not entirely sure that I know what it is that I am doing
<beach>
Late?
<stargazesparkle>
Sorry I live in the US
<beach>
That error seems to be specific to Drakma, so I guess you need someone who knows it.
<beach>
stargazesparkle: And your code has a very strange layout.
<stargazesparkle>
I don't know still how lisp actually... works
<stargazesparkle>
I am just trying to piece things together from bits and pieces that I can find online
<beach>
It might not be a good idea to learn it by using an advanced library, but that's just what I think.
<stargazesparkle>
Is http stuff considered advanced?
<beach>
Well, it's a third-party library that seems to be using standard classes and generic functions, so it is not newbie material exactly.
<beach>
So I see at least one problem...
<beach>
You probably expect USERNAME in ("lgname" . USERNAME) to be the value of the variable.
<beach>
But, you are quoting the entire list '(("action" ...)), so it is not evaluated.
<beach>
Therefore you have the symbol USERNAME rather than the value of it as a variable.
<stargazesparkle>
Ooooh
<beach>
So, yes, if you don't yet know how quoting works, this kind of application could be a tad too advanced.
<stargazesparkle>
I can use a quasiquote to remedy this can't I
<beach>
Probably, yes.
<stargazesparkle>
`(("action" . ,username))
<beach>
Yeah, something like that.
<stargazesparkle>
Hmm... I just got a new laptop so I will have to figure out how to install lisp on it but as soon as I do I will give that a go and see if it works as I expect it to.
skapata has quit [Remote host closed the connection]
<beach>
You also need to work on the layout of your code if you plan to expose it for feedback.
<stargazesparkle>
I don't know how to lay it out better
<beach>
You use Emacs+SLIME and it will do it for you.
<stargazesparkle>
I looked at some stuff on github to see the file structure and tried to copy it as much as I could
<beach>
Your indentation is not conventional, and you have strange spaces everywhere.
<beach>
And you have a useless PROGN in your DEFUN body.
<stargazesparkle>
Oh yeah I uh... tried to mimic how paredit handles clojure
<beach>
DEFUN has an implicit PROGN.
<stargazesparkle>
O
<stargazesparkle>
I don't use emacs I must confess
<beach>
I am sorry to hear that.
<stargazesparkle>
I have been using visual studio code
<beach>
Then you will probably hate your experience with Common Lisp.
<stargazesparkle>
Well it sort of has been... progressing
<stargazesparkle>
I am getting somewhere that is for sure
<stargazesparkle>
Emacs might be worth a second look
<mfiano>
Common Lisp is not a language you just type, though.
<beach>
So Common Lisp programmers rely on indentation to understand the structure of the code. If your indentation is off, a person reading your code can not easily understand the code, so I for one stop reading.
<mfiano>
It is designed for interactive use. And that interactive environment, is Emacs.
<beach>
stargazesparkle: You are essentially asking people to count parentheses in order to help you.
rumbler31_ has quit [Ping timeout: 272 seconds]
<stargazesparkle>
I will try to get better at the formatting
<stargazesparkle>
I was laying it out in a way that I thought was clearer but I guess that is not the case
<mfiano>
That's not the way to get better at Common Lisp.
<stargazesparkle>
I am not entirely sure how to get better at common lisp truth be told
<mfiano>
Emacs does the formatting for you, and the formatting depends on the running state of the image. Emacs is your interaction with that image.
<beach>
stargazesparkle: Well, you see, if you do that manually and you make a single mistake, like the lack of one space before (mediawiki...., then the person reading your code can not trust the indentation.
rumbler31_ has joined #lisp
ravndal has quit [Quit: WeeChat 3.0]
frost-lab has joined #lisp
<mfiano>
Common Lisp isn't just another language to type and send to a compiler. Emacs hooks into the language itself.
<beach>
stargazesparkle: That person will react by thinking that you probably did the layout manually, so in order to really understand the code, he or she would have to count parentheses, which is a lot of work, and very error prone.
<stargazesparkle>
So you basically have to use emacs
<mfiano>
Anywhere SLIME or Sly runs will have basic support, but for the full interactive experience, SLIME or Sly for Emacs is the only way to go
ravndal has joined #lisp
<mfiano>
There is just no other way. CL is a very different language
mindCrime has quit [Ping timeout: 264 seconds]
ex_nihilo has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
<stargazesparkle>
How is spacemacs?
<stargazesparkle>
Can I get that and configure it for common lisp?
ex_nihilo has quit [Remote host closed the connection]
<mfiano>
THat is just Emacs, so why not
hendursaga has joined #lisp
<stargazesparkle>
So if I open my project in emacs will it automatically fix my formatting?
ex_nihilo has joined #lisp
<stargazesparkle>
Or is there a command that I have to run first
ex_nihilo has quit [Remote host closed the connection]
ex_nihilo has joined #lisp
<mfiano>
No
<beach>
Yeah, you can do C-x h and then C-M-\ or so I think. My fingers know it, but not my brain.
<mfiano>
You must install SLIME or Sly and connect to the process
<stargazesparkle>
What uh
charles` has quit [Ping timeout: 260 seconds]
<stargazesparkle>
What process am I connecting to
<mfiano>
Indentation of macros requires that the definitions of such macros be loaded into the image, and Sly/SLIME connected to that image.
<mfiano>
M-x slime
<mfiano>
I suggest reading the SLIME (or Sly) manual.
<beach>
stargazesparkle: Seriously, it is worth the effort. You have an interactive command loop (the REPL) and all kinds of support from the Common Lisp system this way. Like I said, without such support, you will not like your experience with the language.
<mfiano>
You will be like the countless others that quit without properly learning the language.
<mfiano>
Speaking of, you should probably read PRactical Common Lisp (free book) before you try writing Common Lisp code.
<stargazesparkle>
If I end up quitting common lisp I will still probably stick with clojure
<stargazesparkle>
But I would like to give it a fair shot
<beach>
Try to watch some YouTube video. Look for "live coding common lisp".
<beach>
You'll get an idea of how people work.
<stargazesparkle>
I am just so used to the whole write code, compile code, run code mentality
<stargazesparkle>
The idea of interactive coding is so... foreign
<beach>
That's not how we do it, for good reasons.
<mfiano>
Clojure doesn't have an interactive inspector, debugger, the condition system, or CLOS...all very important things for interactive live coding.
<stargazesparkle>
Oh! I think I may have gotten slime set up
<beach>
Great!
<stargazesparkle>
How uh
<stargazesparkle>
Do I eval an s-expression?
<beach>
In the REPL, just type it followed by RET.
<beach>
In a source buffer, type C-c C-c.
<beach>
With slime, you would typically (depending on your screen) have one REPL window and at least one source buffer, side by side.
<stargazesparkle>
Yeah that is the case here
<beach>
As the video shows, you would then write code in the source buffer and hit C-c C-c to load the code into your Common Lisp system.
<beach>
Or you can switch to the REPL window and type expressions.
<stargazesparkle>
Okay that makes sense
mankaev has quit [Ping timeout: 260 seconds]
<stargazesparkle>
Should I be putting all of my code in the one buffer and then saving that as a file?
<fiddlerwoaroof>
stargazesparkle: that's more or less what I do starting out
<phoe>
stargazesparkle: yes, I then C-c C-c new/modified forms that I type out
<phoe>
and occasionally interact with the repl
<stargazesparkle>
Oh that is a name that seems familiar to me
<stargazesparkle>
I don't know why though
<fiddlerwoaroof>
stargazesparkle: I'm also a bit surprised. Calva in VSCode implements a very similar workflow for Clojure (CIDER is the emacs equivalent)
<phoe>
name?
<stargazesparkle>
Your name
<stargazesparkle>
Phoe
<phoe>
huh! hmmm
<stargazesparkle>
fiddlerwoaroof: Yes it does I didn't know that this was basically the same
<fiddlerwoaroof>
It's roughly the same idea: connect to a repl, send code over
<stargazesparkle>
Okay that's a far less confusing proposition
<fiddlerwoaroof>
I wrote Clojure professionally for a year or two and it was very similar, except the JVM makes it a bit tricky to redefine certain things and do things like loading libraries on the fly
<stargazesparkle>
phoe: did you provoke the ire of someone? I think I remember seeing some github thing recently about some cl revivaland I could have sworn that phoe was a name dropped.
<stargazesparkle>
I would be writing clojure rn too but on w10 something that calva relies on is borked so nrepl doesn't work and so I thought to revisit this project which lead me to looking for help which lead me to being directed here which lead to me installing emacs
<stargazesparkle>
lol
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
<fiddlerwoaroof>
Phoe is the #1 threat to CL, I believe
contrapunctus has joined #lisp
<phoe>
stargazesparkle: yes, I did
<stargazesparkle>
I don't know anything about you but all that I can say is, sorry you have to deal with that
<phoe>
and I'd rather discuss it on query or #lispcafe rather than here since it's considered off-topic for a good reason :D
<stargazesparkle>
Okie
<stargazesparkle>
I... need to go look up what nickserv is first before I can join that channel
<phoe>
nickserv is a part of Freenode infrastructure that allows one to register their nick, so no one can impersonate them. to get help on it, do /msg NickServ help
contrapunctus has left #lisp ["Disconnected: closed"]
<fiddlerwoaroof>
Something like /msg NickServ register <mynewpassword> <email>
contrapunctus has joined #lisp
contrapunctus has left #lisp ["Disconnected: Replaced by new connection"]
contrapunctus has joined #lisp
bjorkint0sh has quit [Remote host closed the connection]
bjorkint0sh has joined #lisp
frodef has joined #lisp
Cymew has joined #lisp
varjag has joined #lisp
pyx has joined #lisp
pyx has quit [Client Quit]
aartaka has joined #lisp
liberliver has joined #lisp
harlchen has joined #lisp
hendursa1 has joined #lisp
mankaev has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
charles` has quit [Ping timeout: 264 seconds]
mrios22 has quit [Read error: Connection reset by peer]
luckless has quit [Quit: luckless]
anticrisis has quit [Read error: Connection reset by peer]
todun has joined #lisp
mindCrime has joined #lisp
_whitelogger has joined #lisp
rogersm has joined #lisp
random-nick has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
todun has quit [Quit: todun]
datajerk has quit [Ping timeout: 240 seconds]
raoul has joined #lisp
pve has joined #lisp
andreyorst_ has joined #lisp
datajerk has joined #lisp
orivej has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
Duuqnd has joined #lisp
realdea8 has joined #lisp
wxie has quit [Ping timeout: 264 seconds]
lowryder has quit [Ping timeout: 272 seconds]
lowryder has joined #lisp
aeth has quit [Ping timeout: 246 seconds]
aeth has joined #lisp
mindCrime has quit [Ping timeout: 264 seconds]
heisig has joined #lisp
realdea8 has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
amb007 has joined #lisp
cantstanya has joined #lisp
rogersm has quit [Ping timeout: 240 seconds]
andreyorst_ has joined #lisp
galex-713 has quit [Ping timeout: 272 seconds]
bilegeek has quit [Quit: Leaving]
vegansbane6 has joined #lisp
galex-713 has joined #lisp
gko_ has joined #lisp
Lycurgus has joined #lisp
Xach has joined #lisp
cosimone has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 26.3)]
madage has quit [Remote host closed the connection]
nicktick has joined #lisp
surabax has joined #lisp
hendursa1 has joined #lisp
edgar-rft has quit [Read error: Connection reset by peer]
edgar-rft has joined #lisp
imode has quit [Ping timeout: 260 seconds]
skapata has joined #lisp
hendursa1 has quit [Remote host closed the connection]
SpaceIgor2075 has joined #lisp
andreyorst_ has quit [Quit: andreyorst_]
neirac has joined #lisp
andreyorst_ has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
aartaka_d has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
Bike has joined #lisp
madage has joined #lisp
hendursa1 has joined #lisp
gaqwas has quit [Remote host closed the connection]
andreyorst_ has quit [Ping timeout: 240 seconds]
aartaka_d has quit [Read error: Connection reset by peer]
wsinatra has joined #lisp
msk has quit [Remote host closed the connection]
msk has joined #lisp
rogersm has joined #lisp
rogersm has quit [Ping timeout: 264 seconds]
makomo has joined #lisp
gaqwas has joined #lisp
gaqwas has joined #lisp
frost-lab has quit [Quit: Connection closed]
rpg has joined #lisp
bitmapper has joined #lisp
v88m has quit [Ping timeout: 240 seconds]
Nilby has joined #lisp
refpga` has joined #lisp
attila_lendvai has joined #lisp
skapate has joined #lisp
skapata is now known as Guest57823
skapate is now known as skapata
refpga has quit [Ping timeout: 256 seconds]
Guest57823 has quit [Ping timeout: 272 seconds]
<semz>
Should library functions that are part of the public interface contain type declarations for parameters?
<semz>
I remember asking about the type declaration part of Norvig&Pitman in the past and getting "``if you know the type'' means ``if you can guarantee the type''" as a response, but just randomly stumbled over such declarations in alexandria
Lycurgus has quit [Quit: Exeunt]
sword865 has quit [Quit: Connection closed for inactivity]
<Bike>
it's true that putting in a declaration doesn't necessarily constitute an actual check, and code might behave badly if declarations are violated
<Bike>
like in iota. i see.
<Bike>
of course you could also take this to mean the programmer is responsible for making sure the functions are not called with invalid arguments.
<frodef>
it's a bit strange really to have a "safe" language where you can just promise away the safety.
<jackdaniel>
sbcl actually puts check-type on declare type
<jackdaniel>
but it is not mandated by the spec
<Nilby>
semz: Yes. But "should" is a stronger word than I would use. I usually put off declarations until the code is very stable. I usually do what I call "note driven declarations". I turn on optimization in sbcl and try to make as many notes disappear as possible.
<jackdaniel>
so the portable safe way is (declare …) (check-type …) ,@body
<jackdaniel>
I think
varjag has joined #lisp
<phoe>
in pure theory the portable safe way is to avoid DECLARE because if you even call a function with a wrong argument then it is not said that execution will reach the CHECK-TYPE statement
<phoe>
the mere act of calling a function while violating a type definition is enough to invoke undefined behavior
<semz>
yeah CCL will happily fault on (inspect (funcall (lambda (x) (declare (type fixnum x)) (+ x 3)) nil)) for instance
<jackdaniel>
phoe: yes, you are right
<phoe>
but, in practice, in safe code this should signal a type error
perrier-jouet has quit [Quit: WeeChat 3.0]
<flip214>
doesn't a CHECK-TYPE get the arg declaration automatically? ISTR that this works in SBCL?!
<phoe>
yes, but that is SBCL-specific
<jackdaniel>
flip214: we are discussing what is mandated by the standard, sbcl is most likely safe :)
<flip214>
*DERIVE-FUNCTION-TYPES* is what I'm talking about
<flip214>
well, just _make_ that a standard ;)
<jackdaniel>
phoe: in practice, in safe code, declare per se should not signal an error
<phoe>
CLtL3 resumes
<phoe>
jackdaniel: yes
<semz>
it should and does, see the infamous (+ 0 nil) where ~every impl signals type error even though it's undefined even in safe mode, but with declarations it usually blows up in my experience
<semz>
note the "*might* signal", which means it may not signal even in safe code
<frodef>
(declare foo) (check-type foo) should/could compile to just (declare foo), no? Meaning the promise in the declaration means the check-type can be type-inferred away.
<phoe>
" This means that the situation has undefined consequences; however, if an error is signaled, it is of the specified type. For example, ``open might signal an error of type file-error.''"
<phoe>
so an implementation is allowed to signal an error, but it may also print unicorns to the screen
<phoe>
that's not a strong "should signal an error"
<jackdaniel>
uhm, correct
<phoe>
(+ 0 nil) ;=> 42 on a conforming implementation
<phoe>
and that's... troublesome, but in practice in safe code no one really does this
<semz>
you'd have to be insane to not signal there in safe code
<phoe>
s/on a/allowed on a/
<semz>
but with libraries the situation is a bit different than with the core language
<semz>
hence the question
<flip214>
perhaps alexandria should provide a defun* that takes types, and generates _both_ DECLARE and CHECK-TYPE ... some of that might be optimized away
quazimodo has joined #lisp
rogersm has joined #lisp
<Nilby>
(handler-case (+ 0 nil) (simple-type-error () (format t "🦄🦄🦄!~%")))
<_death>
I remember the ITA guys had a define-strict-function operator..
<frodef>
flip214: seems to me you'd want just the check-type, not the declare.
<_death>
I would say alexandria should not be innovative with interfaces (and besides, it could use some work on implementation..)
<flip214>
frodef: the check-type alone might not be visible when getting function information via SWANK
<flip214>
_death: merge requests welcome! (sorry, very stereotypical answer)
rogersm has quit [Ping timeout: 265 seconds]
perrier-jouet has joined #lisp
perrier-jouet has quit [Client Quit]
madage has quit [Ping timeout: 240 seconds]
<_death>
maybe if it was on github or some other site that doesn't require "two-factor authentication" for such a thing..
<phoe>
I need to write a post about how to easily set an OTP client on Linux, or andOTP on Android, in order to swiftly log into clnet
rpg is now known as rpg_away
waleee-cl has joined #lisp
rogersm has joined #lisp
<frodef>
I don't suppose Eric Schulte is here? I'm trying to use elf.lisp...
rogersm has quit [Remote host closed the connection]
aartaka has joined #lisp
<flip214>
I might if there were any
<_death>
cool.. then I might have a small patch on the weekend
aartaka_d has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
<flip214>
np
charles` has quit [Ping timeout: 264 seconds]
liberliver has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
<Bike>
anyone ever put custom methods on update-instance-for-different-class?
liberliver1 has joined #lisp
<flip214>
I played around with that, but stopped as there was no queue of these function calls
<flip214>
Ie. when changing a class 3 times and _then_ touching an old instance, the "intermediate" 3 "update" functions were not called
<phoe>
Bike: why do you ask?
liberliver has quit [Ping timeout: 246 seconds]
liberliver1 is now known as liberliver
<Bike>
i don't understand. when you change-class u-i-f-d-c needs to be called immediately. It's not like finalization or something.
<phoe>
yes, it must be called immediately
<phoe>
that's unlike class finalization or instance obsoletion
<Bike>
phoe: i'm considering an optimization for change-class that would make it work faster when there are no u-i-f-d-c methods but slower if there are and wondering if anybody at all could conceivably care.
<phoe>
I thought you'd be doing that
<phoe>
there would be no need to copy the instance then, would it?
<Bike>
yeah. it would be possible to not cons.
<Bike>
well, work faster in limited circumstances, i should say
<phoe>
yes, that would be a good use case for heavy change-class users
<phoe>
mfiano would be one, if they used clasp
<phoe>
s/they/he/
<phoe>
maybe you could him for his code, try to run it on clasp as a performance benchmark
<Bike>
this optimization could be put in other implementations, conceivably
<phoe>
he does a ton of class changing in one game engine of his.
<Bike>
i don't have much understanding of how change-class is actually used. it's a little rare. we use it a lot in cleavir but maybe not in usual ways, i don't know.
<flip214>
ah sorry, I was testing UPDATE-INSTANCE-FOR-REDEFINED-CLASS
<Bike>
ahh yeah okay.
aartaka has joined #lisp
<phoe>
I remember beach has use cases for it in SICL, but I don't know if these would be performance heavy
v88m has joined #lisp
rogersm has quit [Remote host closed the connection]
rogersm has joined #lisp
rogersm has quit [Remote host closed the connection]
<Bike>
in sicl rather than cleavir? hmmm.
<Bike>
ah, yeah, i do see some.
<beach>
Might be in HIR-to-MIR or MIR-to-LIR so same use case as in Cleavir.
<beach>
No?
<Bike>
yeah. it also looks like there are some in the code generator, and with the environments.
<Bike>
karlosz found that the optimization i've already done (which doesn't involve what i'm asking about) reduced consing when compiling asdf by 6%, which i'd say means cleavir uses it pretty heavily
<Bike>
compared to my previous experience of change-class, anyway, which is nobody using it
<Xach>
i use change-class so much!
<Bike>
the particular extra optimization i'm thinking of here would only come into play when the source and destination classes have the same slots (because then the instance doesn't need new slot storage)
<Bike>
cleavir does that sometimes, don't know about other uses
flazh1 has quit [Ping timeout: 264 seconds]
<Bike>
i think it is a little counterintuitive how change-class sounds like a pure mutation that won't cons, but that isn't generally true
hnOsmium0001 has joined #lisp
keyehzy has joined #lisp
<beach>
Right. In general the size of the instance will change.
<frodef>
_death: do you know his nick?
<_death>
frodef: eschulte
fitzsim has quit [Quit: ERC (IRC client for Emacs 27.1.50)]
<phoe>
beach: does it change?
<phoe>
(defclass a () ()) (defclass b (a) ())
<phoe>
change-classing from A to B or from B to A, does it change instance size?
<Bike>
not really.
<beach>
Not in that case. Which is why I said "in general" rather than "always".
<phoe>
I understand that in general it *may* change if the resulting slot vectors are of different sizes
<phoe>
in my dictionary "will" implies it's usually the case
<beach>
That's what I meant by "in general", yes.
<phoe>
OK, I understand now
<Bike>
if you want a more specific definition, they need to have sets of slots with the same names. if the implementation is a little fancier types on the slots are relevant as well.
<rpg_away>
Bike: I also use change-class a lot, but often unconsciously
<Bike>
i suppose they don't actually need the same names either
wsinatra has quit [Ping timeout: 240 seconds]
<Bike>
as long as the slot storage is the same the values in it can just be reshuffled appropriately.
_Ark_ has joined #lisp
ark has quit [Ping timeout: 260 seconds]
wsinatra has joined #lisp
mindCrime has joined #lisp
ebrasca has joined #lisp
dbotton has joined #lisp
dbotton_ has joined #lisp
<frodef>
is (when foo (progn ...)) a thing? Why would anyone consistently do that?
pfdietz has joined #lisp
<pfdietz>
Slime has suddenly stopped working for me when I have the Cisco anyconnect client enabled. Socket error in "bind": 99 (Cannot assign requested address)
dbotton has quit [Ping timeout: 260 seconds]
<pfdietz>
I wonder if this is an ipv6 problem
<beach>
frodef: Nobody would do that.
<pfdietz>
Turning off ipv6 does not fix it.
<flip214>
frodef: a macro perhaps?
<frodef>
flip214: nope, plain code. I suspect it's beginner code.
<flip214>
pfdietz: cisco anyconnect prohibits any other communication
<pfdietz>
This used to work.
<flip214>
perhaps you can explicitly connect to 127.0.0.1 instead of the local ip? not sure whether that's allowed, though
<beach>
frodef: Only some 10 hours ago, we saw (defun fff (...) (progn ...)) so it is not that surprising I guess.
<flip214>
well, (WHEN (condition) (PROGN ...)) is just the literal translation of "IF (condition) { ... }", and people get told not to forget the {} else they'll be burned
<flip214>
burned or eaten, by big, hungry BUGS
<flip214>
so the (DEFUN ... (PROGN ...)) isn't that surprising either.... "int foo() {}" has the {} too
<frodef>
flip214: seems plausible.
asarch has joined #lisp
<_death>
it could be debugging debris, by way of putting a bunch of forms into a single form that can be easily #+nil'd
<_death>
although with WHEN it may be easily to disable the condition
<_death>
*easier
<flip214>
_death: plausible for DEFUN, but the WHEN could also be disabled at one location
luckless has joined #lisp
<flip214>
#+(or) (WHEN ....)
<_death>
then again, the condition may have side effects :d
refpga` has quit [Read error: Connection reset by peer]
<flip214>
right
rogersm has joined #lisp
* flip214
... so the only sure way is to nuke the PROGN from orbit
<_death>
btw, I never bother with #+(or) or #-(and).. I guess these persnickety ways belong to a time where such "commented out" code was more acceptable to "check in" or even just to "save in the file" (to be backed up later this week using tape)
<_death>
then you'd care for some New Implementation of Lisp which may actually see the code
<flip214>
well, if you have (FORMAT ...) spread out, disabling a few of them temporarily until debugging needs them again works for me
rogersm has quit [Ping timeout: 256 seconds]
<_death>
flip214: well, if I wanted to solve that using features, I'd have #+my-library-debug
pfdietz has quit [Ping timeout: 245 seconds]
rogersm has joined #lisp
asarch has quit [Quit: Leaving]
quazimodo has quit [Remote host closed the connection]
flazh1 has joined #lisp
quazimodo has joined #lisp
liberliver has quit [Quit: liberliver]
jetsuo has joined #lisp
andreyorst_ has joined #lisp
ex_nihilo has quit [Quit: Leaving]
SAL9000 has quit [Quit: WeeChat 2.7.1]
v_m_v has joined #lisp
liberliver has joined #lisp
Cymew has quit [Ping timeout: 260 seconds]
andreyorst_ has quit [Ping timeout: 264 seconds]
Jesin has quit [Quit: Leaving]
SAL9000 has joined #lisp
Steeve has joined #lisp
liberliver has quit [Ping timeout: 240 seconds]
dbotton_ has quit [Quit: Leaving]
frodef has quit [Ping timeout: 260 seconds]
dionysius has joined #lisp
Jesin has joined #lisp
dionysius has left #lisp ["WeeChat 3.0"]
mindCrime has quit [Ping timeout: 264 seconds]
Nilby has quit [Ping timeout: 256 seconds]
liberliver has joined #lisp
liberliver has quit [Client Quit]
rpg_away has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rpg has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
[d]_ has joined #lisp
amb007 has joined #lisp
[d] has quit [Ping timeout: 272 seconds]
<SpaceIgor2075>
Is reading CL Cookbok after Land of Lisp a good choice for a newbie?
cosimone has joined #lisp
mindCrime has joined #lisp
<Cthulhux`>
don't read
<Cthulhux`>
learn by writing code.
<Cthulhux`>
jm2c
andreyorst_ has joined #lisp
rogersm has quit [Remote host closed the connection]
<jackdaniel>
even better, learn by writing code while fixing issues in open source libraries ,)
neirac has left #lisp ["Leaving"]
<White_Flame>
once you read 1 book, you should be good to read basically any other book teaching CL
<White_Flame>
but yeah, write code based on what you know already, and start learning how to read the CLHS to be able to look things up
<Xach>
I like learning by reading code and reading books, and writing code is also helpful.
<SpaceIgor2075>
Cthulhux`, jackdaniel: in my case this advice is really helpful, i think i read and think too much instead of just writing te code
<White_Flame>
and flood #clschool with any silly question you happen to have. Better to hash things through rather than muddle on unknowns forever
amb007 has quit [Ping timeout: 256 seconds]
amb007 has joined #lisp
<SpaceIgor2075>
Thanks everybody for the advice
<jackdaniel>
these are not exclusive or options - you may still educate yourself with books
<White_Flame>
symbols/packages are usually the biggest hangup when initially learning
<White_Flame>
and then wrapping your head around macros as you get further along
<White_Flame>
sometimes those issues take a bit of time to "click", no matter how good the book/explanation
gko_ has quit [Ping timeout: 246 seconds]
dyelar has quit [Quit: Leaving.]
SpaceIgor2075 has quit [Read error: Connection reset by peer]
SpaceIgor2075 has joined #lisp
SpaceIgor2075 has quit [Read error: Connection reset by peer]
SpaceIgor2075 has joined #lisp
andreyorst_ has quit [Ping timeout: 264 seconds]
mindCrime has quit [Ping timeout: 264 seconds]
notzmv has quit [Ping timeout: 256 seconds]
karlosz has joined #lisp
frodef has joined #lisp
birdwing has joined #lisp
karlosz has quit [Remote host closed the connection]
karlosz has joined #lisp
karlosz has quit [Read error: Connection reset by peer]
karlosz has joined #lisp
vegansbane6 has quit [Ping timeout: 256 seconds]
kaftejiman has joined #lisp
vegansbane6 has joined #lisp
pfdietz has joined #lisp
specbot has quit [Remote host closed the connection]
minion has quit [Remote host closed the connection]
minion has joined #lisp
specbot has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Read error: Connection reset by peer]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
amb007 has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
ljavorsk has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
SpaceIgor2075 has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
rogersm has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
rogersm has quit [Ping timeout: 240 seconds]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
quazimodo has quit [Ping timeout: 240 seconds]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
cosimone has quit [Quit: cosimone]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
charles` has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst_ has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst has quit [Quit: WeeChat 3.0]
andreyorst_ is now known as andreyorst
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
Lord_of_Life_ has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
abhixec has quit [Remote host closed the connection]
Lord_of_Life has quit [Ping timeout: 264 seconds]
Lord_of_Life_ is now known as Lord_of_Life
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst has quit [Client Quit]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
charles` has quit [Ping timeout: 264 seconds]
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst has joined #lisp
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst has quit [Client Quit]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst has joined #lisp
hendursa1 has quit [Remote host closed the connection]
andreyorst` has joined #lisp
andreyorst` has quit [Remote host closed the connection]
andreyorst is now known as andreyorst`
jw4 has left #lisp [#lisp]
hendursa1 has joined #lisp
sauvin has quit [Remote host closed the connection]
fitzsim has joined #lisp
notzmv has joined #lisp
andreyorst` has quit [Quit: andreyorst`]
andreyorst has joined #lisp
gabot has joined #lisp
abhixec has joined #lisp
frodef has quit [Ping timeout: 264 seconds]
ljavorsk has quit [Ping timeout: 246 seconds]
galex-713 has quit [Read error: Connection reset by peer]
galex-713 has joined #lisp
nij has joined #lisp
<nij>
Anyone uses Nyxt as your main browser :) ?
<greeb>
had never heard of nyxt but I'm not extremely interested
<greeb>
I'm now***
<nij>
lol completely different meaning
<greeb>
yeah haha
<nij>
It's super cute. Still trying to find its weakness.
amb007 has quit [Read error: Connection reset by peer]
IPmonger_ has joined #lisp
amb007 has joined #lisp
IPmonger has quit [Ping timeout: 258 seconds]
<greeb>
surf is the only browser I regularly use that's like this, but I'm always looking for any excuse to use Lisp, and a browser seems like an especially good excuse
<nij>
greeb: are you truin git out?
<greeb>
I just cloned repo, yeah
<nij>
greeb: emacs, nyxt, stumpwm..
<greeb>
I'm a heathen. slimv, surf, dwm
<greeb>
:x
narimiran has quit [Ping timeout: 264 seconds]
narimiran has joined #lisp
<greeb>
oh stumpwm comes from ratpoison? that's cool
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
nij` has joined #lisp
nij has quit [Ping timeout: 256 seconds]
vegansbane6 has quit [Ping timeout: 256 seconds]
nij` is now known as nij
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
trocado has quit [Ping timeout: 265 seconds]
rogersm has joined #lisp
vegansbane6 has joined #lisp
mankaev has quit [Read error: Connection reset by peer]
mankaev has joined #lisp
imode has joined #lisp
v_m_v has quit [Remote host closed the connection]
v_m_v has joined #lisp
pve has quit [Quit: leaving]
nicktick has quit [Ping timeout: 246 seconds]
<stargazesparkle>
Does anyone know if slime can restructure a file? If so, what is the command?
<contrapunctus>
stargazesparkle: restructure? I think you want redshank for that sort of thing (...but does anyone even use that?)
<stargazesparkle>
I don't know someone said my formatting was shit and that I should fix it
<stargazesparkle>
And I want to know if there is an automated way to do that
vegansbane6 has quit [Ping timeout: 240 seconds]
<contrapunctus>
stargazesparkle: oh. smartparens or paredit. A single command will indent a top-level form.
<contrapunctus>
stargazesparkle: these don't add or remove newlines, though.
rogersm has quit [Quit: Leaving...]
aartaka has quit [Read error: Connection reset by peer]
aartaka_d has joined #lisp
<_death>
if you mean reindent, you can C-x h C-M-\
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
dbotton has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
vegansbane6 has joined #lisp
frodef has joined #lisp
luni has joined #lisp
aartaka_d has quit [Ping timeout: 256 seconds]
birdwing has quit [Ping timeout: 272 seconds]
andreyorst has quit [Quit: WeeChat 3.0]
andreyorst has joined #lisp
aartaka has joined #lisp
vegansbane6 has quit [Ping timeout: 256 seconds]
vegansbane6 has joined #lisp
rogersm has joined #lisp
jetsuo has quit [Remote host closed the connection]
vutral_ has joined #lisp
<pfdietz>
Xach: I wonder how many quicklisp systems are acceptably licensed, if one includes all the dependencies they have. It doesnt take many bad apples to spoil things.
nij has left #lisp ["ERC (IRC client for Emacs 27.1)"]
rogersm has quit [Ping timeout: 264 seconds]
aartaka has quit [Ping timeout: 264 seconds]
<phoe>
That would actually make a good graph, or something.
<Xach>
pfdietz: acceptable means different things to different people
<Xach>
ok, my clhs lookup page has been fixed, at long last
<Xach>
fewer than 10 characters updated and it is back online.
v_m_v has quit [Remote host closed the connection]
aartaka has joined #lisp
<pfdietz>
Here, I mean "a company can use these without running into trouble". L(L)GPL, not GPL, and not "vague words that aren't a license".
<fiddlerwoaroof>
phoe: I'm not sure I agree with that read of the standard for +
<fiddlerwoaroof>
It could be read as "It might signal a type error" that is, you can't rely on + not signalling
<fiddlerwoaroof>
and then "when one of the arguments is not a number" specifies when it does signal a type-error
<phoe>
whereas "might" means that safe and unsafe code alike MAY signal but also MAY do whatever
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #lisp
ym has quit [Quit: Leaving]
dbotton has joined #lisp
wsinatra has quit [Quit: WeeChat 3.0]
dbotton has quit [Remote host closed the connection]
<phoe>
(and if it signals, then it must be of the given type)
attila_lendvai has quit [Ping timeout: 256 seconds]
<edgar-rft>
hmm, if there is *no* argument, is it then not a number?
<phoe>
I don't think + can accept "no argument"
<phoe>
zero values are coerced into a NIL
<edgar-rft>
(0) => 0, at least in SBCL
<phoe>
(0)? that's an illegal function call though
<edgar-rft>
sorry, I meant (+) => 0
<phoe>
oh, + is well behaved with zero arguments
<phoe>
because it accepts a &rest which may be empty
<Alfr>
edgar-rft, sum of numbers, empty sum => 0
Duuqnd has quit [Remote host closed the connection]
<edgar-rft>
yes, but the question was: as you can see there are *no* arguments, are they numbers?
<phoe>
is what exactly numbers
<phoe>
+ accepts N arguments, and all of them must be numbers
<Alfr>
edgar-rft, all arguments (admittedly none in that case) are numbers.
<phoe>
0 arguments, 0 problems
dbotton has joined #lisp
<Bike>
no arguments = no non-numbers.
<Alfr>
edgar-rft, or for type-error to trigger, there'd have to exist an argument which is not a number, see Exceptional Situations.
<Bike>
something something existential import.
vegansbane6 has joined #lisp
<edgar-rft>
MIGHT-BE-NUMBER-P :-)
<fiddlerwoaroof>
So, now we need a TRIVIAL-NUMERIC-OPERATIONS library, I think
<Alfr>
fiddlerwoaroof, that'd end up a cesspool.
vegansbane6 has quit [Ping timeout: 240 seconds]
<Alfr>
fiddlerwoaroof, as long as you stick to rationals all is quite well within clhs, but once you start dabbling with floats all bets are off.
<fiddlerwoaroof>
It's just all the CL stuff with deterministic behavior
<fiddlerwoaroof>
Yeah, floats are interesting in CL.
<fiddlerwoaroof>
I have a library that relies a lot on composing lambdas
<fiddlerwoaroof>
Are there any tricks to get implementations to inline lambdas and/or not allocate a bunch of closures?
<fiddlerwoaroof>
I've sort of idly thought about switching to a code generator and calling COMPILE, which would solve some problems and create others.
vegansbane6 has joined #lisp
heisig has quit [Quit: Leaving]
vegansbane6 has quit [Ping timeout: 240 seconds]
frodef has joined #lisp
vegansbane6 has joined #lisp
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
miasuji has quit [Remote host closed the connection]
miasuji has joined #lisp
trocado has joined #lisp
yonkunas has quit [Quit: Connection closed for inactivity]
dbotton has quit [Quit: Leaving]
rpg has joined #lisp
miasuji has quit [Remote host closed the connection]
miasuji has joined #lisp
lowryder has quit [Ping timeout: 256 seconds]
lowryder has joined #lisp
rogersm has joined #lisp
rogersm has quit [Ping timeout: 256 seconds]
luni has quit [Quit: Connection closed]
pillton has joined #lisp
<stargazesparkle>
So I have slime and I have emacs
<stargazesparkle>
And I have an ASD
<stargazesparkle>
How do I then load my project into emacs so that I can access it from the repl?
<moon-child>
(asdf:load-system :whatever) from the repl
<stargazesparkle>
I keep seeing slime-asdf as a package that is supposed to be able to load the system HOWEVER it is not included with slime and I cannot find it in package-install
<stargazesparkle>
o
<Alfr>
stargazesparkle, asdf:load-asd or link it somewhere asdf looks for it, then asdf:load-system .
<stargazesparkle>
Let me try that
<White_Flame>
it needs to be in a known path though
<moon-child>
Alfr: linking works ok for sbcl, but not ccl
<stargazesparkle>
The known path would be ~/common-lisp right?
<moon-child>
(haven't tried other impls, but it doesn't work universally)
<White_Flame>
asdf:*central-registry*
<rpg>
stargazesparkle: If you load "slime-fancy" then you will get slime-asd
<White_Flame>
however, easier to set up is to use quicklisp around it instead
<rpg>
stargazesparkle: Yes, putting your system into ~/common-lisp/ will make it findable.
<stargazesparkle>
I have quicklisp
<Alfr>
moon-child, oh really? Didn't encounter the problem yet, but thanks for the heads up. :)
<rpg>
If you have quicklisp, you can put your system in local-projects subdirectory of the ql install directory.
<stargazesparkle>
I...
<White_Flame>
or link from there
<stargazesparkle>
Uh need to find that stuff
<stargazesparkle>
I don't actually know where any of this installed
<White_Flame>
cd ~/quicklisp/local-projects
<stargazesparkle>
I know where ~/emacs.d is
<White_Flame>
ln -s ~/...my project/
<White_Flame>
(ql:quickload :my-project-name)
<stargazesparkle>
Okay here let me try something that I think will work
paul0 has quit [Quit: Leaving]
<stargazesparkle>
Okay that worked
<White_Flame>
cool
<stargazesparkle>
Do I have to reload my entire project to play with changes or only the s-expressions that I add/change
<White_Flame>
it's a few steps removed from bog standard lisp, but basically how the cool kids work today
<White_Flame>
depends
<White_Flame>
generally, if you recompile a function, the next time it's called it will use the new version
<White_Flame>
(unless it's inlined, or if it's directly referenced from teh same compilation unit, etc etc)
<White_Flame>
C-c C-k (recompiling/loading the entire current .lisp file) is generally an appropriate command to use
<White_Flame>
take care around defvar vs defparameter, and any toplevel closures
<White_Flame>
eg (let ((count 0)) (defun next () (incf count))) will reset the counter on reloading the file
<aeth>
White_Flame: you can fix that with macros
<White_Flame>
sure
<aeth>
i.e. add a hidden accessor function to the closure (or use multiple return values or something) and use that to initialize the "initial" COUNT on recompilation to something else.
karlosz has quit [Quit: karlosz]
<aeth>
i.e. if FBOUNDP at macro time, then call it take the old value, otherwise default to 0
<aeth>
just make sure not to do side effects
<aeth>
s/call it take the old/call it to take the old/
<aeth>
so in that particular example you would have to add another function, to avoid the side effect
<aeth>
This is ultra niche, but it's one of the coolest things you can do because the macro is conceptually simple, but what it does is very clever.
dwts has quit [Ping timeout: 256 seconds]
dwts has joined #lisp
vutral_ has quit [Quit: Connection closed for inactivity]
makomo has quit [Ping timeout: 264 seconds]
SAL9000 has quit [Quit: WeeChat 2.9]
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
<stargazesparkle>
White_Flame: tyvm
<stargazesparkle>
I am starting to... understand more wtf I am doing
<stargazesparkle>
I like how at the bottom of emacs when I type a function or whatever it gives me information about it