MrBusiness has quit [Ping timeout: 248 seconds]
mejja has joined #lisp
hifitim has joined #lisp
<jstoddard> Apress -- at least their U.S. site -- appears to have Mr. Weitz's "Common Lisp Recipes" on sale this weekend for USD$9.99 (ebook)/$12.50 (softcover) if any U.S. people here have been on the fence about picking it up...
raphaelss has joined #lisp
<sjl> thanks for the heads up -- I've been meaning to pick up a paper copy now that I'm back in the US
<sjl> but $60+ on top of the ebook I already bought was a bit much
joncol has quit [Remote host closed the connection]
<mfiano> That is indeed a good price for a nice companion book
MrBusiness has joined #lisp
<jstoddard> Yeah, I've been planning to pick it up, but $60 just wasn't in the budget at the moment.
wxie has quit [Remote host closed the connection]
<aeth> oooh a sale
<mfiano> list price is $70 according to the site
fraya has quit [Remote host closed the connection]
<jstoddard> Yes, I suppose that's right. Still, if $60 wasn't in the budget, $70 was even further out of reach.
<Xach> i bought it when it came out, but moved, and it shipped to my old address. new resident never forwarded it :(
<Xach> hope they like lisp
nowhereman_ has joined #lisp
nowhere_man has quit [Ping timeout: 268 seconds]
<jackdaniel> hueh
<jackdaniel> maybe they will
hifitim has quit [Ping timeout: 240 seconds]
<fikka> hmm Practical Common Lisp is also 12.50 EUR!
markong has quit [Ping timeout: 264 seconds]
dddddd has quit [Ping timeout: 248 seconds]
<jstoddard> Oh, I didn't think to look up Practical Common Lisp. I certainly wouldn't mind having the dead tree version around.
<fikka> yeah
<fikka> I love paper version
<fikka> versions
<Ober> good book
fikka has quit [Ping timeout: 255 seconds]
zachk has quit [Quit: night]
attila_lendvai has quit [Quit: Leaving.]
damke_ has joined #lisp
damke has quit [Ping timeout: 240 seconds]
lkrylov has joined #lisp
lkrylov has quit [Client Quit]
Baggers has quit [Quit: b]
FreeBirdLjj has joined #lisp
``Erik_ has joined #lisp
``Erik has quit [Ping timeout: 240 seconds]
schoppenhauer has quit [Ping timeout: 260 seconds]
sjl__ has joined #lisp
sjl___ has joined #lisp
FreeBirdLjj has quit [Ping timeout: 260 seconds]
sunstone has joined #lisp
sjl__ has quit [Ping timeout: 268 seconds]
mepian has joined #lisp
mepian has quit [Client Quit]
schoppenhauer has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
phadthai has quit [Ping timeout: 248 seconds]
javmx has joined #lisp
mson has quit [Quit: Connection closed for inactivity]
sjl___ has quit [Ping timeout: 268 seconds]
sunstone has quit [Ping timeout: 260 seconds]
Niac has joined #lisp
bradw has joined #lisp
dieggsy has joined #lisp
bradw is now known as warweasle
warweasle has left #lisp ["Killed buffer"]
safe has joined #lisp
mson has joined #lisp
EvW1 has quit [Ping timeout: 240 seconds]
terpri has quit [Ping timeout: 240 seconds]
k-stz has quit [Remote host closed the connection]
nonlinear has quit [Ping timeout: 240 seconds]
Karl_Dscc has quit [Remote host closed the connection]
ryanbw has quit [Ping timeout: 240 seconds]
omilu has quit [Read error: Connection reset by peer]
terpri has joined #lisp
orivej has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
auxo has quit [Ping timeout: 260 seconds]
damke has joined #lisp
nowhereman_ has quit [Ping timeout: 248 seconds]
orivej has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
damke_ has quit [Ping timeout: 240 seconds]
wigust has quit [Remote host closed the connection]
phadthai has joined #lisp
javmx has quit [Quit: Leaving]
d4ryus1 has joined #lisp
neoncontrails has quit [Remote host closed the connection]
eschatologist has quit [Remote host closed the connection]
d4ryus has quit [Ping timeout: 248 seconds]
eschatologist has joined #lisp
panji has joined #lisp
tripty has quit [Quit: ... I must go, my planet needs me ...]
prettty-girl has quit [Read error: Connection reset by peer]
video-girl-yutub has joined #lisp
tripty has joined #lisp
raphaelss has quit [Remote host closed the connection]
<hooman> i wish that art of meta object protocol was a free book
mejja has quit [Quit: mejja]
thebardian has quit [Remote host closed the connection]
<Ober> tiny book
Reinhilde is now known as Ellenor
sz0 has quit [Quit: Connection closed for inactivity]
damke has quit [Ping timeout: 240 seconds]
pjb has quit [Ping timeout: 240 seconds]
damke has joined #lisp
<drmeister> Does this look like a reasonable way to capture a list of special variable values from within a function call?
<drmeister> (defparameter cl-jupyter:*special-variables* '(*foo* *bar* ...))
<drmeister> The idea is that I have a collection of special variables that I want to capture their values in make-remote-call-callback so that I can use PROGV to bind them when I call the callback code.
<drmeister> So that the callback-code can run in the dynamic environment that existed when make-remote-call-callback was evaluated.
<Bike> ...what is the list* for?
<drmeister> Hmm.
<drmeister> I want (eval ...) to return a list of the values of the special variables.
<Bike> (mapcar #'symbol-value *special-variables*)
Josh_2 has joined #lisp
<drmeister> Oh - that's good.
pjb has joined #lisp
<drmeister> This is what will use it...
fikka has joined #lisp
pjb has quit [Remote host closed the connection]
<Bike> seems reasonable
pierpa has quit [Quit: Page closed]
fikka has quit [Ping timeout: 248 seconds]
whoman has quit [Remote host closed the connection]
whoman has joined #lisp
Josh_2 has quit [Ping timeout: 248 seconds]
Guest81424 has quit [Remote host closed the connection]
Guest81424 has joined #lisp
daniel-s has joined #lisp
mson has quit [Quit: Connection closed for inactivity]
dieggsy has quit [Remote host closed the connection]
pjb has joined #lisp
SaganMan has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
schoppenhauer has quit [Ping timeout: 248 seconds]
schoppenhauer has joined #lisp
jstoddard has quit [Quit: Goodnight.]
wxie has joined #lisp
kamog has joined #lisp
rocx has joined #lisp
FreeBirdLjj has joined #lisp
caffe has joined #lisp
<rocx> dumb question. i want a function called "sequence" in a package of mine but it apparently violates a lock on the :common-lisp package. is there a way to bypass that without tampering with my CL implementation?
<Bike> shadow it in the package definition
<Bike> (defpackage rocx-thing (:use #:cl) (:shadow #:sequence))
<Bike> this means that if you do want to use the cl symbol (it's a type) you will have to qualify it
myrkraverk has joined #lisp
<caffe> sesilly question: i'm already well aware that cmucl/sbcl are the de facto recommended open source CL implementations that most everyone uses and recommends, that works with all the goodies we're used to... but why again is GCL a supposed no-no?
* rocx looks into whatever shadowing is.
<Bike> caffe: it sucks.
wxie has quit [Quit: Bye.]
<caffe> what sucks about it?
<Bike> it is just mdae for running maxima. it is not very conformant, even, let alone having extra features
<Bike> that said, sbcl and cmucl are certainly not your only options, ccl is good, ecl and clisp are ok too
<caffe> i'm not unhappy with sbcl, i'm just curious how other implementations differ
<caffe> and i find the GCL's intermediate step of compiling down to C interesting, on paper anyway.
<Bike> ecl does that as well.
raphaelss has joined #lisp
<caffe> ahh, i'll have a look at that
<pjb> caffe: I don't often recommend cmucl or sbcl.
<caffe> initially i got the idea ecl was for embedded platforms, and skimmed over it
<pjb> caffe: I would rather recommand to use several implementations, depending on the lifecycle of your software.
<Bike> heh, no. a lisp implementation for embedded machines would be difficult.
<caffe> pjb: i'm not working on any production code here, just studying pieces still
<Bike> self contradicting
<pjb> indeed ecl supersedes gcl.
<hooman> hmm why many implementations ?
python476 has quit [Ping timeout: 248 seconds]
<pjb> hooman: different features.
<pjb> hooman: To get help choosing a CL implementation, connect to telnet://hubble.informatimago.com:8101 ; have a look at http://www.cliki.net/Common%20Lisp%20implementation
<pjb> hooman: and there are way fewer CL implementations than C implementations. gcc, clang, icc, tcc, cint, eic, etc…
<pjb> Visual C
<hooman> hehe.
<hooman> maybe clang, at least for free
<hooman> been gnu for quite a time there
<hooman> i like sbcl and ecl. it would be nice to try clozure someday
<caffe> pjb: thank you. ecl is much closer to what i was looking for in this exercise
<pjb> You would use them only to generate the production binary. Use cint or eic for interactive development.
<pjb> caffe: why do you wan to go thru a C intermediate code? Why would you care?
<pjb> It is bound to be more efficient to generate directly native code.e
<hooman> pjb, ah true.. that is very interesting. back when i was doing C there was no such thing
<caffe> I'm curious to see how CL is implemented in C
<Bike> the ecl manual has some internals information
<pjb> ok. Then sure. You may also have a look at mocl (commercial, targetting Android and iOS), and clicc (free software), who both generate C code too (translate CL to C).
<pjb> mocl is at https://wukix.com
<caffe> i plan on sticking to sbcl for serious work, this is just for fun
<caffe> that's pretty cool
<caffe> (mocl)
<pjb> Like gcc, it's not a complete CL implementation.
<pjb> This means basically that you cannot take an existing CL program and compile it for Android or iOS.
<caffe> i would expect not
<pjb> But you can develop a new program (and new libraries) for thos targets.
<pjb> I would expect yes.
<pjb> If I can't compile my libraries, it's almost useless: I would have to rewrite everything from scratch, a 20-year work!
<caffe> i'm still a student of the language family
<caffe> it's mostly all just 'lisp' to me, and i spend my time in a few different dialects, but i'm not too fond of working with scheme so far
FreeBirdLjj has quit [Remote host closed the connection]
<rocx> wow. usually scheme is cool to most novices.
<caffe> for me it's the one that leaves me scratching my head the most
<rocx> what's troubling you there?
<caffe> i have more first-try successes with testing things in CL or elisp
<caffe> but with scheme, nope
<caffe> well, it might be due to the fact that scheme is what i picked up last, and not really by choice
<caffe> and the one i've spent the least time with
<rocx> ah. the idea of even functions being variables is an interesting one.
<hooman> let there be one let
TeMPOraL has joined #lisp
FreeBirdLjj has joined #lisp
<caffe> mostly it comes down to this... for the elementary stuff i'm wading through, most of it works in either sbcl or elisp with no modification. (though this will not be the case down the road)
<caffe> with scheme, it seems i have to rewrite it
<caffe> and i just can't justify the expense most of the time
<caffe> a few things use scheme as a configuration syntax, and that's about all i leave it at
<mfiano> Does this mean that anything using babel (and therefor cffi) in a dumped binary image breaches licenses? I can't believe this note was commited 10 years ago and just now being noticed... https://github.com/cl-babel/babel/blob/master/NOTES#L4-L6
<mfiano> I'm no lawyer but that smells bad to me
<beach> Good morning everyone!
<caffe> morning beach o/
rippa has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
nika has joined #lisp
vlatkoB has joined #lisp
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 248 seconds]
Bike has quit [Quit: Lost terminal]
mson has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
damke has quit [Ping timeout: 240 seconds]
damke has joined #lisp
panji has left #lisp [#lisp]
phax has joined #lisp
<flip214> In case there are any iterate-devel moderators listening, please take a look at the queue. thank you!
phax has quit [Client Quit]
rumbler31 has quit [Remote host closed the connection]
chyee has joined #lisp
daniel-s has quit [Quit: Konversation terminated!]
chyee has quit [Quit: leaving]
juki has joined #lisp
vaporatorius has quit [Ping timeout: 240 seconds]
vaporatorius has joined #lisp
neoncontrails has joined #lisp
fikka has joined #lisp
angavrilov has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
juki has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
neoncontrails has quit [Remote host closed the connection]
<myrkraverk> Is it possible to convert "select interval '1 second' " to postmodern s-expressions?
<myrkraverk> I haven't figured out a way to tell postmodern to use the interval keyword.
sjl___ has joined #lisp
rumbler31 has joined #lisp
sjl___ has quit [Ping timeout: 248 seconds]
rumbler31 has quit [Ping timeout: 248 seconds]
thebardian has joined #lisp
thebardian has quit [Remote host closed the connection]
safe has quit [Read error: Connection reset by peer]
mishoo has joined #lisp
pjb has quit [Ping timeout: 258 seconds]
mson has quit [Quit: Connection closed for inactivity]
pjb has joined #lisp
Arcaelyx has joined #lisp
pjb has quit [Ping timeout: 264 seconds]
vydd has joined #lisp
raphaelss has quit [Remote host closed the connection]
raphaelss has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
auxo has joined #lisp
lnostdal has quit [Ping timeout: 248 seconds]
thebardian has joined #lisp
fikka has joined #lisp
random-nick has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
Ellenor is now known as Reinhilde
shka has joined #lisp
QualityAddict has joined #lisp
mishoo has quit [Ping timeout: 248 seconds]
sebastien_ has quit [Ping timeout: 250 seconds]
random-nick has quit [Ping timeout: 248 seconds]
CrazyEddy has quit [Ping timeout: 248 seconds]
Arcaelyx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
nika has quit [Quit: Leaving...]
Tobbi has joined #lisp
mishoo has joined #lisp
rumbler31 has joined #lisp
random-nick has joined #lisp
rumbler31 has quit [Ping timeout: 252 seconds]
random-nick has quit [Remote host closed the connection]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sebastien_ has joined #lisp
milanj has joined #lisp
mishoo_ has joined #lisp
mishoo has quit [Read error: Connection reset by peer]
lnostdal has joined #lisp
NaNDude has quit [Ping timeout: 258 seconds]
wxie has joined #lisp
mishoo__ has joined #lisp
lnostdal has quit [Ping timeout: 268 seconds]
mishoo_ has quit [Read error: Connection reset by peer]
damke_ has joined #lisp
damke has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
BitPuffin|osx has joined #lisp
wxie has quit [Ping timeout: 240 seconds]
sz0 has joined #lisp
smokeink has joined #lisp
<shaftoe> can multiple-value-bind be used like... (multiple-value-bind (slot1 slot2) my-object (..)) to destructure slots from an object?
scymtym has quit [Ping timeout: 240 seconds]
<smokeink> there's with-slots
random-nick has quit [Remote host closed the connection]
jfb4_ has joined #lisp
<shaftoe> perfect, thanks smoke
mishoo__ has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
joncol has joined #lisp
<joncol> Hi, I just started playing around with Common Lisp + SDL2 in Emacs (on Linux). My problem is that when I try to resume `(sldb-continue)' after fixing an error, the SDL window is closed. (I'm trying with an simple `(error "xyz")'.) Is there a simple way to keep it open and continue on with "REPL development" after fixing the error?
jfb4 has quit [Ping timeout: 240 seconds]
jfb4_ has quit [Ping timeout: 260 seconds]
random-nick has quit [Remote host closed the connection]
jfb4 has joined #lisp
random-nick has joined #lisp
gabot has quit [Ping timeout: 264 seconds]
random-nick has quit [Remote host closed the connection]
BitPuffin|osx has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
<jackdaniel> joncol: you may find more luck on #lispgames channel, people there are more aware about Lisp <> SDL
<jackdaniel> maybe try (break "xyz") instead
<jackdaniel> and put some handler-case inside the loop, if you don't want it to stop
<jackdaniel> another thing is that maybe there is some magical flag in sdl starting function, like :don-stop-on-erros t
<jackdaniel> ah, you already asked there, sorry
<joncol> OK, I'll try.
scymtym has joined #lisp
<joncol> What's the function name for creating a handler?
<jackdaniel> operator name
<jackdaniel> handler-case
<jackdaniel> btw, there is now "search" utility on l1sp.org
<jackdaniel> (note, second letter is a digit "one", not a letter "i"
<jackdaniel> )
<joncol> Nice, I'll have a look
<jackdaniel> s/now "search"/nice "search"/
<joncol> OK, (break "x") worked.
plll[m] has joined #lisp
<flip214> can somebody tell me what's the difference?
<flip214> (list* 'with-slots ',vars instance body)
<flip214> `( with-slots ',,vars ,instance ,@ body)
Baggers has joined #lisp
sjl___ has joined #lisp
<_death> shouldn't that be ,',vars
sjl___ has quit [Ping timeout: 240 seconds]
juki has joined #lisp
fikka has joined #lisp
tfeb has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
python476 has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
milanj has joined #lisp
Baggers has quit [Remote host closed the connection]
Baggers has joined #lisp
lnostdal has joined #lisp
juki has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
rumbler31 has joined #lisp
NaNDude has joined #lisp
caffe has left #lisp [#lisp]
rumbler31 has quit [Ping timeout: 268 seconds]
<joncol> Is there any equivalent of M-x describe-function for CL functions? Where you can narrow
<joncol> down a list of matching search results, interactively?
<Shinmera> The narrowing is not actually done by describe-function.
<Shinmera> For the actual functionality performed by describe-function there's, well, DESCRIBE.
<joncol> Yes, I was using counsel-describe-function, so Ivy.
<joncol> I see, thanks.
<Shinmera> APROPOS will usually somewhat fuzzily match your query.
<Shinmera> For anything more than that, brew your own solution on top of do-all-symbols or whatever.
milanj has quit [Read error: Connection reset by peer]
milanj has joined #lisp
<scymtym> depending on what you are looking for and how your completion is set up, you can also try whether you like slime-apropos, slime-describe-symbol, slime-describe-function or hyperspec-lookup
<joncol> Nice, I'll try.
wxie has joined #lisp
Karl_Dscc has joined #lisp
vydd has quit [Ping timeout: 248 seconds]
markong has joined #lisp
dddddd has joined #lisp
smokeink has quit [Remote host closed the connection]
klltkr has joined #lisp
smokeink has joined #lisp
damke has joined #lisp
damke_ has quit [Ping timeout: 240 seconds]
Bike has joined #lisp
jmercouris has joined #lisp
smokeink has quit [Quit: Leaving]
<jmercouris> If I implement something like (defmethod method-name ((self parent-class))), can I do something like (method-name object-from-child-class)?
<jmercouris> I assume yes, but it will go through and choose the most specific method, so if there is an implementation specialized to the child function it will use that instead
<jmercouris> yeah?
<jmercouris> s/child function/child class
<Shinmera> Well yeah, how else would it work?
<shka> jmercouris: yes, selection algorithm is simple
<jmercouris> I don't see how else it could work, I just wanted to make sure my understanding was correct
<jmercouris> thanks!
<Shinmera> I mean, at least that's how it works for the standard method combination.
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Shinmera> Method combinations like PROGN, APPEND, etc. will call all applicable methods.
fikka has joined #lisp
<jmercouris> Shinmera: What do you mean by that? PROGN is a function no?
<jmercouris> Or a macro, I'm not sure, but it definitely does not appear to be a method
<Shinmera> Generic functions have a "method combination" that dictates which methods are evaluated how.
<Shinmera> One of the method combinations defined is called PROGN, which calls all applicable methods in sequence.
<jmercouris> Ah okay
<Shinmera> How the standard method combination works is illustrated nicely with this picture from the japanese wikipedia: https://ja.wikipedia.org/wiki/Common_Lisp_Object_System#/media/File:Method-combination.png
<beach> Very nice picture.
<Shinmera> also see
<Shinmera> clhs 7.6.6.4
<specbot> Built-in Method Combination Types: http://www.lispworks.com/reference/HyperSpec/Body/07_ffd.htm
<joncol> Baggers: I switched to using your livesupport quicklisp project instead of manually copy/pasting. But I'm not having any success with 'update-repl-link'. After calling my main function, the input that I enter at the REPL doesn't get evaluated until after quitting the main loop. Any idea how to fix this?
<jmercouris> Shinmera: Aha, yes, that is an extremely good picture, it makes a lot of sense now
Kevslinger has joined #lisp
<jmercouris> beach: A couple weeks ago you had advised me that my interface object should be a class, and that I should avoid using an interface package with a bunch of (:export #:func-1) declarations
<jmercouris> Could you please expand on that rationale?
<Baggers> joncol: it was intended to be used from inside the main loop of you game/whatever. cl-sdl2 dispatches to the main thread your code & repl are already on seperate threads
``Erik_ is now known as ``Erik
<beach> jmercouris: That doesn't sound like something I would say.
<jmercouris> beach: Let me go through the logs and try to provide some context, one second
<joncol> Baggers: So what does that mean? Difficult to get around?
<beach> jmercouris: The Common Lisp equivalent of an interface is called a "protocol", and it consists of a bunch of (generic) functions and perhaps some protocol classes, i.e. classes that are not meant to be instantiated.
<jmercouris> beach: Please see the conversation starting at 2017-10-25T14:37:06Z
<jmercouris> You may wish to read even a little bit earlier than that, I'm not sure how much context you need
<beach> The logs I use are in UTC-9. I'll see if I can find it.
<Baggers> joncol: it's just not made to work with cl-sdl2's with-event-loop (or anything that handles threading for you like this). the only time update-repl-link is valid is when your repl and main loop are on the same thread (so your loop is blocking) and you want to keep the repl working. It's a difference in philosophy between this libs really, cl-sdl2 effectively says 'this stuff is hard so we handle it for you' and cepl
<Baggers> says 'it's not my businesses to dictate your threading, you need to handle this'
<jmercouris> beach: Here's a string you can search for: should I export the items from my core to make them visible to the backend?
<beach> Found it.
<Baggers> joncol: both are valid, but not every tools makes sense in both cases
<joncol> Baggers: OK, maybe I should switch to cepl then :)
<beach> jmercouris: I still don't see where I said something like that.
<beach> Can you find my line?
wxie has quit [Ping timeout: 248 seconds]
<Baggers> joncol: if it helps, then great :) It has a different set of tradeoffs of course. cl-sdl2 is a great project
<jmercouris> beach: pjb: That said, using the same package for all backends, while quite easy, is a severe case of Singleton pattern. It's probably to be avoided. Reifying the backend into a CLOS object let you specify attributes and provides a more definite interface. --------- Then you said beach: jmercouris: I am with pjb. I always think in terms of a possible LispOS, so that several backends are present in memory simultaneously. Then each one
<jmercouris> is represented by some object, and the processing function become generic functions that dispatch on that object. Each file would then contain methods on those generic function with one particular backend being specialized on.
<jmercouris> Therefore, you didn't say it directly yourself, but you did agree with it, pjb actually said it now looking at the logs, but I'm still wondering exactly why one vs the other
<beach> jmercouris: OK, I see what you mean.
wxie has joined #lisp
<jmercouris> I've been thinking about this conversation for close to a month now
<beach> Let me see if I can find an example that is not too complicated...
<jmercouris> I'm about to try to convert my "package" to a type of CLOS thing, and I'm wondering what will the benefits be, I guess some of them I will realize as I am coding it, and what are some pitfalls to avoid
<beach> Hold on. I am still thinking...
<beach> jmercouris: Suppose you have a program that controls electric motors.
<beach> jmercouris: You have operations like start, stop, and set-speed.
<beach> Now, those operations work differently on different types of motors.
<beach> First possibility: you realize that you are only ever going to use one type of motor in your Common Lisp program, so you make a package called motor, and has definitions of those operations in it. But you have several versions of that package, one version for each type of motor, and you just load the version for the motor you are currently manipulating.
wxie has quit [Quit: Bye.]
<beach> Second possibility: you think that in some distant future, you might want to have several motors of different types in the same Common Lisp program. Then, you represent the motor as a class, and you have different methods on those operations for different types of motors.
<beach> I favor the second solution.
<jmercouris> When you say in the same common lisp program, you mean running on same process or whatever it is called yeah?
<beach> Yes.
<jmercouris> Like you started up your program, and loaded 2 or more motor types
<jmercouris> Ok, got it
<jmercouris> Aha, I see it now
<jmercouris> I guess it is a possibility in the future that this will be the case
<beach> It often turns out that way.
<jmercouris> Especially on Linux where there are more than 1 gui library available in Lisp
<beach> And when I said "think LispOS", I meant, you only have a single "process", so you don't "load" things. They are always loaded, so you can't use the first possibility.
<jmercouris> Right, that makes sense
<jmercouris> How large is the performance hit for dispatching function calls when adding more methods? is it even worth thinking about?
<Shinmera> As always, depends on your constraints
<beach> It is not worth thinking about. In my dispatch technique, the dispatch takes O(log n) time where n is the number of methods (roughly speaking).
<Shinmera> I'm running a game engine that makes heavy use of CLOS pretty much everywhere and so far I've been fine.
<Shinmera> And this is even without the improvements beach's technique would offer.
<beach> And, while in my example, the motor would already be a parameter for the operations, there are situations where you need another parameter. For instance, in my compiler, I take a SYSTEM parameter, so that I can compile for different Common Lisp systems by passing an instance representing SICL, Clasp, or something else.
<jmercouris> Ok, good to know, I think I will go ahead and make this change
<jmercouris> I finally understand it
<beach> Great!
<jmercouris> Thanks for the advice!
<beach> Pleasure.
raynold has quit [Quit: Connection closed for inactivity]
SaganMan has quit [Quit: WeeChat 1.6]
michalisko has joined #lisp
mishoo__ has joined #lisp
Patzy has quit [Quit: leaving]
Patzy has joined #lisp
smokeink has joined #lisp
vydd has joined #lisp
vydd has joined #lisp
vydd has quit [Changing host]
dansa has joined #lisp
mishoo__ has quit [Ping timeout: 268 seconds]
<dansa> EMACS 24.3.1. Just tried installing geiser from MELPA and it installs with errors in the compilation log. Most errors are: Cannot open load file: subr-x. When I try M-x run-geiser I the same the same message.
zRecursive has joined #lisp
<dansa> (EMACS on Windows. Interested in running Geiser with Racket.)
<dansa> Any suggestions is appreciated. Thank you!
<beach> dansa: This channel is not about Emacs.
<beach> dansa: It is dedicated to Common Lisp.
<dansa> Maybe #emacs is better indeed. Thanks.
<zRecursive> hello
<beach> Hello zRecursive.
<zRecursive> i just install IRC on Android phone, why can't i join #FreeBSD?
<zRecursive> off topic, But #lisp is ok
zRecursive has left #lisp [#lisp]
Amplituhedron has quit [Ping timeout: 240 seconds]
FreeBirdLjj has joined #lisp
pseudonymous has joined #lisp
zRecursive has joined #lisp
jstoddard has joined #lisp
zRecursive has quit [Read error: Connection reset by peer]
<flip214> In case there are any iterate-devel moderators listening, please take a look at the queue. thank you!
<dwts> Hey guys, I'm interested in a good library to add cli arguments (short options if that matters) to my program. Any suggestions? BTW I'm using sbcl implementation if that matters too.
<dwts> after searching the cliki, I found this one: They are always loaded, so you can't use the first possibility.
<dwts> 15:38 < jmercouris> Right, that makes sense
<dwts> oops
<flip214> dwts: I've used https://github.com/didierverna/clon in the past
<dwts> flip214: thanks, I will check that one too
<dansa> Haven't understood the difference between (lambda () 1) and #'(lambda () 1). Can you explain?
<Bike> the former macroexpands into the latter.
<Bike> so not a lot of differenc.e
<dansa> Okay. So ((lambda () 1)) --> 1. But (#'(lambda) () 1) says illegal function call.
<dansa> I must use funcall there. I don't get that.
<Bike> oh, that's a separate syntax matter
<Bike> usual calls are (symbol form*), but ((lambda ...) form*) is also specifically allowed
<Bike> either way, the callee isn't evaluated normally.
<Bike> clhs 3.1.2.1.2
smokeink has quit [Quit: Leaving]
lnostdal has quit [Ping timeout: 240 seconds]
k-stz has joined #lisp
<dwts> Bike: wtf, did you remember that by heart? :P (the 3.x.x.x.x)
rippa has quit [Ping timeout: 248 seconds]
<Bike> no, obviously i looked it up
<dwts> ah :P
<Bike> syntax for calls in in the evaluation section, which is easy to find from the ToC
rippa has joined #lisp
<flip214> attila_lendvai: are you an iterate mailing list moderator? if so, please check the queue.
lnostdal has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
<phoe> Evening.
<oleo> evening phoe
<phoe> dwts: clon is unixlike-only and is pretty damn huge.
<phoe> It's much simpler and also works on Windows.
damke has quit [Read error: Connection reset by peer]
<dwts> phoe: hey, thanks, I'm not really interested in supporting windows, but I'm interesting in smaller packages
<dwts> I'll check both libs suggested
<joncol> When calling cl-sdl2's add-timer function, it expects a callback function as its argument. When I try to call it with a standard Common Lisp function, I get the error "fell through ETYPECASE expression. Wanted one of (CFFI-SYS:FOREIGN-POINTER AUTOWRAP:WRAPPER NULL)." Is there some call I should make to wrap the CL function ?
lnostdal has quit [Ping timeout: 240 seconds]
<phoe> You want a CFFI callback.
<phoe> Define a CFFI callback, which may call any CL code, and then get the pointer to that callback. Pass this to your function.
<phoe> dwts: no problem. My use case was supporting Windows, so I used that one.
damke has joined #lisp
FreeBirdLjj has joined #lisp
test1600_ has joined #lisp
<joncol> phoe: Do you see something obviously wrong with http://sprunge.us/GehU ? I still get the same error.
<joncol> phoe: Sorry, should be: http://sprunge.us/RXff
lnostdal has joined #lisp
<joncol> phoe: Ah, I was missing (cffi:callback)
juki has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 255 seconds]
sz0 has quit [Quit: Connection closed for inactivity]
nowhereman_ has joined #lisp
rumbler31 has joined #lisp
Guest81424 has quit [Remote host closed the connection]
Guest81424 has joined #lisp
varjagg has joined #lisp
Josh_2 has joined #lisp
neoncontrails has joined #lisp
fikka has joined #lisp
wooden has quit [Ping timeout: 248 seconds]
Guest972` has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
Guest972` has quit [Remote host closed the connection]
TCZ has joined #lisp
mishoo__ has joined #lisp
turkja has joined #lisp
phax has joined #lisp
phax has quit [Client Quit]
bradw has joined #lisp
neoncontrails has quit [Remote host closed the connection]
joncol has quit [Quit: leaving]
bradw is now known as warweasle
neoncontrails has joined #lisp
fikka has joined #lisp
lnostdal has quit [Ping timeout: 240 seconds]
<jmercouris> I have a strange problem I'm trying to get around, I've described it here: https://gist.github.com/9e05ec148d43b7a8191dcc40a5193774
nowhereman_ has quit [Ping timeout: 248 seconds]
<Bike> what is the definition of switch-buffer-next.
<Bike> that doesn't do anything to active-buffer, unless set-visibl-eactive-buffer does.
<jmercouris> Yeah, sorry let me just point to the whole file
<jmercouris> Itll be easier
<jmercouris> set-active-buffer does the setf which is invoked by set-visible-active-buffer
<Bike> why do you call set-visible-active-buffer with two arguments when it only takes one?
<jmercouris> Where do i do that?
<Bike> in switch-buffer-previous
<Bike> no, wait, i misread.
<jmercouris> You see the problem though right?
<jmercouris> my (let ((former-active-buffer *active-buffer*))
<jmercouris> within the context of that let, changes to *active-buffer* will change the value of former-active-buffer
knobo has joined #lisp
<Bike> mutations of the value should, but that's not what you're doing.
<Bike> switch-buffer-previous and -next would be simpler with mod, as a tangent
jmercouris has quit [Remote host closed the connection]
<Bike> how many buffers do you have in *buffers*?
<knobo> Is the "new revolutionary" programming language princip reacrive programming just like common lisp series?
jmercouris has joined #lisp
<jmercouris> Bike: Sorry, my emacs crashed
<knobo> I must admit I have never used series
<knobo> I've only tried it out to learn it. About 10 years ago.
neoncontrails has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
<jmercouris> Bike: You know, it just started working
<jmercouris> I have zero explanations
neoncontrails has joined #lisp
<jmercouris> Restarting my image seemed again to fix it
<Bike> gremlins, obviously
<jmercouris> I think that CCL is unstable when cocoa is loaded
<jmercouris> it doesn't like redefinitions, probably some deep esoteric bugs in the ccl obj-c bridge
<jmercouris> I have one other strange message though, not sure why
<dansa> I define a package like this: "(defpackage :homepage (:use :cl :hunchentoot))" but then I load the file first time, it always complains that hunchentoot isn't loaded. i can load it with quicklisp, but i'm wondering how I could automate that loading
<dansa>
<jmercouris> Here's the definition, and the compiler warning: https://gist.github.com/998d78521739fc5c356d917b5d541901
<jmercouris> "Function result ignored in call to DELETE", why is that even a problem?
<Bike> because delete does not have to have side effects.
<beach> dansa: Write yourself an ASDF system definition.
<Bike> you probably want to do (setf *buffers* (delete former-active-buffer *buffers*))
<jmercouris> dansa: you have to require it before hand
<jmercouris> Bike: Ah, okay it is implementation specific
<jmercouris> I see
<jmercouris> I will do the setf then, thakn you
<jmercouris> dansa: Here's an example of an ASDF file: https://github.com/nEXT-Browser/nEXT/blob/master/next/next.asd
<jmercouris> as you can see, I have some depends-on which are loaded before any of my code
<jmercouris> There is where you'd put hunchentoot - I cannot say that name seriously :D
thinkpad has quit [Ping timeout: 248 seconds]
<dansa> so i should write some homepage.asd and place it on my current dir?
<jmercouris> dansa: Yeah, something like that
<jmercouris> the asd needs to be in a special load path
<jmercouris> the name of which I cannot remember, to automatically be picked up by quicklisp
<jmercouris> then you can quicklisp load your system
<dansa> i guess i'll just require it for the time being
<loke`> jmercouris: local-projects in the QL diretory
<loke`> I just symlink all my project directories there.
<jmercouris> Though not reccomended you can do something like: (push "./" asdf:*central-registry*)
<jmercouris> (ql:quickload "homepage" :silent t)
<jmercouris> loke`: There's also some config for changing the actual search path
<loke`> jmercouris: Yes, there is. Who knows what that is though :-)
<loke`> Xach would know :-)
<jmercouris> I know what it is, I've done it on my own machine, I just have to figure out which file I edited to do it
knobo has quit [Ping timeout: 248 seconds]
<jmercouris> Okay I've figured it out
<jmercouris> ~/.config/common-lisp/source-registry.conf.d/user-lisp.conf
<jmercouris> Then within that file: (:tree "/some/path/to/look/for/system/definitions/")
<jmercouris> loke`: see previous messages
fikka has joined #lisp
fikka has quit [Ping timeout: 255 seconds]
lnostdal has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
SamSkulls has quit [Read error: Connection reset by peer]
juki` has joined #lisp
juki has quit [Ping timeout: 240 seconds]
juki` has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
turkja has quit [Ping timeout: 248 seconds]
<attila_lendvai> flip214: I don't think I have the list admin password, but I updated the index.html
test1600 has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
LiamH has joined #lisp
sabrac has joined #lisp
attila_lendvai has quit [Quit: Leaving.]
<sabrac> Hello all
turkja has joined #lisp
lnostdal has quit [Ping timeout: 248 seconds]
ryanwatkins has joined #lisp
<beach> Hello sabrac.
<oleo> evening
TCZ has quit [Quit: Leaving]
karswell has joined #lisp
raynold has joined #lisp
scymtym has quit [Ping timeout: 240 seconds]
test1600 has quit [Quit: Leaving]
<dansa> does elephant work on windows? it seems not
<dansa> maybe that's why my (ql:system-apropos "elephant") says 'no value'
<dansa> i looked at elephant's homepage and it appears it's not supported on windows x64
<dansa> i write on windows, though production code runs on unix
troydm has quit [Ping timeout: 248 seconds]
test1600_ has quit [Ping timeout: 240 seconds]
heurist has quit [Ping timeout: 258 seconds]
heurist has joined #lisp
SaganMan has joined #lisp
scymtym has joined #lisp
troydm has joined #lisp
vivek has joined #lisp
d4ryus1 is now known as d4ryus
<flip214> minion: memo for attila_lendvai: thank you; do you know a list admin? someone who cares about iterate?
<minion> Remembered. I'll tell attila_lendvai when he/she/it next speaks.
Rawriful has joined #lisp
lnostdal has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
pjb has joined #lisp
jstoddard has quit [Remote host closed the connection]
mson has joined #lisp
thebardian has quit [Remote host closed the connection]
turkja has quit [Ping timeout: 240 seconds]
vlatkoB has quit [Ping timeout: 248 seconds]
vlatkoB has joined #lisp
neoncontrails has quit [Remote host closed the connection]
heurist has quit [Ping timeout: 240 seconds]
milanj has joined #lisp
heurist has joined #lisp
Arcaelyx has joined #lisp
neoncontrails has joined #lisp
rocx has quit [Ping timeout: 252 seconds]
neoncontrails has quit [Remote host closed the connection]
vydd has quit [Ping timeout: 252 seconds]
<phoe> beach: I finally read the Clordane spec and I like it.
michalisko has quit [Quit: ZNC 1.6.3+deb1 - http://znc.in]
<phoe> I haven't seen any errors that would be obvious to me at a first glance.
sabrac has quit [Quit: Konversation terminated!]
ryanwatk` has joined #lisp
random-nick has quit [Quit: quit]
random-nick has joined #lisp
<beach> Great! Thanks!
<shka> good evening
FreeBirdLjj has quit [Remote host closed the connection]
<shka> beach: i corrected errors you spot in the docs
Guest24088 has quit [Remote host closed the connection]
itruslove has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
michalisko has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
dtornabene has joined #lisp
<shka> phoe: what is clordane?
ryanwatk` has quit [Read error: Connection reset by peer]
ryanwatk` has joined #lisp
ryanwatk` has quit [Remote host closed the connection]
ryanwatk` has joined #lisp
Tobbi has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
nowhereman_ has joined #lisp
fikka has joined #lisp
Tobbi has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pmetzger has joined #lisp
sebastien_ has quit [Ping timeout: 258 seconds]
klltkr has joined #lisp
sebastien_ has joined #lisp
<shka> phoe: summary please?
trosa-work has joined #lisp
nowhereman_ has quit [Ping timeout: 248 seconds]
nowhereman_ has joined #lisp
sebastien_ has quit [Remote host closed the connection]
sebastien_ has joined #lisp
nowhereman_ has quit [Ping timeout: 240 seconds]
trosa-work has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 250 seconds]
akash47_ has quit [Quit: leaving]
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Jesin has quit [Quit: Leaving]
klltkr has joined #lisp
juki has joined #lisp
akash47 has joined #lisp
fikka has joined #lisp
karswell has quit [Remote host closed the connection]
video-girl-yutub has quit [Quit: • IRcap • 8.72 •]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
daniel-s has joined #lisp
Colleen has quit [Ping timeout: 248 seconds]
Niac_ has joined #lisp
dansa has quit [Ping timeout: 252 seconds]
Niac has quit [Ping timeout: 268 seconds]
warweasle has quit [Ping timeout: 268 seconds]
juki has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
pmetzger has quit [Remote host closed the connection]
sebastien_ has quit [Quit: leaving]
sebastien_ has joined #lisp
Karl_Dscc has quit [Remote host closed the connection]
zachk has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Vicfred has joined #lisp
isBEKaml has joined #lisp
angavrilov has quit [Remote host closed the connection]
isBEKaml has quit [Quit: Bye]
slassh has joined #lisp
slassh has quit [Read error: Connection reset by peer]
isBEKaml has joined #lisp
<phoe> shka: it's a debugger specification.
<jfb4> What was the keyboard technology of the Knight keyboard on the Lisp Machine that is supposed to be amazing? Hall effect keys but what else?
<shka> what it brings to the table?
<shka> jfb4: multiple modification keys?
<jfb4> shka: not in terms of layout, but in terms of build spec
<shka> right
Rawriful has quit [Quit: WeeChat 1.4]
shifty has quit [Ping timeout: 248 seconds]
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
basket has joined #lisp
vydd has joined #lisp
tfeb has quit [Remote host closed the connection]
tfeb has joined #lisp
tfeb has quit [Ping timeout: 248 seconds]
<jmercouris> jfb4: You could plug it into a lisp machine
<jmercouris> plus the layout sucked
<jmercouris> not sure why people seem to think it was a good keyboard :P
<jmercouris> if I was going to buy any keyboard today, especially one for programming/emacs, this is the ultimate I think: https://ultimatehackingkeyboard.com
itruslove has joined #lisp
<basket> jmercouris: What was wrong with the layout?
giraffe has joined #lisp
<jmercouris> basket: It has no focus on ergonomics
omilu has joined #lisp
wooden has joined #lisp
pmetzger has joined #lisp
neoncontrails has joined #lisp
pmetzger has quit [Ping timeout: 240 seconds]
attila_lendvai has joined #lisp
attila_lendvai has quit [Changing host]
attila_lendvai has joined #lisp
pmetzger has joined #lisp
fikka has joined #lisp
pmetzger has quit [Ping timeout: 250 seconds]
kamog has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
fikka has quit [Ping timeout: 250 seconds]
dfgdfgdf has joined #lisp
Guest81424 has quit [Remote host closed the connection]
Guest81424 has joined #lisp
fikka has joined #lisp
caffe has joined #lisp
rocx has joined #lisp
gabot has joined #lisp
<hooman> i lent out two keyboards yesterday, i am left with an old hp ps/2 kb
mishoo__ has quit [Ping timeout: 258 seconds]
dtornabene has quit [Quit: Leaving]
EvW1 has joined #lisp
neoncontrails has quit [Remote host closed the connection]
Amplituhedron has joined #lisp
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
knobo has joined #lisp
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
neoncontrails has quit [Remote host closed the connection]
neoncontrails has joined #lisp
damke_ has joined #lisp
thinkpad has joined #lisp
random-nick has quit [Remote host closed the connection]
CrazyEddy has joined #lisp
damke has quit [Ping timeout: 240 seconds]
attila_lendvai has quit [Quit: Leaving.]
knobo has quit [Ping timeout: 240 seconds]
dansa has joined #lisp
dansa has quit [Changing host]
dansa has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
<Josh_2> anyone seen http://i.imgur.com/WnpMFjX.jpg ?
<jmercouris> Can someone please remind me how to implement the printable representation of an object?
mathrick has quit [Ping timeout: 268 seconds]
<jmercouris> hooman: Yes, that is exactly what I am looking for thank you
<hooman> ah good, you are welcome
<jmercouris> when I invoke (print-object some-object nil) my repl will return two lines, one with the printable representation, and the second one as NIL
<jmercouris> why does it not just return 1 line?
<jmercouris> since I have specified an out of nil?
<jmercouris> s/out/stream
<Bike> well, that call isn't really legal, print-object takes a stream, not a stream designator.
<Bike> also, you're not supposed to call print-object yourself.
<Bike> write/print/etc call it for you
<hooman> (and the reason is because, one is the print, and the other is return value print, i think)
<jmercouris> I want the printable representation of an object to use in a view-controller
<Bike> so use write or print.
<Bike> if you want it as a string, you can use write-to-string etc.
<jmercouris> Yes, that is exactly what I want, thank you
<jmercouris> I have a good idea now how I will implement what I want to now
pmetzger has joined #lisp