p_l changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | ASDF 3.3.4
wxie has quit [Ping timeout: 260 seconds]
emys has joined #lisp
<ralt> I wonder if taking over a library name in quicklisp is feasible :)
orivej has quit [Ping timeout: 264 seconds]
orivej_ has joined #lisp
emys has quit [Ping timeout: 256 seconds]
SGASAU` has quit [Remote host closed the connection]
SGASAU` has joined #lisp
emys has joined #lisp
smazga has quit [Ping timeout: 265 seconds]
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
smazga has joined #lisp
orivej has joined #lisp
karswell_ has joined #lisp
mgsk_ has quit [Ping timeout: 272 seconds]
sputny[m] has quit [Ping timeout: 265 seconds]
ChoHag has quit [Ping timeout: 272 seconds]
karswell has quit [Ping timeout: 265 seconds]
mgsk_ has joined #lisp
wxie has joined #lisp
smazga has quit [Ping timeout: 264 seconds]
sputny[m] has joined #lisp
ChoHag has joined #lisp
ahungry has joined #lisp
emys has quit [Read error: Connection timed out]
wxie1 has joined #lisp
wxie has quit [Read error: Connection reset by peer]
wxie1 is now known as wxie
wxie has quit [Ping timeout: 258 seconds]
SGASAU` has quit [Remote host closed the connection]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
EvW1 has quit [Ping timeout: 260 seconds]
<pjb> ralt: quicklisp deals with system names. There's no library name in CL.
emys has joined #lisp
emys has quit [Ping timeout: 246 seconds]
emys has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
smazga has joined #lisp
bitmapper has quit [Ping timeout: 258 seconds]
chipolux has joined #lisp
frgo has quit [Ping timeout: 264 seconds]
emys has quit [Ping timeout: 260 seconds]
monokrom has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
Kundry_W_ has joined #lisp
chwhelan has joined #lisp
Kundry_Wag has quit [Ping timeout: 258 seconds]
emys has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
dddddd has quit [Ping timeout: 272 seconds]
FreeBirdLjj has joined #lisp
emys has quit [Ping timeout: 246 seconds]
emys has joined #lisp
FreeBirdLjj has quit [Ping timeout: 246 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
mikecheck has quit [Ping timeout: 260 seconds]
emys has quit [Ping timeout: 246 seconds]
gigetoo has quit [Ping timeout: 256 seconds]
jesse1010 has quit [Ping timeout: 256 seconds]
orivej has quit [Read error: Connection reset by peer]
orivej_ has joined #lisp
emys has joined #lisp
oxum has joined #lisp
jfrancis_ has joined #lisp
jfrancis has quit [Ping timeout: 265 seconds]
gigetoo has joined #lisp
emys has quit [Ping timeout: 240 seconds]
emys has joined #lisp
orivej_ has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
jfrancis_ has quit [Remote host closed the connection]
emys has quit [Ping timeout: 272 seconds]
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
frgo has joined #lisp
emys has joined #lisp
hlisp has joined #lisp
noobineer has quit [Ping timeout: 256 seconds]
SGASAU has joined #lisp
hlisp has quit [Read error: Connection reset by peer]
hlisp_ has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
emys has quit [Ping timeout: 260 seconds]
emys has joined #lisp
karayan has joined #lisp
gaqwas has quit [Ping timeout: 258 seconds]
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
oxum has quit [Remote host closed the connection]
gaqwas has joined #lisp
emys has quit [Ping timeout: 256 seconds]
<beach> Good morning everyone!
emys has joined #lisp
Rav3n has joined #lisp
tylerdmace has joined #lisp
smazga has quit [Ping timeout: 246 seconds]
oxum has joined #lisp
oxum has quit [Remote host closed the connection]
kaftejiman has quit [Remote host closed the connection]
kaftejiman has joined #lisp
Kundry_W_ has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
kaftejiman_ has joined #lisp
kaftejiman has quit [Client Quit]
kaftejiman_ has quit [Client Quit]
ech has quit [Ping timeout: 256 seconds]
kaftejiman has joined #lisp
Kundry_Wag has quit [Ping timeout: 246 seconds]
kaftejiman has quit [Client Quit]
kaftejiman has joined #lisp
emys has quit [Ping timeout: 256 seconds]
emys has joined #lisp
madage has quit [Ping timeout: 240 seconds]
kaftejiman has quit [Client Quit]
kaftejiman has joined #lisp
kaftejiman has quit [Client Quit]
kaftejiman has joined #lisp
stoneglass has quit [Quit: stoneglass]
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
anticrisis has joined #lisp
__jrjsmrtn__ has joined #lisp
_jrjsmrtn has quit [Ping timeout: 260 seconds]
ArthurStrong has quit [Quit: leaving]
pjb has joined #lisp
oxum has joined #lisp
emys has quit [Ping timeout: 260 seconds]
emys has joined #lisp
oxum has quit [Ping timeout: 258 seconds]
madage has joined #lisp
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
Bike has quit [Quit: leaving]
heisig has joined #lisp
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
orivej_ has joined #lisp
emys has quit [Ping timeout: 246 seconds]
pjb has quit [Ping timeout: 272 seconds]
emys has joined #lisp
abhixec has joined #lisp
orivej_ has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
oxum has joined #lisp
emys has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
oxum has quit [Ping timeout: 265 seconds]
emys has joined #lisp
sdumi has quit [Ping timeout: 272 seconds]
sdumi has joined #lisp
bhartrihari has left #lisp ["Disconnected: closed"]
emys has quit [Ping timeout: 272 seconds]
frgo_ has joined #lisp
emys has joined #lisp
<remexre> what's the least terrible way to close every fd that's a datagram (i.e. UDP) socket? I've got a long-running service I'd rahter not restart that I just realized is leaking FDs
frgo has quit [Ping timeout: 246 seconds]
<fe[nl]ix> remexre: attach Slime to it and close the FDs
oxum has joined #lisp
<remexre> fe[nl]ix: I have slime connected; I meant more, is there a convenient/any way to close only UDP sockets
<remexre> have to admit I'm not sure how to get the protocol of the socket, even w/ cffi
pjb has joined #lisp
bhartrihari has joined #lisp
<remexre> ah, your google-fu is better than mine; thanks
<fe[nl]ix> I searched "check socket type" and that's the first result
oxum has quit [Ping timeout: 240 seconds]
<remexre> I was doing "get protocol from file descriptor," "check protocol of socket posix," etc
* remexre shrugs
shangul has joined #lisp
Blkt has quit [Remote host closed the connection]
fe[nl]ix has quit [Read error: Connection reset by peer]
terpri has quit [Remote host closed the connection]
Blkt has joined #lisp
SGASAU has quit [Remote host closed the connection]
fe[nl]ix has joined #lisp
terpri has joined #lisp
terpri has quit [Client Quit]
terpri has joined #lisp
SGASAU has joined #lisp
Blkt has quit [Remote host closed the connection]
fe[nl]ix has quit [Read error: Connection reset by peer]
terpri has quit [Excess Flood]
sdumi has quit [Read error: Connection reset by peer]
terpri has joined #lisp
sdumi has joined #lisp
ahungry has quit [Remote host closed the connection]
heisig has quit [Ping timeout: 272 seconds]
heisig has joined #lisp
shangul has quit [Ping timeout: 256 seconds]
sdumi has quit [Ping timeout: 256 seconds]
oxum has joined #lisp
Blkt has joined #lisp
fe[nl]ix has joined #lisp
emys has quit [Quit: Leaving]
zaquest has quit [Quit: Leaving]
zaquest has joined #lisp
akoana has joined #lisp
shifty has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
hlisp_ has quit [Remote host closed the connection]
SGASAU has quit [Remote host closed the connection]
winny has quit [Quit: reboot]
SGASAU has joined #lisp
winny has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
seok has joined #lisp
gravicappa has joined #lisp
terpri has quit [Ping timeout: 260 seconds]
sdumi has joined #lisp
terpri has joined #lisp
|3b| has quit [Remote host closed the connection]
|3b| has joined #lisp
corpix_ has joined #lisp
corpix has quit [Ping timeout: 240 seconds]
va_ has quit [Remote host closed the connection]
kaftejiman has quit [Remote host closed the connection]
nikkal has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
corpix has joined #lisp
jprajzne has joined #lisp
corpix_ has quit [Remote host closed the connection]
wxie has joined #lisp
sdumi has quit [Ping timeout: 272 seconds]
sdumi has joined #lisp
jeosol has joined #lisp
random-nick has joined #lisp
gaqwas has quit [Changing host]
gaqwas has joined #lisp
d4ryus1 has joined #lisp
jonatack_ has quit [Ping timeout: 256 seconds]
jonatack_ has joined #lisp
pve has joined #lisp
d4ryus has quit [Ping timeout: 258 seconds]
jonatack_ has quit [Client Quit]
drewc has quit [Ping timeout: 256 seconds]
drewc has joined #lisp
jonatack has joined #lisp
vaporatorius has quit [Remote host closed the connection]
slyrus has joined #lisp
wxie has quit [Ping timeout: 265 seconds]
rivvera has joined #lisp
Rav3n has quit [Ping timeout: 256 seconds]
hineios8 has joined #lisp
d4ryus1 is now known as d4ryus
hineios has quit [Ping timeout: 264 seconds]
hineios8 is now known as hineios
quazimodo has quit [Ping timeout: 264 seconds]
varjag has joined #lisp
carleos has joined #lisp
jonatack has quit [Ping timeout: 264 seconds]
carleos has quit [Client Quit]
jonatack has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
fluxwave has joined #lisp
shka_ has joined #lisp
ljavorsk has joined #lisp
parjanya has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
vaporatorius has joined #lisp
oxum has quit [Remote host closed the connection]
random-nick has joined #lisp
oxum has joined #lisp
parjanya has left #lisp ["ERC (IRC client for Emacs 26.3)"]
parjanya has joined #lisp
bfig_ has joined #lisp
bfig has quit [Read error: Connection reset by peer]
jonatack has quit [Read error: Connection reset by peer]
jonatack_ has joined #lisp
karswell_ has quit [Remote host closed the connection]
karswell_ has joined #lisp
devon has quit [Ping timeout: 246 seconds]
cosimone has joined #lisp
<pve> Hello! Is a type always a subtype (subtypep) of itself?
<beach> Yes.
<pve> thank you
<beach> But the function SUBTYPEP is fishy.
<beach> So it may fail to give the correct answer.
<beach> clhs subtypep
<beach> pve: As you can see, it is allowed to return false and false in situations where the correct answer is true and true.
<pve> it says
<pve> "In particular, subtypep returns the values true and true if the arguments are equal and do not involve any of these type specifiers."
<pve> so if I don't have "and" "eql" etc, then it won't be fishy?
<phoe> yes, if your type specifiers are simple then you can use SUBTYPEP freely and it'll work
<pve> rgeat
<pve> great
Misha_B has quit [Ping timeout: 240 seconds]
<phoe> but, other than that, the theoretical answer is "a type is always a subtype of itself"
<phoe> subce Lisp types are mathematical sets, and a set is its always own subset
Bourne has quit [Ping timeout: 264 seconds]
<pve> yep, that was my suspicion, thank you
<phoe> if we ignore secondary return values of SUBTYPEP, (defun type= (type1 type2) (and (subtypep type1 type2) (subtypep type2 type1)))
<phoe> that's from the mathematical definition
<phoe> where type1 and type2 are type specifiers
<phoe> of course, a proper type= needs a secondary return value to answer whether SUBTYPEP was able to compute the relationship in both cases
<beach> I recommend Baker's article on SUBTYPEP.
<beach> There is some fascinating examples of what can be done with it.
<beach> s/is/are/
<beach> Yeah.
<beach> There is a PDF version out there as well. Might be nicer to read.
dmc00 has quit [Ping timeout: 272 seconds]
gaqwas has quit [Remote host closed the connection]
anticrisis has quit [Read error: Connection reset by peer]
<phoe> let me dig in and check if that paper talks about '(OR (REAL * (-3.5D0)) (NOT INTEGER) (REAL (-3.5D0)))
<phoe> it does mention "touching" intervals
<beach> Yes, it is very thorough.
<phoe> still, seems it does not mention this edge case directly
shifty has quit [Ping timeout: 246 seconds]
shifty has joined #lisp
ghard has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
<phoe> I'm not (yet) aware of an implementation that correctly simplifies the above into T
bhartrihari has joined #lisp
<beach> "simplifies"?
<phoe> err, that gives (VALUES T T) upon evaluating (subtypep t '(OR (REAL * (-3.5D0)) (NOT INTEGER) (REAL (-3.5D0))))
jonatack_ has quit [Quit: jonatack_]
<beach> I see.
FreeBirdLjj has joined #lisp
<beach> According to Baker, most implementations of subtypep are flawed.
<phoe> that's because (or (real * (-3.5d0)) (real (-3.5d0))) are the whole real domain except -3.5d0; no implementation detects that -3.5d0 is of type (not integer) which would give us (or real (not integer))
<beach> I need to read up on what (real (-3.5d0)) means.
<phoe> all real numbers below -3.5d0
<phoe> so the range (-inf, -3.5d0)
<beach> Are you sure about that?
FreeBirdLjj has quit [Ping timeout: 260 seconds]
<phoe> clhs real
<beach> It says real [lower-limit [upper-limit]]
<phoe> welp, correct - all real numbers above -3.5d0
<phoe> (real * (-3.5d0)) is all numbers below
<beach> Right.
jonatack has joined #lisp
shangul has joined #lisp
wxie has joined #lisp
<beach> I see, so the descriptor says "all reals below -3.5d0" or "all integers above -3.5d0" or "all non-integers"
wxie1 has joined #lisp
<phoe> Yes, and AFAIK no implementation notices "hey, -3.5d0 fits in the «all non-integers» part, let's check if we can use that in these numberic ranges that are nearby"
wxie has quit [Read error: Connection reset by peer]
wxie1 is now known as wxie
<phoe> the trick I've developed to fix it is: when there is an exclusive range inside an OR, check if the boundary of that range is a member of other types being part of the OR
<phoe> and, if that's the case, turn the exclusive range into an inclusive one
<phoe> and try to simplify again
seok has quit [Remote host closed the connection]
<beach> I think we should wait for Didier Verna and Jim Newton to finish their implementation of Baker's algorithm.
Bourne has joined #lisp
Posterdati has quit [Ping timeout: 272 seconds]
dmiles has quit [Read error: Connection reset by peer]
andrei-n has joined #lisp
dmiles has joined #lisp
frgo_ has quit [Remote host closed the connection]
frgo has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
terpri has quit [Remote host closed the connection]
wxie has quit [Ping timeout: 260 seconds]
terpri has joined #lisp
andrek has joined #lisp
andrek has quit [Remote host closed the connection]
smazga has joined #lisp
pjb has joined #lisp
smazga has quit [Ping timeout: 264 seconds]
karlosz has quit [Quit: karlosz]
shka_ has quit [Ping timeout: 258 seconds]
cosimone has quit [Quit: Quit.]
jeosol has quit [Remote host closed the connection]
cosimone has joined #lisp
Misha_B has joined #lisp
shifty has quit [Ping timeout: 272 seconds]
milanj has joined #lisp
cosimone has quit [Client Quit]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
oxum has quit [Remote host closed the connection]
cosimone has joined #lisp
ghard` has joined #lisp
ghard has quit [Remote host closed the connection]
msk_ has joined #lisp
msk has quit [Ping timeout: 246 seconds]
Kundry_Wag has joined #lisp
Bourne has quit [Read error: Connection reset by peer]
RukiSama has quit [Ping timeout: 260 seconds]
milanj has quit [Quit: This computer has gone to sleep]
msk_ has quit [Ping timeout: 256 seconds]
milanj has joined #lisp
Kundry_Wag has quit [Ping timeout: 246 seconds]
jonatack has quit [Ping timeout: 258 seconds]
bhartrihari has left #lisp ["Disconnected: closed"]
jonatack has joined #lisp
oxum has joined #lisp
ebrasca has joined #lisp
dmc00 has joined #lisp
monokrom has joined #lisp
scymtym_ has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
scymtym has quit [Ping timeout: 256 seconds]
vaporatorius has quit [Read error: Connection reset by peer]
cosimone has quit [Quit: Quit.]
jprajzne has quit [Quit: jprajzne]
kaftejiman has joined #lisp
terpri has quit [Remote host closed the connection]
terpri has joined #lisp
scymtym_ has quit [Remote host closed the connection]
scymtym has joined #lisp
terpri has quit [Client Quit]
EvW has joined #lisp
Bike has joined #lisp
bhartrihari has joined #lisp
jprajzne has joined #lisp
orivej has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
jonatack has quit [Ping timeout: 256 seconds]
shifty has joined #lisp
quazimodo has joined #lisp
noobineer has joined #lisp
noobineer has quit [Read error: Connection reset by peer]
smazga has joined #lisp
cosimone has joined #lisp
noobineer has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
smazga has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
Bourne has joined #lisp
Kundry_Wag has joined #lisp
jfrancis has joined #lisp
ech has joined #lisp
orivej_ has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
oxum_ has joined #lisp
hiroaki has joined #lisp
pjb has quit [Remote host closed the connection]
oxum has quit [Ping timeout: 256 seconds]
RukiSama has joined #lisp
pjb has joined #lisp
jonatack has joined #lisp
oxum has joined #lisp
Cuccslayer has joined #lisp
<Cuccslayer> Hello
<Cuccslayer> i am trying to use ltk and i already have ltc/tk installed but it still gives me errors because quicklisp does not recognize i have tlc tk
<Cuccslayer> tcl/tk*
oxum_ has quit [Ping timeout: 260 seconds]
jonatack has quit [Ping timeout: 240 seconds]
orivej_ has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
jonatack has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
<Cuccslayer> oof
<phoe> Cuccslayer: what's the exact error? please use a pastebin
<Cuccslayer> ok
<Cuccslayer> i do have wish
<phoe> that's not an error though
<phoe> that's just a Lisp form
<phoe> what are you evaluating, and what is the error that you get?
<Cuccslayer> damn i didnt copy the whole thing
ghard` has quit [Ping timeout: 260 seconds]
Cymew has quit [Quit: Konversation terminated!]
<ralt> what's the english error for "O sistema não conseguiu localizar o ficheiro especificado."?
<phoe> "the system cannot find the file specified"
<Cuccslayer> the system could not localize the specified file
fengshaun has quit [Quit: bibi!]
<ralt> I guess it's a PATH issue then
<Cuccslayer> enviroment variables?
<phoe> wherever you have WISH installed, Lisp is unable to find it
<ralt> if you use e.g. `"/absolute/path/to/wish"`, does it work?
<phoe> yes, looks like an issue with the PATH envvar
<Cuccslayer> ight thanks
ljavorsk has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
<Cuccslayer> yeay it works
<Cuccslayer> i made a button that returns "PRESS ME HARDER" everytime you press it, no regrets
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
<phoe> sounds like a good and fruitful use of the capabilities provided by modern UI toolkits
<phoe> good to know that it works for you
bhartrihari has left #lisp ["Disconnected: closed"]
<jmercouris> any way to do (setf (osicat:file-permissions my-file) '(:user-read :user-write)) with UIOP instead?
<jmercouris> or with any other 'built-in' utilities?
vaporatorius has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
vaporatorius has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has quit [Read error: Connection reset by peer]
jonatack has quit [Ping timeout: 256 seconds]
<phoe> UIOP doesn't seem to contain any functionalities for that
<jmercouris> can you think of a way I may do that without osicat?
<phoe> sb-posix:chmod, but it is not portable
<Josh_2> Afternoon all
<jmercouris> maybe a uiop:run-program...
<jmercouris> maybe that's the trick
<phoe> sure, if you want to depend on the unix chmod
<jmercouris> I don't want to
<phoe> then why not depend on osicat?
<jmercouris> do other distributions have a sb-posix compatibility layer? ccl?
<jmercouris> I believe osicat is causing strange corruption issues in my image
<phoe> nope, it's non-portable and SBCL-only
<jmercouris> I didn't mean 'sb-posix' i meant ccl-posix eetc
<Cuccslayer> why is it called steel bank
<jmercouris> so I could write a compatibility layer
<jmercouris> Carnegie Mellon
<jmercouris> that is why, history
<phoe> Cuccslayer: it has roots in Carnegie Mellon University; Carnegie was famous for steel and Mellon for banking
<jmercouris> "The name "Steel Bank Common Lisp" is a reference to Carnegie Mellon University Common Lisp from which SBCL forked: Andrew Carnegie made his fortune in the steel industry and Andrew Mellon was a successful banker."
<jmercouris> from WikiPedia
<Cuccslayer> well thats neat, probably won't fit on my brain for long but good lore
<phoe> jmercouris: I don't think so.
<jmercouris> son of a potato
<phoe> french fries?
<jmercouris> potentially :-)
<jmercouris> or mashed potatoes, could be anything really
ahungry has joined #lisp
<phoe> jmercouris: does osicat have any foreign components?... I can't see any there
<jmercouris> it does
<jmercouris> libosicat.dylib
<jmercouris> it has a problem with dlopen on fresh start in my persisted image
<phoe> hmmm, let me find it
<phoe> jmercouris: have you reported it?
<jmercouris> I've not reported it
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej_ has joined #lisp
<jmercouris> I don't know if that is a flaw in the software, the fact that it doesn't package right :-)
<pjb> Cuccslayer: https://termbin.com/b496w
<Cuccslayer> what
<jmercouris> link invalid
<pjb> emacs lisp code to insert a PRESS ME button that becomes a PRESS ME HARDER button when pressed.
<pjb> link perfectly valid, check your end.
<Cuccslayer> yeah it opened
<phoe> jmercouris: oh, I see, it's generated from https://github.com/osicat/osicat/blob/master/posix/wrappers.lisp
<Cuccslayer> lmao
<jmercouris> I think it uses grovel or something
<jmercouris> yes, it does
<phoe> jmercouris: please file a GitHub issue, it certainly should work after image thawing
<jmercouris> it works sometimes, in some situations
<jmercouris> I need to figure out why
<phoe> what exactly is the dlopen error message?
<jmercouris> I'm sorry, but I've since killed the terminal
<jmercouris> and destroyed the image
<phoe> welp
<jmercouris> I'll figure out the pattern :-)
<phoe> well then, no reproducibility, no bugs
<jmercouris> but it also results in what I believe are image corruption issues
<jmercouris> since adding it to my image I get a "image compromised" "fingers crossed" message from SBCL
<jmercouris> it could be a coincidence of course
<phoe> please report it then!
<phoe> most of the time, issues get reproduced and fixed because they are reported
<jmercouris> I will report, don't worry :-)
<jmercouris> I do not hesitate, I just want to provide some more information
<jmercouris> I've made many a report already :-)
wsinatra has joined #lisp
ebrasca has quit [Read error: No route to host]
nikkal has quit [Ping timeout: 260 seconds]
ebrasca has joined #lisp
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
oxum has quit [Remote host closed the connection]
frgo_ has joined #lisp
wsinatra has quit [Quit: WeeChat 2.8]
wsinatra has joined #lisp
frgo_ has quit [Remote host closed the connection]
wsinatra has quit [Client Quit]
oxum has joined #lisp
wsinatra has joined #lisp
frgo_ has joined #lisp
jfrancis has quit [Remote host closed the connection]
jfrancis has joined #lisp
frgo has quit [Ping timeout: 272 seconds]
jfrancis has quit [Ping timeout: 272 seconds]
Cuccslayer has quit [Ping timeout: 265 seconds]
sjl_ has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
Cuccslayer has joined #lisp
jonatack has joined #lisp
jw4 has quit [Quit: tot siens]
bhartrihari has joined #lisp
jw4 has joined #lisp
bitmapper has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
X-Scale` has joined #lisp
<easye> Can an implementation add a keyword argument to MAKE-ARRAY and still be conforming? Allegro adds a :allocation keyword. Is that kosher?
<beach> As I recall, that's OK, but I can't remember the relevant paragraph right now.
X-Scale has quit [Ping timeout: 256 seconds]
X-Scale` is now known as X-Scale
<beach> clhs 1.6
<easye> beach: thanks for the gut check. That is my feeling as well, but I haven't dug up the justification yet.
<phoe> easye: they can do that
<phoe> e.g. sbcl's make-hash-table has an additional :weakness keyword arg
gxt__ is now known as gxt
<easye> phoe: so does ABCL, so yeah.
X-Scale has quit [Client Quit]
<easye> keyword args are good: they really can't break existing code, and have clear semantics for default values.
<engblom> Is it possible to somehow get values in uiop:*command-line-arguments* when I already got REPL running with a swank server?
<engblom> I would want to test how it works when there actually will be values there
<phoe> engblom: what do you want to achieve?
<phoe> (let ((uiop:*command-line-arguments* ...)) ...)
<phoe> it's a dynavar, you can rebind it
<engblom> Ok
<engblom> Thanks!
<phoe> (let ((uiop:*command-line-arguments* ...)) (run-my-test))
oxum has quit [Remote host closed the connection]
<easye> Having old functions with &optional args really sucks. No clean way to refactor them.
<phoe> where #'run-my-test checks that argument
<phoe> easye: yes, &optional args are ugly like that
oxum has joined #lisp
<jmercouris> any reason to ever use &optional instead of &key
<jmercouris> ?
<easye> jmercouris: not for me, but I suppose there are very rare cases when it makes sense.
<easye> Can't produce any at this moment.
<easye> Hey, we just "rediscoverd" &aux so anythings possible...
<phoe> jmercouris: (defun foo (bar baz quux) ...) can often be factored into (defun foo (bar &optional baz quux) ...) without breaking the protocol
smazga has joined #lisp
<fe[nl]ix> easye: why the question about MAKE-ARRAY ?
<engblom> Is there something I can use directly for printing a whole list on screen (for debugging purpose)?
<phoe> engblom: #'PRINT
<phoe> (print '(1 2 3 :foo "bar" #'car))
<easye> fe[nl]ix: need to add a ":direct" allocation for ABCL to tell the GC to not move the memory.
<easye> This will allow ABCL to mmap() its fasls.
<easye> Memory's cheap.
<beach> &OPTIONAL is probably faster than &KEY in case that's an issue.
oxum has quit [Ping timeout: 258 seconds]
Mawile has quit [Read error: Connection reset by peer]
rippa has joined #lisp
Mawile has joined #lisp
<phoe> (defun frob (&mandatory foo &recommended bar &optional baz &unnecessary quux &unwanted fred &forbidden firn) ...)
<easye> phoe: that's a contentious CDR...
<fe[nl]ix> easye: how are you thinking if implementing that ?
<easye> Yes, I am implementing that.
smazga has quit [Ping timeout: 246 seconds]
<easye> Should allow us to load *much* faster.
<easye> We currently redo a seek() for every component in the zip archive fasl. Uggh!
<fe[nl]ix> as an array object where the payload is a foreign pointer ?
<easye> fe[nl]ix: that will be possible as well.
<easye> Terrabyte heaps here we come!
<fe[nl]ix> easye: you can mmap zip files, if they're stored with null compression
* jmercouris throws pasta
<jmercouris> wrong channel, sorry
<fe[nl]ix> so you keep the jar format and still be able to mmap its contents
<easye> fe[nl]ix: ACK. The point is to avoid the m^n seeks for each fasl. Which is just stupid.
<easye> err, not exactly M^n, but some sort of summation.
<phoe> it's O(too much) where it should be O(less)
<engblom> phoe: I have tried to find any example with #'PRINT but not found anything
<easye> phoe: heh. exactly.
<phoe> engblom: what do you mean? (print '(1 2 3)) in the REPL prints stuff onto the screen
cantstanya has quit [Remote host closed the connection]
<easye> jmercouris: Yer welcome to throw some pandemic pasta here.
<engblom> phoe: Ah, that extra #
oxum has joined #lisp
<engblom> phoe: Ah, that extra #' confused me
<phoe> #' is notation for functions
<phoe> #'print === (function print)
<phoe> (print '(1 2 3)) === (funcall #'print '(1 2 3))
<easye> #' has a distinct semantic for the function location.
<jmercouris> what about #:
<jmercouris> why do people do that in package declarations for example
<jmercouris> instead of just :
<easye> jmercouris: To avoid the implicit INTERN.
<phoe> jmercouris: avoids polluting packages)
<jmercouris> why would you wish to avoid that?
<easye> There is some room to debate if it is worth it.
<phoe> ^
<jmercouris> I can't imagine the reasoning, but oh well
<engblom> phoe: Thank you! it does what I want!
<phoe> : is kiiiinda okay, #: is the most pedantic
<easye> Well, an INTERN needs to CONS, right?
<phoe> (defpackage foo ...) is the worst
cantstanya has joined #lisp
oxum has quit [Remote host closed the connection]
<jmercouris> why is that the worst?
<jmercouris> I use uiop:defpackage
<phoe> (defpackage foo (:use bar) (:export baz)) interns the symbols FOO, BAR, and BAZ into the current package
* easye uses keywords liberally RE: instead of just :
<phoe> and that happens even if you use uiop:defpackage
<jmercouris> phoe: but why is that a problem?
<jmercouris> if the symbols are interned what is the consequence?
<phoe> jmercouris: wasted kilobytes of RAM
<easye> One can never have enough keywords right? Memory is cheap.
<phoe> as easye said, it's debatable whether the practical effect is really big
<easye> All keywords are the same.
<phoe> or even measurable?...
<jmercouris> i think it is not big
<pjb> Use strings, so they can be garbage collected and don't involve the overhead of an uninterned symbol!
<easye> The #: thing is definitely a hygiene OCD thing as this point. It is probably not measurable on real computation devices at this point. But embedded...
Cuccslayer has quit [Ping timeout: 240 seconds]
<jackdaniel> #: is the right thing to do, that's all. no practical example of it breaking things
<jackdaniel> it is similar to #+(or) vs #+nil debate
<easye> jackdaniel: agreed. But I often don't patch the other behavior.
<jackdaniel> (of course for both you may invent artificial examples which break things)
<phoe> the legendary (push :nil *features*) strikes again
<jackdaniel> when I see #+nil my eyes itch
<easye> #+nil is definitely inferior. Just try running your code on the "New Implementation of Lisp" implementation.
<easye> #+(or) has unequivocally semantic not dependent on the state of *FEATURES*.
<easye> s/has/has a/
<easye> jackdaniel: can you invent an example of #+(or) which breaks things? Interesting.
<jackdaniel> I mean #+nil can break things
<easye> ACK
<jackdaniel> #+(or) is *the right thing to do*
Cuccslayer has joined #lisp
<easye> Amen.
<jackdaniel> similar to #:foo for packages
<jackdaniel> but in practice it does not, as noted
<jackdaniel> (i.e nobody pushes #+nil because they know things will horribly [and randomly] break)
<jackdaniel> s/#+nil/:nil/
<easye> Norvig's style guide is a great thing to study and understand.
<jackdaniel> yes, I've enjoyed it a lot
<easye> And, dare I pun, INTERN!
<jackdaniel> :)
<phoe> oof
<easye> Worth the CONS...
<jackdaniel> toss a cons for your easye, o valley of plenty
<easye> memory is cheap.
<easye> Ok, back to hacking ABCL.
<jackdaniel> right, I still need to finish implementing moving windows in the terminal :)
<jackdaniel> [with a pointer of course]
<easye> jackdaniel: loved your work without curses.
<jackdaniel> thank you, it grown bigger than I initially expected, but it is a lot of fun
<easye> Something satisfying about moving a cursor...
<phoe> jackdaniel: can I move a CLIM window in terminal by doing SETF CFFI:MEM-REF?
<White_Flame> an uninterned symbol still needs to be consed into existence, too
<easye> Not related, but it would be nice to have a CL:FORMAT extension for centering text.
<easye> (which can be done portably)
* phoe adds it to the idea bin for the Hypothetical Future Revision™
<jackdaniel> phoe: I doubt it, because ffi is used only to configure the terminal in raw mode
<phoe> jackdaniel: but you said it can be done with a pointer :(
<jackdaniel> easye: clim's draw-text does have :align-x and :align-y parameters
<jackdaniel> ah, that's what you mean, I didn't get it :)
<phoe> jackdaniel: I thought you would enjoy this kind of humor
<jackdaniel> there is also formatting-output which could be possibly extended to accept that
<easye> After I get the mmap() stuff working, I'm on the McCLIM trail <https://github.com/armedbear/McCLIM>
<jackdaniel> I do, and it is funny, I just didn't get it!
<phoe> :D
efm has joined #lisp
<pjb> easye: you can do it with ~/
<easye> pjb: interesting. I didn't know. There was a reddit request for this recently.
<phoe> easye: that thread had a lot of requests, some of them contradictory
<easye> CL:FORMAT is too big to keep in my swap.
<phoe> I use CLHS for anything non-trivial in FORMAT
<easye> phoe: cool. Glad to know there is some movement.
<p_l> that reminds me... does LW ship physical manuals still?
<easye> Adding to the cookbook for CL:FORMAT would be good. PCL is great, but could use an index.
<phoe> easye: file an issue on the cookbook!
<phoe> there's people who work on it daily, they could use some feedback
<lukego> How do I add a directory to the ASDF search path? I'm reading the docs but it seems like I need to understand this whole configuration DSL so that I can correctly update whatever the starting value of asdf:*source-repository* is? or is there a simple way along the lines of (push "/dir" *load-paths*) ?
<easye> phoe: naw, I'll just write it when I get a chance.
<jackdaniel> lukego: you may push to the asdf:*central-registry*
<lukego> sounded though like that's not advised and might end up disabling rather than augmenting other config?
<jackdaniel> it is "deprecated", but that's a way for quick hack from the repl
<easye> lukego: the easiest way is to hold your nose and push to the registry.
<_death> lukego: there's also ql:*local-project-directories*
<fe[nl]ix> lukego: what do you mean by adding a directory ?
<jackdaniel> and to my knowledge it doesn't break anything
<jackdaniel> right, there is a tree and a shallow variant
<lukego> easye: you mean like skip over the :SOURCE-REGISTRY and poke in a path e.g. (setf (cdr asdf:*source-registry*) ...) or something?
<jackdaniel> pushing to the central registry is imo safer than modifying the source registry
<lukego> fe[nl]ix: I want ASDF to load systems from $dir in addition to anywhere it was already planning to look
<jackdaniel> (from inside the image)
<lukego> I think that I will just not use ASDF :) thanks for the reality check
<easye> s/asdf files/asdf configuration files/
<fe[nl]ix> lukego: recursively ?
<lukego> fe[nl]ix: preferably recursively, yeah
<easye> It seems that the best way to deal with ASDF is to write everything to the filesystem where it can be introspected.
<lukego> I'm not sure what I'm missing here. Seems like my needs are very generic. The default image will have an ASDF load path, including all the packages that are installed on the machine, and then I want to also load my own code. I thought this would be like the first example in the manual?
<easye> The ASDF manual could use some love.
<jackdaniel> just push the directory to a central registry, or write the conf file in dsl
<fe[nl]ix> lukego: I symlink all .asd files I need into a central directory, and register that
<easye> symlinks are another option that works well.
<easye> The central registry is deprecated but still works.
shka_ has joined #lisp
<_death> deprecate deprecate
<jackdaniel> lukego: such conf file could look like this: (:source-registry (:tree "/path/to/the/directory") :inherit-configuration)
<easye> _death: heh.
<lukego> fe[nl]ix: OK. Guess my setup is unusual. I have a packaging of SBCL with all my external dependencies that puts them all in a central place. This is already setup when SBCL starts. But now I want to also include the working directory of the code I usually hack on
<fe[nl]ix> that's the original way of doing things, and IMO it's still the best mechanism because it doesn't require each load to recursively search a potentially very large tree
<easye> fe[nl]ix: the recursive argument is good.
<lukego> Thanks again for the tips and commiserations :)
<easye> lukego: just do another startup to employ us someday, ok?
<fe[nl]ix> lukego: that sounds reasonable, but I think few Lispers work that way
<_death> hmm, maybe I'm missing something, but to me it looks like quicklisp setup + a third-party directory (which I push to ql:*local-project-directories* if it's not already there)
vaporatorius has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
EvW has quit [Ping timeout: 246 seconds]
<engblom> Is there an equivalent of \n for lisp when using (print "....") or do I need to use (format ...)?
<jackdaniel> you may put a literal newline in the string
<jackdaniel> or you may use terpri
<engblom> Thanks!
rgherdt has joined #lisp
<_death> you could also define a reader macro.. did you know the bit vector syntax (what is now #*1010) used to be #"1010"? then Pitman suggested the new syntax to make #" available and gave an example of a reader macro that sends to format.. so #"foo~%bar" would do.. he gave an example of it in a docstring to solve the "indentation issue"
<fe[nl]ix> engblom: cl-interpol has a reader macro for c-like strings
<_death> the proposal is in https://cl-su-ai.cddddr.org/msg03341.html
<easye> pjb: nice. Is that in somewhere that Quicklisp can pick it up?
<easye> err. (ql:quickload :split-sequence) is an odd place. Thanks!
<pjb> easye: it's a dependency!
<pjb> easye: you can use com.informatimago.common-lisp.cesarum.string:split-string instead.
<easye> Sorry. Too many buffers in this Eight Megabytes And Constantly Swapping...
<easye> But, altogether now, "Memory is cheap!"
<easye> s/altogether/alltogether/\
<aeth> CPU cache is the new memory
<easye> aeth: heh. Definitely for Emacs.
jcowan has joined #lisp
<phoe> everybody now, "cpu cache is expensive!"
<jcowan> Compared to what?
<White_Flame> threadripper, "how much you want?"
<jcowan> If your code has to be small enough to fit in registeres only, you have a real problem.
<aeth> Most desktop Ryzens give you 32-256 MB cache, but they're split so it's less than you think unless you can perfectly parallelize your application.
<easye> We have a lot of registers these days...
<jcowan> Question: is it usual to use .lisp as an extension for S-expression data files that aren't code?
<aeth> I use .sxp
<jcowan> Oh, you mean expensive in $$$s.
<easye> jcowan: I've seen "sexp" as the best TYPE, but it has problems with porn filters.
<phoe> jcowan: I wouldn't do that, too easy to accidentally try to LOAD or COMPILE them.
<aeth> .sexp is also common, but I prefer .sxp because I don't trust filters, yes
<_death> sbcl has some .lisp-expr files
<beach> jmercouris: The #: prefix for uninterned symbols has nothing to do with saving space. It has to do with showing the person reading your code that the package of the symbols has no importance.
Kundry_Wag has quit [Remote host closed the connection]
<easye> jcowan: best is probably to add a ASDF class locally to semantically nail what you mean.
orivej has quit [Quit: No Ping reply in 180 seconds.]
<White_Flame> if everybody used keywords for package names (since the space is flat anyway), there would be zero memory overhead per use
<jcowan> I just encountered a claim that people do in fact use .lisp in such circumstances, and I wanted to make sure that if it exists, it is at least not best practice.
<phoe> jcowan: IMO naming a file .lisp if it doesn't contain Lisp source code is at least an instance of a misnomer
<jcowan> beach: Surely not. The whole point of #:foo is that it is not eq to another #:foo, which would not be the case for junk::foo.
<_death> polluting the keyword package with such symbols would be annoying when completing
orivej has joined #lisp
<easye> I'm with phoe here. "lisp" should be CL:LOAD'able
<White_Flame> _death: doesn't SLIME contextually complete keyword parameters by now?
* easye isn't getting any work done. Damn you #lisp!
<White_Flame> and that space will get polluted by anything & everything anyway
* jcowan too, and I'm here yak shaving
* phoe hides the yak
<phoe> okay everyone, time to work
<White_Flame> but it's not like I'm promoting keywords for package name use, but rather if people are making it a memory concern, then that's the cleanest way to contain it
<jcowan> sometimes I think Zetalisp had the right idea: a hierarchy of packages with each automatically use-ing its parent and the analogue-of-CL package at the top.
<jcowan> Less flexible, but easier to understand.
<beach> jcowan: I was talking specifically of its use in DEFPACKAGE.
<jcowan> Oh, sorry, I didn't have the context
* jcowan departs, *with* the yak hair
jcowan has left #lisp [#lisp]
<_death> White_Flame: what do you mean? while it's not always unambiguous, when I complete :i-f-d-e I often get :if-does-not-exist.. if people started using keywords, it and other scenarios have a better chance of becoming ambiguous
<White_Flame> uh, the keyword package will contain the union of all &keyword parameters in use across everything, plus any other tagging use. It's already a polluted space
Blukunfando has joined #lisp
<White_Flame> s/&keyword/&key/
<_death> White_Flame: all I am saying is that stuffing more names there raises the chances of ambiguity
<_death> so if there's no reason and #:this-works...
<White_Flame> regarding my SLIME comment, I thought that when you're in the &key portion of a function, the tab completion would look at the available keyword parameters
<jmercouris> beach: what do you mean by that?
<_death> gtg
<White_Flame> but, I guess it's not guaranteed that a list starting wiht a function name is a call to it anyway
<jmercouris> beach: if the package does not matter, why do they not just do 'symbolxyz?
<jmercouris> why include the : at all?
paul0 has quit [Quit: Leaving]
dyelar has joined #lisp
<pjb> jmercouris: in defpackage, arguments are STRING designators. packages are named by STRINGS. I don't understand why you want to use symbols.
<beach> jmercouris: What I mean is, if you give a symbol with a specific package, then the person reading your code might think that it is important that the symbol has that particular package. So by giving a symbol that does not HAVE a package, you clearly show the person reading the code that the package doesn't matter.
<jmercouris> oh I see
<White_Flame> pjb: presumably to take care of the case automatically
<phoe> jmercouris: (defpackage 'foo ...) won't work anyway
<pjb> White_Flame: I'm an absolutist.
<pjb> relativism is bad.
<jmercouris> so you could write (defpackage "foo" ...)?
<phoe> jmercouris: (defpackage "FOO" ...)
<pjb> jmercouris: yes. |foo|:bar.
<White_Flame> and foo:bar syntax in usage uses symbol case
<phoe> package names are case sensitive
<jmercouris> interesting
<jmercouris> why do we not see people using strings?
<pjb> I do.
<jmercouris> so that the users case sensitivity does not break things?
<phoe> it used to be a popular thing, using strings in there
<easye> jmercouris: because keywords always mean the same thing. By definition.
<jmercouris> I think you can disable upcasing, so that would break many people's code
FreeBirdLjj has joined #lisp
<jmercouris> who assume upcasing environment
<pjb> who are not conforming.
<jmercouris> not upcasing is non conforming?
<easye> pjb: good question. I don't know of any.
smazga has joined #lisp
<easye> But there could be...
<pjb> jmercouris: what would be non conforming, is to expect some setting of the *readtable* (and other variables), since their default values are implementation dependent.
<White_Flame> pjb: I would expect all your symbol usage in source code to be written in uppercase to fit your absolutism ;)
<pjb> jmercouris: by this, most quicklisp libraries are non conforming.
<jmercouris> hm, I see
<pjb> White_Flame: yes. I only downcase to avoid people shouting at me…
<jmercouris> YOU DOWNCASE TO PREVENT WHAT?
<aeth> jmercouris: (symbol-name '#:foo) is the correct way to avoid upcasing issues, or in the case of defpackage, #.(symbol-name '#:foo)
<pjb> White_Flame: I have lisp-upcase and lisp-downcase emacs commands.
nikkal has joined #lisp
<aeth> But in the case of a defpackage you can just use #:foo instead
<aeth> jmercouris: that being said, only my code wouldn't break if your reader didn't upcase :-)
<aeth> expect every other library to break
<aeth> If you want case-sensitivity, do a case inversion
<easye> There's convention, and there's conformance. 'nuff said.
<easye> We have a ANSI standard, damnit! And it means something.
<easye> (not enough, but that's another debate)
FreeBirdLjj has quit [Ping timeout: 260 seconds]
<aeth> I was going to say, good luck getting libraries running if you just have ANSI conformance, wtihout things like CFFI or bordeaux-threads
<aeth> A few others, too, like trivial-features
<aeth> Although I think in theory you can just implement things exactly in thew ay that trivial-features expects, since that's mostly about making *features* in implementations consistent.
<easye> aeth: there is a "post-renaissance open implementation conformance" which is the consensus in which we operate.
<phoe> easye: that conformance is surprisingly often called ASDF and UIOP, to the dismay of surprisingly many lispers
<easye> ASDF/UIOP is an important part of that conformance, but not the whole story.
<phoe> yes
<phoe> we couldn't get the implementers to agree about how cl-ext:quit should work, so we have uiop:quit instead
<easye> Which is why we need something like the CDR to explain things for posterity.
<phoe> people still don't agree that this is how it should work, but at least it's there
<easye> Maybe a HTML5-like "living standard" for Common Lisp.
<phoe> easye: yes, I plan on reviving UltraSpec as soon as I'm done with my book
<easye> CL is very "convention" orientated in practice. Especially for the coordination among the open implementations.
rivvera has quit [Changing host]
rivvera has joined #lisp
rivvera is now known as Rav3n
<easye> Did y'all notice that CLojure didn't make Stack Overflow's "state of programming" content?
Kundry_Wag has joined #lisp
<easye> Arguments have been made that SO is weighting their survey to people who actually use SO.
Kundry_Wag has quit [Read error: Connection reset by peer]
Kundry_Wag has joined #lisp
<engblom> If I want to make sure the result is an integer and not a floating point, is there a better way to round an arbitary floating number than (floor (+ number 0.5))?
<beach> clhs round
<phoe> engblom: FLOOR, CEILING, ROUND, TRUNCATE - choose your poiso^Wrounding algorithm
<aeth> or write your own, since the second return value of any of those gives you enough to do so
<beach> engblom: Your idea won't do the right thing.
* easye apparently isn't going to get much work done.
<beach> engblom: Try (round 4.5) and (floor (+ 4.5 0.5))
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
<engblom> beach: In that case the floor variant does right while the round variant does wrong
<beach> Not so.
<engblom> 4.5 should be rounded to 5
<beach> Nope
<engblom> beach: Why not?
<beach> You round to even numbers when you are exactly half.
bhartrihari has joined #lisp
<beach> So that statistically you round half of the numbers up and half of the numbers down.
<beach> So round is doing the right thing and yours is not.
scymtym has quit [Remote host closed the connection]
scymtym has joined #lisp
<engblom> beach: This is the first time I hear this about rounding. I have been learned to always round up when at .5
<beach> I am sorry to hear that.
ArthurStrong has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
dmiles has joined #lisp
luckless has quit [Remote host closed the connection]
luckless has joined #lisp
<jackdaniel> that said I'm sometimes disappointed that CL doesn't round half up, especially when I was writing a function to calculate my taxes :)
<jackdaniel> but that's easily mitigated with defining a function round*
<jackdaniel> it is just you always have to break for split second to add this star at the end, probably could be better solved (in my particular case) with shadowing the symbol
botanick has joined #lisp
jeosol has joined #lisp
wsinatra has quit [Quit: WeeChat 2.8]
rumbler31 has quit [Remote host closed the connection]
cosimone has quit [Quit: Quit.]
orivej has quit [Read error: Connection reset by peer]
orivej_ has joined #lisp
<phoe> engblom: don't worry, I was taught that way too
dddddd has joined #lisp
<phoe> and then I understood that this way of rounding has some meaning when we do (reduce #'+ (mapcar #'round '(0.5 1.5 2.5 3.5 4.5 5.5))) and get 18 which is closer to the non-rounded result than 21
oxum has joined #lisp
EvW1 has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
<engblom> I have finally written my first common lisp program :)
<phoe> engblom: share it! https://plaster.tymoon.eu/
oxum has quit [Ping timeout: 246 seconds]
<jackdaniel> congrats
<engblom> phoe: It is deadugly and I have not formated it properly but here it is: https://plaster.tymoon.eu/view/1881#1881
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
<engblom> phoe: Besides the formating and cleaning up, is there anything that I definitely should have been doing in a different way?
<phoe> engblom: after a bit of refactoring, it looks like https://plaster.tymoon.eu/view/1882#1882 for me
<phoe> should work the same as yours; if not, I screwed up
<engblom> phoe: Thanks!
<Cuccslayer> lmao i left this window open
<Cuccslayer> ive been here the whole time
<phoe> Cuccslayer: same as tens of other people I guess
<phoe> I leave my IRC connected all the time
<Cuccslayer> hmm
cosimone has joined #lisp
cosimone has quit [Client Quit]
Cuccslayer has quit [Quit: WeeChat 2.7]
<engblom> phoe: It works well!
<phoe> engblom: glad to hear that
<phoe> so, that's how I'd format and style this code
<phoe> separating the constants and configuration outside the main body of the function
<engblom> phoe: Yes, it is looking better like this rather than what I did throw into the file
jw4 has quit [Read error: Connection reset by peer]
jw4 has joined #lisp
oxum has joined #lisp
oxum has quit [Ping timeout: 264 seconds]
pjb has quit [Ping timeout: 272 seconds]
rumbler31 has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
grewal has quit [Remote host closed the connection]
rumbler31 has quit [Ping timeout: 256 seconds]
jello_pudding has quit [Ping timeout: 265 seconds]
heisig has quit [Quit: Leaving]
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
whartung has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
oxum has joined #lisp
pjb has joined #lisp
jello_pudding has joined #lisp
bitmapper has quit [Remote host closed the connection]
<andrei-n> Hello. Is there a tutorial how to write a x86-64 bootloader in Common Lisp? It's for the "Make Something" part of "A Road to Common Lisp". Thank you!
<whartung> anyone know of a way to make (find ‘(10 20 30 40) 25 :test ???) return “20”?
bitmapper has joined #lisp
<jackdaniel> andrei-n: check out mezzano (there is #mezzano channel)
<whartung> I’ve tried :test #’<, #’> neither do what I want.
<jackdaniel> there is also movitz
<phoe> whartung: (lambda (x y) (or (= x 20) (= y 20)))
<phoe> I don't think this is what you want even though it will satisfy your requirements
<whartung> yes, it’s bit pedantic
<jackdaniel> could you put in words what are the criteria of searching for 25 in this list?
<phoe> what are you tring to do?
<whartung> any way to use find to find the element with the maximum key that is <= to the query
<phoe> also, you got the arguments reversed in FIND
<whartung> so, 20 for 25, 10 for 15, 40 for 22348234
<jackdaniel> (max (remove-if-not (lambda (elt) (<= elt query)) sequence))
<jackdaniel> isn't that a homework by accident though?
bitmapper has quit [Ping timeout: 265 seconds]
<jackdaniel> the specification sounds very artificial
bitmapper has joined #lisp
<jackdaniel> or superficial even
<phoe> jackdaniel: (reduce #'max ...)?
<whartung> no, its not. Simply I have a table, and I want to look up in that table based on the value. Rather than using ranges (0-10, 11-20, 21-30), I hoped to use implied ranges.
<jackdaniel> phoe: maybe, it is after 8pm here so I can't honestly answer ;) pozornie looks OK
<phoe> whartung: my natural instinct is to use a dirty LOOP for that
<phoe> (loop with limit = 25 with result = 0 for i in '(10 20 30 40) when (<= 0 i limit) do (setf result i) finally (return result)) ;=> 20
sauvin has quit [Read error: Connection reset by peer]
bfig_ is now known as bfig
bhartrihari has left #lisp ["Disconnected: Replaced by new connection"]
bhartrihari has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
<andrei-n> jackdaniel, Thanks.. There is a lot of files, not sure I'll be able to find it...
<jackdaniel> I mean that you may try asking there, because froggey wrote such bootloader afaik
<froggey> mezzano's bootloader is written in C because it reuses a preexisting bootloader. dealing with early PC startup is extremely tedious and I didn't want to deal with it
<froggey> iirc movitz's bootloader is written in CL, so that would be a better place to look
sdumi has quit [Ping timeout: 256 seconds]
chwhelan has quit [Quit: ERC (IRC client for Emacs 26.3)]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
slyrus_ has joined #lisp
ebrasca has quit [Remote host closed the connection]
scymtym_ has joined #lisp
sdumi has joined #lisp
scymtym has quit [Ping timeout: 260 seconds]
slyrus has quit [Ping timeout: 264 seconds]
karlosz has joined #lisp
<engblom> What is the correct way to use sbcl --eval? This is not working: sbcl --eval "(print \"hello\")(quit)"
<phoe> engblom: read the error text that SBCL gives you
<phoe> sbcl --eval "(print \"hello\")" --eval "(quit)"
<Bike> or progn.
<engblom> Okay, I did not know it was possible to have several --eval
oxum has quit [Ping timeout: 272 seconds]
pjb has quit [Ping timeout: 272 seconds]
<engblom> progn seems to be a sensible solution as I will call sbcl from a script (hoping to be able to evaluate multiline variables).
slyrus_ has quit [Remote host closed the connection]
<phoe> engblom: for larger blocks of Lisp, you could try --load
<phoe> and provide a filename
slyrus_ has joined #lisp
<engblom> phoe: What I exatly would want to do is calling sbcl from inside of a bash-script with some lisp code (stored inside of a variable) without having extra files
rumbler31 has joined #lisp
<phoe> engblom: ohh, in that case use "(progn ...)"
<engblom> Yes, progn seems to be the best solution
dale_ has joined #lisp
dale_ is now known as dale
lucasb has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
loli has quit [Quit: WeeChat 2.8]
bhartrihari has left #lisp ["Disconnected: Broken pipe"]
bhartrihari has joined #lisp
loli has joined #lisp
<pve> engblom: I wrote a utility to take away some of the tediousness of shell scripts + sbcl, perhaps you might find it useful?
orivej has quit [Ping timeout: 258 seconds]
orivej has joined #lisp
rozenglass has quit [Read error: Connection reset by peer]
<andrei-n> froggey, thanks.
milanj has quit [Quit: This computer has gone to sleep]
pjb has joined #lisp
dale has quit [Quit: dale]
cyberbanjo has joined #lisp
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 240 seconds]
dale has joined #lisp
efm has quit [Quit: Konversation terminated!]
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
Cairn[m] is now known as cairn
pjb has quit [Ping timeout: 272 seconds]
gaqwas has joined #lisp
mikecheck has joined #lisp
nymphet has joined #lisp
stoneglass has joined #lisp
loli has quit [Ping timeout: 240 seconds]
cairn has left #lisp ["User left"]
shka_ has quit [Ping timeout: 265 seconds]
M1NDSHDWS_ has joined #lisp
<M1NDSHDWS_> Kygo, Zak Abel - Freedom (Lyrics)
M1NDSHDWS_ has quit [Remote host closed the connection]
pjb has joined #lisp
efm has joined #lisp
bfig has quit [Read error: Connection reset by peer]
bfig has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
rogersm has joined #lisp
rpg has joined #lisp
* rpg wants a common lisp implementation that will signal a STYLE-WARNING if INTERN is called with only one argument.
<phoe> rpg: I could dig that
<rpg> Also for messing with the readtable without specifying WHICH readtable!
<phoe> oh yes I want that
<rpg> Not super-excited about using `(:shadowing-import-from #:my-fussy-lisp #:intern)` , since I really want this for OTHER PEOPLE's code that I load!
<ralt> what is a commonly installed C library that you typically need to add a `-l` for?
<ralt> that is not `-lm`
<ralt> I mean, besides libmath
<ralt> nvm
cairn has joined #lisp
karayan has quit [Remote host closed the connection]
anticrisis has joined #lisp
pjb has quit [Ping timeout: 272 seconds]
karayan has joined #lisp
jesse1010 has joined #lisp
rogersm has quit []
ahungry has quit [Remote host closed the connection]
karswell_ has quit [Remote host closed the connection]
karswell_ has joined #lisp
gaqwas has quit [Remote host closed the connection]
pjb has joined #lisp
ArthurSt1ong has joined #lisp
ArthurStrong has quit [Read error: Connection reset by peer]
rgherdt has quit [Ping timeout: 246 seconds]
gravicappa has quit [Ping timeout: 258 seconds]
seok has joined #lisp
<seok> Morning'
<seok> Can I specify utf-8 encoding with with-open-file?
<phoe> seok: :external-format
<seok> Thanks phoe
Jesin has quit [Quit: Leaving]
pve has quit [Quit: leaving]
anticrisis_ has joined #lisp
Jesin has joined #lisp
anticrisis has quit [Ping timeout: 258 seconds]
fengshaun has joined #lisp
cyberbanjo has quit [Read error: Connection reset by peer]
pjb has quit [Ping timeout: 272 seconds]
andrei-n has quit [Quit: Leaving]
oxum has joined #lisp
random-nick has quit [Ping timeout: 256 seconds]
oxum has quit [Ping timeout: 264 seconds]
buffergn0me has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
whiteline has quit [Remote host closed the connection]
whiteline has joined #lisp
<bitmapper> hmm
<bitmapper> cl-permutation doesn't load in CCL
SGASAU has quit [Remote host closed the connection]
SGASAU has joined #lisp
nikkal has quit [Quit: Leaving]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
pjb has joined #lisp
gaqwas has joined #lisp
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 256 seconds]
Lord_of_Life_ is now known as Lord_of_Life
orivej_ has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
terpri has joined #lisp
arpunk has quit [Remote host closed the connection]
wxie has joined #lisp
sjl_ has quit [Ping timeout: 256 seconds]
pjb has quit [Ping timeout: 272 seconds]
orivej_ has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
nightfly has quit [Quit: WeeChat 1.9.1]
nightfly has joined #lisp
akoana has left #lisp ["Leaving"]
karswell_ has quit [Ping timeout: 272 seconds]
rpg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
botanick has quit [Quit: leaving]
rumbler31 has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
Kundry_Wag has quit [Ping timeout: 265 seconds]
nightfly has quit [Quit: WeeChat 1.9.1]
pjb has joined #lisp
nightfly has joined #lisp
nightfly has quit [Client Quit]
nightfly has joined #lisp
nightfly has quit [Client Quit]
nightfly has joined #lisp
hineios6 has joined #lisp
hineios has quit [Ping timeout: 265 seconds]
hineios6 is now known as hineios
stoneglass has quit [Remote host closed the connection]