Xach changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook>
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #commonlisp
Bike has joined #commonlisp
<Bike> the chain of events when a class is redefined seems nasty. like, how do you update an array for more slots? when an object is updated does it have to trigger an update to any arrays it's in?
taiju has quit [Ping timeout: 250 seconds]
<hayley> Well, all the objects have to be updated at once, and some stamp/version/&c can be stored in the storage vector.
<hayley> In effect the second idea is a very weird way of sharing a "rack" between a lot of standard instances.
lad has quit [Remote host closed the connection]
srhm has quit [Ping timeout: 245 seconds]
lad has joined #commonlisp
taiju has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
hineios has quit [Ping timeout: 252 seconds]
dlowe has quit [Quit: Wandering off..]
jimka has quit [Ping timeout: 258 seconds]
dlowe has joined #commonlisp
nirnam has joined #commonlisp
Bike has quit [Quit: Connection closed]
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
tyson2 has joined #commonlisp
yitzi has joined #commonlisp
lad has quit [Ping timeout: 258 seconds]
srhm has joined #commonlisp
dlowe has quit [Remote host closed the connection]
dlowe has joined #commonlisp
dlowe has quit [Client Quit]
dlowe has joined #commonlisp
dlowe has quit [Remote host closed the connection]
dlowe has joined #commonlisp
Bike has joined #commonlisp
dlowe has quit [Remote host closed the connection]
taiju has quit [Ping timeout: 252 seconds]
taiju has joined #commonlisp
Fare has joined #commonlisp
taiju has quit [Ping timeout: 258 seconds]
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
dsk has joined #commonlisp
srhm has quit [Quit: Konversation terminated!]
jimka has joined #commonlisp
derelict has quit [Ping timeout: 258 seconds]
prxq has joined #commonlisp
prxq_ has quit [Ping timeout: 258 seconds]
taiju has joined #commonlisp
selwyn has joined #commonlisp
blihp has quit [Read error: Connection reset by peer]
raeda has quit [Read error: Connection reset by peer]
raeda has joined #commonlisp
jimka has quit [Ping timeout: 245 seconds]
<beach> Good morning everyone!
jimka has joined #commonlisp
<lotuseater> Good morning beach.
hafat has quit [Ping timeout: 245 seconds]
kakuhen has joined #commonlisp
Fare has quit [Quit: Leaving]
Fare has joined #commonlisp
Fare has quit [Quit: Leaving]
jimka has quit [Ping timeout: 258 seconds]
Bike has quit [Quit: Connection closed]
khrbt has joined #commonlisp
khrbt has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
khrbt has joined #commonlisp
khrbt has quit [Client Quit]
jimka has joined #commonlisp
lisp123 has joined #commonlisp
cjb has quit [Ping timeout: 260 seconds]
khrbt has joined #commonlisp
khrbt has quit [Ping timeout: 240 seconds]
nirnam has quit [*.net *.split]
CrashTestDummy2 has quit [*.net *.split]
peterhil has quit [*.net *.split]
iisi has quit [*.net *.split]
Josh_2 has quit [*.net *.split]
taiju has quit [*.net *.split]
copec has quit [*.net *.split]
Lord_of_Life has quit [*.net *.split]
skyl4rk has quit [*.net *.split]
mingus has quit [*.net *.split]
fengshaun has quit [*.net *.split]
aeth has quit [*.net *.split]
fourier has quit [*.net *.split]
mingus has joined #commonlisp
peterhil has joined #commonlisp
aeth has joined #commonlisp
taiju has joined #commonlisp
Josh_2 has joined #commonlisp
copec has joined #commonlisp
iisi has joined #commonlisp
Lord_of_Life has joined #commonlisp
skyl4rk has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
fengshaun has joined #commonlisp
nirnam has joined #commonlisp
fourier has joined #commonlisp
taiju has quit [Remote host closed the connection]
taiju has joined #commonlisp
pranavats has quit [*.net *.split]
totoro has quit [*.net *.split]
phantomics has quit [*.net *.split]
Xach has quit [*.net *.split]
dtman34 has quit [*.net *.split]
theBlackDragon has quit [*.net *.split]
mgxm has quit [*.net *.split]
Demosthenex has quit [*.net *.split]
borodust has quit [*.net *.split]
fiddlerwoaroof_ has quit [*.net *.split]
ryanbw has quit [*.net *.split]
Xach_ has joined #commonlisp
Demosthe1ex has joined #commonlisp
Demosthe1ex has joined #commonlisp
Demosthe1ex has quit [Changing host]
phantomics has joined #commonlisp
khrbt has joined #commonlisp
ryanbw has joined #commonlisp
theBlack1ragon has joined #commonlisp
totoro has joined #commonlisp
totoro has quit [Changing host]
totoro has joined #commonlisp
katco has quit [Ping timeout: 245 seconds]
mgxm has joined #commonlisp
borodust has joined #commonlisp
dtman34 has joined #commonlisp
fiddlerwoaroof has joined #commonlisp
luis` has quit [Ping timeout: 240 seconds]
dieggsy has quit [Ping timeout: 256 seconds]
Gnuxie has quit [Ping timeout: 268 seconds]
Mrtn[m] has quit [Ping timeout: 268 seconds]
lisp123 has quit [Remote host closed the connection]
khrbt has quit [Client Quit]
lisp123 has joined #commonlisp
d4ryus has quit [*.net *.split]
zagura has quit [*.net *.split]
Shinmera has quit [*.net *.split]
zephyr has quit [*.net *.split]
greyrat_ has quit [*.net *.split]
leo_song has quit [*.net *.split]
samebchase has quit [*.net *.split]
MetaYan has quit [*.net *.split]
_death has quit [*.net *.split]
jfb4 has quit [*.net *.split]
micro has quit [*.net *.split]
MetaYan_ has joined #commonlisp
micro_ has joined #commonlisp
zagura__ has joined #commonlisp
d4ryus has joined #commonlisp
samebchase has joined #commonlisp
Shinmera has joined #commonlisp
leo_song has joined #commonlisp
adeht has joined #commonlisp
icepic1984[m] has quit [Ping timeout: 240 seconds]
JooTvora[m] has quit [Ping timeout: 250 seconds]
akater[m] has quit [Ping timeout: 250 seconds]
happy-dude has quit [Ping timeout: 256 seconds]
greyrat has joined #commonlisp
jfb4 has joined #commonlisp
loke[m] has quit [Ping timeout: 272 seconds]
hayley has quit [Ping timeout: 276 seconds]
etimmons has quit [Ping timeout: 276 seconds]
Inline has quit [Quit: Leaving]
khrbt has joined #commonlisp
khrbt has quit [Client Quit]
jimka has quit [Ping timeout: 245 seconds]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
elf_fortrez has joined #commonlisp
igemnace has joined #commonlisp
lisp123_ has joined #commonlisp
lisp123_ has quit [Ping timeout: 256 seconds]
elf_fortrez has quit [Quit: Client closed]
icepic1984[m] has joined #commonlisp
jimka has joined #commonlisp
akater[m] has joined #commonlisp
JooTvora[m] has joined #commonlisp
hayley has joined #commonlisp
hayley has quit [Changing host]
hayley has joined #commonlisp
luis` has joined #commonlisp
happy-dude has joined #commonlisp
karlosz has joined #commonlisp
Shinmera has quit [Quit: WeeChat 2.8]
Shinmera has joined #commonlisp
lisp123 has joined #commonlisp
dieggsy has joined #commonlisp
Gnuxie has joined #commonlisp
jimka has quit [Ping timeout: 268 seconds]
lisp321 has joined #commonlisp
karlosz has quit [Quit: karlosz]
<mfiano> polymorphic-functions looks like a nice approach to the array of semantics-changing defgeneric libraries. However, one thing bothers me, but I don't understand the code well enough to know if it can be solved.
<mfiano> It uses GENTEMP !
silasfox has joined #commonlisp
rgherdt has joined #commonlisp
<moon-child> o.o
lisp123 has quit [Ping timeout: 272 seconds]
loke[m] has joined #commonlisp
gpiero has quit [Ping timeout: 276 seconds]
gpiero has joined #commonlisp
etimmons has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
lad has joined #commonlisp
zagura__ is now known as zagura
selwyn_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
jimka has joined #commonlisp
selwyn has quit [Ping timeout: 252 seconds]
katco has joined #commonlisp
Mrtn[m] has joined #commonlisp
lisp123 has joined #commonlisp
sander has joined #commonlisp
Cymew has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
gaqwas has joined #commonlisp
amb007 has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
elf_fortrez has joined #commonlisp
elf_fortrez has quit [Write error: Broken pipe]
elf_fortrez has joined #commonlisp
khrbt has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Cymew has quit [Ping timeout: 272 seconds]
pranavats has joined #commonlisp
sander has quit [Ping timeout: 268 seconds]
sander has joined #commonlisp
rain3 has joined #commonlisp
Cymew has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
jimka has quit [Ping timeout: 272 seconds]
pve has joined #commonlisp
selwyn_ has quit [Read error: Connection reset by peer]
asarch has joined #commonlisp
jimka has joined #commonlisp
<mfiano> pillton: You are the author of specialization-store if I recall, correct?
gaqwas has quit [Ping timeout: 256 seconds]
khrbt has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
hendursa1 has joined #commonlisp
hendursaga has quit [Ping timeout: 244 seconds]
lisp321 has left #commonlisp [ERC (IRC client for Emacs 26.3)]
karlosz has joined #commonlisp
khrbt has joined #commonlisp
luna-is-here has quit [Quit: luna-is-here]
luna-is-here has joined #commonlisp
shka has joined #commonlisp
elf_fortrez has quit [Ping timeout: 246 seconds]
amb007 has quit [Read error: Connection reset by peer]
Qwnavery has joined #commonlisp
<phoe> what is the intended use case for UIOP:DEFINE-PACKAGE's :UNINTERN option?
<phoe> like, why should I prefer it over calling CL:UNINTERN in the REPL?
<mfiano> The latter requires interactive use?
<mfiano> I imagine it's useful in combination with the symbol merging policies of uiop:define-package
asarch has quit [Quit: Leaving]
<phoe> Yes, I'm thinking of it now - like, how exactly does it tie in the other functionalities
<mfiano> Like, if you want to mix symbols from foo into bar and then erase all traces of bar:x that was derived from foo
attila_lendvai has joined #commonlisp
<phoe> I need an example that is valid Lisp code - I can't see this just yet
<phoe> uninterning a symbol that is available only via inheritance is a no-op, right?
<phoe> so after (defpackage #:foo (:use) (:export #:symbol)) (uiop:define-package #:bar (:use) (:mix #:foo) (:unintern #:symbol)) it is still possible to refer to BAR::SYMBOL
<phoe> so using :UNINTERN with :MIX does not seem like something useful
<mfiano> :mix is not very useful with a single package designator anyway :p
<phoe> doesn't matter, can be five packages instead
<phoe> "uninterning a symbol that is available only via inheritance is a no-op, right?" is what I asked, and it doesn't matter if it's one or ten packages that are effectively USEd
<beach> That's how I read the Common Lisp HyperSpec entry, yes.
amb007 has joined #commonlisp
<mfiano> Me too
<phoe> OK
<mfiano> I wouldn't read too deeply into the bad code that is UIOP
<mfiano> It's probably only there for symmetrical reasons
<phoe> I'm reading the docstring, that is enough for me
<phoe> the way I read it, DEFINE-PACKAGE is meant to define what constitutes a package, instead of what *doesn't* constitute a package
<phoe> which is why :UNINTERN is puzzling for me
<phoe> the only use case I can imagine is when one redefines a package, and for whatever reason wants to get rid of some symbols from it along the way
<mfiano> The exceptional situations is making me scratch my head
<mfiano> I thought shadowing symbols are only affected by unintern for *present* symbols
<phoe> mfiano: if package BAZ uses FOO and BAR, and FOO and BAR both export a symbol named SYMBOL, and BAZ shadows SYMBOL too
<phoe> if you unintern BAZ::SYMBOL then you get a package conflict
<phoe> because you have FOO:SYMBOL and BAR:SYMBOL as feasible candidates
<mfiano> what about the no-op?
<phoe> which no-op?
<mfiano> the one you asked about that we agreed upon?
<phoe> if FOO exports SYMBOL and BAR uses FOO then uninterning SYMBOL from BAR is a no-op
<phoe> because SYMBOL is inherited from FOO
<phoe> and there is no :USE-EXCEPT-FOR option that allows you to use all exported symbols except for some
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
<phoe> the best you can do is shadowing, but then if you unintern the shadowed symbol you get back the inherited ones anyway
<phoe> (along with possible conflicts)
amb007 has quit [Read error: Connection reset by peer]
<mfiano> I see. To be honest I use defpackage-plus because it gives me finer control over these things
amb007 has joined #commonlisp
<mfiano> Such as :inherit-except
<pve> phoe: I've seen trickery like (defpackage #:my-package (:import-from #:other-package . #.(other-package:a-set-of-symbols))), maybe the :unintern option could be used there to exclude certain symbols? A little far-fetched though..
<phoe> pve: I see. that would warrant a proper filter on the (a-set-of-symbols) call, it would be cleaner than importing-then-uninterning
<pjb> phoe: but can't you shadow a symbol without interning a new one?
<phoe> pjb: via shadowing-import?
<pve> phoe: sure, although I might personally handle that kind of stuff with separate import or unintern forms after the defpackage
<pjb> or :shadow or shadow, but it seems you're right, :shadow interns a new symbol…
<mfiano> Problem with that is package variance errors on implementation foo
<mfiano> But on SBCL, I can't live without (setf sb-ext:*on-package-variance* '(:warn t :error nil)) in my rc
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Cymew has quit [Ping timeout: 248 seconds]
yitzi has quit [Remote host closed the connection]
yitzi has joined #commonlisp
yitzi has quit [Client Quit]
yitzi has joined #commonlisp
khrbt has quit [Quit: Textual IRC Client: www.textualapp.com]
fizbin has joined #commonlisp
<fizbin> Is there a convenient way to destructure a cons cell as you bind it? E.g. I've got a (let* ((abcell (myfunc args)) (a (car abcell)) (b (cdr abcell))) ...) and I'm wondering if there's a way to avoid the boilerplate and somehow just bind ((a.b) (myfunc args))
<pve> mfiano: I've yet to come up with a clean way of handling those package variance errors :(
<phoe> clhs destructuring-bind
<phoe> fizbin: ^
<phoe> (destructuring-bind (a . b) (cons 42 24) ...)
<phoe> pve: mfiano: well, DEFINE-PACKAGE handles package variance errors for me
<fizbin> phoe: Huh. I thought I tried destructuring-bind and it wouldn't work for me...
<pve> phoe: it does, but I meant while still clinging to cl:defpackage
<akater[m]> fizbin: `destructuring-bind` aside, there's also `trivia` in Quicklisp
<phoe> pve: oh right, yes - that's because redefining packages is completely UB
<akater[m]> fizbin: but you shouldn't have any issues with destructuring-bind
<phoe> so implementations can do whatever, in theory - though they try to do The Useful Thing™ instead, and that is unspecified
<phoe> fizbin: (destructuring-bind (a . b) (cons 42 24) (format t "~A ~A~%" a b)) works for me
<pve> phoe: right
<mfiano> phoe: I don't want to depend on uiop, and require users to update asdf manually to get PLN support
<mfiano> I also don't use Quicklisp anymore :)
<mfiano> The above form in my rc solves all my issues with package variance though
<phoe> mfiano: I see
<fizbin> Ah, I see what I was doing wrong. I couldn't find any examples that destructured a cons cell so was trying to use it like let or let* and had an extra set of parens. The error with (destructuring-bind ((a . b) (cons 42 40)) (+ a b)) was indecipherable.
<phoe> fizbin: well, D-B accepts 2+ arguments - the first one is the "skeleton" to destructure against, the second one is the data structure to destructure
<phoe> the rest is the &body to be executed
cosimone has joined #commonlisp
<phoe> you can't perform multiple destructurings in a single D-B like you can bind multiple variables in a LET or LET*
tux0r has quit [Ping timeout: 245 seconds]
<pve> mfiano: I was not aware of sb-ext:*on-package-variance*, thanks!
dsk has quit [Ping timeout: 245 seconds]
tux0r has joined #commonlisp
<mfiano> Sure thing
amb007 has quit [Read error: Connection reset by peer]
selwyn has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
<akater[m]> fizbin: clhs has an example. You will benefit from looking at such, in general.
<akater[m]> (I mean, clhs offers examples often enough)
random-nick has joined #commonlisp
kakuhen has quit [Quit: Leaving...]
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
<hayley> phoe: If you are very lazy, (destructuring-bind (pattern-for-a pattern-for-b pattern-for-c) (list a b c) ...)
<fizbin> akater[m]: where do you see the example of destructuring a cons cell? I don't see that on http://www.lispworks.com/documentation/HyperSpec/Body/m_destru.htm or on http://www.lispworks.com/documentation/HyperSpec/Body/03_de.htm which it links to.
<phoe> hayley: welllll, you are right
<phoe> it's not easily accessible or findable
MichaelRaskin has quit [Remote host closed the connection]
theBlack1ragon is now known as theBlackDragon
<akater[m]> fizbin: The example is on the first page you linked to. It is close enough to the beginning of the page that I see it right after `M-x hyperspec-lookup destructuring-bind`
<phoe> akater[m]: I think the issue is that this example does not explicitly use the consing dot notation
<fizbin> An example of how to use destructuring-bind in structures that didn't match what I was using was insufficient in letting me figure out what to use. Also, having the first form of the lambda list be itself enclosed in another level of parens led me down the wrong path.
<akater[m]> Well, at least you can't confuse this with let syntax.
<fizbin> Then, the linked syntax in 3.4.5 led me to conclude "oh, destructuring bind is good for other things, but not cons lists" because I can't see cons lists in the syntax there.
<akater[m]> Ah, true, it should hove the less complicated example as well.
dlowe has joined #commonlisp
cosimone has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
fizbin has quit [Ping timeout: 256 seconds]
azimut has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
fizbin has joined #commonlisp
fizbin has quit [Remote host closed the connection]
fizbin has joined #commonlisp
lisp123_ has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
karlosz has quit [Quit: karlosz]
Qwnavery has quit [Quit: WeeChat 3.2]
lisp123_ has quit [Ping timeout: 248 seconds]
jimka has quit [Ping timeout: 276 seconds]
kevingal has joined #commonlisp
Demosthe1ex is now known as Demosthenex
lisp123 has joined #commonlisp
jimka has joined #commonlisp
lisp123 has quit [Ping timeout: 272 seconds]
notzmv has quit [Ping timeout: 245 seconds]
Tomte has joined #commonlisp
Xach_ has quit [Changing host]
Xach_ has joined #commonlisp
Xach_ is now known as Xach
Cymew has joined #commonlisp
lad has quit [Ping timeout: 268 seconds]
tyson2 has joined #commonlisp
derelict has joined #commonlisp
<phantomics> A question: is it simply not possible to check whether a symbol has been bound in the lexical scope? For instance, (let ((a 1)) (is-bound 'a)) would yield t, while (let ((a 1)) (is-bound 'b)) would yield false assuming there's no dynamic variable called b
<beach> That's correct. If it were possible, the compiler would be very limited in the kinds of optimizations it could do.
<beach> And the creators of Common Lisp were very smart because they wanted it to be possible to write compilers that can generate very fast code.
cosimone has joined #commonlisp
<adeht> you can check it during macroexpansion time
adeht is now known as _death
silasfox has quit [Quit: WeeChat 3.2]
hafat has joined #commonlisp
<scymtym> phantomics: there is no way to inquire at runtime and no standard way in general. a semi-portable way to do it at compile-time is (let ((a 1)) (macrolet ((is-bound? (&environment env name) `(quote ,(multiple-value-list (sb-cltl2:variable-information name env))))) (is-bound? a)))
<pjb> phantomics: (shadow 'let) (defmacro let ((&rest bindings) &body body) `(cl:let ((_bound (append (mapcar (function binding-name) bindings) _bound)) ,@bindings) (flet ((is-bound (sym) (member sym _bound))) ,@body)))
<phantomics> Ok, thanks, this compile-time solution could help
hafat has quit [Client Quit]
hafat has joined #commonlisp
<phantomics> But that sb-cltl2 package only works with SBCL?
<phoe> phantomics: (ql:quickload :introspect-environment)
<scymtym> yes, the interface is described in "Common Lisp the Language, 2nd edition" but did not make it into the standard
<yitzi> There is also trivial-cltl2 and cl-environments
<scymtym> other implementations implement this interface or similar interface and, as other point out, there are portability libraries
<pjb> phantomics: more exactly: https://termbin.com/uygc
<pjb> phantomics: with (define-symbol-macro _bound nil)
<phantomics> pjb: that link's a 404
<phantomics> That one works
amb007 has quit [Ping timeout: 272 seconds]
<phantomics> Thanks, basically what I'm writing is a variant of (let) that aliases symbols in the outer scope _if_ they exist
<hayley> I suppose it is necessary that is-bound-p could not be a function, as it cannot inspect the static environment of its caller.
<phantomics> so, for example, (let2 ((a)) becomes (let2 ((a a)) _if_ the (let2) is inside another (let) form that assigns a value to a.
<pjb> phantomics: you mean that you're writing a macro that should depend on the outer scope.
amb007 has joined #commonlisp
<phantomics> pjb: correct
<pjb> phantomics: macro can get a &environment parameter, but it's an opaque object, there's no (standard) way to use it to find if there's a lexical binding in it.
<phantomics> So in (let ((a 1)) (let2 ((a)) (+ a 5))), the inner a is assigned the value of the outer a using the (let2) macro because a is defined in the outer scope
<pjb> So you can only shadow all the operators that establish lexical bindings, and maintain a macroexpansion-time list of the bindings that are created, with a macro or function to query it.
<pjb> Note this may be difficult to write correctly, because macros can be expanded multiple times, (and therefore some questions about the order of expansion may be asked).
<pjb> (even in theorically they're expanded outside in, of course).
<pjb> s/in/if/
hhdave_ has joined #commonlisp
<pjb> phantomics: and since you will have shadowed a lot of macros (and a few special operators), this will work only on code which you will have compiled (or are compiling) with them.
<phantomics> Right, I already have a system for listing assigned variables, but there are some corner case bugs to work out. Maybe it just needs a compiler pass over the full generated code
hhdave has quit [Ping timeout: 252 seconds]
hhdave_ is now known as hhdave
<pjb> phantomics: but really, the point is that all the lexical environment is just right under your nose: it's literally written down!
<pjb> So the way to do this (let ((a 1)) (let2 ((a)) (+ a 5))) is NOT to define and write a let2 to be used inside.
<phantomics> pjb: this is for my APL compiler, so these are measures to handle how APL deals with lexical variables. None of this would be necessary for writing standard CL
<pjb> The right way is to write a macro such as: (rebinding-let ((a 1)) … (rebound (+ a 5)) …)
<pjb> rebinding-let can expand to the outer let, and a macrolet rebound that will expand to your let2.
<phantomics> I'm automatically hoisting variables and building (let) forms for them as part of compilation
<pjb> More reason to avoid any shenanigans! You're generting the code. Therefore generate the code correctly!
nij- has joined #commonlisp
rgherdt has quit [Read error: Connection reset by peer]
rgherdt has joined #commonlisp
cosimone has quit [Remote host closed the connection]
aeth has quit [Ping timeout: 272 seconds]
aeth has joined #commonlisp
cosimone has joined #commonlisp
Bike has joined #commonlisp
nij- has quit [Remote host closed the connection]
nij- has joined #commonlisp
nij- has quit [Remote host closed the connection]
nij- has joined #commonlisp
ck_ has quit [Ping timeout: 268 seconds]
fizbin has quit [Ping timeout: 258 seconds]
amb007 has quit [Ping timeout: 256 seconds]
ck_ has joined #commonlisp
azimut has quit [Ping timeout: 244 seconds]
amb007 has joined #commonlisp
notzmv has joined #commonlisp
azimut has joined #commonlisp
nature has joined #commonlisp
hhdave has quit [Ping timeout: 268 seconds]
hhdave_ has joined #commonlisp
nature has quit [Ping timeout: 248 seconds]
Inline has joined #commonlisp
azimut has quit [Ping timeout: 244 seconds]
jimka has quit [Ping timeout: 268 seconds]
hafat has quit [Quit: Leaving]
jimka has joined #commonlisp
jans1 has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
jans has quit [Ping timeout: 252 seconds]
jans1 is now known as jans
azimut has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #commonlisp
<Josh_2> Is quicklisp library search working on the website?
<Josh_2> it timedout for me
lisp123 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
amb007 has joined #commonlisp
waleee has quit [Ping timeout: 245 seconds]
Vultyre has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Vultyre has joined #commonlisp
amb007 has quit [Ping timeout: 258 seconds]
amb007 has joined #commonlisp
retropikel has quit [Ping timeout: 245 seconds]
Vultyre has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
waleee has joined #commonlisp
dlowe_ has joined #commonlisp
Vultyre has joined #commonlisp
Vultyre has quit [Client Quit]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
copec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
santiago` has joined #commonlisp
copec has joined #commonlisp
santiagopim has quit [Ping timeout: 240 seconds]
retropikel has joined #commonlisp
<Xach> Josh_2: what website?
Vultyre has joined #commonlisp
santiago` has quit [Ping timeout: 248 seconds]
pranavats has left #commonlisp [#commonlisp]
<yitzi> Probably the quickdocs one. It was defunct for a bit and now it is back up with a refresh. Maybe they changed their search query stuff?
<yitzi> Xach: Looks the quickdoc search query changed from http://www.quickdocs.org/search?&q=pkg to https://quickdocs.org/-/search?q=pkg
srhm has joined #commonlisp
<dilated_dinosaur> hey there! quick question that i am losing my mind over. in CL (in emacs) how do you put in a newline or carrage return in a string like "hello world\n" in C?
<Josh_2> Xach: the quicklisp website
<beach> dilated_dinosaur: Just put a newline in there.
<Josh_2> It just spins for me
<Josh_2> (when I search)
<beach> dilated_dinosaur: If you don't want that, do #.(format nil "first~%second")
attila_lendvai has joined #commonlisp
pranavats has joined #commonlisp
<dilated_dinosaur> huh thanks. this is too much of a pain because i don't know if i am fighting emacs, the repl or CL
<beach> Pleasure.
<lotuseater> beach: I thought also about telling TERPRI, but I think this isn't so much recommended. :)
Cymew has quit [Ping timeout: 248 seconds]
<yitzi> Josh_2: the quicklisp search probably links to quickdocs.org which just changed their search url. You can go directly to quickdocs.org to search if you want.
<beach> lotuseater: How would you structure that?
<Josh_2> I already found what I was looking for, thanks though
attila_lendvai has quit [Ping timeout: 272 seconds]
<lotuseater> Ah sure. It wouldn't help.
<lotuseater> Your advice with #.(format nil ...) is also helpful when writing docstrings one wants to have formatted in the source but also not too much spaces when looking them up.
<beach> Indeed. And then I use ~@<newline> to separate the lines.
<lotuseater> Will try that.
jimka has quit [Ping timeout: 272 seconds]
<Xach> thanks
<lotuseater> I see, without the @ it doesn't trigger when filling in more newlines.
<beach> The @ modifier eliminates initial whitespace on the next line, so that all lines are aligned in the leftmost column.
<lotuseater> Good to know, another thing I wasn't aware of. FORMAT has so many options and possibilities.
<beach> Yeah.
<lotuseater> CLHS 22.3.9.3 covers that too I see now.
nij- has left #commonlisp [#commonlisp]
jimka has joined #commonlisp
amb007 has quit [Ping timeout: 272 seconds]
amb007 has joined #commonlisp
ec has joined #commonlisp
retropikel has quit [Ping timeout: 248 seconds]
Tomte has quit [Quit: Leaving]
jimka has quit [Ping timeout: 272 seconds]
jimka has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
retropikel has joined #commonlisp
ec has joined #commonlisp
lad has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
pve has quit [Quit: leaving]
Fare has joined #commonlisp
fizbin has joined #commonlisp
contrapunctus has joined #commonlisp
notzmv has quit [Ping timeout: 272 seconds]
<Josh_2> With sly which command takes me to the source for a function?
jimka has quit [Ping timeout: 276 seconds]
Inline has quit [Quit: Leaving]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
gaqwas has joined #commonlisp
ec has joined #commonlisp
notzmv has joined #commonlisp
<ck_> I'd guess C-]
amb007 has quit [Ping timeout: 258 seconds]
<ck_> oh, that was a slimv guess, sorry. Josh_2: M-.
amb007 has joined #commonlisp
fizbin_ has joined #commonlisp
jimka has joined #commonlisp
fizbin has quit [Quit: Leaving...]
fizbin_ is now known as fizbin
fizbin has quit [Client Quit]
fizbin has joined #commonlisp
eta is now known as 077AACRPE
selwyn has quit [Read error: Connection reset by peer]
karlosz has joined #commonlisp
077AACRPE is now known as eta
rain3 has quit [Ping timeout: 276 seconds]
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
karlosz has quit [Quit: karlosz]
pve has joined #commonlisp
lisp123 has quit [Ping timeout: 248 seconds]
ec has quit [Ping timeout: 244 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
yitzi has quit [Quit: Leaving]
waleee has quit [Ping timeout: 268 seconds]
zephyr has joined #commonlisp
amb007 has joined #commonlisp
waleee has joined #commonlisp
ec has joined #commonlisp
<lotuseater> Good to know, someone told me about a special rule when using (setq var thing) and VAR is a symbol macro the setq works like setf.
fourier has quit [Quit: leaving]
fizbin has quit [Ping timeout: 272 seconds]
fizbin has joined #commonlisp
lisp123 has joined #commonlisp
dlowe_ has quit [Remote host closed the connection]
aeth has quit [Ping timeout: 276 seconds]
aeth has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
yitzi has joined #commonlisp
jimka has quit [Ping timeout: 268 seconds]
lisp123 has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
lisp123 has quit [Ping timeout: 268 seconds]
fizbin has quit [Ping timeout: 272 seconds]
nij- has joined #commonlisp
ec has joined #commonlisp
fizbin has joined #commonlisp
jimka has joined #commonlisp
selwyn has joined #commonlisp
lisp123 has joined #commonlisp
hafat has joined #commonlisp
fizbin has quit [Ping timeout: 256 seconds]
lisp123 has quit [Ping timeout: 272 seconds]
<jmercouris> is there a way to 'inherit' nicknames from a package as well?
<jmercouris> so for example, let's say I have package tomato
<jmercouris> and in package tomato I make a nickname for package pepper named "p"
<jmercouris> then I :USE tomato
<phoe> you mean package-local nicknames?
<jmercouris> yes
<phoe> I don't think it's possible to inherit PLNs
<jmercouris> I mean those specifically
<jmercouris> damnit
<jmercouris> perhaps I shall make a macro for it then
<phoe> might be a good idea for UIOP:DEFINE-PACKAGE though?...
<jmercouris> perhaps
<phoe> to grab all local nicknames from one package and copy them into another
<jmercouris> I wasn't thinking of a generalized macro like that, but that could also work
<White_Flame> package-local names should ideally be package interned symbols as well
<White_Flame> but that's quite a significant change
<jmercouris> phoe: is there a way to list all package local nicknames in a package?
<phoe> jmercouris: yes, tpln:package-local-nicknames
<jmercouris> I see
karlosz has joined #commonlisp
<jmercouris> OK I will write such a macro then
<jmercouris> ah, and it is nicely formatted to
<jmercouris> s/to/too
ec has quit [Ping timeout: 244 seconds]
aeth has quit [Ping timeout: 258 seconds]
khrbt has joined #commonlisp
aeth has joined #commonlisp
lisp123 has joined #commonlisp
fizbin has joined #commonlisp
jimka has quit [Ping timeout: 272 seconds]
ec has joined #commonlisp
<jmercouris> OK here is something a bit odd
<jmercouris> why does it remove the 'trivial-package-local-nicknames' in the expansion?
yitzi_ has joined #commonlisp
<phoe> because the symbol is present in your current package
<phoe> are you in CL-USER?
yitzi_ has quit [Remote host closed the connection]
<jmercouris> I don't recall
<jmercouris> I just did C-c M-m
<phoe> that's likely the case then
<jmercouris> OK
yitzi_ has joined #commonlisp
<jmercouris> see any other problems with the macro?
<jmercouris> does it look reasonable?
khrbt has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
yitzi has quit [Ping timeout: 258 seconds]
<phoe> it does not need to be a macro
<jmercouris> OK, so a function, why not
yitzi_ has quit [Client Quit]
yitzi has joined #commonlisp
shka has quit [Ping timeout: 256 seconds]
lisp123 has quit [Quit: Leaving...]
attila_lendvai has joined #commonlisp
Alfr has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
ec has joined #commonlisp
pve has quit [Quit: leaving]
karlosz has quit [Quit: karlosz]
dsk has joined #commonlisp
fizbin has quit [Ping timeout: 258 seconds]
karlosz has joined #commonlisp
char has quit [Ping timeout: 258 seconds]
jimka has joined #commonlisp
yitzi has quit [Quit: Leaving]
jimka has quit [Ping timeout: 272 seconds]
khrbt has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
karlosz has quit [Quit: karlosz]
kevingal has quit [Remote host closed the connection]
karlosz has joined #commonlisp
<phoe> if anything, remember to call it in EVAL-ALWAYS so it affects the compilation environment
karlosz has quit [Ping timeout: 272 seconds]
pegaso has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
ec has joined #commonlisp
char has joined #commonlisp
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
fizbin has joined #commonlisp
char has quit [Ping timeout: 272 seconds]
fizbin has quit [Ping timeout: 256 seconds]
pillton has joined #commonlisp
<pillton> mfiano: Yes. I am the author of specialization-store.
cosimone has quit [Ping timeout: 268 seconds]
gaqwas has quit [Ping timeout: 258 seconds]
akoana has joined #commonlisp
jimka has joined #commonlisp
khrbt has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
<mfiano> pillton: Hello.
<mfiano> In the documentation I didn't find any mention of what is expected for the &body portion of defstore, and none of the examples use it. I was just curious, because it seems to be checking for a list with car being a keyword symbol and cadr being a function designator, or something along those lines.
ec has quit [Ping timeout: 244 seconds]
ec has joined #commonlisp
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
rgherdt has quit [Ping timeout: 272 seconds]
cjb has joined #commonlisp
luna-is-here has quit [Ping timeout: 268 seconds]
luna-is-here has joined #commonlisp
khrbt has joined #commonlisp
attila_lendvai has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
elderK has joined #commonlisp
<pillton> mfiano: It is part of the MOP for specialization store. You can pass arguments to the class which instantiates the store object.
dsk has quit [Ping timeout: 258 seconds]
<pillton> The default implementation has no options I think.
jimka has quit [Ping timeout: 258 seconds]
makomo has quit [Ping timeout: 245 seconds]
luna-is-here has quit [Read error: Connection reset by peer]
luna-is-here has joined #commonlisp
<pillton> You can change the class of the specialization object used by the store by using the :specialization-class option.
ec has quit [Quit: ec]
yitzi has joined #commonlisp
khrbt has quit [Quit: My MacBook Air has gone to sleep. ZZZzzz…]
khrbt has joined #commonlisp
cjb has quit [Quit: rcirc on GNU Emacs 28.0.50]
cjb has joined #commonlisp
srhm has quit [Quit: Konversation terminated!]
srhm has joined #commonlisp
jimka has joined #commonlisp
khrbt has quit [Client Quit]
kakuhen has joined #commonlisp
taiju has quit [Ping timeout: 258 seconds]
taiju has joined #commonlisp
ahc has quit [Quit: Client closed]
pegaso has quit [Quit: Leaving]
dsk has joined #commonlisp
attila_lendvai has quit [Ping timeout: 276 seconds]
jimka has quit [Ping timeout: 268 seconds]
dsk has quit [Ping timeout: 256 seconds]