Harag has quit [Remote host closed the connection]
slyrus_ has joined #lisp
frgo_ has quit []
frgo has joined #lisp
slyrus__ has quit [Ping timeout: 256 seconds]
lispworld has joined #lisp
orivej_ has quit [Ping timeout: 240 seconds]
hhdave has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
lispworld has quit [Quit: lispworld]
rumbler31_ has quit [Ping timeout: 264 seconds]
lispworld has joined #lisp
<sveit>
I have a need to locally (say restricted to a function definition) "shadow import" some symbols (from :cl, but it shouldn't matter). Is the best/most robust way to do this by a code walker? I am willing to use the SBCL one, but i would prefer a portable solution if it is available.
<sveit>
to be concerete, i have a package :A shadowing some math operators from :cl that I have made generic, and i want to be able to write functions in package :B (defun overloaded-math (x) (a:+ x 1)) but without the package designator, so (with-a-math (defun overloaded-math (x) (+ x 1)))
urek has joined #lisp
urek has quit [Max SendQ exceeded]
urek_ has quit [Read error: Connection reset by peer]
urek has joined #lisp
seisatsu_ has quit [Ping timeout: 272 seconds]
Volt_ has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 240 seconds]
<Bike>
there is not really a way to do this at all, because the code is read before it is walked (or whatever), and read-time is when symbols are looked up in packages
urek_ has joined #lisp
orivej has joined #lisp
seisatsu has joined #lisp
urek has quit [Read error: Connection reset by peer]
<sveit>
Bike: to be fair I haven't tried it, but I thought that at the very least what i could do is look up symbol-names as i walk in the export list of :a, then have the macro replace that with the symbol looked up in :a?
<Bike>
you could partly do that, but there are some details that make it ill-advised. for example, on sbcl, a backquoted (`) structure will not end up as conses, so your macro couldn't walk such code
<sveit>
but if you could suggest what the "right" way to go about doing something like this is, i have had the desire to do something like this several times, and if there is a solution or another way to look at these types of problems that is better suited to CL it would be very useful
<Bike>
usually rather than lexical binding like that, which is kind of mixing phases, i think you'd use (possibly package-local) nicknames
<Bike>
so you'd still write a:+, but the "a" could be real short
johntalent has quit [Ping timeout: 264 seconds]
johntalent has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
lispworld has quit [Quit: lispworld]
orivej has joined #lisp
lispworld has joined #lisp
amerigo has quit [Quit: Connection closed for inactivity]
<sveit>
Bike: I see. that's too bad, are there no alternatives? for (somewhat specific) example, if i want to do symbolic math it's a bit unpleasant to see the "a:..." all over the place in complicated expressions.
<Bike>
just to make sure i'm clear on this - you want to have your code use both cl:+ and overloadable:+ regularly?
rumbler31 has joined #lisp
<sveit>
Bike: yes. in this example, about half the time i have some fast numerical kernel i want to run in an inner loop or some index computation, so i want to have type declarations, inlining, and no generics, but other times i want the generic symbolic routines
space_otter has joined #lisp
<Bike>
hm, i'd say that's a bit unusual of a use case
rumbler31 has quit [Ping timeout: 264 seconds]
<Bike>
here's a somewhat weirder idea - just USE the overloaded package, and if you want to use the cl operators, shadow the definition with macrolet or flet (in some with-cl-arithmetic macro)
ahungry has joined #lisp
<sveit>
Bike: why couldn't i do the same but with my overloaded package?
<sveit>
Bike: thanks for all the responses by the way
libertyprime has joined #lisp
<Bike>
i'm not sure what you mean. if you mean shadowing the CL operators, that's not allowed.
<sveit>
Bike: oh, so somethign like (symbol-macrolet ((+ a:+)) (defun test (x) (+ x 1))) is not allowed?
<sveit>
assuming i have (:use :cl)
<Bike>
um, well, symbol-macrolet actually is allowed, but that code won't do what you think it does
<Bike>
but you can't shadow bind CL function definitions, basically
<Bike>
this is because of the common case of implementation code expanding into uses of CL operators unpredictably, and then screwing up with the new definitions
<sveit>
ah. thank you. going back to the "heavy-duty" code walking, and maybe this is too non-portable to be known generally, are you suggesting that it is impractical to do the symbol replacement even if i use sb-walker:walk-form?
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
<Bike>
i don't know if it's impractical or if it would actually work. mostly i think it's ugly.
slyrus__ has joined #lisp
<sveit>
Bike: thanks for the advice. to confirm, i assume simpler solution would have to use flet to cover cases like (apply #'sin ...) in the body, and hopefully the compiler (with proper hints inserted below the flet) will inline all the internal applies? by internal applies i mean that in general i need to do (flet ((sin (&rest args) (apply #'cl:sin args))) (declare (inline sin)) ...MACROBODY...)
slyrus_ has quit [Ping timeout: 260 seconds]
<sveit>
by simpler solution i mean to just :use and shadow by my overloaded package and having a hook to use the CL code
<Bike>
hopefully. not sure how it would go in practice off the top of my head.
<Bike>
i mean, how the efficiency would go.
<Bike>
pretty sure it would work.
orivej has quit [Quit: No Ping reply in 180 seconds.]
<sveit>
Bike: great, thanks for all the help. i am actually surprised that something like this is unusual in CL, it seems at least in math there are many applications to having the same operators operators behave dramatically differently depending on input, and for both convenience and performance it can be helpful to take advantage of that information as much as possible
orivej has joined #lisp
<sveit>
and be able to signal it to the compiler. SBCL has such incredible type inference and it feels like if more of that was exposed to macros/the programmer very fast and clean code could be written.
<Bike>
i've worked on stuff along those lines myself, but it entails giving programmers fairly deep access to the compiler and i'm not sure what interface would be best for that
<Bike>
the type inference stuff, i mean, not thenames
<johntalent>
What's the best way to learn CL. It has wonderful features, but it numerously daunting.
libertyprime has quit [Ping timeout: 240 seconds]
libertyprime has joined #lisp
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
<thmprover>
johntalent: I found Norvig's PAIP to be a fun guide through many features of CL.
<johntalent>
CL nah. I had that book. Only the first 110 pages weren't subjected specifically to Artificial Intelligence.
orivej has quit [Ping timeout: 265 seconds]
orivej_ has joined #lisp
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
hhdave has joined #lisp
<Bike>
there's also practical common lisp
<Bike>
but really, none of the AI in PAIP is terribly relevant any more, and it works as a CL introduction
rumbler31 has joined #lisp
<johntalent>
Bike: ok
pikajew has quit [Ping timeout: 260 seconds]
rumbler31 has quit [Ping timeout: 265 seconds]
libertyprime has quit [Quit: leaving]
<urek_>
That is sad, PAIP seems really interesting.
lispworld_ has joined #lisp
lispworld has quit [Ping timeout: 246 seconds]
<thmprover>
Norvig and Russell's "Artificial Intelligence: A Modern Approach" seems like a better reference for GOFAI
lispworld_ has quit [Client Quit]
<thmprover>
Ugh, is there a standard datetime library for CL?
lispworld has joined #lisp
<White_Flame>
I've used local-time, it worked well for me
<thmprover>
Thanks :)
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
gaqwas has quit [Ping timeout: 246 seconds]
gaqwas has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
hhdave has quit [Ping timeout: 240 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
urek_ has quit [Ping timeout: 272 seconds]
johntalent has quit [Quit: leaving]
Volt_ has joined #lisp
jlpeters has quit [Read error: Connection reset by peer]
drmeister has quit [Ping timeout: 244 seconds]
CEnnis91 has quit [Read error: Connection reset by peer]
physpi has quit [Read error: Connection reset by peer]
Kaisyu has quit [Read error: Connection reset by peer]
avicenna has quit [Read error: Connection reset by peer]
bytesighs has quit [Read error: Connection reset by peer]
fowlduck has quit [Ping timeout: 246 seconds]
jlpeters has joined #lisp
TwoNotes has joined #lisp
teej has quit [Ping timeout: 272 seconds]
drmeister has joined #lisp
v3ga has joined #lisp
dale_ has joined #lisp
fowlduck has joined #lisp
dale has quit [Disconnected by services]
dale_ is now known as dale
avicenna has joined #lisp
bytesighs has joined #lisp
CEnnis91 has joined #lisp
physpi has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
Kaisyu has joined #lisp
dominic34 has joined #lisp
teej has joined #lisp
teej has quit [Max SendQ exceeded]
fowlduck has quit [Max SendQ exceeded]
orivej has joined #lisp
fowlduck has joined #lisp
teej has joined #lisp
Aesth has joined #lisp
dominic35 has joined #lisp
dominic34 has quit [Ping timeout: 265 seconds]
dominic35 is now known as dominic34
gekkou has quit [Quit: WeeChat 2.9-dev]
Aesth has quit [Ping timeout: 256 seconds]
jesse1010 has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
oxum has joined #lisp
libertyprime has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
terpri__ has joined #lisp
slyrus_ has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
terpri_ has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
slyrus__ has quit [Ping timeout: 260 seconds]
oxum has quit [Remote host closed the connection]
<beach>
Good morning everyone!
orivej_ has joined #lisp
TwoNotes has quit [Quit: Leaving]
orivej has quit [Ping timeout: 240 seconds]
oxum has joined #lisp
urek_ has joined #lisp
terpri__ has quit [Remote host closed the connection]
terpri__ has joined #lisp
orivej_ has quit [Read error: Connection reset by peer]
orivej has joined #lisp
lispworld has quit [Quit: lispworld]
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
hhdave has joined #lisp
thmprover has quit [Remote host closed the connection]
terpri__ has quit [Remote host closed the connection]
terpri__ has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
dominic35 has joined #lisp
dominic34 has quit [Ping timeout: 260 seconds]
dominic35 is now known as dominic34
rumbler31 has joined #lisp
Bike has quit [Quit: leaving]
rumbler31 has quit [Ping timeout: 256 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
terpri__ has quit [Remote host closed the connection]
hhdave has quit [Ping timeout: 265 seconds]
terpri__ has joined #lisp
dddddd has quit [Ping timeout: 258 seconds]
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
wxie has joined #lisp
orivej_ has joined #lisp
isBEKaml has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
isBEKaml has left #lisp [#lisp]
Jeanne-Kamikaze has quit [Ping timeout: 264 seconds]
dominic34 has quit [Ping timeout: 260 seconds]
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
wxie has quit [Quit: wxie]
orivej has joined #lisp
wxie1 has joined #lisp
zaquest has quit [Quit: Leaving]
Necktwi has quit [Ping timeout: 264 seconds]
wxie1 has quit [Ping timeout: 240 seconds]
whiteline has quit [Ping timeout: 256 seconds]
zaquest has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
terpri__ is now known as terpri
orivej has joined #lisp
terpri_ has joined #lisp
terpri has quit [Ping timeout: 244 seconds]
terpri_ has quit [Remote host closed the connection]
terpri_ has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
rumbler31 has joined #lisp
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
<MrtnDk[m]>
Goodmorning beach!
<MrtnDk[m]>
I know there is a LISP command to generate a list work a sequence of numbers, but I forget what the name of the command is. What is the name of this command?
sauvin has joined #lisp
<beach>
What kind of sequence? A list of N times the same number? A list of increasing numbers?
<beach>
Or just give an example, and we can figure out how to generate it.
<no-defun-allowed>
You might want #multics for LISP. alexandria:iota is usually what people want for a list of numbers though.
<beach>
And it will be specific to Common Lisp. Not general for LISP.
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
<edgar-rft>
from the CLHS examples: (make-string 10 :initial-element #\5) => "5555555555" - problem solved
<beach>
The specification is still sketchy.
shrysr has quit [Ping timeout: 246 seconds]
shrysr has joined #lisp
<MrtnDk[m]>
<beach "What kind of sequence? A list o"> A list of increasing numbers.
<beach>
Then what no-defun-allowed said.
<beach>
Or you can do (loop for i from 0 below 10 collect i)
<MrtnDk[m]>
iota
<beach>
MrtnDk[m]: iota is not a standard Common Lisp operator (not "command") but it is provided by an external library named Alexandria.
<MrtnDk[m]>
Thank you beach and @theemacsshibe:matrix.org
<beach>
Sure.
shrysr has quit [Ping timeout: 240 seconds]
hhdave has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
* beach
wonders how many "cool kids" know the history of the name "iota".
orivej has joined #lisp
<MrtnDk[m]>
@theemacsshibe:matrix.org: You're right, it doesn't have iota ... I probably need to use a package somehow.
<beach>
MrtnDk[m]: The @ convention is not used on IRC.
<no-defun-allowed>
Yes, that is what the alexandria: prefix is for.
<MrtnDk[m]>
> * <@freenode_beach:matrix.org> wonders how many "cool kids" know the history of the name "iota".
<MrtnDk[m]>
It is a greek word for a Hebrew letter (and Greek letter too, I guess).
<beach>
Heh, yes.
<no-defun-allowed>
Mrtn Dk: Your Matrix client is broken, it emits Matrix user IDs and not those fancy user links.
<beach>
MrtnDk[m]: If you want to address someone, just use the nick followed by colon. Your IRC client should do it for you. As in "MrtnDk[m]: bla bla".
heisig has joined #lisp
<beach>
no-defun-allowed: Oh, another Matrix problem.
<no-defun-allowed>
The IRC bridge translates the latter to IRC names...wait, no it doesn't. It uses Matrix display names. Oh dear.
<beach>
Wow!
<MrtnDk[m]>
It doesn't seem to work with the prefix in my mobile interpreter: "no such package" .. maybe it works in another LISP?
matzy_ has quit [Remote host closed the connection]
rumbler31 has quit [Ping timeout: 264 seconds]
grewal has joined #lisp
<matzy_`>
can anyone help me understand the difference between systems, packaegs, the packages.lisp file, and :depnds-on in the defsystem call?
dominic34 has joined #lisp
<matzy_`>
basically, if i list my quicklisp packages in the defsystem under :depnds-on, they should be globally available in every file right?
<matzy_`>
as long as you prefix the command with their namespace
<matzy_`>
but the in packages.lisp, why have the :use command? just to avoid writing the prefixes?
<matzy_`>
(the :use command within (defpackage))
<pve>
matzy_`: yep
<matzy_`>
ok so what works for compiling, but is shit in the repl
<matzy_`>
when evaluating
spacebat1 has quit [Ping timeout: 260 seconds]
<matzy_`>
which makes sense, you eval parts at a time, it doesnt know global dependencies, but there has to be some other way everyone does this besides manually running (quickload) for all the deps they need for what they are evaluating
Jeanne-Kamikaze has joined #lisp
bhartrihari has joined #lisp
<phoe>
matzy_`: a package is a collection of symbols
axion has quit [Ping timeout: 264 seconds]
<phoe>
a system is a collection of Lisp files that are compilable-and-loadable together
axion has joined #lisp
<phoe>
:depends-on means that a given system depends on other systems which must be loaded earlier.
<phoe>
White_Flame: to be pedantic, it's ASDF systems that are automatically downloadable by Quicklisp
<matzy_`>
phoe: that makes a lot more sense now. thanks!
hhdave has quit [Client Quit]
johntalent has joined #lisp
Inline has joined #lisp
akoana has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
lottaquestions has quit [Quit: Konversation terminated!]
gaqwas has quit [Remote host closed the connection]
spacebat1 has joined #lisp
nullman has quit [Remote host closed the connection]
nullman has joined #lisp
<matzy_`>
does anyone use cl-dbi? i'm wondering if each (prepare) you call on your *connection* opens a new connection. i figured it would just use that same connection, but it's not looking that way
Oladon has joined #lisp
oxum has quit [Remote host closed the connection]
gekkou has joined #lisp
<matzy_`>
yeah i just kinda answered my own question, that's definitely how it works
matzy_` has quit [Remote host closed the connection]
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
narimiran has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
orivej_ has quit [Ping timeout: 260 seconds]
gravicappa has joined #lisp
EvW has joined #lisp
Lycurgus has joined #lisp
refpga has quit [Read error: Connection reset by peer]
Inline has quit [Remote host closed the connection]
kaftejiman has joined #lisp
refpga has joined #lisp
Lycurgus has quit [Remote host closed the connection]
matzy_ has joined #lisp
orivej_ has joined #lisp
userone_ has quit [Quit: Leaving]
orivej has quit [Ping timeout: 256 seconds]
gekkou has quit [Quit: WeeChat 2.9-dev]
orivej_ has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
nicktick has quit [Ping timeout: 246 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
nicktick has joined #lisp
cosimone has quit [Quit: Quit.]
theseb has joined #lisp
<matzy_>
sorry i got cut off. so right now i'm manually compiling everything in the terminal with quicklisp because i have my projects asd file symlinked to ~/quicklisp/localprojects. But it's terrible compared the emacs repl, is there a way i can get my whole project loaded in there? I'm using asdf:defsystem and a packages.lisp, obviously compiling via quicklisp
<matzy_>
(i assume this is the normal setup)
<phoe>
loaded where?
<phoe>
you mean in the emacs repl?
<phoe>
if yes, (asdf:load-system :foo)
<phoe>
or (ql:quickload :foo)
<matzy_>
sorry mistake - i only symlinked the .asd file of my project folder to ~/quicklisp/local-projects
<matzy_>
yes in the emacs repl
<matzy_>
but i read online you're only supoosed to symlink the .asd file from your working dir to ~/quicklisp/local-projects
<phoe>
wait, what do you mean, the .asd file?
<phoe>
you need a full directory - the ASD file describes the files to be loaded
<phoe>
and ASDF is going to be surprised if it doesn't find the files it is supposed to load
<matzy_>
A user from here told me the opposite
<matzy_>
I went with his advice, and it has worked
<matzy_>
it compiles fine in sbcl with (ql:quickload :lisp-proj)
<phoe>
hmmmmm
<phoe>
it's nothing I've personally done, so I cannot say anything about it
<matzy_>
you just link the whole dir?
<phoe>
yep
asarch has joined #lisp
<White_Flame>
it might even deep-search for .asd files from the symlinks, but don't quote me on that
<matzy_>
yeah i might have to read up about that, it was @Harang on here, he seems pretty experienced
<White_Flame>
running quickload from sbcl in the terminal, or sbcl in the slime repl, should do the exact same thing
<White_Flame>
what's different between the two that you're seeing?
<matzy_>
i get a different backtrace
<matzy_>
but maybe the one in ielm is better
<phoe>
ielm?...
<phoe>
what's the actual error that you are getting?
<phoe>
"a different backtrace" doesn't really give me any news
<pve>
phoe: are you saying you link entire directories into local-projects/ ?
<matzy_>
oh nvm thats elisp
<phoe>
pve: I do
<pve>
oh
<phoe>
is that considered bad practice?
* White_Flame
links dirs as well
<pve>
no idea, I've never considered doing it
<matzy_>
let me quick sbcl and try one more time just to make sure
<White_Flame>
from the faq: "Can I load a local project that isn't part of Quicklisp?
<White_Flame>
Yes. The easiest way is to put the project's directory in Quicklisp's local-projects directory."
<White_Flame>
so symlinking a directory would be the equivalent
<pve>
phoe: earlier, asdf had a central registry to which directories were pushed, and those dirs contained symlinks to asd-files
<aeth>
I always symlink in there, but it's technically implementation-specific behavior. Iirc, it won't be recognized in CCL unless it was already loaded from another implementation first (thus putting it in a cache)
<pve>
so that practice just stuck
orivej has quit [Ping timeout: 265 seconds]
<aeth>
(by "there", I mean local-projects)
orivej has joined #lisp
<pve>
i mean symlinking asd-files
<White_Flame>
aeth: symlink a file or a dir?
<phoe>
pve: it still has that registry, I think
<aeth>
White_Flame: directory
<pve>
I never had a problem with the registry tbh
EvW has joined #lisp
* pve
may start symlinking dirs from now on
<matzy_>
if i go in sbcl in a termainl and run (ql:quickload :my-app), and then start slime and run (ql:quickload :my-app), should sbcl compile fune and run while slime throws a socket already in use error?
<matzy_>
ohhhhh prob bc this is a webserver
<White_Flame>
the compilation itself is lazy
<theseb>
So I've been enjoying writing a minimal Lisp and writing programs for it. Lisp is definitely more *mathemtically* elegant than Python. I want to believe I can develop FASTER in my Lisp-ish language than Python but it seems like the parens do slow down visual analysis of code....Now I may just be faster in Python because I've used it for nearly 17 years but not sure
<pve>
matzy_: btw asdf looks for systems in ~/common-lisp/ as well
<White_Flame>
matzy_: if you have compile-time effects that aren't saved in the .fasls, that might be the problem.
<aeth>
I wonder why ASDF doesn't look in ~/git
<aeth>
Does anyone else put their stuff in ~/git?
<aeth>
I guess it made more sense back when ~/hg and ~/svn were also things
<White_Flame>
aeth: I do, and I used to have ~/git symlinked into local-projects, but that can get into collisions quickly if you have multiple versions of a project simultaneously checked out, etc
<matzy_>
oh wait it is running in slime now, wtf
stepnem has quit [Ping timeout: 260 seconds]
<White_Flame>
s/into/from/
<matzy_>
but its weird because the program is a webserver and it would be listening on teh same port
<aeth>
I also have a ~/programming and a ~/src and a ~/notes because I'm a disorganized mess, but the real repos all go in ~/git for me
<White_Flame>
single-parent heirarchies are unmanageable
<matzy_>
so i could see it being smart and refusing the second instance
stepnem has joined #lisp
<aeth>
Organizing by version control instead of by language makes a ton of sense because then you can write something like e.g. my git-pull script
<aeth>
Essentially just a bunch of cd followed by "git pull"
<matzy_>
oh no i did get an error, i just aborted. nbm
<matzy_>
so after compiling in sbcl it doesn't work in slime
<phoe>
what's the error?
<matzy_>
socket already in use
<matzy_>
it must be smart
<phoe>
that's a programming error
<matzy_>
huh? not from the webserver lib?
<phoe>
that's an error in the code
<phoe>
you are using a socket that is already bound
<phoe>
why is it bound?
<matzy_>
i thought it's saying "sorry, you already have a server on port 5000)
<phoe>
that's exactly the case
<aeth>
White_Flame: but, yeah, you're right, looking at ~/git automatically is probably a bad idea. My stuff is obviously up to date, but a lot of the other stuff can be months/years out of date and behind the current QL stuff because I only update when there's a bugfix (or when I need to make a bugfix) more current than QL... basically a temporary override.
<phoe>
and you need to answer the question what is running on your port 5000
<phoe>
what is running there?
orivej has quit [Quit: No Ping reply in 180 seconds.]
<matzy_>
hunchentoot
<White_Flame>
are you starting the server at toplevel from your source code, or manually at the repl?
<matzy_>
so i need to change my acceptor port before being able to do (ql:quickload :my-proj) in slime
<matzy_>
i started first from ~ with sbcl, compiled fine, then opened up the project in spacemacs and tried the same in slime
orivej has joined #lisp
<White_Flame>
stop saying "compile" :)
<White_Flame>
where/how are you starting the server?
<matzy_>
i thought quickload compiles?
<White_Flame>
it fully loads
<White_Flame>
which will include running toplevel code
gaqwas has joined #lisp
<matzy_>
so it evals?
<matzy_>
basically?
<White_Flame>
compilation is a side-effect of loading in this manner
<phoe>
it compiles stuff and then it loads stuff
<matzy_>
ok so it is compiling
<phoe>
to be pedantic, ASDF does these things
<White_Flame>
so if your toplevel code is automatically starting the server, then your server is running in your terminal and taking up the port
<phoe>
compiling stuff executes compile-time side effects
<matzy_>
sorry i came from C originally, its weird to be back in a compiled language
cosimone has joined #lisp
<phoe>
loading stuff - load-time side effects
<phoe>
and these are separate
<matzy_>
ahhhh
<White_Flame>
you should have a call to start the server, then run that from the repl intentionally
<White_Flame>
instead of implicitly
<matzy_>
so that's why semed to load fine, but then threw the 'compilation unit aborted' error
<White_Flame>
yep, the 2nd exection while the 1st was still running
<matzy_>
i actually do have that
kaftejiman has quit [Remote host closed the connection]
<matzy_>
i have (start-server) and (stop-server) funtions
<phoe>
do you call (start-server) somewhere in your code?
<phoe>
could you upload your code to some online location?
<matzy_>
start-server first runs stop server, which checks if the acceptor exists or is active, and then stops it, and then start server sets the acceptor
<matzy_>
server.lisp is really the only important file
<matzy_>
and yeah, i know the db.lisp is beyond retarted, i'm working on that
asarch has quit [Quit: Leaving]
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
<matzy_>
White_Flame: ahhhh, because in prod I will want this to kick off automatically, so in main.lisp I do that (last file loaded), but for use with the repl i should comment that out and run in emacs?
<phoe>
if you close all of your Lisp processes, is port 5000 open on your machine?
<matzy_>
comment out (start-server) in main.lisp, (ql:quickload) in sbcl repl, then run (main:start-server) in slime?
<matzy_>
phoe: no, if i kill emacs and sbcl, it;s down
<matzy_>
i'm actually not bothering with docker right now, but i did get that working (first container every too!)
refpga has quit [Ping timeout: 240 seconds]
Volt_ has quit [Ping timeout: 260 seconds]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
orivej has quit [Read error: Connection reset by peer]
<matzy_>
phoe: yeah just confirmed that stops everything
refpga has joined #lisp
orivej has joined #lisp
<matzy_>
so what's the normal process here when using quicklisp and slime? i assume almost everyone does? what am i fucking up?
<phoe>
matzy_: good! now run lisp and (ql:quickload :conway-ff-api)
<phoe>
matzy_: I think that using ql and slime is the preferred way, yes
<matzy_>
from a terminal?
<matzy_>
or slime?
<phoe>
your choice
<phoe>
I think slime, since that'll allow you to then develop stuff
<matzy_>
just as long as it's not both? was that my issue?
nikkal has joined #lisp
<matzy_>
cool loaded fine with no error in slime
<phoe>
matzy_: you can't load both at the same time
<phoe>
there's only one port 5000 on your machine
<phoe>
so you can't bind it twice.
<matzy_>
yeah i see now. have a problem though - slime loaded fine, but my routes are returning 404's
<matzy_>
change package?
<phoe>
the package shouldn't have anything to do with how hunchentoot works
<matzy_>
alright i'm gonna kill slime and inferior lisp and run through terminal and sbcl
<matzy_>
that was working before, hence this whole thing
<phoe>
huh?
<matzy_>
nvm i clearly have a bug somewhere
<phoe>
if you run it in terminal and then do (ql:quickload :conway-ff-api)
<phoe>
then it should work exactly the same way as if you did that in slime
<matzy_>
ok yeah it was a bug in a route
<matzy_>
i didnt even try to hit that route, hunchentoot is brutal
<matzy_>
still didnt work in slime, hunchentoot loads but i get a 404
<matzy_>
oh wait, i need to change the port before running in slime
<matzy_>
yeah for some reason running (exit) or (quit) for me in sbcl just freezes my terminal, so I just kill the term. so maybe it hadn't shut down yet. but changing the port and running quickload again in slime worked great. THANK YOU!
<phoe>
<3
<matzy_>
you guys are the best
<matzy_>
although i find it crazy that cl packages/systems whatever do have docs, but the docs never have examples
<matzy_>
the lisp cookbook has been the only good thing i've found
<matzy_>
that other one is great though, thanks
<matzy_>
it would be nice to have a few solid examples of packages.lisp files online though, it gets really confusing with asd and the old packing documentation and there really aren't any out there
<matzy_>
*old packaging (per file)
<matzy_>
this explains the asd part well but not the packages.lisp
<phoe>
matzy_: there's no real need for packages.lisp
<phoe>
it's just common for package(s) to be declared in a separate file