Bike changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.0, CMUCL 21b, ECL 16.1.3, CCL 1.11.5
damke_ has joined #lisp
failproofshark has quit [Ping timeout: 240 seconds]
damke has quit [Ping timeout: 264 seconds]
trocado has joined #lisp
EvW has joined #lisp
fisxoj has joined #lisp
kark has quit [Ping timeout: 252 seconds]
moei has quit [Quit: Leaving...]
mikecheck has quit [Remote host closed the connection]
doesthiswork has joined #lisp
comborico1611 has joined #lisp
roca has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
nowhereman_ has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
mareskeg has joined #lisp
smokeink has joined #lisp
nowhere_man has quit [Ping timeout: 240 seconds]
asarch has joined #lisp
Kundry_Wag has joined #lisp
warweasle has joined #lisp
dtornabene_ has joined #lisp
comborico1611 has quit [Quit: Konversation terminated!]
dtornabene has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 264 seconds]
dilated_dinosaur has quit [Ping timeout: 246 seconds]
dilated_dinosaur has joined #lisp
<onion> in slime, how do i jump to source location on error ?
<onion> sbcl isnt giving line numbers or anything
<didi> onion: v
markong has quit [Ping timeout: 260 seconds]
<pillton> You can press M-. on each row in the back trace as well.
<onion> oh! ty =)
<pillton> Oh. n and p and v all work together.
roca has quit [Quit: roca]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Chream_ has quit [Ping timeout: 256 seconds]
oxo1o1o1o_ is now known as jack_
tempestnox has joined #lisp
jack_ is now known as oxo1o1o1o
rumbler31 has joined #lisp
dTal has quit [Ping timeout: 276 seconds]
dTal has joined #lisp
Chream_ has joined #lisp
dtornabene_ has quit [Read error: Connection reset by peer]
dtornabene_ has joined #lisp
warweasle has quit [Quit: Leaving]
dtornabene_ has left #lisp [#lisp]
dtornabene_ has joined #lisp
dtornabene_ has quit [Client Quit]
dtornabene has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
Oladon has joined #lisp
damke has joined #lisp
parjanya has joined #lisp
mareskeg has quit [Quit: mareskeg]
rumbler31 has quit [Remote host closed the connection]
damke_ has quit [Ping timeout: 264 seconds]
mareskeg has joined #lisp
pagnol has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
oxo1o1o1o has quit [Ping timeout: 260 seconds]
rumbler31 has joined #lisp
earl-ducaine has quit [Remote host closed the connection]
chatchatt has quit [Ping timeout: 264 seconds]
Fare has joined #lisp
chatchatt has joined #lisp
oxo1o1o1o has joined #lisp
Digit has quit [Ping timeout: 246 seconds]
<jeosol_> is anyone running a web application and could show me their setup. Essentially, settings behind nginx, etc. My eventual is plan is to move to AWS where I have an instance with SBCL but I have not done much.
<onion> all i know is hunchentoot and cl-who '
<jeosol_> I have a bias for production web application and I want to start understanding what is involved so set this up.
deng_cn has quit [Ping timeout: 264 seconds]
<jeosol_> @onion, thanks. I use those hunchentoot and cl-who
<jeosol_> but my question is around configuration and deployment, e.g., on AWS. I am able to run simple problems on my machine but want to start looking in the area of deployment.
<onion> parenscript is also nice. i have only looked at erlang and haskell for servers before cl
<onion> if its an sbcl image, you can connect emacs or other dev ide to it and develop while its up
deng_cn has joined #lisp
<rme> learningtouch.com is a CL-backed web site. It's hunchentoot running behind an Apache reverse proxy.
<jeosol_> @rme, that sounds like something I will be interested in.
<rme> If I was setting it up today, I might use ngnix, but there were already other Apache-hosted sites on the same machine.
<jeosol_> my application runs in emacs/slime
<jeosol_> why nginx? that would be better because I use that for my simple example, but have problems adding hunchentoot as proxy. I have only been able to get hunchentoot to work with apache2 in the past.
<rme> that just seems to be what people lean towards using these days.
<jeosol_> if you recommend, nginx, better then. I will just find a setup with hunchentoot as reverse proxy.
<jeosol_> ok, thanks for that info @rme
oxo1o1o1o has quit [Ping timeout: 248 seconds]
<rme> I am not recommending it; I have never used it.
<jeosol_> I saw somewhere that it is lighter relatively
deng_cn has quit [Read error: Connection reset by peer]
nowhereman_ has quit [Read error: Connection reset by peer]
nowhere_man has joined #lisp
<rme> Apache was easy for me to set up. Ensure mod_proxy is loaded, and then two lines in the config: "ProxyPass / http://127.0.0.1:9999/" and "ProxyPassReverse / http://127.0.0.1:9999/" and I was all set.
oxo1o1o1o has joined #lisp
fisxoj has quit [Quit: fisxoj]
<jeosol_> same for me too, apache was easy to set up.
<jeosol_> do you add that line just in the config or using some special syntax
<jeosol_> can you share a sample config or sth
<rme> Then there's a startup script (run from rc.local or something) that runs the ccl in a tmux session and then loads a little lisp file that configures and starts hunchentoot.
<rme> Those config lines are really all there is.
<jeosol_> for now, I want to test it on my local pc
<jeosol_> really?
<jeosol_> then for your example, hunchentoot is running on port 9999
<jeosol_> ?
<rme> right
<jeosol_> ok doki
<jeosol_> i guess I have to figure loading mod_proxy in config file, will check web
<rme> on debian/ubuntu it's "a2enmod proxy" or something like that
d4ryus1 has joined #lisp
d4ryus has quit [Ping timeout: 265 seconds]
roca has joined #lisp
sjl has joined #lisp
nika has joined #lisp
Fare has quit [Ping timeout: 256 seconds]
<jeosol_> @rme, it's the same command in OpenSuse
marusich has joined #lisp
deng_cn has joined #lisp
makomo has quit [Ping timeout: 240 seconds]
sjl has quit [Ping timeout: 263 seconds]
daniel-s has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
mathrick has quit [Ping timeout: 252 seconds]
fikka has quit [Ping timeout: 260 seconds]
marusich has quit [Ping timeout: 240 seconds]
marusich has joined #lisp
oxo1o1o1o has quit [Ping timeout: 248 seconds]
igemnace has joined #lisp
smokeink has quit [Remote host closed the connection]
smurfrobot has joined #lisp
smurfrobot has quit [Remote host closed the connection]
kobain has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
fikka has joined #lisp
rumbler31 has quit [Remote host closed the connection]
mareskeg has quit [Ping timeout: 256 seconds]
smurfrobot has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
SaganMan has joined #lisp
mathrick has joined #lisp
igemnace has joined #lisp
Pixel_Outlaw has quit [Quit: Leaving]
roca has quit [Ping timeout: 240 seconds]
dtornabene has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
oxo1o1o1o has joined #lisp
shifty has joined #lisp
wheelsucker has joined #lisp
vtomole has joined #lisp
ebzzry_ has quit [Ping timeout: 264 seconds]
dddddd has quit [Remote host closed the connection]
shka_ has joined #lisp
roca has joined #lisp
igemnace has quit [Quit: WeeChat 2.1]
Fare has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
<sukaeto> jeosol_: unfortunately, I can't show any of the code, but I maintain a Caveman2 application running behind nginx: https://github.com/fukamachi/caveman
<sukaeto> in production, we spawn of some number (dependent on the number of CPUs on the host) of FastCGI workers, each in its own docker container
<sukaeto> and have nginx round robin to them
deng_cn has joined #lisp
Younder has quit [Ping timeout: 240 seconds]
pierpa has joined #lisp
Pierpa_ has joined #lisp
dtornabene has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
thermo has joined #lisp
dTal has quit [Ping timeout: 240 seconds]
marusich has quit [Quit: Leaving]
BlueRavenGT has quit [Ping timeout: 264 seconds]
roca has quit [Quit: roca]
vtomole has quit [Ping timeout: 260 seconds]
dTal has joined #lisp
ebzzry_ has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
<beach> Good morning everyone!
Bike has quit [Quit: Lost terminal]
Fare has quit [Ping timeout: 256 seconds]
<jeosol_> @sukaeto, that would be nice, I think I can learn a lot from your setup
fikka has joined #lisp
<jeosol_> @sukaeto, can i have a look at the nginx setup, even it is dumbed down or something
sjl has joined #lisp
schoppenhauer has quit [Ping timeout: 260 seconds]
sjl has quit [Ping timeout: 256 seconds]
schoppenhauer has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
quazimodo has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<jeosol_> those running CL web applications, what do you framework do you use? Hunchentoot (raw), Weblocks, Caveman, ...?
<onion> clack, woo ?
Kundry_Wag has quit [Ping timeout: 256 seconds]
<jeosol_> Thanks @onion, I am assuming these are battle tested and can be used for serious production app?
<jeosol_> I am thinking of a framework/library to settle on.
<beach> jeosol_: I recommend you check with Shinmera. He is probably not awake yet, though.
<jeosol_> I have a back end application and want to develop the front end part, also using React (recommended by some frontend guy, not an expert in this space)
<onion> i think woo might be, i will be choosing that myself, ive seen it mentioned today or yesterday in some project
<jeosol_> @beach, you mean his Radiance library
<jeosol_> I did give a try in the past and it's the one I invested the most time when I was trying things out.
<onion> for front end i will be using Parenscript myself. dont need react or anything, just canvas or GL here.
fikka has joined #lisp
<onion> and text
<beach> No, I mean, check with Shinmera whether your potential choices are "battle tested, etc".
<jeosol_> I would like a setup that people are using in production
<jeosol_> Oh I see.
<jeosol_> michaeljforter says he runs CL apps in production but I sent him a message on Reddit a while ago to see his setup but got nothing. I assume he was busy and forgot
<jeosol_> *michaeljforster I think?
fikka has quit [Ping timeout: 246 seconds]
Oladon has quit [Quit: Leaving.]
rumbler31 has joined #lisp
Pierpa_ has quit [Quit: Page closed]
fourier has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
daniel-s has quit [Remote host closed the connection]
rumbler31 has quit [Ping timeout: 248 seconds]
daniel-s has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
fourier has joined #lisp
leo_song has joined #lisp
fourier has quit [Ping timeout: 256 seconds]
mikecheck has joined #lisp
wigust- has quit [Ping timeout: 256 seconds]
wigust has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
pierpa has joined #lisp
fikka has joined #lisp
quazimod1 has joined #lisp
earl-ducaine has joined #lisp
quazimodo has quit [Ping timeout: 264 seconds]
quazimod1 has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 264 seconds]
<stylewarning> jeosol_: we run hunchentoot in production
dmiles[m] is now known as dmilez_
<stylewarning> but we also don’t really run a “web app”, more just a web api
quazimodo has joined #lisp
tempestnox has quit [Quit: WeeChat 1.6]
oleo has quit [Quit: Leaving]
daniel-s has quit [Quit: Konversation terminated!]
didi has quit [Ping timeout: 260 seconds]
sauvin_ has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
mathrick has quit [Ping timeout: 256 seconds]
quazimodo has joined #lisp
fikka has joined #lisp
asarch has quit [Quit: Leaving]
somewun has joined #lisp
pyx has joined #lisp
pyx has joined #lisp
mishoo_ has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
larsen has quit [Ping timeout: 240 seconds]
larsen has joined #lisp
doesthiswork has quit [Quit: Leaving.]
didi has joined #lisp
chatchatt has quit [Ping timeout: 256 seconds]
<didi> Hehe. I'm reading CLTL2 and this came to mind: (my-post-defined-fn (progn (defun my-post-defined-fn (x) x) 42)) => 42
<didi> So SBCL evals the arguments before looking for the function.
<loke> didi: I'd expect SBCL to give you a compilation warnings there.
<didi> loke: Nope.
pyx has quit [Quit: WeeChat 2.1]
chatchatt has joined #lisp
<didi> This is fun.
sauvin_ is now known as bocaneri
itruslove has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
Chream_ has quit [Ping timeout: 246 seconds]
fikka has quit [Ping timeout: 264 seconds]
mathrick has joined #lisp
Karl_Dscc has joined #lisp
<shka_> didi: it will give you warning but then, it is just warning
<didi> shka_: It didn't here.
<shka_> hmmm
itruslove has joined #lisp
stacksmith has quit [Ping timeout: 246 seconds]
flamebeard has joined #lisp
<shka_> do you think guys that BT will eventually get atomics?
<beach> British Telecom?
somewun has left #lisp ["ERC (IRC client for Emacs 25.2.2)"]
<shka_> bordeaux-threads
<shka_> obviously
<shka_> and you know it
<shka_> and god help us if British Telecom starts using anything atomic
fikka has joined #lisp
xxp has joined #lisp
<beach> It can't evaluate the argument before looking for the function, because then it would not know whether it IS a function, and hence not know whether the argument should be evaluated.
<didi> beach: IIUC, it can, because if it is not a special form nor a macro, it assumes it is a function.
<didi> Well, according my reading of CLTL2.
<beach> right.
<beach> But it must look for the function to find that out.
<didi> beach: I think it just assumes it is, evaluates the arguments, then try to find the function. CLTL2 says this is unspecified.
<beach> didi: To find out that it is not a macro, it must query the environment with the function name. Which is what I mean by "look for the function".
<didi> beach: Well, it can find out it is not a special form nor a macro.
<beach> Not without querying the environment using the name.
<didi> Sure.
<beach> Which is what I mean by "looking for the function".
fikka has quit [Ping timeout: 260 seconds]
<didi> beach: I think I'm not understanding you. What I'm think of is (cond ((special-form-p x) ...) ((macro-p x) ...) (t ;assumes it is a function ...))
vlatkoB has joined #lisp
<beach> didi: You said <didi> So SBCL evals the arguments before looking for the function.
<didi> Indeed.
<beach> What did you mean by "looking for the function"?
<didi> "Hey, what is function names by this symbol?"
<didi> s/names/named
<beach> And it must do that first.
<didi> I don't think so... and it doesn't.
<beach> Otherwise, it won't know whether it might be a macro.
<beach> How on earth will it then know that it is not a macro?
<didi> It checks if it's a macro. It doesn't check if it names a function.
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<didi> If it's not a special form nor a macro, it assumes it names a function. It doesn't know yet there is no function named by the symbol.
panji has joined #lisp
mikecheck has left #lisp ["part"]
<beach> But it very likely does that by calling FDEFINITION.
<beach> clhs fdefinition
<beach> Which is what I mean by "looking for the function".
<didi> beach: Sorry, I don't know what is FDEFINITION.
<beach> That's why I gave you the link.
<didi> beach: Thanks. Tho I don't see how it applies here.
fikka has joined #lisp
<beach> That's the function that the compiler calls to figure out whether it is a macro or a function or a special form.
igemnace has joined #lisp
<beach> It could call MACRO-FUNCTION, but MACRO-FUNCTION very likely calls FDEFINITION.
<didi> beach: It might call it /after/ it assumes it names a function and /after/ it has evaluated the arguments.
<beach> It can not.
mishoo_ has quit [Ping timeout: 240 seconds]
<beach> Because it would not know then whether it has the right to evaluate the argument, because it would not know whether it might be a macro.
<didi> Oh well. The program (my-post-defined-fn (defun my-post-defined-fn (x) x)) evaluated to MY-POST-DEFINED-FN, so I don't know what is happening then.
<didi> beach: It already knows it is not a macro nor a special form.
<beach> It calls FDEFINTIION for my-post-defined-fn first.
<beach> Then it finds that it is neither a macro, nor a special form, nor a function.
<beach> So it assumes it is a function.
<beach> Then it knows that it has the right to evaluate the argument.
<didi> beach: Sorry, I don't know how to convince you. The program runs and CLTL2 says it is possible.
<beach> What I am saying does not contradict the fact that the code works.
<didi> I...
<beach> I am just saying that it has to "look for the function" first, in order to determine whether it has the right to evaluate the argument.
<didi> OK.
<beach> There is only one mapping from function names to function-like things in the environment. That mapping could show that the name is a function, a macro, a special form, or that it is not defined as any of those.
loli has quit [Ping timeout: 268 seconds]
fikka has quit [Ping timeout: 264 seconds]
<beach> So that mapping has to be queried in order to determine whether it has the right to evaluate the argument.
<didi> I see.
<beach> Querying that mapping is "looking for the function". There is no other way to figure that out.
moei has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
loli has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
scymtym has quit [Ping timeout: 248 seconds]
mflem has quit [Read error: Connection reset by peer]
fikka has joined #lisp
mishoo_ has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
<didi> Hum. Apparently the macro `defvar' has a special way of dealing with its parameter `initial-value'. Something about only evaluating `initial-value' on use? I don't understand it.
fikka has quit [Ping timeout: 240 seconds]
<beach> If the variable already has a value then no new value is assigned to it.
<beach> If you don't like that, use DEFPARAMETER instead.
<didi> beach: No no. I mean "The initial-value form is not evaluated unless it is used; this fact is useful if evaluation of the initial-value form does something expensive like creating a large data structure. "
<didi> -- CLTL2
deng_cn has joined #lisp
<beach> CLtL2 is not the standard.
<didi> Right.
<beach> The Common Lisp HyperSpec says: initial-value---a form; for defparameter, it is always evaluated, but for defvar it is evaluated only if name is not already bound.
<didi> beach: Indeed. It says something about Side Effects too that I can't parse.
<beach> So DEFVAR first checks whether the name is bound. If it is, then the form is not evaluated.
* didi nods
damke_ has joined #lisp
<beach> So if the form has side effects when evaluated, then those side effects will not happen if the name is already bound (with DEFVAR).
<didi> oic
<didi> beach: Thank you.
<beach> Anytime.
<beach> You can try it out easily. Start with (defvar *n* 0)
<pierpa> Didi: you can check how an actual implementation expands a DEFVAR form...
fikka has joined #lisp
Younder has joined #lisp
<didi> pierpa: I tried it with DEFUN and got scared.
<beach> Then (defvar *x* (incf *n*)) *x* *n* (defvar *x* (incf *n*)) *x* *n*
damke has quit [Ping timeout: 264 seconds]
<didi> beach: Ah, cool.
<pierpa> :). reggae should be simpler
<pierpa> Oops *defvar should be simpler
<beach> That's a strange typo.
<didi> :-)
<pierpa> Autocorrection. I'm typing from a tablet
shka_ has quit [Ping timeout: 265 seconds]
gigetoo has quit [Ping timeout: 248 seconds]
<loke> pierpa: Yeah, that's the real problem :-)
<loke> Who IRCes via a touchscreen? :-)
<pierpa> Me :)
gigetoo has joined #lisp
<loke> beach: OK, I now have a very basic Maxima interaction session working. However... I have a problem that you might be able to explain.
damke has joined #lisp
<beach> I'm listening.
<loke> beach: I have two panes: My Maxima interaction pane, and an :INTERACTOR pane below it.
<loke> I can type all I want in the maxima pane, but the interactor is unresponsive.
<beach> So two interactor panes?
<loke> It's like the maxima pane steals all the input or something.
<beach> Very likely, yes.
<loke> beach: Yeah, pretty much
<loke> How can I fix that?
<beach> Each application frame defines a standard input and a standard output.
<beach> ACCEPT etc, use those by default.
<beach> I guess you need two threads, each running a command loop.
<beach> But I don't quite understand why you would want two command loops.
<loke> beach: All right, that's doable, but would they be able toshare a frame?
<beach> Good question. I don't know.
<loke> beach: I'm not sure I want. But I discovered that behaviour and I wanted to understand why.
<beach> OK.
oxo1o1o1o has quit [Read error: Connection reset by peer]
damke_ has quit [Ping timeout: 264 seconds]
<beach> Yes, so basically, each frame has one command loop (at least by default).
oxo1o1o1o has joined #lisp
<beach> And it reads from some stream and writes to some stream by default.
<beach> And those streams are selected automatically as one of the interactors panes (if one exists) unless you tell it otherwise.
<loke> OK, Maxima is strange... If I input “x/y”, maxima will return a symbolc equation that looks like this (simplified): ((MTIMES) $X ((MEXPT) $Y -1))
<beach> Heh, nice.
pagnol has joined #lisp
<loke> that is mathematically correct, for not what the user expects to see... How, Maxima's default renderer to text will actually render that as “x/y”, so there is some kind of simplification phase happeneing. I can't for the life of me figure out where that is done though.
<didi> Uh, so AFAICT the definition of "lambda-expression" changed from CLTL2 to the standard. CLTL2 says a lambda-expression can't be meaningfully evaluated, but the standard says there is a macro `lambda', which by being a macro, can be meaningfully evaluated.
<loke> didi: I think you're right. In CLtL2 you needed to do #'(lambda () ...)
<didi> loke: Nice. Thank you.
<loke> (now I need to check my own copy of CLtL2)
<beach> LAMBDA is not listed in the index of macros.
<pierpa> Yes, the lambda macro has been a late addition
<didi> Heh. (lambda ()) -> #'(lambda ())
<didi> Cool stuff.
<didi> I assume (function lambda-expression) works because we can use lambda-expressions in the place of function names.
<didi> ((lambda (x) (1+ x)) 41) => 42
<pierpa> I think this is a deprecated syntax, IIRC?
<didi> Oh, no idea :-P.
<pierpa> I'm not sure either
trocado has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
<didi> Oh, it even calls "a lambda form", where CLTL2 says it isn't a form, because it can't be evaluated.
<didi> Tho maybe here "lambda form" is not a "form" the way CLTL2 defines it. ¯\_(ツ)_/¯
<pierpa> Anyway, even if obsoleted, CLTL2 is more fun to read :)
<didi> Oh yeah. CLTL2 is fun to read indeed.
<pierpa> It gives more background
* didi nods
heisig has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
sjl has joined #lisp
dtornabene has quit [Quit: Leaving]
deng_cn has joined #lisp
rumbler31 has joined #lisp
chatchat1 has joined #lisp
sjl has quit [Ping timeout: 264 seconds]
makomo has joined #lisp
phadthai has quit [Ping timeout: 265 seconds]
pagnol has quit [Ping timeout: 268 seconds]
chatchatt has quit [Ping timeout: 268 seconds]
moei has quit [Quit: Leaving...]
panji has left #lisp [#lisp]
moei has joined #lisp
scymtym has joined #lisp
<beach> didi: Since you are reading CLtL2 and since we discussed when functions are "looked for", check section 8.5, page 209. There is a function FUNCTION-INFORMATION that is not in the Common Lisp HyperSpec, but basically the compiler of every implementation must use something similar to find out what a name in a function position means.
energizer has quit [Ping timeout: 246 seconds]
schweers has joined #lisp
<schweers> do I read the hyperspec on aref and bit correctly, that the standard does not specify what happens when I attempt an out ouf bounds access? sbcl seems to throw an sb-int:invalid-array-index-error. I guess it depends on the debug optimizations?
orivej has quit [Ping timeout: 240 seconds]
<beach> schweers: The Common Lisp HyperSpec is full of undefined behavior like that.
<beach> And, yes, you are right.
<pierpa> clhs bit
<beach> schweers: It also doesn't specify what happens if you give something other than an array to AREF.
<schweers> k, thanks. Then I’ll just check the bounds myself.
<beach> The fact that there are so many undefined situations in the Common Lisp HyperSpec is the reason I started the WSCL (pronounced "whistle") project.
<schweers> I think I remember you mentioning this before.
<beach> I am repeating it for the benefit of those #lisp participants who didn't see it that time. :)
<schweers> And for those with weak memory, such as myself ;)
<beach> That too, yes.
<flip214> beach: thanks, looking!
xxp has quit [Ping timeout: 246 seconds]
<flip214> are you planning to include CDRs in the future, too?
<pierpa> Duh. Thanks for the reminder. I was already watching the project but I had forgot about it :(
fikka has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Remote host closed the connection]
bigfondue has quit [Ping timeout: 256 seconds]
xxp has joined #lisp
phadthai has joined #lisp
fikka has joined #lisp
milanj has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
Kundry_Wag has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
<beach> flip214: For WSCL? My current thinking is to avoid new functionality. A good existing Common Lisp implementation should already be a WSCL implementation, or at least nearly so.
<schweers> beach: have you added any behavior that no existing implementation already has?
<beach> schweers: At the moment, I haven't done anything. But I don't intend to add new functionality. I only plan to specify many of the things that the Common Lisp HyperSpec leaves unspecified. And it should be such that the most common implementations already specify those things in a reasonable way.
<beach> There could of course be some odd cases, but I will try to avoid those.
<schweers> maybe I didn’t make clear what I meant. The standard doesn’t specify what happens when aref is given an out of bounds index. You specified what should happen in WSCL?
<beach> Like what happens if you pass something other than an array to AREF in safe code.
<beach> Yes, I intend to specify things like that.
<beach> And I plan to use the term "safe code" a lot for that.
fikka has quit [Ping timeout: 256 seconds]
<beach> "safe code" is already defined in the Common Lisp HyperSpec.
<schweers> And you only specify behaviour, which at leas one existing implementation already does? For instance, as sbcl throws an error, you might specify that an error should be thrown?
oxo1o1o1o has quit [Read error: Connection reset by peer]
<beach> [errors are "signaled" in Common Lisp. Not thrown.] Sort of. I do not plan to check whether at least one implementation does what I want. So it might be the case that for a few cases, no implementation does the right thing.
oxo1o1o1o has joined #lisp
<schweers> okay, that’s what I meant :)
<schweers> eh, yes, signalled, not thrown. my bad.
bigfondue has joined #lisp
<beach> But SBCL is pretty picky already, so I expect few such cases.
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
pierpa has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
Louge has joined #lisp
<shka> beach: btw, where there is a repo with WSCL?
<shka> *where is the repo
fikka has quit [Ping timeout: 260 seconds]
pagnol has joined #lisp
pierpa has joined #lisp
<shka> beach: thank you!
oxo1o1o1o_ has joined #lisp
fikka has joined #lisp
oxo1o1o1o has quit [Ping timeout: 256 seconds]
damke_ has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
damke has quit [Ping timeout: 264 seconds]
<shka> beach: can you estimate how far from finished WSCL is?
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
python476 has joined #lisp
_cosmonaut_ has joined #lisp
fikka has joined #lisp
Louge has quit [Quit: Louge]
<beach> shka: As far as it was when I started it.
<beach> I haven't worked on it.
fikka has quit [Ping timeout: 276 seconds]
tomlukeywood has joined #lisp
<beach> In fact, if someone could help me set up the dpANS files so that I could do a single `pdflatex' to compile it, then that would help immensely.
<beach> Also, someone pointed out that I am not using the most recent version of dpANS, which I didn't know. I would like to do that of course.
Chream_ has joined #lisp
fikka has joined #lisp
<pierpa> Perhaps it would be easier to start from the CLHS? It should be way easier to reverse engineer
<shka> beach: well, I will just create issues on github for you
<shka> can't really help with those, i am not good with latex
<shka> but puttin issues on github is some way to start..
<TMA> pierpa: I think it was discussed already. there was some licensing issue, IIRC
<pierpa> TMA: ok. I was not aware.
<beach> shka: Thank you!
<beach> pierpa: TMA is right. The Common Lisp HyperSpec is copyright by LispWorks and they do not allow derived work.
nowhere_man has quit [Ping timeout: 256 seconds]
<shka> and that is truely unfortunate
xantoz has quit [Ping timeout: 260 seconds]
<beach> shka: Doesn't matter much. I mean, phoe has already removed that problem essentially, by creating CLUS.
<shka> CLUS is not yet complete
<beach> True.
<shka> and currently stagnant
<beach> That too.
thallia has quit [Ping timeout: 240 seconds]
m00natic has joined #lisp
xantoz has joined #lisp
nika has quit [Remote host closed the connection]
thallia has joined #lisp
nika has joined #lisp
nika has quit [Ping timeout: 240 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
dddddd has joined #lisp
thallia has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
tomlukeywood has quit [Quit: tomlukeywood]
thallia has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
<runejuhl> ~/
oxo1o1o1o_ is now known as oxo1o1o1o
<runejuhl> hm, that was weird... just ignore me :)
Chream_2 has joined #lisp
Chream_ has quit [Read error: Connection reset by peer]
raynold has quit [Quit: Connection closed for inactivity]
schoppenhauer has quit [Ping timeout: 240 seconds]
schoppenhauer has joined #lisp
ebzzry_ has quit [Ping timeout: 246 seconds]
markong has joined #lisp
Bike has joined #lisp
ebzzry_ has joined #lisp
rumbler31 has joined #lisp
oxo1o1o1o_ has joined #lisp
oxo1o1o1o has quit [Ping timeout: 240 seconds]
damke has joined #lisp
rumbler31 has quit [Remote host closed the connection]
damke_ has quit [Read error: Connection reset by peer]
bjhx has joined #lisp
nowhere_man has joined #lisp
roca has joined #lisp
Kaisyu7_ has joined #lisp
python476 has quit [Remote host closed the connection]
didi has quit [Ping timeout: 276 seconds]
kark has joined #lisp
Kaisyu has joined #lisp
BlueRavenGT has joined #lisp
Kaisyu7_ has quit [Quit: Leaving]
fikka has quit [Ping timeout: 240 seconds]
nowhereman_ has joined #lisp
oxo1o1o1o has joined #lisp
nowhere_man has quit [Ping timeout: 264 seconds]
fikka has joined #lisp
oxo1o1o1o_ has quit [Ping timeout: 276 seconds]
fikka has quit [Ping timeout: 264 seconds]
dmiles has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
dmiles has joined #lisp
doesthiswork has joined #lisp
smokeink has joined #lisp
Kundry_Wag has joined #lisp
sz0 has joined #lisp
roca has quit [Quit: roca]
Kundry_Wag has quit [Ping timeout: 276 seconds]
integralyogin has quit [Remote host closed the connection]
EvW1 has joined #lisp
zbir has joined #lisp
Kundry_Wag has joined #lisp
mishoo_ has quit [Ping timeout: 248 seconds]
integralyogin has joined #lisp
integralyogin has quit [Max SendQ exceeded]
integralyogin has joined #lisp
integralyogin has quit [Max SendQ exceeded]
agspathis has joined #lisp
butterthebuddha has quit [Max SendQ exceeded]
butterthebuddha has joined #lisp
Louge has joined #lisp
damke_ has joined #lisp
sjl has joined #lisp
damke has quit [Ping timeout: 264 seconds]
cmatei has joined #lisp
sjl__ has joined #lisp
himmAllRight17 has joined #lisp
himmAllRight17 has quit [Quit: WeeChat 2.0.1]
himmAllRight17 has joined #lisp
sjl has quit [Ping timeout: 248 seconds]
Kundry_Wag has quit [Remote host closed the connection]
smokeink has quit [Remote host closed the connection]
pierpa has quit [Ping timeout: 260 seconds]
himmAllRight27 has joined #lisp
Kundry_Wag has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
Inoperable has quit [Quit: ZNC 1.6.6 - http://znc.in]
Inoperable has joined #lisp
nowhereman_ has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
fikka has joined #lisp
BlueRavenGT has quit [Remote host closed the connection]
BlueRavenGT has joined #lisp
<Xach> I want to use ~/foo/ more.
warweasle has joined #lisp
rumbler31 has quit []
lnostdal has quit [Ping timeout: 268 seconds]
EvW1 has quit [Remote host closed the connection]
himmAllRight27 has left #lisp [#lisp]
oleo has joined #lisp
rippa has joined #lisp
lnostdal has joined #lisp
Louge has quit [Quit: Louge]
mishoo_ has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
<onion> Xach: what? =)
<Xach> That is all!
<Xach> I think I use it too little to solve printing problems and that is something to correct!
<onion> oh! well and fine!
roca has joined #lisp
<Shinmera> Xach: I think I found a quite nifty use case for it in my GLSL toolkit: https://github.com/Shirakumo/glsl-toolkit/blob/master/printer.lisp
fikka has quit [Ping timeout: 240 seconds]
<Shinmera> Though I use a preprocessing step to turn ~o into ~/ORG.SHIRAKUMO.TRIAL.GLSL::%FORMAT-OBJECT/, since that's quite a mouth full.
<Xach> I liked the hack of ~/iso:8601/ for a date
<Shinmera> Nice
nowhereman_ has joined #lisp
rotty has quit [Ping timeout: 246 seconds]
fikka has joined #lisp
sjl__ is now known as sjl
dddddd has quit [Ping timeout: 248 seconds]
asarch has joined #lisp
rotty has joined #lisp
nowhereman_ has quit [Ping timeout: 265 seconds]
nowhereman_ has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
sz0 has quit [Quit: Connection closed for inactivity]
nowhereman_ has quit [Read error: Connection reset by peer]
nowhereman_ has joined #lisp
fikka has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kaisyu has quit [Quit: Connection closed for inactivity]
nowhereman_ has quit [Read error: Connection reset by peer]
dddddd has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
nowhereman_ has joined #lisp
agspathis has quit [Remote host closed the connection]
flamebeard has quit [Quit: Leaving]
Cymew has quit [Remote host closed the connection]
fikka has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
nowhereman_ has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
nowhereman_ has quit [Read error: Connection reset by peer]
nowhereman_ has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
nowhereman_ has joined #lisp
zkat_ is now known as zkat
scymtym has quit [Ping timeout: 255 seconds]
fluke` has joined #lisp
Kundry_Wag has joined #lisp
oxo1o1o1o has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Remote host closed the connection]
pierpa has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Murii|osx has joined #lisp
arbv has quit [Ping timeout: 256 seconds]
heisig has quit [Quit: Leaving]
fikka has joined #lisp
arbv has joined #lisp
damke has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
damke_ has quit [Ping timeout: 265 seconds]
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
nowhereman_ has quit [Read error: Connection reset by peer]
zbir has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
arbv has quit [Ping timeout: 252 seconds]
EvW has joined #lisp
failproofshark has joined #lisp
arbv has joined #lisp
nowhereman_ has joined #lisp
<bl1nd> I want to learn clojurescript. Should I learn clojure before? Should I even learn another dialect of lisp before Clojure?
trocado has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
nowhereman_ has joined #lisp
<Shinmera> This channel is for Common Lisp, so you will be told to learn Common Lisp, regardless of your interest in Clojure.
<schweers> bl1nd: note that this channel is about common lisp, not the whole lisp family. Nevertheless I suppose learning clojure first will make your life easier.
nowhereman_ has quit [Read error: Connection reset by peer]
<shka> learn common lisp!
<shka> ;-)
<oleo> commie lisp
<oleo> lol
varjag has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
nika has joined #lisp
nowhereman_ has joined #lisp
mflem has joined #lisp
<bl1nd> schweers: sorry, didn't realize that.
al-damiri has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
<schweers> not a problem. I guess there are channels dedicated to clojure and clojurescript. Maybe you should ask there
<bl1nd> I did :)
nowhereman_ has joined #lisp
deng_cn has quit [Read error: Connection reset by peer]
deng_cn has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
nowhereman_ has joined #lisp
energizer has joined #lisp
nowhereman_ has quit [Read error: Connection reset by peer]
axg has joined #lisp
Arcaelyx has joined #lisp
quazimodo has quit [Ping timeout: 256 seconds]
trocado has quit [Ping timeout: 265 seconds]
surya has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Remote host closed the connection]
stacksmith has joined #lisp
fikka has joined #lisp
Kundry_Wag has joined #lisp
pagnol has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 265 seconds]
askatasu1 has quit [Quit: WeeChat 1.9]
askatasu1 has joined #lisp
askatasu1 has quit [Client Quit]
deng_cn has quit [Read error: Connection reset by peer]
scymtym has joined #lisp
fikka has joined #lisp
deng_cn has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
<khrbt> why are swank fasls in ~/.slime/ and not ~/.cache/common-lisp/ ?
raynold has joined #lisp
roca_ has joined #lisp
roca has quit [Ping timeout: 264 seconds]
roca_ is now known as roca
Denommus has joined #lisp
<Xach> khrbt: ancient history. swank is not "really" loaded through asdf.
somewun has joined #lisp
Fare has joined #lisp
Karl_Dscc has joined #lisp
roca_ has joined #lisp
roca has quit [Ping timeout: 256 seconds]
roca_ is now known as roca
drot_ has quit [Quit: Quit.]
roca is now known as lroca
drot has joined #lisp
fisxoj has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Cymew has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
_cosmonaut_ has quit [Ping timeout: 260 seconds]
schweers has quit [Ping timeout: 265 seconds]
Cymew has quit [Ping timeout: 246 seconds]
Fare has quit [Ping timeout: 240 seconds]
stux|RC has joined #lisp
earl-ducaine has quit [Read error: Connection reset by peer]
foom has joined #lisp
alphor_ has quit [Ping timeout: 276 seconds]
MightyJoe has quit [Read error: Connection reset by peer]
pmden has quit [Ping timeout: 276 seconds]
raynold has quit [Ping timeout: 276 seconds]
danlentz has quit [Ping timeout: 276 seconds]
cyraxjoe has joined #lisp
stux|RC-only has quit [Ping timeout: 276 seconds]
foom2 has quit [Ping timeout: 276 seconds]
benny has quit [Ping timeout: 276 seconds]
benny has joined #lisp
pmden has joined #lisp
pmden has joined #lisp
pmden has quit [Changing host]
alphor has joined #lisp
danlentz has joined #lisp
pierpa has joined #lisp
raynold has joined #lisp
earl-ducaine has joined #lisp
surya has quit [Ping timeout: 240 seconds]
wigust has quit [Ping timeout: 260 seconds]
remi`bd has joined #lisp
dieggsy has joined #lisp
Kundry_Wag has joined #lisp
mhd has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
nika has quit [Quit: Leaving...]
orivej has joined #lisp
damke_ has joined #lisp
earl-ducaine has quit [Ping timeout: 256 seconds]
earl-ducaine has joined #lisp
damke has quit [Ping timeout: 265 seconds]
cage_ has joined #lisp
mhd has quit [Quit: Textual IRC Client: www.textualapp.com]
m00natic has quit [Remote host closed the connection]
shka_ has joined #lisp
lroca is now known as roca
Pierpa_ has joined #lisp
pierpa has quit [Ping timeout: 260 seconds]
bocaneri has quit [Remote host closed the connection]
pagnol has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
vlatkoB has quit [Remote host closed the connection]
stacksmith has quit [Ping timeout: 265 seconds]
remi`bd has quit [Ping timeout: 256 seconds]
vlatkoB has joined #lisp
comborico1611 has joined #lisp
SaganMan has quit [Quit: laters]
onion has quit [Read error: Connection reset by peer]
onion has joined #lisp
onion is now known as whoman
whoman is now known as onion
EvW has quit [Ping timeout: 252 seconds]
trocado has joined #lisp
dmilez_ has quit [Ping timeout: 260 seconds]
cage_ has quit [Read error: Connection reset by peer]
cage_ has joined #lisp
dieggsy has quit [Ping timeout: 276 seconds]
Fare has joined #lisp
Guest6344 has joined #lisp
BlueRavenGT has quit [Read error: Connection reset by peer]
didi has joined #lisp
kark has quit [Ping timeout: 240 seconds]
varjag has joined #lisp
pagnol has quit [Ping timeout: 264 seconds]
kark has joined #lisp
Satou has joined #lisp
thodg has quit [Ping timeout: 264 seconds]
roca has quit [Ping timeout: 248 seconds]
Chream has joined #lisp
fisxoj has quit [Quit: fisxoj]
EvW has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
z3t0 has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
pagnol has joined #lisp
damke has joined #lisp
Denommus has quit [Ping timeout: 260 seconds]
damke_ has quit [Ping timeout: 265 seconds]
Satou has quit [Quit: Cya soon guys!]
fikka has joined #lisp
szmer has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
fisxoj has joined #lisp
citron has joined #lisp
z3t0 has quit [Remote host closed the connection]
cage_ has quit [Quit: Leaving]
z3t0 has joined #lisp
Fare has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
tomlukeywood has joined #lisp
Mutex7 has joined #lisp
z3t0 has quit [Remote host closed the connection]
z3t0 has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Trystam has joined #lisp
Tristam has quit [Ping timeout: 240 seconds]
Trystam is now known as Tristam
Chream has quit [Ping timeout: 276 seconds]
Cymew has joined #lisp
shka_ has quit [Ping timeout: 264 seconds]
Cymew has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
z3t0 has quit [Remote host closed the connection]
kark has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
z3t0 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
citron has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
citron has joined #lisp
z3t0 has quit [Remote host closed the connection]
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
z3t0 has joined #lisp
fikka has joined #lisp
z3t0 has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 240 seconds]
z3t0 has joined #lisp
fikka has quit [Ping timeout: 264 seconds]
Karl_Dscc has joined #lisp
z3t0 has quit [Ping timeout: 240 seconds]
smokeink has joined #lisp
fikka has joined #lisp
<Shinmera> A text editor in a slide show because why not? https://www.youtube.com/watch?v=Or9zsq3iO7A
<Shinmera> The actual why is a special surprise for ELS attendants ;)
stacksmith has joined #lisp
<Xach> local package nickname print/read consistency is making me queasy
axg` has joined #lisp
fikka has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
axg` has quit [Ping timeout: 240 seconds]
axg has quit [Ping timeout: 268 seconds]
xxp has quit [Quit: ERC (IRC client for Emacs 25.3.2)]
Murii|osx has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
ramus has quit [Ping timeout: 260 seconds]
bjhx has quit [Read error: Connection reset by peer]
* Xach thinks about it
<Xach> I've been trying to think of a way to add local package nicknames without adding any new packages or functions, only extending existing functions.
ramus has joined #lisp
<Xach> But I can't think of a place to put a way to map a package to a local name in effect for it
<Xach> e.g. if you have a local nickname for "com.xach.mycoolpackage" as "mcp", (some-standard-function (find-package "org.xach.mycoolpackage")) => ("mcp")
<sukaeto> jeosol_: I believe this is a minimal example nginx config: https://pastebin.com/pXx9U7nK
<sukaeto> iirc, the round robin is the default (I couldn't find anything explicitly setting it). The stuff in fastcgi.conf is just the default that comes with nginx
damke_ has joined #lisp
<sjl> Xach: (find-package "org.xach.mycoolpackage")=> (values the-package '("mcp")) ?
damke has quit [Ping timeout: 265 seconds]
<sjl> wait, maybe I'm misunderstanding the problem
Murii|osx has joined #lisp
<sjl> could add a key parameter to package-nicknames: (package-nicknames "org.xach.mycoolpackage" :local-to (find-package "some-package")) => ("mcp")
Intensity has quit [Read error: Connection reset by peer]
warweasle has quit [Quit: Leaving]
asarch has quit [Quit: Leaving]
quazimodo has joined #lisp
<jeosol_> @sukaeto, you are the man (or woman)
tomlukeywood has quit [Quit: tomlukeywood]
<jeosol_> you are using clack for this? anything else I need to use this nginx config file.
didi` has joined #lisp
<jeosol_> sukaeto: you are using clack for this? anything else I need to use this nginx config file.
sjl__ has joined #lisp
didi has quit [Disconnected by services]
didi` is now known as didi
nowhere_man has joined #lisp
sjl has quit [Disconnected by services]
sjl__ is now known as sjl
<sukaeto> jeosol_: yeah, it's just clack. If you're not using docker, you'll have to come up with some scheme for assigning ports to the workers (and supervising them)
<jeosol_> I haven't done anything, so I can use whatever works to get me to get an AWS instance working
<sukaeto> (of course, replace "worker1", etc with the container names, or localhost if you're not using docker)
<Shinmera> I just use Hunchentoot with Nginx in front as a proxy.
<jeosol_> Shinmera, can I see a sample config file. Thanks for chiming in
<Shinmera> Google nginx proxy http or something.
<jeosol_> While I have used hunchentoot, have not used it with nginx. Haven't used Clack at all. So some learning to do on my end.
Kundry_Wag has quit [Remote host closed the connection]
<sukaeto> FWIW, I use hunchentoot in slime for dev
<sukaeto> clack supports either backend
Kundry_Wag has joined #lisp
<jeosol_> I see
<didi> So reading about dynamic extend, I got an idea: If, when using FFI, instead of messing with the GC, we declared the alloc'ed variables with dynamic extend and cleaned them just before leaving the block?
* didi thinking out loud
smurfrobot has quit []
<Xach> sjl: i like that last bit
<didi> Just like the macro `with-open-stream'.
<jeosol_> @sukaeto: you are saying with docker, the assignment of ports to workers is handled if I am using docker?
<sukaeto> jeosol_: the docker containers themselves have their own own "port space". They're kind of like mini guests on the host
<onion> i seen this yesterday https://github.com/fukamachi/woo
<stacksmith> didi: what kind of variables do you allocate when using ffi?
<sukaeto> so yeah, you can have all the workers just listen on the same port and there won't be any collisions if they're each in a different container
EvW has joined #lisp
comborico1611 has quit [Quit: Konversation terminated!]
Intensity has joined #lisp
<jeosol_> I see, I admit I am not a docker expert. I will have to read up on this. Thanks for the explanations
<didi> stacksmith: Well, many alien libraries have functions like `make-widget', which malloc memory.
<didi> stacksmith: It is up to the user to clean them up.
<stacksmith> didi: I have a macro "with-foreign-vals" that makes an environment with allocated foreign values. Like (with-foreign-vals (:int16 x :int16 y :int16 width :uint16 height) ...) I use it all the time for ad-hoc cffi allocations.
damke has joined #lisp
<didi> stacksmith: Cool. I struggle with the idea of wrapping these variables because I want to feel like programming in lisp, even if I'm calling foreign functions.
<stacksmith> didi: I see... things like widgets generally need indefinite extent...
* didi nods
remi`bd has joined #lisp
damke_ has quit [Ping timeout: 264 seconds]
<stacksmith> didi: you could actually do what you described, but I prefer - at least during development - to be able to create a window with widgets, say, and return to REPL...
<stacksmith> didi: with- macros are cool, but they make it hard to split the code up.
remi`bd has quit [Client Quit]
<didi> stacksmith: Right? Oh well.
<stacksmith> didi: I really miss continuations...
damke has quit [Ping timeout: 264 seconds]
<didi> stacksmith: I know what they are, but never used them. Well, except for non-local exits.
damke has joined #lisp
nopolitica has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
Kundry_Wag has quit [Remote host closed the connection]
<stacksmith> didi: I've never used any built-in ones, but sometimes it feels really great to turn a program inside out... Like say an image viewer that decodes as many bytes as you send it and returns instead of a loop that takes over and blocks...
tomsen has joined #lisp
damke__ has joined #lisp
<didi> stacksmith: Well, you don't need continuations for that. You can use threads. Unless you want green threads, AIUC. I've being writing a library for concurrency programming for a while, that abstracts away from threads, but I've being stuck.
damke has quit [Ping timeout: 264 seconds]
let42 has joined #lisp
<stacksmith> didi: I am always dealing with deeply nested trees, and I wind up wanting to do something deep inside on a branch. I could send a lambda, but it can only do so much. With continuations, I could make the code stop where I want and return. Then I can do things like bind some variables and go back in for the rest of the branch.
<Bike> cffi has with-foreign-objects, is it different?
<didi> stacksmith: Maybe look at the condition system?
<didi> stacksmith: Sounds like something useful for your use case.
EvW has quit [Ping timeout: 240 seconds]
figurehe4d has joined #lisp
<didi> Bike: I dunno. Good question. Maybe it can be used. But the more high level question is: Should the alien variables feel like lisp variables that can be GCed or not?
<stacksmith> Bike: I am trying to remember why I didn't use that... Perhaps stupidity.
<Bike> huh? the gc probably can't handle alien memory
<Bike> that's why it's alien
<didi> Indeed. But we can hook into the GC of implementations that allows us to do it.
<stacksmith> didi: you mean foreign-free I assume...
<didi> stacksmith: Yeap.
<Bike> which implementations are those?
<didi> Bike: SBCL is one, I think?
<Bike> no, alien memory is still alien on sbcl, i'm pretty sure
<stacksmith> I don't think any implementation keeps track of foreign memory.
<Bike> i'm really not sure what you have in mind here
<Bike> some implementations, like sbcl, can already stack allocate foreign memory
<didi> Finalization is the name I'm looking fore.
<Shinmera> The memory being foreign by definition makes it non-gcable.
<Bike> i don't think you can put finalizers on foreign objects
<didi> You wrap around the foreign object.
<stacksmith> I thing by GC didi means just getting rid of it properly at some point in the fugure.
<Bike> you mean, have a lisp object that is asosicated with some block of foreign memory?
<didi> Bike: Yes!
Murii|osx has quit [Quit: Textual IRC Client: www.textualapp.com]
<didi> stacksmith: Yes![2]
<Bike> what does that have to do with dynamic extent?
<stacksmith> There was an idea of keeping foreign variables on the stack and having them go out of scope naturally, I believe.
<didi> ^
<Bike> ...well then where does the lisp object association come in
<didi> Maybe not in the stack. The "dynamic extent" has more to do with the idea of an object being valid just inside the block.
<didi> Bike: They are different strategies for dealing with foreign objects.
mflem has quit [Read error: Connection reset by peer]
let42 has quit [Quit: let42]
mflem has joined #lisp
<smokeink> jeosol: I'd recommend lighttpd over nginx (I had some issues in the past with its config files , its config script language it's one of the dumbest I've ever seen) . Some notes here: http://dpworks.net/miscellanea/mod_lisp-lighttpd.html , http://pastecode.ru/8d5d29/
* smokeink /s/it's/is/
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
<stacksmith> Bike: I think the reason I wrote with-foreign-vals is because I allocate/free a single foreign object containing all the foreign values specified...
<stacksmith> It's for making ad-hoc structures.
<stacksmith> Yes, it's all coming back to me now.
comborico1611 has joined #lisp
Kundry_Wag has joined #lisp
damke has joined #lisp
roca has joined #lisp
Kundry_Wag has quit [Ping timeout: 264 seconds]
damke__ has quit [Ping timeout: 264 seconds]
damke has quit [Ping timeout: 265 seconds]
vlatkoB has quit [Remote host closed the connection]
Guest6344 has quit [Ping timeout: 276 seconds]
roca has quit [Quit: roca]
ku has joined #lisp
k-hos has quit [Ping timeout: 264 seconds]
roca has joined #lisp
ku is now known as k-hos
roca has quit [Ping timeout: 240 seconds]
<johnnymacs> What does the syntax of object oriented programming in lisp look like?
<pillton> (operator object-1 object-2)
<pillton> Sorry. (operator object-1 object-2 ...)
<pillton> Generic functions perform multiple dispatch.
<johnnymacs> are hash tables part of the hyperspec?
<pillton> clhs make-hash-table
fisxoj has quit [Quit: fisxoj]
<johnnymacs> can I store the reference to a hash table within another hash table?
<Bike> sure
jasom has joined #lisp
figurehe4d has quit [Remote host closed the connection]
citron has quit [Ping timeout: 256 seconds]
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 260 seconds]