<Shinmera>
What do you expect to happen if you do that?
<beach>
I don't know. That's why I am asking.
jeosol has joined #lisp
<Shinmera>
Since both are defined to define a type, I would assume whichever comes later to be the effective type definition.
<beach>
OK.
cosimone has joined #lisp
<Shinmera>
defclass furthermore states: "Defining a new class also causes a type of the same name to be defined. The predicate (typep object class-name) returns true if the class of the given object is the class named by class-name itself or a subclass of the class class-name."
<Shinmera>
So I would assume that makes it invalid to define a type after a class of the same name.
gabiruh has joined #lisp
Necktwi has quit [Quit: leaving]
<beach>
That seems quite reasonable.
<Shinmera>
Given that the new type definition won't erase the class, and thus the above must still hold
<beach>
Perhaps it is even invalid to do it the other way around.
<beach>
I.e., perhaps the answer to my first question is "no".
<Shinmera>
"Every class that has a proper name has a corresponding type with the same name."
<Shinmera>
So yeah, I'd say "no."
<beach>
Thanks.
<beach>
I tend to agree.
gabiruh_ has quit [Ping timeout: 276 seconds]
<beach>
SBCL allows the deftype, but signals a warning.
<beach>
Same for the inverse order.
<beach>
OK, I think I have all the elements.
<beach>
Shinmera: Thanks again.
<beach>
And now, lunch.
<Shinmera>
Sure.
ngqrl has joined #lisp
frgo has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 250 seconds]
synaps3 has joined #lisp
synaps3 has quit [Changing host]
synaps3 has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
synaps3 has quit [Client Quit]
frgo has joined #lisp
Sose has joined #lisp
ngqrl has quit [Quit: ngqrl]
superkumasan has quit [Ping timeout: 252 seconds]
jackdaniel2 has joined #lisp
jackdaniel has quit [Quit: jackdaniel]
orivej has joined #lisp
superkumasan has joined #lisp
lxbarbosa has quit [Ping timeout: 246 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
ebrasca has joined #lisp
makomo has joined #lisp
EvW1 has joined #lisp
davepdotorg has quit [Remote host closed the connection]
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 250 seconds]
X-Scale` is now known as X-Scale
EvW1 has quit [Ping timeout: 245 seconds]
anewuser has joined #lisp
atgreen_ has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
<flip214>
Is there some good way to have local methods to GF? Yes, I can use MOP to remove the method with UNWIND-PROTECT, or have a default method on T use a handler via a special variable... the latter one would at least be correct w.r.t. the dynamic environment, and possibly faster as the GF isn't recalculated
cosimone has quit [Remote host closed the connection]
<luis>
Right you can defined layered methods. Not sure if that's what flip214 meant by local.
<Shinmera>
flip214: what's the use-case?
cosimone has joined #lisp
<flip214>
I meant a method on a GF that's "temporarily" visible - although that should mean "lexically" rather than the chronological sense.
<flip214>
Shinmera: adding a new "handled" case to a GF that is only used in a small part of code because I (generally) can't assume that this is valid for every use-case.
<Shinmera>
So you call out to another function that then calls a GF that you would like to temporarily subvert?
__vlgvrs has joined #lisp
<flip214>
basically, yeah. And (not right now, but generally) I can't know what other code wants to run the same GF - perhaps at the same time.
lucasb has joined #lisp
<heisig>
flip214: Lexical modification of generic functions sounds scary and inefficient. Are you 100% sure this is what you want?
<Shinmera>
flip214: The only idea I have is to have a catchall method that checks a dynamic variable and invokes the closure in that if present.
<heisig>
Sounds like you could also solve the problem by providing two generic functions instead of one, and maybe a third one to handle the shared functionality.
<luis>
Shinmera: or use contextl :-)
<Shinmera>
luis: I don't know that, so I cannot comment.
<luis>
Shinmera: if you squint hard enough, you've just described contextl ;-)
<Shinmera>
Ah, alright.
_paul0 has quit [Ping timeout: 276 seconds]
<flip214>
heisig: no. that's why I'm asking ;)
<luis>
flip214: _death's suggestion is good. Although, there's probably a simpler way to implement whatever you're doing, checking out contextl is a good idea.
<Shinmera>
Also the modification is not lexical, but rather dynamic.
<flip214>
Shinmera: yeah, right. that was my idea as well - whether my lisp throws an error because there's no method or I throw (perhaps the same?) error because the special is currently NIL gets the same result.
<Shinmera>
flip214: You can also invoke no-applicable-method yourself to make it appear the same.
<flip214>
Shinmera: ah yeah, right. dynamic, not only lexical.
<luis>
yeah, I'm not sure how it would work lexically. It'd only catch direct calls in that lexical environment. Might as well use flet and an etypecase or something?
<flip214>
Shinmera: yes, exactly.
<flip214>
luis: no, dynamic is what I want anyway. sorry about the confusion!
<luis>
flip214: check out contextl, then.
<flip214>
I've read about contextl already - but I would have to check whether that can be interoperably used on an existing GF.
<flip214>
never mind, my question has been answered already -- thanks to all!
jonatack has quit [Ping timeout: 265 seconds]
jonatack has joined #lisp
davepdotorg has joined #lisp
Bike has joined #lisp
<clothespin_>
are there any tools which instrument foreign heap usage which can be used with sbcl?
bitmapper has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
jonatack has joined #lisp
gko_ has joined #lisp
nika_ has joined #lisp
atgreen_ has quit [Ping timeout: 264 seconds]
ljavorsk has quit [Ping timeout: 268 seconds]
matijja` has joined #lisp
EvW has joined #lisp
rgherdt has joined #lisp
EvW has quit [Ping timeout: 264 seconds]
makomo has quit [Ping timeout: 240 seconds]
jackdaniel has joined #lisp
emacsomancer has quit [Quit: WeeChat 2.6]
frgo has quit [Remote host closed the connection]
gko_ has quit [Remote host closed the connection]
jmercouris has joined #lisp
stepnem has quit [Read error: Connection reset by peer]
Duuqnd_ has joined #lisp
Duuqnd has quit [Disconnected by services]
stepnem has joined #lisp
Duuqnd_ is now known as duuqnd
jeosol has quit [Quit: Connection closed for inactivity]
JohnMS_WORK has quit [Read error: Connection reset by peer]
JohnMS_WORK has joined #lisp
jonatack has quit [Ping timeout: 264 seconds]
gxt has quit [Read error: Connection reset by peer]
gxt has joined #lisp
heisig has quit [Quit: Leaving]
florest has joined #lisp
davepdotorg has quit [Remote host closed the connection]
xkapastel has joined #lisp
atgreen_ has joined #lisp
Necktwi has quit [Ping timeout: 268 seconds]
frgo has joined #lisp
frgo has quit [Ping timeout: 250 seconds]
ebzzry has quit [Read error: Connection reset by peer]
clothespin_ has quit [Read error: Connection reset by peer]
scymtym_ has joined #lisp
clothespin has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
scymtym has quit [Ping timeout: 250 seconds]
oni-on-ion has joined #lisp
dddddd has joined #lisp
duuqnd has quit [Disconnected by services]
Duuqnd_ has joined #lisp
Duuqnd_ is now known as Duuqnd
<jmercouris>
any way to get the URL of a quicklisp repository via CL rather than looking on disk?
<jmercouris>
s/quicklisp repostiroy/system available in a quicklisp dist
<jmercouris>
I'm asking because I've done (ql:system-apropos "xyz") and I'm trying to see if a match corresponds to a repository I found on GitHub
<Xach>
jmercouris: the quicklisp-projects is the source of that info and it's not directly exposed via quicklisp commands
<Xach>
quicklisp-projects repo
Bourne has joined #lisp
EvW1 has quit [Ping timeout: 245 seconds]
dale_ has joined #lisp
dale_ is now known as dale
icov0x29a has joined #lisp
cosimone has quit [Remote host closed the connection]
davepdotorg has joined #lisp
cosimone has joined #lisp
jmercouris has quit [Ping timeout: 240 seconds]
emacsomancer has quit [Read error: Connection reset by peer]
jmercouris has joined #lisp
<jmercouris>
Xach: OK, thanks
emacsomancer has joined #lisp
jmercouris has quit [Remote host closed the connection]
sjl_ has joined #lisp
rgherdt has quit [Ping timeout: 276 seconds]
jackdaniel has quit [Quit: jackdaniel]
bitmapper has quit [Ping timeout: 250 seconds]
lxbarbosa has joined #lisp
matijja` has quit [Ping timeout: 276 seconds]
uint has joined #lisp
<luis>
SBCL complains about (ppcre:register-groups-bind (n) ("f(\\d+)" "f42") (read-from-string n)) since it thinks n could be NIL. Is there any way to appease the type checker?
cosimone has quit [Quit: Terminated!]
gareppa has joined #lisp
gareppa has quit [Remote host closed the connection]
<luis>
Hmm. (when n ...) is the obvious way, of course. Missed it because I had the same issue twice in the same function. :-)
lxbarbosa has quit [Remote host closed the connection]
lxbarbosa has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
lxbarbosa has quit [Remote host closed the connection]
<Xach>
luis: that's been around for a long time. i wish it wasn't necessary.
<Bike>
in case you don't know, you can just do (register-groups-bind ((n #'parse-integer)) (...) n), though in a limited case like that it's not much clearer
<Xach>
the last time i asked i think it had to do with heuristics for hiding unreachable code notes
rgherdt has joined #lisp
<Bike>
i mean it could actually be a problem, right? with a regex where the group isn't always captured, anyway, and it's probably hard to make whether a group is required perfectly clear...
<luis>
Bike: not sure what you mean. That doesn't compile.
<Bike>
it doesn't?
<Bike>
hm
<luis>
Bike: true, it could be NIL if the regex has fewer groups for instance.
<luis>
I think I might write a version of register-groups-bind that only selects the clause if all register-groups are non-nil.
<Bike>
oh, i got it backwards
<Bike>
(#'parse-integer n)
<Bike>
that is, (ppcre:register-groups-bind ((#'parse-integer n)) ("f(\\d+)" "f42") n) => 42
<luis>
Bike: ah, nice!
<Bike>
i would think a group not binding would mean it's part of a conditional or something
<Bike>
so that's you know, fine
<Bike>
probably intentional
Necktwi has quit [Ping timeout: 268 seconds]
Necktwi has joined #lisp
smazga has joined #lisp
Cymew has quit [Ping timeout: 245 seconds]
Trystam has quit [Quit: Leaving]
clothespin_ has joined #lisp
rgherdt has quit [Read error: Connection reset by peer]
nullniverse has quit [Remote host closed the connection]
davepdot_ has joined #lisp
rgherdt has joined #lisp
nullniverse has joined #lisp
nullniverse has joined #lisp
nullniverse has quit [Changing host]
davepdotorg has quit [Ping timeout: 252 seconds]
clothespin has quit [Ping timeout: 252 seconds]
enrio has quit [Quit: Leaving]
davepdot_ has quit [Remote host closed the connection]
superkumasan has quit [Ping timeout: 265 seconds]
druidofluhn has quit [Quit: WeeChat 1.9.1]
jonatack has joined #lisp
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` has joined #lisp
X-Scale` is now known as X-Scale
anewuser has quit [Ping timeout: 240 seconds]
icov0x29a has quit [Quit: Leaving]
davepdotorg has joined #lisp
superkumasan has joined #lisp
jackdaniel has joined #lisp
Necktwi has quit [Ping timeout: 246 seconds]
bitmapper has joined #lisp
igemnace has quit [Quit: WeeChat 2.6]
lavaflow has joined #lisp
EvW has joined #lisp
enrio has joined #lisp
shka_ has joined #lisp
LiamH has joined #lisp
matijja has quit [Remote host closed the connection]