mala has quit [Read error: Connection reset by peer]
mala has joined #commonlisp
jonatack has joined #commonlisp
Fare has joined #commonlisp
jonatack has quit [Ping timeout: 244 seconds]
bpanthi977 has joined #commonlisp
alfiee has joined #commonlisp
istewart has quit [Quit: Konversation terminated!]
istewart has joined #commonlisp
bpanthi977 has quit [Ping timeout: 260 seconds]
theruran has joined #commonlisp
alfiee has quit [Ping timeout: 252 seconds]
surabax has quit [Quit: Leaving]
jonatack has joined #commonlisp
Fare has quit [Ping timeout: 245 seconds]
jonatack has quit [Ping timeout: 265 seconds]
bpanthi977 has joined #commonlisp
bpanthi977 has quit [Ping timeout: 268 seconds]
bpanthi977 has joined #commonlisp
random-nick has quit [Ping timeout: 246 seconds]
<semz>
Is there a standardized or generally accepted way to declare that a function doesn't return normally?
<semz>
think of a return type for ERROR
<semz>
oh right, NIL is the empty type, so you just declare a return type of NIL
<Alfr>
semz, not returning, returning nothing and returning something of type NIL are very different things. And the last one arguably shouldn't be possible.
alfiee has joined #commonlisp
<semz>
If returning something of type NIL is not possible, then declaring NIL as the return type is declaring that the function cannot return
<semz>
since any return would violate the declaration
jonatack has joined #commonlisp
triffid has quit [Remote host closed the connection]
alfiee has quit [Ping timeout: 252 seconds]
jonatack has quit [Ping timeout: 252 seconds]
<Alfr>
semz, hm ... maybe. Or a compiler could just balk, I think.
Inline has quit [Ping timeout: 252 seconds]
triffid has joined #commonlisp
zwr has quit [Remote host closed the connection]
Fare has joined #commonlisp
soweli_iki has quit [Ping timeout: 248 seconds]
<_death>
note that an ftype declaration doesn't refer to the function itself, but to calls to it..
chum-cha has joined #commonlisp
<Alfr>
_death, yes. Equally bad: Let's arrange to receive a value from the empty set.
bilegeek has joined #commonlisp
jonatack has joined #commonlisp
brokkoli_origin has quit [Ping timeout: 252 seconds]
jonatack has quit [Ping timeout: 252 seconds]
Fare has quit [Ping timeout: 268 seconds]
chum-cha has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
alfiee has joined #commonlisp
stirl has quit [Ping timeout: 244 seconds]
brokkoli_origin has joined #commonlisp
waleee has quit [Ping timeout: 272 seconds]
brokkoli_origin has quit [Remote host closed the connection]
alfiee has quit [Ping timeout: 260 seconds]
jonatack has joined #commonlisp
brokkoli_origin has joined #commonlisp
Oddity has joined #commonlisp
Oddity has quit [Changing host]
Oddity has joined #commonlisp
<bike>
semz, Alfr: nil (bottom) return type meaning "doesn't return" is pretty conventional. the logic works out, since it means valid code like (+ 4 (error ...)) typechecks (as nil is a subtype of number)
decweb has quit [Quit: Konversation terminated!]
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 252 seconds]
deadmeme has joined #commonlisp
<Alfr>
bike, yes, neat convention. But I don't think we have that in CL.
<Alfr>
... have that, as in, that the spec implies it.
<beach>
Alfr: What is it that you think the standard does not imply?
<bike>
that nil as a function return type indicates that the function doesn't return normally.
<bike>
the spec implies it in that nil is defined as the bottom type, and this is how bottom types work.
<bike>
sbcl uses nil in this way, and so does cleavir for what that's worth
<Alfr>
bike, I'm say implementations can't reasonably repurpose that, but: "[...] and returns values that are members of the types specified by value-type."
<Alfr>
*not
<beach>
Alfr: I can't follow what you are saying because you are using "it" and "that" without specifying what they refer to.
<Alfr>
"that" in the above refers to NIL as the value-typespec. The quote is from System Class FUNCTION.
Fare has joined #commonlisp
bpanthi977 has quit [Ping timeout: 276 seconds]
bpanthi977 has joined #commonlisp
alfiee has joined #commonlisp
bpanthi977 has quit [Ping timeout: 260 seconds]
alfiee has quit [Ping timeout: 260 seconds]
cqst_ has joined #commonlisp
cqst has quit [Ping timeout: 252 seconds]
scymtym has quit [Ping timeout: 246 seconds]
scymtym has joined #commonlisp
deadmeme has quit [Ping timeout: 244 seconds]
alfiee has joined #commonlisp
deadmeme has joined #commonlisp
gnoo has quit [Ping timeout: 245 seconds]
gnoo has joined #commonlisp
alfiee has quit [Ping timeout: 248 seconds]
ym has joined #commonlisp
deadmeme has quit [Ping timeout: 260 seconds]
msv has quit [Read error: Connection reset by peer]
svm has joined #commonlisp
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 260 seconds]
edgar-rft_ has joined #commonlisp
Fare has quit [Ping timeout: 248 seconds]
edgar-rft` has quit [Ping timeout: 248 seconds]
bilegeek has quit [Quit: Leaving]
Fare has joined #commonlisp
cmack` has joined #commonlisp
cmack has quit [Ping timeout: 245 seconds]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 252 seconds]
Lord_of_Life_ is now known as Lord_of_Life
jrx has joined #commonlisp
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 252 seconds]
pve has joined #commonlisp
mishoo has joined #commonlisp
jrx` has joined #commonlisp
jrx has quit [Ping timeout: 248 seconds]
dra has joined #commonlisp
dra has quit [Changing host]
dra has joined #commonlisp
Fare has quit [Ping timeout: 260 seconds]
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 248 seconds]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
bpanthi977 has joined #commonlisp
alfiee has joined #commonlisp
bpanthi977 has quit [Ping timeout: 260 seconds]
bjorkintosh has quit [Ping timeout: 276 seconds]
alfiee has quit [Ping timeout: 252 seconds]
gnoo has quit [Ping timeout: 260 seconds]
gnoo has joined #commonlisp
jrx`` has joined #commonlisp
jrx` has quit [Ping timeout: 272 seconds]
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
alfiee has joined #commonlisp
jonatack has quit [Ping timeout: 252 seconds]
jonatack has joined #commonlisp
alfiee has quit [Ping timeout: 245 seconds]
varjag has joined #commonlisp
mwnaylor has quit [Ping timeout: 260 seconds]
mwnaylor has joined #commonlisp
istewart has quit [Quit: Konversation terminated!]
bpanthi977 has joined #commonlisp
bpanthi977 has quit [Ping timeout: 248 seconds]
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 248 seconds]
Inline has joined #commonlisp
Inline has quit [Ping timeout: 245 seconds]
<phoe>
you cannot return values that are members of type NIL if you do not return at all
<phoe>
come on, the spec does not *require* functions in general to ever return a value
<phoe>
that part of the spec should be read as "if the function returns a value, it must be of type VALUE-TYPE"
kevingal has joined #commonlisp
deadmeme has joined #commonlisp
alfiee has joined #commonlisp
King_julian has joined #commonlisp
alfiee has quit [Ping timeout: 268 seconds]
MyNetAz has quit [Remote host closed the connection]
uam has joined #commonlisp
MyNetAz has joined #commonlisp
varjag has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.2)]
deadmeme has quit [Ping timeout: 268 seconds]
yi has joined #commonlisp
mosin has joined #commonlisp
<mosin>
xk
mosin has left #commonlisp [ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)]
yi has left #commonlisp [#commonlisp]
jrx`` has quit [Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)]
alfiee has joined #commonlisp
Guest47 has joined #commonlisp
chum-cha has joined #commonlisp
alfiee has quit [Ping timeout: 246 seconds]
zxcvz has joined #commonlisp
euandreh has quit [Read error: Connection reset by peer]
euandreh has joined #commonlisp
montxero has quit [Remote host closed the connection]
random-nick has joined #commonlisp
cage has quit [Remote host closed the connection]
cage has joined #commonlisp
cage has quit [Excess Flood]
cage has joined #commonlisp
Inline has joined #commonlisp
alfiee has joined #commonlisp
cage has quit [Client Quit]
alfiee has quit [Ping timeout: 252 seconds]
Guest47_ has joined #commonlisp
Guest47 has quit [Ping timeout: 245 seconds]
MyNetAz has quit [Remote host closed the connection]
Guest47_ has quit [Client Quit]
bpanthi977 has joined #commonlisp
bpanthi977 has quit [Ping timeout: 260 seconds]
attila_lendvai has joined #commonlisp
attila_lendvai has quit [Ping timeout: 244 seconds]
surabax has joined #commonlisp
surabax has quit [Changing host]
surabax has joined #commonlisp
uam has quit [Quit: Connection closed for inactivity]
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 246 seconds]
MyNetAz has joined #commonlisp
kevingal has quit [Ping timeout: 272 seconds]
deadmeme has joined #commonlisp
yaneko2 has joined #commonlisp
yaneko has quit [Ping timeout: 272 seconds]
yaneko2 is now known as yaneko
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 268 seconds]
reb has quit [Remote host closed the connection]
bjorkintosh has joined #commonlisp
bjorkintosh has joined #commonlisp
vardhan_ has quit [Ping timeout: 265 seconds]
vardhan has quit [Ping timeout: 265 seconds]
apac has joined #commonlisp
Guest47 has joined #commonlisp
Fare has joined #commonlisp
vardhan_ has joined #commonlisp
vardhan has joined #commonlisp
ixelp has quit [Ping timeout: 252 seconds]
ixelp has joined #commonlisp
vardhan_ has quit [Ping timeout: 245 seconds]
vardhan has quit [Ping timeout: 252 seconds]
alfiee has joined #commonlisp
alfiee has quit [Ping timeout: 248 seconds]
decweb has joined #commonlisp
apac has quit [Ping timeout: 252 seconds]
apac has joined #commonlisp
bpanthi977 has joined #commonlisp
vardhan_ has joined #commonlisp
vardhan has joined #commonlisp
vardhan has quit [Remote host closed the connection]
vardhan_ has quit [Read error: Connection reset by peer]
<bigbookofbug>
i was curious about the behaviour in evaluating a function symbol like `+` or `/`, and why it results in this output: https://pasteboard.co/guzCEIbtEuiz.png
<ixelp>
Pasteboard - Uploaded Image
<beach>
That's because they are also defined as variables.