milanj has quit [Quit: This computer has gone to sleep]
niceplace has quit [Read error: Connection reset by peer]
karswell has quit [Read error: No route to host]
Oladon has joined #lisp
niceplace has joined #lisp
karswell_ has joined #lisp
ltriant has joined #lisp
<no-defun-allowed>
I have a very silly function (defun f (y) (let ((x (/ y))) 2)). Evidently the variable X is never used, but shouldn't it not be removed because it could signal a condition if I call (y 0)?
<pjb>
iarebatm`: (find-if-not #'null list) ; ie. write it just as you say it!
<no-defun-allowed>
On SBCL it does optimizing for (safety 3), but not on default declaimations.
<edgar-rft>
no-defun-allowed: I think signalling conditions for wrong aguments should be done with CHECK-TYPE or ASSERT, I wouldn't expect that the compiler cares about silly code.
iarebatm` has quit [Ping timeout: 276 seconds]
<no-defun-allowed>
True, but should a compiler be able to optimise out useless code that may signal a condition like that?
<LdBeth>
#'no-defun-allowed: without default safety some conditions might not be signaled
<no-defun-allowed>
LdBeth: this was on SBCL's default safety AFAIK
gko has quit [Remote host closed the connection]
shka_ has joined #lisp
torbo has quit [Remote host closed the connection]
<no-defun-allowed>
But fair enough, pretty sure (/ 0) is UB.
karswell_ has quit [Remote host closed the connection]
gravicappa has joined #lisp
karswell_ has joined #lisp
<White_Flame>
if it's UB, then there's no mandate for it to be checked
Bike has quit [Quit: Lost terminal]
gko has joined #lisp
anewuser has quit [Quit: anewuser]
sindan has quit [Remote host closed the connection]
sindan has joined #lisp
<beach>
Good morning everyone!
manualcrank has quit [Quit: WeeChat 1.9.1]
vlatkoB has joined #lisp
sonologico has quit [Remote host closed the connection]
<Godel[m]>
Hi, does anybody know why alambda macro is not included in the "anaphora" package on quicklisp? Is there in any other package on quicklisp that includes it?
ntbre has quit [Ping timeout: 245 seconds]
_nir_ has quit [Read error: Connection reset by peer]
_nir_ has joined #lisp
Inline has quit [Quit: Leaving]
edgar-rft has quit [Quit: Leaving]
Finnfinn has quit [Remote host closed the connection]
edgar-rft has joined #lisp
krwq has quit [Remote host closed the connection]
<p_l>
(/ 0) is "unspecified", but with proposed error checking
ltriant has quit [Ping timeout: 245 seconds]
Oladon has quit [Quit: Leaving.]
ltriant has joined #lisp
JohnMS_WORK has joined #lisp
igemnace has quit [Ping timeout: 248 seconds]
waron has quit [Quit: WeeChat 2.4]
Necktwi has joined #lisp
permagreen has quit [Remote host closed the connection]
dale has quit [Quit: My computer has gone to sleep]
vlatkoB_ has joined #lisp
vlatkoB has quit [Ping timeout: 245 seconds]
flamebeard has joined #lisp
SaganMan has joined #lisp
jprajzne1 has joined #lisp
nullman has quit [Ping timeout: 245 seconds]
nullman has joined #lisp
ltriant has quit [Quit: leaving]
JohnMS_WORK has quit [Read error: Connection reset by peer]
JohnMS_WORK has joined #lisp
varjag has joined #lisp
milanj has joined #lisp
glv has joined #lisp
glv has quit [Remote host closed the connection]
Necktwi has quit [Ping timeout: 245 seconds]
libertyprime has quit [Ping timeout: 245 seconds]
HDurer has joined #lisp
hhdave has joined #lisp
igemnace has joined #lisp
superkumasan has joined #lisp
hhdave has quit [Ping timeout: 245 seconds]
hhdave has joined #lisp
Lord_of_Life has quit [Ping timeout: 276 seconds]
Lord_of_Life has joined #lisp
Insanity_ has joined #lisp
ggole has joined #lisp
orivej has joined #lisp
orivej has quit [Ping timeout: 276 seconds]
Insanity_ has quit [Remote host closed the connection]
wigust has quit [Read error: Connection reset by peer]
dtw has quit [*.net *.split]
liambrown has quit [*.net *.split]
iarebatman has quit [*.net *.split]
katco has quit [*.net *.split]
_whitelogger has joined #lisp
banjiewen has quit [Ping timeout: 272 seconds]
banjiewen has joined #lisp
schweers has joined #lisp
makomo has joined #lisp
nanoz has joined #lisp
Necktwi has joined #lisp
gko has quit [Remote host closed the connection]
SaganMan has quit [Quit: WeeChat 1.6]
libertyprime has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
orivej has joined #lisp
dddddd has joined #lisp
dkrm has joined #lisp
Ricchi has quit [Remote host closed the connection]
cosimone has joined #lisp
random-nick has joined #lisp
scymtym has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 248 seconds]
cosimone has quit [Quit: WeeChat 2.5]
cosimone has joined #lisp
shka_ has quit [Quit: Konversation terminated!]
cosimone has quit [Quit: WeeChat 2.5]
amerlyq has joined #lisp
CrazyEddy has quit [Remote host closed the connection]
orivej has joined #lisp
scymtym has joined #lisp
Kundry_Wag has joined #lisp
_whitelogger has joined #lisp
samlamamma has joined #lisp
m00natic has joined #lisp
jonatack has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
scymtym has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
mindthelion has quit [Ping timeout: 246 seconds]
BugsForDays2 has joined #lisp
BugsForDays has quit [Ping timeout: 272 seconds]
BugsForDays2 is now known as BugsForDays
notzmv has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 245 seconds]
ark has quit [Ping timeout: 252 seconds]
rme has quit [Remote host closed the connection]
rme has joined #lisp
BugsForDays2 has joined #lisp
BugsForDays has quit [Ping timeout: 246 seconds]
BugsForDays2 is now known as BugsForDays
milanj has joined #lisp
warweasle has joined #lisp
BugsForDays2 has joined #lisp
BugsForDays has quit [Ping timeout: 258 seconds]
BugsForDays2 is now known as BugsForDays
scymtym has joined #lisp
Necktwi has quit [Ping timeout: 248 seconds]
Necktwi has joined #lisp
DGASAU has quit [Read error: Connection reset by peer]
lucasb has joined #lisp
DGASAU has joined #lisp
manualcrank has joined #lisp
Bike has joined #lisp
superkumasan has quit [Ping timeout: 246 seconds]
cosimone has joined #lisp
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.2)]
refpga has quit [Remote host closed the connection]
samlamamma has quit [Remote host closed the connection]
joast has joined #lisp
ntbre has joined #lisp
Necktwi has quit [Ping timeout: 245 seconds]
cosimone has quit [Quit: WeeChat 2.5]
cosimone has joined #lisp
kajo has quit [Ping timeout: 250 seconds]
FreeBirdLjj has joined #lisp
whartung has joined #lisp
Josh_2 has joined #lisp
xkapastel has joined #lisp
jprajzne1 has quit [Remote host closed the connection]
saravia has joined #lisp
<frgo>
Hi all - ASDF question: How do I tell ASDF that a system is already loaded? (I have CLX on AllegroCL loaded using (require :clx) but now ASDF does not know that CLX is already there...) - TIA !
__jrjsmrtn__ has quit [Ping timeout: 245 seconds]
smazga has joined #lisp
_jrjsmrtn has joined #lisp
mindCrime has joined #lisp
superkumasan has joined #lisp
<mfiano>
(asdf:register-immutable-system :clx) should do it
<frgo>
mfiano: You're a genius! Thanks!
krid has joined #lisp
JohnMS has joined #lisp
<Xach>
frgo: it's possible that the clx that comes with allegro is not the "portable" clx that asdf would load.
<frgo>
Xach: Yeah - I am just running into issues now. Hm - I need to make McCLIM run on AllegroCL.
cosimone has quit [Ping timeout: 252 seconds]
Oladon_work has joined #lisp
<Xach>
frgo: interesting idea! why?
cosimone has joined #lisp
<frgo>
Well, I have a whole range of apps running using AllegroCL (using Franz' Allegrgraph DB). Now I want to have a fancy UI as a "control panel".
<frgo>
And McCLIM is actively developed.
<Xach>
Allegro CL comes with its own CLIM and GUI system, I think they are likely more complete and usable than McCLIM. (I have not used any of them so I don't know for sure.)
jprajzne has quit [Quit: jprajzne]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
aeth has quit [Ping timeout: 246 seconds]
<frgo>
Yep, sure. If I can't get McCLIM to work I'll try Franz' CLIM.
aeth has joined #lisp
<Xach>
I think if you asked Franz support they would steer you to their other thing, I have the impression they are trying to move customers off CLIM.
<Xach>
Again, speaking from relative ignorance
dale has joined #lisp
<beach>
Xach: It is not clear that McCLIM is much less complete than Allegro these days. McCLIM has had a lot of work done lately. And certainly, McCLIM is better in many respects in that it is faster, and it uses the Xrender extension for fonts and anti-aliased drawing.
<ebrasca>
beach: But I think I understand someting about clos meaning of "protocol".
<beach>
ebrasca: Do you know what an "interface" is?
<ebrasca>
beach: Probalby , i ui gui.
<beach>
Nope not that kind of interface.
<ebrasca>
defgeneric ?
mathrick has quit [Ping timeout: 250 seconds]
hhdave has quit [Quit: hhdave]
<beach>
I need to figure out a way to explain this to you, because if you don't know it, you are going to produce very bad code indeed. But dinner is imminent, so I don't have time to do it today.
<beach>
I guess the stack interface example i showed was not convincing.
<beach>
A protocol is a generalization of an interface.
<beach>
ebrasca: Do you know C?
<ebrasca>
beach: I program in lisp.
<beach>
I know.
<beach>
Try section 4.2 of this document: metamodular.com/modular-c.pdf
<ebrasca>
beach: Someting , almost noting of C.
<ebrasca>
I is for interface , UI is user interface and GUI is graphical user interface
<beach>
Section 4.2 does not mention C very much. The description is general.
<beach>
Two different meanings of "interface".
<ebrasca>
Is interface equal to promise/expectation?
<beach>
No.
igemnace has joined #lisp
hiroaki has joined #lisp
<ebrasca>
You expect to get someting/nil if you use pop.
<beach>
Usually, if you define a "stack" module, you get an error if you pop from an empty stack.
<beach>
That's the sane thing to do, so that client code can catch errors early.
<beach>
Otherwise, an error will propagate to later in the code, making it harder to find.
<beach>
Also, for a stack, there are two possibilities.
mathrick has joined #lisp
<beach>
Either POP returns a value and there is no TOP operation.
<ebrasca>
I think nil is better.
<beach>
It is not.
* ebrasca
don't undestand.
<beach>
Or else, POP does not return a value and there is a separate operation for returning the top element of the stack.
<beach>
Dinner. I'm off.
<ebrasca>
beach: ok
ggoes has joined #lisp
<Josh_2>
protocol is defined in the art of the metaobject protocol
ravndal has quit [Quit: WeeChat 2.5]
ravndal has joined #lisp
<Josh_2>
"these techniques work by (i) defining a set of object types and operations on them, which can support not just a single behavior, but a space or region of behaviors-this is commonly called a protocol;"
fivo has quit [Quit: WeeChat 1.9.1]
<ebrasca>
How I can make this protocol when I start making someting?
Necktwi has joined #lisp
<dlowe>
you imagine it up
<ebrasca>
I think protocol is someting like meta blueprint.
<dlowe>
it's just the operations available to operate on your kind of thing.
<ebrasca>
maybe protocol is equal to set.
<dlowe>
other languages call a protocol "the methods defined on your abstract classes"
<Josh_2>
you have a class, generic functions and methods that work on that class, that's a protocol. I think
<Josh_2>
or instances of that class
<ebrasca>
Josh_2: Yea, some set of generic functions and methods that work on some class
<ebrasca>
set of functions working on some set of clases
heisig has joined #lisp
<ebrasca>
Do I make sence?
man213 has joined #lisp
sauvin has quit [Ping timeout: 244 seconds]
Necktwi has joined #lisp
man213 has quit [Client Quit]
<dlowe>
I think bringing sets into is just complicating things
<dlowe>
No one talks about the union or intersection of protocols
<dlowe>
(that I know of0
eddof13 has joined #lisp
<ebrasca>
dlowe: I think it is easy to undestand with sets.
eddof13 has quit [Client Quit]
puchacz has quit [Quit: Connection closed for inactivity]
<ebrasca>
mmm union of class cat and class dog.
<beach>
ebrasca: What would you like to happen if you do (/ x y) and y happens to be 0?
<beach>
ebrasca: Would it be OK with you if the result where 42?
m00natic has quit [Remote host closed the connection]
<ebrasca>
beach: I think I like to get no operation when y is 0.
<beach>
What does it mean to "get no operation"?
<beach>
You do (setf z (/ x y)), what is the value of z after the operation?
<beach>
Would 42 be OK with you?
<ebrasca>
Probably better to give error.
<ebrasca>
You don't make x / 0 .
<beach>
ebrasca: Exactly, just like it is better to signal an error when you attempt to take the top of an empty stack.
<aeth>
(/ x y) might return an infinity if they're both floats and something like float-features:with-float-traps-masked is used. e.g. (float-features:with-float-traps-masked (:underflow :overflow :inexact :invalid :divide-by-zero :denormalized-operand) (/ 1f0 0f0)) ; in SBCL this gives a compilation style-warning because it catches it at compilation time, but it also returns #.SINGLE-FLOAT-POSITIVE-INFINITY
<aeth>
And IEEE is probably why it's undefined
<ebrasca>
I think nil is equal to no result.
<beach>
aeth: I am trying to teach ebrasca about interface design, not about floats.
<beach>
ebrasca: Not if you previously pushed NIL on the stack.
<aeth>
beach: sorry, I thought this was on the earlier (yesterday?) discussion about it being unspecified, and that was probably the edge case why
<mfiano>
and the IEEE 754 spec specifies NaN when BOTH are 0.0
makomo has joined #lisp
<beach>
ebrasca: If you return NIL, you can't distinguish between the case where NIL is the top element of the stack, and the case when the stack is empty.
<ebrasca>
why you push NIL ?
<beach>
*sigh*.
<beach>
I give up.
<beach>
See you later.
<ebrasca>
beach: Thanks!
<aeth>
mfiano: thanks
<mfiano>
sadly a lot of C libraries rely on these values and float traps has to be disabled for proper interfaces
<Bike>
why would you not put nil on a stack? it's a perfectly legitimate value.
eddof13 has joined #lisp
makomo_ has quit [Ping timeout: 244 seconds]
<mfiano>
Which is why cl-opengl recently got updated to do so for all ffi calls
nanoz has quit [Ping timeout: 245 seconds]
<aeth>
nil is the only falsey value so it shows up pretty much anywhere where you'd want false
<mfiano>
Otherwise some drivers would error on linking glsl
nanoz has joined #lisp
ebrasca has quit [Ping timeout: 272 seconds]
Aruseus has joined #lisp
Aruseus has quit [Read error: Connection reset by peer]
ebrasca has joined #lisp
makomo has quit [Quit: WeeChat 2.4]
jao has joined #lisp
jao is now known as Guest23817
<ebrasca>
beach: I think I undestand what protocol is.
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
lavaflow has quit [Ping timeout: 245 seconds]
igemnace has quit [Ping timeout: 272 seconds]
rumbler31 has joined #lisp
nanoz has quit [Ping timeout: 248 seconds]
Guest23817 has quit [Remote host closed the connection]
jao- has joined #lisp
jao- is now known as jao
hhdave has joined #lisp
Necktwi has quit [Remote host closed the connection]
JohnMS has quit [Quit: Konversation terminated!]
smazga has quit [Ping timeout: 245 seconds]
smazga has joined #lisp
maxxcan has joined #lisp
orivej has joined #lisp
maxxcan has quit [Client Quit]
reggie_ has joined #lisp
eddof13 has quit [Quit: eddof13]
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 258 seconds]
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
man213 has joined #lisp
bjorkintosh has quit [Quit: Leaving]
bjorkintosh has joined #lisp
gxt has quit [Remote host closed the connection]
gxt has joined #lisp
sonologico has joined #lisp
liberiga has joined #lisp
hhdave has quit [Quit: hhdave]
orivej has quit [Ping timeout: 268 seconds]
mindCrime has quit [Read error: Connection reset by peer]
gravicappa has quit [Ping timeout: 245 seconds]
heisig has quit [Quit: Leaving]
<aeth>
ebrasca: the problem with returning nil is that it could be a legitimate value, especially false or the empty list. There are afaik four common options here: raise a condition (or whatever the exact terminology is), return two values with the second value also being nil, use a keyword (which only works if it's not arbitrary data like a hash-table value), or return a (usually user-provided) default value
<aeth>
You can also do fancier things like return (values) as in no-value but that's normally treated as nil so it would require fancy handling. Afaik, only multiple-value-call and multiple-value-list would be able to detect (values) without just automatically replacing it with nil.
<aeth>
So that's probably the least viable option.
eddof13 has joined #lisp
vlatkoB_ has quit [Remote host closed the connection]
<aeth>
What's particularly interesting in some APIs is combining option #4 with option #1, i.e. having an error unless a default value is provided
Mandus has quit [Ping timeout: 245 seconds]
Mandus has joined #lisp
karlosz has quit [Quit: karlosz]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
karlosz has joined #lisp
<ebrasca>
aeth: Thank you!
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
orivej has joined #lisp
permagreen has joined #lisp
Jesin has quit [Quit: Leaving]
madmonkey has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 244 seconds]
Lord_of_Life_ is now known as Lord_of_Life
ggole has quit [Quit: Leaving]
techquila has joined #lisp
rumbler31 has quit [Ping timeout: 260 seconds]
amerlyq has quit [Quit: amerlyq]
cosimone has quit [Quit: WeeChat 2.5]
hiroaki has quit [Ping timeout: 245 seconds]
eddof13 has quit [Quit: eddof13]
madmonkey has quit [Remote host closed the connection]
eddof13 has joined #lisp
Frobozz_ is now known as Frobozz
hiroaki has joined #lisp
cosimone has joined #lisp
curiouscain has joined #lisp
maxxcan has joined #lisp
maxxcan has quit [Remote host closed the connection]
LiamH has quit [Quit: Leaving.]
isBEKaml has joined #lisp
ggoes has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
libertyprime has joined #lisp
isBEKaml has quit [Quit: leaving]
Bike has quit [Quit: Bike]
vms14 has joined #lisp
liberiga has quit [Ping timeout: 260 seconds]
man213 has quit [Quit: Going offline, see ya! (www.adiirc.com)]
FennecCode has joined #lisp
ltriant has joined #lisp
lavaflow has joined #lisp
slyrus_ has joined #lisp
theblacksquid has quit [Remote host closed the connection]
slyrus__ has quit [Ping timeout: 244 seconds]
eddof13 has quit [Ping timeout: 245 seconds]
superkumasan has quit [Ping timeout: 268 seconds]
Bike has joined #lisp
zotan has quit [Ping timeout: 245 seconds]
zotan has joined #lisp
lavaflow has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 246 seconds]
kajo has quit [Ping timeout: 264 seconds]
aindilis has quit [Remote host closed the connection]
smazga has quit [Quit: leaving]
zigpaw has quit [Remote host closed the connection]
zigpaw has joined #lisp
Jesin has joined #lisp
lavaflow has joined #lisp
Oladon_work has quit [Ping timeout: 260 seconds]
aindilis has joined #lisp
pjb has quit [Read error: Connection reset by peer]
pjb has joined #lisp
_nir_ has quit [Ping timeout: 268 seconds]
__jrjsmrtn__ has joined #lisp
_jrjsmrtn has quit [Ping timeout: 272 seconds]
kajo has joined #lisp
igemnace has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
saravia has quit [Remote host closed the connection]
xkapastel has joined #lisp
ebrasca has quit [Remote host closed the connection]