phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
Lord_of_Life has quit [Read error: Connection reset by peer]
casouri has quit [Ping timeout: 258 seconds]
hhdave has quit [Quit: hhdave]
robdog_ has joined #lisp
Lord_of_Life has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
robdog_ has quit [Ping timeout: 268 seconds]
hiroaki has quit [Ping timeout: 257 seconds]
zmv has joined #lisp
zmv is now known as notzmv
Volt_ has quit [Ping timeout: 250 seconds]
jack_rabbit_ has joined #lisp
matijja has quit [Ping timeout: 272 seconds]
ntbre has joined #lisp
notzmv has quit [Ping timeout: 244 seconds]
<Josh_2> Can I give a nickname to a package I load with quicklisp?
robdog has joined #lisp
<Josh_2> currently using safe-queue I'd like to have sq:make-queue instead of safe-queue:make-queue for example
<Josh_2> if that's possible
<Bike> you load systems with quicklisp, not packages, but you can add nicknames, yeah.
<Bike> clhs rename-package
<Josh_2> awesome thanks :)
Lycurgus has joined #lisp
<Xach> you can use just MAKE-QUEUE if you want! that's super short!
robdog has quit [Ping timeout: 268 seconds]
<Josh_2> That is true :) however I got a conflic with clx and usocket so I just went with using the package designators at the start (I think that's what it is)
robdog has joined #lisp
<Xach> ah, then it is definitely time to make a choice
karlosz has quit [Quit: karlosz]
void_pointer has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
robdog has quit [Ping timeout: 272 seconds]
loli has quit [Ping timeout: 246 seconds]
<Josh_2> Is there an advantage to do say (defmacro pop-queue () `(sq:dequeue *commands-queue*)) over (defun pop-queue () (sq:dequeue *commands-queue*))? I've seen it done with accessors before
<Josh_2> perhaps with the defun I could inline it as it is only a line
aindilis has joined #lisp
<Xach> Josh_2: there is no advantge and some disadvantages
<Josh_2> I'll change them to functions then :)
<LdBeth> it makes nosence to save a setf expander with doing that
akoana has joined #lisp
parjanya has quit [Remote host closed the connection]
<LdBeth> a explict setf exapander makes the interface more clear
<LdBeth> it also makes not sense to setf a side effect operation
FreeBirdLjj has joined #lisp
lumm has quit [Quit: lumm]
loli has joined #lisp
FreeBirdLjj has quit [Ping timeout: 258 seconds]
robdog has joined #lisp
wusticality has joined #lisp
robdog has quit [Ping timeout: 255 seconds]
varjag has quit [Ping timeout: 255 seconds]
keep_learning_M has quit [Quit: This computer has gone to sleep]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
<aeth> Josh_2: If you have a macro and an equivalent function, always go with the function. If you want sort of macro-like behavior then (declaim (inline function-name)) and you get that. Note that that inline includes the macro's *disadvantage* of not updating the callers when you recompile it. It will give you macro-like performance characteristics while permitting higher order functions and removing a bunch of potential bugs, though.
<pjb> Josh_2: com.informatimago.common-lisp.cesarum.package:add-nickname
<aeth> e.g. (defmacro 2+ (number) `(+ 2 ,number)) vs. (defun 2+ (number) (+ 2 number)) vs. (declaim (inline 2+)) (defun 2+ (number) (+ 2 number)) and for this particular case the 3rd option is probably what you want.
Lycurgus has quit [Quit: Exeunt]
mejja has quit [Quit: mejja]
<Josh_2> Awesome thanks for the info aeth
<aeth> Forgetting , is such a common bug because the author will probably name their variables the same the whole way so it will take a third party using it to spot the missing , so that's one good reason to never use macros when a function will do.
<aeth> e.g. the 2+ macro author might name their number 'number and then write `(+ 2 number) and you'll spot it when you call your number 'n and have to write a pull request
<aeth> i.e. (2+ number) won't catch the missing ,
<aeth> These seem to be incredibly common in exactly the sort of macro-as-inline-function trivial macros, too. Perhaps because the author isn't paying too much attention to something so trivial.
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
Oladon has quit [Quit: Leaving.]
<Josh_2> (bt:make-thread ..) is the way to make a thread that should run in the background, or am I missing something... *thonk*
wusticality has quit [Ping timeout: 245 seconds]
<Josh_2> when I call that on my networking function it just blocks
robdog has joined #lisp
markoong has quit [Ping timeout: 246 seconds]
robdog has quit [Ping timeout: 250 seconds]
loli has quit [Ping timeout: 245 seconds]
wxie has joined #lisp
karlosz has joined #lisp
karlosz has quit [Client Quit]
keep_learning_M has joined #lisp
dlowe has joined #lisp
robdog has joined #lisp
<aeth> Josh_2: (defun hello (n) (format t "Hello, ~D.~%" n)) (defun make-hello (n) (bt:make-thread (lambda () (sleep 10) (hello n)))) (dotimes (i 10) (make-hello i) (sleep 1))
loli has joined #lisp
<aeth> Josh_2: Interestingly, the #'make-hello is actually *mandatory*, or else it reads the *current* value of i (9 for the first thread and 10 for the remaining 9) at the time of printing instead of printing 0 to 9.
<Josh_2> The lambdaaaaa
robdog has quit [Ping timeout: 250 seconds]
<Josh_2> I forgot the lambda
<Josh_2> thanks aeth :)
<aeth> Also don't forget to put it in its own function or be very aware of the variables it's capturing
<Josh_2> The variables its capturing?
<Josh_2> I'm just going (lambda () (receive-data))
<aeth> It's a clsoure. It will have access to all of the outer variables, although if it's just (lambda () (receive-data)) I guess it won't matter. I think in that case (zero arguments) you might just be able to say #'receive-data
<aeth> *closure
<Josh_2> O right
<Josh_2> now I can send data and process data simultaneously :O
<Josh_2> by the power of gray skull!
robdog has joined #lisp
<Josh_2> or grey xD
robdog_ has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
andyyy has joined #lisp
robdog_ has quit [Ping timeout: 268 seconds]
wusticality has joined #lisp
robdog has joined #lisp
<Josh_2> I have a pretty smooth phone mouse now
robdog has quit [Ping timeout: 264 seconds]
wanz has joined #lisp
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
Achylles has quit [Remote host closed the connection]
zmv has joined #lisp
karlosz has joined #lisp
zmv is now known as notzmv
vertigo_ has quit [Ping timeout: 258 seconds]
robdog has joined #lisp
loli has quit [Ping timeout: 255 seconds]
torbo has joined #lisp
vertigo has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
Josh_2 has quit [Remote host closed the connection]
robdog has joined #lisp
loli has joined #lisp
notzmv has quit [Ping timeout: 258 seconds]
robdog_ has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
wusticality has quit [Remote host closed the connection]
robdog_ has quit [Ping timeout: 268 seconds]
wusticality has joined #lisp
wusticality has quit [Ping timeout: 246 seconds]
robdog has joined #lisp
wanz has quit [Quit: wanz]
wanz has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
_whitelogger has joined #lisp
zmv has joined #lisp
wanz has quit [Quit: wanz]
robdog has quit [Ping timeout: 264 seconds]
zmv is now known as notzmv
<beach> Good morning everyone!
<LdBeth> morning, beach
marvin2 has quit [Ping timeout: 272 seconds]
loli has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
Ukari has quit [Ping timeout: 245 seconds]
robdog has quit [Ping timeout: 250 seconds]
Ukari has joined #lisp
loli has joined #lisp
<emaczen> I have a lisp function whose argument gets passed to a particular cffi:foreign-funcall which expects a struct
<emaczen> The "struct" I pass to the lisp function gets automatically translated into a lisp list
<emaczen> How do I stop this automatic translation, or how can I force the list to be converted back to a struct?
robdog has joined #lisp
vilivulpine has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
notzmv has quit [Ping timeout: 250 seconds]
gravicappa has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
rumbler31 has joined #lisp
rumbler3_ has quit [Ping timeout: 245 seconds]
dale has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
dale has joined #lisp
robdog has joined #lisp
optikalmouse has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
wanz has joined #lisp
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
mathrick has quit [Ping timeout: 268 seconds]
Ukari has quit [Quit: Leaving.]
Bike has quit [Quit: Lost terminal]
mathrick has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
ggole has joined #lisp
Oladon has joined #lisp
wusticality has joined #lisp
wanz has quit [Quit: wanz]
robdog has quit [Ping timeout: 268 seconds]
optikalmouse has quit [Quit: Leaving]
wusticality has quit [Ping timeout: 245 seconds]
torbo has left #lisp ["ERC (IRC client for Emacs 26.1)"]
torbo has joined #lisp
torbo has left #lisp ["ERC (IRC client for Emacs 26.1)"]
<LdBeth> emaczen: you mean pass a foreign pointer
robdog has joined #lisp
loli has quit [Ping timeout: 258 seconds]
wanz has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
robdog has joined #lisp
loli has joined #lisp
rippa has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
marvin2 has joined #lisp
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
nanoz has joined #lisp
robdog has joined #lisp
Ukari has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
jack_rabbit_ has quit [Ping timeout: 250 seconds]
_whitelogger has joined #lisp
Oladon has quit [Quit: Leaving.]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
loli has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
abhixec has quit [Ping timeout: 246 seconds]
robdog has quit [Ping timeout: 264 seconds]
loli has joined #lisp
karlosz has joined #lisp
robdog has joined #lisp
emaczen has quit [Ping timeout: 264 seconds]
ravenousmoose[aw is now known as ravenousmoose
ravenousmoose is now known as ravenousmoose[aw
robdog has quit [Ping timeout: 268 seconds]
Posterdati has quit [Remote host closed the connection]
robdog has joined #lisp
wusticality has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
Posterdati has joined #lisp
rippa has quit [Read error: Connection reset by peer]
wusticality has quit [Ping timeout: 255 seconds]
igemnace has quit [Quit: WeeChat 2.3]
rippa has joined #lisp
zmv has joined #lisp
zmv is now known as notzmv
makomo has joined #lisp
FreeBirdLjj has joined #lisp
Arcaelyx has joined #lisp
rumbler31 has quit [Remote host closed the connection]
Grue` has joined #lisp
robdog has joined #lisp
dddddd has quit [Remote host closed the connection]
<Grue`> (loop for x on '(1 2 3 4 5 6) by 'cddr do (print x))
<Grue`> WARNING: Use of QUOTE around stepping function in LOOP will be left verbatim.
<Grue`> anyone know what this warning is supposed to be a warning against?
robdog has quit [Ping timeout: 250 seconds]
wanz has quit [Quit: wanz]
<Nilby> Grue: Probably because it wants you to use #'cddr, maybe to prevent against 'something as a typo.
wusticality has joined #lisp
<makomo> morning
robdog has joined #lisp
Arcaelyx_ has joined #lisp
<makomo> Grue`: expand the macro and you'll see that there's a (FUNCALL 'CDDR X) form
<beach> Grue`: I think it means that it is going to call FDEFINITION, perhaps in each iteration.
notzmv has quit [Ping timeout: 255 seconds]
wusticality has quit [Ping timeout: 244 seconds]
Arcaelyx has quit [Ping timeout: 250 seconds]
robdog has quit [Ping timeout: 250 seconds]
loli has quit [Ping timeout: 268 seconds]
* beach concludes that Grue` was not impressed with this information.
<Grue`> sorry, I switched out
<Grue`> that makes sense I guess
<Grue`> I actually avoid using #' in my code for various reasons, so this warning was annoying
Ukari has quit [Remote host closed the connection]
robdog has joined #lisp
loli has joined #lisp
<beach> What are those reasons?
robdog has quit [Ping timeout: 250 seconds]
<Grue`> ' always uses top level function definition, so for example if I'm calling a function in a macro expansion I'm immune to it being redefined in flet
<beach> But redefining standard functions is not allowed, so for CDDR you are safe.
<Grue`> yeah, standard functions get ' for consistency. basically I only use #' for lexical scope functions
<Grue`> also I'm not convinced that 'cddr is much slower than #'cddr even in a loop
andyyy has quit [Ping timeout: 246 seconds]
<Grue`> there's literally no difference in (disassemble (lambda (y) (funcall 'cddr y))) whether I uuse #' or '. So the compiler probably realizes that just means (cddr y)
<beach> It is definitely a bit strange to issue the warning and then optimize it like that.
robdog has joined #lisp
rumbler31 has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
<jackdaniel> it might be that optimization of "locked" funcitons is in independent module and happens much later
<jackdaniel> (i.e 'xxx:foo may change, so it can't be optimized, but 'cl:cddr *won't* change)
akoana has left #lisp ["Leaving"]
rumbler31 has quit [Ping timeout: 250 seconds]
akoana has joined #lisp
<beach> Sounds plausible. The overall effect is still strange though.
robdog has joined #lisp
Guest35324 has joined #lisp
Guest35324 has left #lisp [#lisp]
notzmv has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
ravenousmoose[aw is now known as ravenousmoose
robdog has quit [Ping timeout: 250 seconds]
Zaab1t has joined #lisp
loli has quit [Ping timeout: 245 seconds]
cage_ has joined #lisp
robdog has joined #lisp
robdog has quit [Ping timeout: 246 seconds]
andyyy has joined #lisp
andyyy has quit [Client Quit]
loli has joined #lisp
robdog has joined #lisp
igemnace has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
random-nick has joined #lisp
Nilby has quit [Read error: Connection reset by peer]
wanz has joined #lisp
prite has joined #lisp
robdog has joined #lisp
q9929t has joined #lisp
robdog has quit [Ping timeout: 252 seconds]
wusticality has joined #lisp
wusticality has quit [Ping timeout: 240 seconds]
robdog has joined #lisp
ravenousmoose has quit [Quit: Taking a quick nap...ZZzzz]
ravenousmoose has joined #lisp
ravenousmoose is now known as ravenousmoose[aw
ravenousmoose[aw is now known as ravenousmoose
ravenousmoose is now known as ravenousmoose[aw
ravenousmoose[aw is now known as ravenousmoose
robdog has quit [Ping timeout: 264 seconds]
hiroaki has joined #lisp
q9929t has quit [Quit: q9929t]
ravenousmoose has quit [Client Quit]
akr has joined #lisp
<akr> Hello, does anyone use cl-smtp? I might have found a bug
<akr> I'm using with-smtp-mail http://quickdocs.org/cl-smtp/api
<akr> trouble is, cl-smtp seems to add angle brackets <> to the envelope
varjag has joined #lisp
ravenousmoose has joined #lisp
ravenousmoose is now known as ravenousmoose[aw
<akr> so if you pass example@example.com as the envelope, cl-smtp tries to use <example@example.com>
<akr> which is rejected by at least some SMTP servers as a syntax error
ravenousmoose[aw is now known as ravenousmoose
gravicappa has quit [Ping timeout: 258 seconds]
robdog has joined #lisp
<beach> Did you try the email to the maintainer?
<akr> hmm I patched the library and the SMTP server is still returning a syntax error O.o
<akr> #<SMTP-PROTOCOL-ERROR a command failed:\\ncommand: \\\"MAIL FROM:noreply@domain.eu\\\" expected: 250 response-code: 555 response-message: 5.5.2 Syntax error. w3sm148620wrp.51 - gsmtp>
<akr> #<SMTP-PROTOCOL-ERROR a command failed:\\ncommand: \\\"MAIL FROM:noreply@domain.eu\\\" expected: 250 response-code: 555 response-message: 5.5.2 Syntax error. w3sm148620wrp.51 - gsmtp>
<akr> oops, sorry for the double paste
ravenousmoose has quit [Quit: Taking a quick nap...ZZzzz]
<akr> beach: I will once I figure out what is going on
robdog_ has joined #lisp
<akr> ok apparently the angle brackets are supposed to be there
robdog has quit [Ping timeout: 250 seconds]
ravenousmoose has joined #lisp
<akr> ok nvm there's no problem with the library
robdog_ has quit [Ping timeout: 250 seconds]
<akr> there was a problem with my envelope which I fixed and then there was a problem with Google SMTP denying our requests doe to wrong IP or somesuch
q9929t has joined #lisp
<prite> How do people here pronounce CLOS? si-el-oh-es? si-los/si-loss? "close"/"clause"?
q9929t has quit [Client Quit]
<no-defun-allowed> Cee-loss is what I use.
<beach> prite: There are two common ways, either "see loss" or "kloss". I use the former. I know nobody to pronounces each individual letter.
robdog has joined #lisp
<beach> prite: Same options for CLIM. But there I use "Klimm" rather than "see limb".
<beach> akr: Great that you figured it out.
<akr> :)
robdog has quit [Ping timeout: 264 seconds]
Zaabtop has joined #lisp
ravenousmoose is now known as ravenousmoose[aw
rumbler31 has joined #lisp
Zaab1t has quit [Ping timeout: 255 seconds]
Zaabtop is now known as Zaab1t
loli has quit [Ping timeout: 255 seconds]
robdog has joined #lisp
rumbler31 has quit [Ping timeout: 244 seconds]
nanoz has quit [Ping timeout: 255 seconds]
ft has quit [K-Lined]
robdog_ has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog_ has quit [Ping timeout: 250 seconds]
akater has quit [Ping timeout: 256 seconds]
akater has joined #lisp
robdog has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
loli has joined #lisp
orivej has joined #lisp
Arcaelyx_ has quit [Ping timeout: 272 seconds]
Zaab1t has quit [Ping timeout: 250 seconds]
<Inline> cee-loss makes pretty sense tho
<Inline> lol
Inline has quit [Quit: Leaving]
notzmv has quit [Ping timeout: 245 seconds]
robdog has quit [Ping timeout: 250 seconds]
akr has left #lisp ["WeeChat 2.2"]
<makomo> i use "kloss"
<jackdaniel> I use silos, as a plural of silo ;-)
lumm has joined #lisp
<jackdaniel> some pronouce it c-loss, as an ultimate argument in favor of Common Lisp (and not for C). of course it sounds all the same, but it is the feeling you put into words what counts here ,)
dale has quit [Quit: dale]
<beach> CLOSOS, on the other hand, can only be pronounced in one way, namely as Colossus. :)
<jackdaniel> or kloss-os ,)
<phoe> cl(os)²
<beach> jackdaniel: Yeah.
<beach> I could have named it Unix-loss-oh-ess, but I didn't. :)
ft has joined #lisp
robdog has joined #lisp
xkapastel has joined #lisp
robdog has quit [Ping timeout: 245 seconds]
Achylles has joined #lisp
q3d has joined #lisp
lumm_ has joined #lisp
robdog has joined #lisp
robdog_ has joined #lisp
lumm has quit [Ping timeout: 258 seconds]
lumm_ is now known as lumm
robdog has quit [Ping timeout: 264 seconds]
Inline has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
Lord_of_Life_ has joined #lisp
ravenousmoose[aw is now known as ravenousmoose
Lord_of_Life has quit [Ping timeout: 255 seconds]
nanoz has joined #lisp
robdog_ has quit [Ping timeout: 264 seconds]
Lord_of_Life_ is now known as Lord_of_Life
lumm_ has joined #lisp
lumm has quit [Ping timeout: 240 seconds]
lumm_ is now known as lumm
wusticality has joined #lisp
loli has quit [Ping timeout: 245 seconds]
robdog has joined #lisp
Ukari has joined #lisp
wusticality has quit [Ping timeout: 246 seconds]
robdog has quit [Ping timeout: 250 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
keep_learning_M has quit [Quit: Leaving]
Bike has joined #lisp
gravicappa has joined #lisp
robdog has joined #lisp
loli has joined #lisp
<Grue`> prite: like "close" but with Russian accent
robdog has quit [Ping timeout: 252 seconds]
markoong has joined #lisp
<phoe> клос
<phoe> or кльос, hmmm
<MichaelRaskin> Soft sounds weird to me
wxie has quit [Ping timeout: 250 seconds]
lumm has quit [Read error: Connection reset by peer]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
rumbler31 has joined #lisp
FreeBirdLjj has joined #lisp
dddddd has joined #lisp
aindilis has quit [Ping timeout: 255 seconds]
lumm has joined #lisp
lumm has left #lisp [#lisp]
FreeBirdLjj has quit [Ping timeout: 272 seconds]
rumbler31 has quit [Ping timeout: 255 seconds]
lumm has joined #lisp
robdog has joined #lisp
ravenousmoose is now known as ravenousmoose[aw
ravenousmoose[aw is now known as ravenousmoose
FreeBirdLjj has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
lumonom has joined #lisp
lumonom has quit [Quit: WeeChat 1.4]
robdog has joined #lisp
karlosz has quit [Quit: karlosz]
aindilis has joined #lisp
aindilis has quit [Remote host closed the connection]
robdog has quit [Ping timeout: 258 seconds]
aindilis has joined #lisp
hiroaki has quit [Ping timeout: 258 seconds]
quipa has joined #lisp
robdog has joined #lisp
makomo has quit [Ping timeout: 255 seconds]
robdog has quit [Ping timeout: 264 seconds]
robdog_ has joined #lisp
loli has quit [Ping timeout: 255 seconds]
robdog has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
robdog_ has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
loli has joined #lisp
robdog has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
adam4567 has quit [Ping timeout: 264 seconds]
robdog has quit [Ping timeout: 264 seconds]
vilivulpine has quit [Quit: Using Circe, the loveliest of all IRC clients]
Zaab1t has joined #lisp
_whitelogger has joined #lisp
cage_ has quit [Remote host closed the connection]
cage_ has joined #lisp
robdog has joined #lisp
wusticality has joined #lisp
robdog_ has joined #lisp
rozenglass has quit [Remote host closed the connection]
robdog has quit [Ping timeout: 250 seconds]
wanz has quit [Quit: wanz]
wusticality has quit [Ping timeout: 255 seconds]
Ukari has quit [Remote host closed the connection]
robdog has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
Riviera_ has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
troydm has quit [Ping timeout: 268 seconds]
loli has quit [Ping timeout: 246 seconds]
rumbler31 has joined #lisp
robdog has joined #lisp
rumbler31 has quit [Ping timeout: 244 seconds]
robdog has quit [Ping timeout: 250 seconds]
robdog_ has joined #lisp
loli has joined #lisp
q3d has quit [Ping timeout: 256 seconds]
robdog has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
lumm has quit [Read error: Connection reset by peer]
robdog has quit [Ping timeout: 268 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
<flip214> MichaelRaskin: have a lot of fun with your new group ;)
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 245 seconds]
lumm has joined #lisp
<MichaelRaskin> Thanks
<MichaelRaskin> Well, a lot of fun is not really planned. There are just around 5 or 10 repos that are not business logic but relatively general libraries
akoana has left #lisp [#lisp]
<MichaelRaskin> Most of them don't even change much, because next layer of code depends on them and they just work more or less fine as they are
<MichaelRaskin> Just a generally good idea to have previously published code mentioned at ELS available at Common-Lisp.net; so not fun, just adding a few lines to a list of repos to mirror
<MichaelRaskin> But big thanks for helping me to reduce reference rot!
lumm has quit [Read error: Connection reset by peer]
drolax has joined #lisp
lumm has joined #lisp
robdog has joined #lisp
ravenousmoose has quit [Quit: Bye Bye ~]
<drmeister> Hi - does anyone understand static-vector implementation issues?
<phoe> drmeister: what exactly about them?
<drmeister> What's the deal? Do I implement something like a simple-vector for simple data types where I keep a pointer to an arbitrary location in memory?
<phoe> AFAIK you need to ensure that they are never garbage-collected (unless you free them manually) and that they are never moved
<phoe> and once that happens, these vectors are static - they don't move, they aren't GC-managed, you can get a pointer to their storage and send it to C code
makomo has joined #lisp
<phoe> and once the C code returns, you can access the same data in Lisp by using the vector reference that you created when you created the static vector
<drmeister> Ok, that's one thing - but can the data be stored anywhere in memory? If it can - then I need to have a GC managed object that contains an indirection to the data that can be stored anywhere.
<phoe> Anywhere, what do you mean?
lumm has quit [Ping timeout: 259 seconds]
<phoe> It is up to you as the implementor to allocate the memory wherever you'd like
<drmeister> In Clasp there is GC managed memory and then there is C/malloc/C++/new managed memory.
<phoe> Then you'll want the latter
<phoe> static vectors should not be GC managed.
robdog has quit [Ping timeout: 264 seconds]
<phoe> they are the equivalent of calling standard malloc - you get some memory that won't ever move, and you can reference that memory all over your program.
<drmeister> Say I call a C function and it allocates an array of double values and returns a pointer to that data to me. Do I want to be able to then create a static-vector that points to that data?
<Bike> i don't think so.
<Bike> oh, wait, there is a vector-from-pointer in here...
<drmeister> Ok, this is what I'm confused about.
<phoe> drmeister: I don't think so.
<drmeister> If I do point into C++/C memory - then I need an object in GC memory that points to that C++/C memory and all static-vector accesses are through that indirection.
<phoe> SBCL doesn't allow it, for example.
<phoe> In SBCL, vectors must have a header and be aligned to a page.
<phoe> You can only create vectors in Lisp and pass pointer to the data to C.
<Bike> the static-vectors interface doesn't include getting a vector from a pointer
<phoe> You can't allocate the vector's storage in C and then use it in Lisp to create a vector from it.
<phoe> So, nay, you do not have that indirection.
lumm has joined #lisp
<drmeister> Then I could implement static-vectors by simply allocating our current simple vectors of simple types in a non-moving pool.
<Bike> i think so yeah.
lumm has quit [Remote host closed the connection]
lumm has joined #lisp
<drmeister> That means I just need to add some creator functions that use the non-moving pool allocator rather than the moving pool allocation in MPS.
<drmeister> For Boehm - I don't need to do anything.
<Bike> there are also a few functions needed, like to get a data pointer for a vector.
<drmeister> Well, I need to create an interface that for boehm will do nothing more than it already does.
quipa has quit [Read error: Connection reset by peer]
<drmeister> Sure - that's easy.
xkapastel has quit [Quit: Connection closed for inactivity]
<drmeister> But it's always Common Lisp that allocates the memory and passes the pointer to the non-moving memory to the C or C++ code. It's NEVER the C or C++ code that allocates memory and tells Common Lisp where it is.
<drmeister> Static vectors have come up again and again - and now with the netcdf stuff it looks like I really need them.
<phoe> They are useful, especially if you interface with C
<phoe> So I am a little bit surprised that you haven't implemented them *yet*!
igemnace_ has joined #lisp
igemnace has quit [Ping timeout: 246 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 252 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
loli has quit [Ping timeout: 272 seconds]
ggole has quit [Ping timeout: 268 seconds]
wusticality has joined #lisp
makomo_ has joined #lisp
robdog has joined #lisp
makomo has quit [Ping timeout: 255 seconds]
wusticality has quit [Ping timeout: 250 seconds]
<drmeister> Well, you know - I only have 28 hours in my day like everyone else.
robdog has quit [Ping timeout: 264 seconds]
loli has joined #lisp
<phoe> No no, I didn't mean that one - I thought that with your goal of bonding C++ and CL, you would have needed them much earlier.
<drmeister> I haven't really dealt with arrays of data yet between C++ and Clasp. It's been more about exposing hundreds of little niggly functions for the llvm and clang API's.
<drmeister> Strings are about the only arrays I've had to pass.
<drmeister> But I've prepared for this by implementing all sorts of specialized arrays for plain-old-data types.
<drmeister> I did that two years ago.
* drmeister plays a long game.
<phoe> I see.
makomo_ is now known as makomo
robdog has joined #lisp
wanz has joined #lisp
robdog has quit [Ping timeout: 258 seconds]
<jackdaniel> w/in 1
<Xach> Hmm, I have a libboost problem on debian 8. I need a newer version than backports provides.
<Xach> 1.55 vs 1.62
<Xach> (this is to try to build a quicklisp project)
robdog has joined #lisp
casouri has joined #lisp
<makomo> MichaelRaskin: i just remembered a reason why i couldn't use MACROLETs for that thing we discussed yesterday -- package locks.
jmercouris has joined #lisp
rumbler31 has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
<makomo> MichaelRaskin: i can't introduce a CL:+ macrolet for example
<MichaelRaskin> Aaah
<MichaelRaskin> Indeed
<makomo> and i think it would be neat to be able to syntactically overload + (or other standard operators) in some cases (without having to deal with package issues, shadowing, w/e)
rumbler31 has quit [Ping timeout: 240 seconds]
<MichaelRaskin> And reader tricks are also a thing to use with caution and moderation.
robdog has joined #lisp
<casouri> Is there any difference between inherited sybmols and imported ones? IFAIK I have to use ``prefix:'' for inherited ones. But on the other hand, if I import two packages with the same exported symbol, there is a conflict, dispite that they have different prefixes.
<casouri> And to resolve the conflict I need to import either one as shdow, and I don't use prefix for that symbol?
<phoe> casouri: the symbol is not the same if there is a conflict
<phoe> two packages export the same symbol if and only if these symbols are EQ to each other
robdog has quit [Ping timeout: 250 seconds]
<casouri> So why is there a conflict if the symbols are not the same?
<beach> casouri: Because when you import a symbol with a name S to a package P, then that symbol becomes available as P:S (or P::S if not exported) no matter the home package of S.
<beach> casouri: So, since you can't have two different symbols referred to as P:S, there is a conflict.
<makomo> MichaelRaskin: so going back to rewriting the code using AL itself: there's another "issue" that i see here. if there are any MACROLETs in the outer lexical scope of WITH-OVERLOAD, AL will expand the occurences of those within the body of W-O before the rewriting logic gets to see them
<casouri> If I have (defpackage :P (:use :S)), does exported symbols in S all become P:symbol? Because when I use them in P I use S:symbol.
<MichaelRaskin> makomo: but on-function-form-pre may choose to do something with them
<beach> casouri: If you do that, then you never need the :USE S. Which is the best way anyway.
<makomo> MichaelRaskin: right, but can i reliably (taking of course the inherent limitations of code walking) tell whether an operator is a macro or not?
tehidiot has joined #lisp
<makomo> MichaelRaskin: i saw that there's a metanv function that gives you "function-like" entries
<makomo> what about macros within the global environment?
<beach> casouri: :USE S means that you want to import them to P so that you can use them inside P without a prefix, our from outside P with prefix P:.
<MichaelRaskin> makomo: what kind of logic do you actually want?
<MichaelRaskin> Do you want to overload macros or not?
<casouri> Oh! I didn't know that. But how do I use the functions in other packages then?
<makomo> MichaelRaskin: to rewrite every operator, whether it is a function or a macro
<MichaelRaskin> on-function-like-form-pre
<makomo> MichaelRaskin: oh, you mean i can just use that one for both of them
<beach> casouri: As S:<name>
<MichaelRaskin> It happens before macro is expanded
<makomo> hm right
<MichaelRaskin> Of course, that means that macrolets _inside_ the with-overload cannot override overload
<beach> casouri: As soon as the package S is created, you can use the exported symbols in it by providing the S: prefix, from any other package.
<makomo> MichaelRaskin: eh, yeah, that's a bit ugly
<casouri> beach: Thanks, I understand it now
<beach> casouri: Great!
tehidiot has quit []
<MichaelRaskin> makomo: I guess you can ask metaenv if it is a locally-for-overload defined macro
tehidiot has joined #lisp
<makomo> MichaelRaskin: yeah, i would need something like that
nanoz has quit [Ping timeout: 272 seconds]
<MichaelRaskin> And then also make sure it work for macro-based walking
<makomo> MichaelRaskin: in this case i'm considering both function and macro operators. in general, what if i wanted to collect only the macro operators, how could i tell, once my :on-function-form-pre handler is called, that the operator is really a macro?
<MichaelRaskin> Well, you could ask metaenv if it knows such a macro, and if not, ask its fallback-env for a macro-function
milivoj_ has joined #lisp
<makomo> ah, ok
milivoj has quit [Ping timeout: 272 seconds]
milivoj_ is now known as milivoj
loli has quit [Ping timeout: 244 seconds]
<akater> casouri: There's a nice little guide to symbols and packages http://www.flownet.com/ron/packages.pdf
<Xach> there are a few things i really dislike about that guide. it is ok if you disregard the tone of "isn't this a badly-designed and foolish thing I have to explain for you?"
robdog has joined #lisp
Arcaelyx has joined #lisp
<akater> I guess it's very subjective. I tried to consult PCL on exactly 3 subjects: packages, CLOS, conditions. Each time I failed to find an answer to my question. Since then I don't recommend that book. But this paper did help me with packages.
<Xach> I've found the explanations in PCL to be better than most sources on those topics.
robdog has quit [Ping timeout: 246 seconds]
<Xach> Well, "better" is perhaps not the right term. I appreciate their breadth and accuracy.
<Xach> I can appreciate that the approach to conveying the info may not work for everyone.
robdog has joined #lisp
loli has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
<akater> Why is it that (time (series:subseries (series:scan-range) 0 4)) reports 0 consing, and yet SERIES object has DATA-SO-FAR slot that is filled with some apparently cached results?
<akater> I know I should read the library but maybe somebody happens to know.
Achylles has quit [Ping timeout: 252 seconds]
<Xach> akater: (time (cons 1 1)) similarly returns 0. perhaps there is a certian amount of available allocated space that must fill up before it registers in TIME. (i don't know the true answer, sorry.)
<akater> Could be as simple as: nothing is cached before #Z(...) is printed.
<akater> But then again, note about (time (cons 1 1)) is valid too, thank you Xach.
space_otter has joined #lisp
arpunk_ has quit [Ping timeout: 250 seconds]
arpunk has joined #lisp
robdog has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
robdog has quit [Ping timeout: 250 seconds]
abhixec has joined #lisp
sjl has joined #lisp
jmercouris has quit [Remote host closed the connection]
wusticality has joined #lisp
wusticality has quit [Ping timeout: 250 seconds]
Moosef has joined #lisp
<Moosef> Hey I am trying to create a simple web api. Does anyone know a good library/libraries for this. I have been looking at ningle so far.
jack_rabbit has joined #lisp
<cage_> probably you can find something useful here: https://awesome-cl.com/#web-frameworks
<cage_> i am pondering to use https://github.com/joaotavora/snooze
<cage_> never actually used, though
<Moosef> why snooze?
<cage_> well just because i like the design
<Moosef> What in particular about the design?
<cage_> well it has a simple method to map routes to function
<cage_> take a look at the readme
voidlily has quit [Remote host closed the connection]
<Moosef> Took a look. It looks interesting thanks!
dieggsy has quit [Quit: ZNC 1.7.1 - https://znc.in]
<cage_> yo're welcome!
dieggsy has joined #lisp
slightlycyborg has joined #lisp
voidlily has joined #lisp
nymphet has joined #lisp
robdog has joined #lisp
makomo has quit [Ping timeout: 250 seconds]
loli has quit [Ping timeout: 246 seconds]
makomo has joined #lisp
moei has joined #lisp
Moosef has left #lisp ["ERC (IRC client for Emacs 26.1)"]
robdog has quit [Ping timeout: 264 seconds]
rumbler31 has joined #lisp
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
<slightlycyborg> I cant access a slot of a parent class using slot-value. The parent class is defined in a seperate package. I am getting the slot-missing error.
<slightlycyborg> I can see the slot on the object when I use (describe obj)
lumm has quit [Ping timeout: 250 seconds]
Ukari has joined #lisp
<pjb> slightlycyborg: use the right symbol!
<akater> slightlycyborg: maybe you need a prefix? a code example would help
<pjb> foo::name is not bar::name
<pjb> slightlycyborg: this is why you should instead define an accessor function, and export the name of the accessor function.
<slightlycyborg> I need setf
<pjb> slightlycyborg: with accessors you get setf.
<slightlycyborg> I've never made a setfable function
<pjb> slightlycyborg: I didn't say a writer.
<slightlycyborg> Oh ok
<slightlycyborg> Thanks.
<slightlycyborg> I'm new to CLOS
robdog has quit [Read error: Connection reset by peer]
robdog has joined #lisp
wusticality has joined #lisp
wanz has quit [Quit: wanz]
wusticality has quit [Ping timeout: 246 seconds]
gravicappa has quit [Ping timeout: 250 seconds]
robdog has quit [Ping timeout: 268 seconds]
izh_ has joined #lisp
<fiddlerwoaroof> cage_: that library looks interesting, I've generally used https://github.com/fukamachi/ningle
<fiddlerwoaroof> One nice thing about ningle is that you can switch between various webservers fairly easily, including a fastcgi one, for proxying with nginx or similar
robdog has joined #lisp
ikki has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
torbo has joined #lisp
casouri has quit [Ping timeout: 255 seconds]
<cage_> fiddlerwoaroof, ningle seems ok but Moosef asked for an alternative just to ningle
matijja has joined #lisp
Achylles has joined #lisp
robdog has joined #lisp
nymphet has quit [Ping timeout: 272 seconds]
robdog has quit [Ping timeout: 264 seconds]
akater has quit [Remote host closed the connection]
Zaab1t has quit [Quit: bye bye friends]
akater has joined #lisp
makomo has quit [Ping timeout: 246 seconds]
robdog has joined #lisp
nymphet has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
cage_ has quit [Remote host closed the connection]
zmv has joined #lisp
robdog has joined #lisp
zmv is now known as notzmv
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
akater has quit [Ping timeout: 256 seconds]
akater has joined #lisp
robdog has quit [Ping timeout: 245 seconds]
makomo has joined #lisp
bendersteed has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
robdog has joined #lisp
<LdBeth> Good afternoon
robdog has quit [Ping timeout: 252 seconds]
robdog has joined #lisp
<makomo> MichaelRaskin: not sure if i already asked you this before, but i definitely forgot if i did: does the EXPAND-VIA-FUNCTION macro in your paper have a slight typo regarding backquote/commas?
robdog has quit [Ping timeout: 264 seconds]
robdog_ has joined #lisp
<makomo> the way i understand it, shouldn't its expander just be (macroexpand-all form env)?
<MichaelRaskin> I don't think so
<MichaelRaskin> I want to obtain expansion as return value
igemnace_ has quit [Quit: WeeChat 2.3]
<MichaelRaskin> So the macro returns code that evaluates to the expansion
robdog_ has quit [Ping timeout: 250 seconds]
Nomenclatura has joined #lisp
asarch has joined #lisp
lumm has joined #lisp
arpunk has quit [Ping timeout: 258 seconds]
<makomo> MichaelRaskin: hm, but if e-v-f expands into code which evaluates to the expansion of its body, how is it possible for the evaluation of the example to yield (1 3)? shouldn't the evaluation yield the mentioned expansion?
arpunk has joined #lisp
<MichaelRaskin> Well, I write code (that uses the macro), and I ask for its return value
<makomo> MichaelRaskin: oh, also, when trying to load e-v-f itself i get an error because there are nested commas without a corresponding backquote
<makomo> the given definition is `',(macroexpand-all (quote ,form) ,e)
robdog has joined #lisp
<MichaelRaskin> hmm. Indeed, extra comma before e and missing backquote before (quote
wrycode has joined #lisp
nymphet has quit [Ping timeout: 240 seconds]
robdog has quit [Ping timeout: 268 seconds]
lumm has quit [Remote host closed the connection]
<makomo> MichaelRaskin: even with that fix the example doesn't evaluate to a list of 2 elements. does macroexpanding something that looks like '<form> make sense? sorry if i'm missing something obvious. the transcribed code is here: https://plaster.tymoon.eu/view/1203#1203
<makomo> it evaluates to '(SET-X2 3 (READ-X1-X2))
<makomo> i'm using sbcl's macroexpand-all for the time being
<MichaelRaskin> quoting a function argument generally makes sense
robdog has joined #lisp
matijja has quit [Ping timeout: 250 seconds]
<makomo> true, but isn't the macroexpand-all in this case recieving the result of `',form, i.e. the result of (list quote form), so that it ends up macroexpanding a quoted form (which iiuc doesn't do anything)?
<makomo> receiving*
<makomo> (list 'quote form)*
bendersteed has quit [Remote host closed the connection]
lumm has joined #lisp
lumm has quit [Remote host closed the connection]
lumm has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
nymphet has joined #lisp
nymphet is now known as loli
robdog has joined #lisp
ntbre has quit [Quit: ntbre]
robdog has quit [Ping timeout: 250 seconds]
lumm has quit [Ping timeout: 255 seconds]
lumm has joined #lisp
lumm has quit [Ping timeout: 258 seconds]
nowhere_man has joined #lisp
makomo has quit [Ping timeout: 272 seconds]
makomo has joined #lisp
robdog has joined #lisp
Oladon has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
serichsen has joined #lisp
<serichsen> good evening
izh_ has left #lisp [#lisp]
robdog has joined #lisp
loli has quit [Ping timeout: 272 seconds]
ikki has quit [Ping timeout: 246 seconds]
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
loli has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
ltriant has joined #lisp
drolax has quit [Ping timeout: 257 seconds]
robdog has joined #lisp
robdog has quit [Read error: Connection reset by peer]
robdog_ has joined #lisp
libertyprime has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
Oladon has quit [Quit: Leaving.]
iovec has quit [Quit: Connection closed for inactivity]
robdog has joined #lisp
xkapastel has joined #lisp
Elephant454 has joined #lisp
robdog_ has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
Achylles has quit [Ping timeout: 252 seconds]
robdog_ has quit [Ping timeout: 268 seconds]
robdog has joined #lisp
nitrix has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
<drmeister> phoe: Thanks for your help. Clasp has static vectors now.
robdog_ has joined #lisp
Achylles has joined #lisp
robdog has joined #lisp
<dim> congrats guys ;-)
robdog_ has quit [Ping timeout: 250 seconds]
<dim> does clasp have a form of save-lisp-and-die?
* dim has to get afk, gn guys
asarch has quit [Quit: Leaving]
nowhere_man has quit [Ping timeout: 258 seconds]
robdog has quit [Ping timeout: 250 seconds]
random-nick has quit [Ping timeout: 245 seconds]
schjetne has quit [Ping timeout: 245 seconds]
varjag has quit [Ping timeout: 255 seconds]
loli has quit [Ping timeout: 250 seconds]
* Nomenclatura crawls under dim's bed
<drmeister> No - no save-lisp-and-die yet.
robdog has joined #lisp
deba5e12 has joined #lisp
deba5e12 has quit [Client Quit]
deba5e12 has joined #lisp
deba5e12 has quit [Client Quit]
robdog has quit [Ping timeout: 268 seconds]
robdog_ has joined #lisp
loli has joined #lisp
robdog_ has quit [Ping timeout: 268 seconds]