jackdaniel 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/> | offtopic --> #lispcafe
bilegeek has joined #lisp
karlosz has joined #lisp
d_r3x_ has joined #lisp
Misha_B has quit [Read error: Connection reset by peer]
Misha_B has joined #lisp
cjb has quit [Ping timeout: 272 seconds]
cjb has joined #lisp
aindilis has joined #lisp
yamazaki has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
dra_ has quit [Remote host closed the connection]
smazga has joined #lisp
karlosz has quit [Quit: karlosz]
smazga has quit [Ping timeout: 258 seconds]
edgar-rft has joined #lisp
yamazaki has quit [Quit: WeeChat 2.3]
bsd4me has joined #lisp
karlosz has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
lalilulelo has joined #lisp
bsd4me has left #lisp ["Leaving"]
Kaisyu has joined #lisp
karlosz has quit [Quit: karlosz]
asarch has joined #lisp
<asarch> Using datafly, how would count all the records in a table?
AeroNotix has quit [Quit: WeeChat 2.9]
vutral has quit [Quit: Connection closed for inactivity]
notzmv has joined #lisp
buffergn0me has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
Oladon has quit [Quit: Leaving.]
orivej has quit [Ping timeout: 240 seconds]
gaqwas has quit [Ping timeout: 240 seconds]
gaqwas has joined #lisp
Misha_B` has joined #lisp
Misha_B has quit [Ping timeout: 264 seconds]
Misha_B` is now known as Misha_B
mrcom has quit [Read error: Connection reset by peer]
d_r3x_ has quit [Quit: Leaving]
philweb has joined #lisp
buffergn0me has quit [Remote host closed the connection]
buffergn0me has joined #lisp
karlosz has joined #lisp
chiota has joined #lisp
Oladon has joined #lisp
ebrasca has quit [Remote host closed the connection]
flazh has quit [Ping timeout: 265 seconds]
nicktick has quit [Ping timeout: 265 seconds]
Alfr_ has joined #lisp
Alfr__ has quit [Ping timeout: 240 seconds]
akoana has joined #lisp
nicktick has joined #lisp
chiota has quit [Quit: quit]
flazh has joined #lisp
<beach> Good morning everyone!
akoana has quit [Quit: leaving]
buffergn0me has quit [Remote host closed the connection]
buffergn0me has joined #lisp
buffergn0me has quit [Client Quit]
jesse1010 has quit [Ping timeout: 265 seconds]
<philweb> does anyone have any tips for troubleshooting a CFFI:LOAD-FOREIGN-LIBRARY-ERROR (apparently unable to find the shared library on Linux)?
<philweb> I've verified the location and tried: (pushnew #P"/usr/lib/x86_64-linux-gnu/" cffi:*foreign-library-directories* :test #'equal)
<philweb> doh... just figured it out: Debian library naming conventions different than what's baked into harmony
shifty has quit [Ping timeout: 258 seconds]
terpri_ has joined #lisp
shangul has joined #lisp
terpri has quit [Ping timeout: 244 seconds]
Oladon has quit [Quit: Leaving.]
torbo has quit [Remote host closed the connection]
<mathrick> hmm, so are there any easy ways these days to step through code in SLIME/SLY, preferably with a preview of what values things have without me needing to eval-in-frame all the time?
<mathrick> I know about STEP and the step restarts that at least SBCL supports, but those are slightly crummy to use. I'd love to see something slightly more integrated with the window I'm looking at the code in
<beach> I am afraid our free tools are not that good in this respect.
minion has quit [Ping timeout: 246 seconds]
specbot has quit [Ping timeout: 240 seconds]
<beach> mathrick: You can read about the current state here: http://metamodular.com/SICL/sicl-debugging.pdf
mrcom has joined #lisp
zigpaw1 has quit [Ping timeout: 264 seconds]
zigpaw1 has joined #lisp
<mathrick> beach: thanks. You're keeping busy as usual I see :)
<beach> Definitely.
Oladon has joined #lisp
gravicappa has joined #lisp
dominic34 has joined #lisp
dominic34 has quit [Excess Flood]
dominic34 has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life_ is now known as Lord_of_Life
shka_ has joined #lisp
asarch has quit [Quit: Leaving]
duuqnd has joined #lisp
dominic34 has quit [Ping timeout: 260 seconds]
<mfiano> mathrick, beach: Sounds like a use for Sly stickers.
Archenoth has joined #lisp
zmyrgel has joined #lisp
smazga has joined #lisp
zmyrgel has quit [Remote host closed the connection]
smazga has quit [Ping timeout: 240 seconds]
<beach> mfiano: I don't know about Sly stickers. But I don't see how you can do something in the user interface that the underlying implementation does not allow. Can you explain what you mean?
<mfiano> It's a means to annotate forms with a key bindings, which colors them a shade of grey. Can also annotate subforms which shades them a slightly different color. Each time one of them is hit in code, they turn a shade of blue, and you can bring up an interactive Stickers window to cycle through the history of the values each one recorded. You can also have it break into the debugger when one is
<mfiano> triggers if you prefer that. Basically it's a way to step through and debug parts of a program without editing your files.
<beach> Oh, I see what you mean.
<beach> My plan is to use McCLIM for all this stuff though.
<mfiano> It's a better/interactive alternative to print debugging or using manual breakpoints
<beach> And, as the paper explains, I want debugging to be omnipresent. One should not have to annotate forms just to set a breakpoint.
<mfiano> What do you mean by annotate here?
<beach> You used the word annotate. Maybe I misunderstood. Perhaps you can explain how Sly can set a breakpoint in my code using an implementation that does not have breakpoints, or how it can step through the code in an implementation that does not have a stepping faclity?
<beach> facility.
bg__ has joined #lisp
jw4 has quit [Quit: tot siens]
jw4 has joined #lisp
<beach> mfiano: Re-reading what you wrote, it looks like you are talking about the presentation part only.
<beach> Again, I plan to do this stuff with CLIM presentations.
bilegeek has quit [Ping timeout: 260 seconds]
<mfiano> I am not quite sure how it is implemented apart from sending instrumented code to Lisp
<mfiano> Sadly, I still cannot use McCLIM.
<beach> Yeah, well, I am not interested in this separation between the process running the user interface and the process running the Common Lisp system.
<beach> mfiano: What prevents you?
<mfiano> We talked about this before. In short, at least the CLX backend does not handle high DPI displays correctly.
<mfiano> Making things like text absolutely unreadable
<beach> I vaguely remember this discussion now.
<beach> That doesn't sounds like an unfixable problem.
<beach> Just use a bigger font. No?
<mfiano> THat is controlled by the Xresource database, which CLX does not honor like other X applications. This is more than just fonts too. I can't even position my mouse cursor over a scrollbar/other widget without lots of trial and error.
<beach> I see. Well, you would do a favor to everyone if you helped fix that.
<mfiano> Nothing is unsolvable. It takes developer for a small community that has other priorities though. I brought this up countless times in the last couple years anyway
<mfiano> Sorry, but I am not familiar with X protocols
<beach> Bah, you can read up. That's what everyone does.
<beach> Or you can work on the framebuffer backend instead, avoiding X entirely.
<mfiano> I could, but my I don't have any desire to use McCLIM, or any other graphical application for that matter. It was just a first impression when I tried it.
<mfiano> My priority list has a lot of things weighted towards the top that I haven't been able to get to in years, and this would be much lower than that.
<beach> That's different. If you don't have any desire to use such stuff, then the problem is solved as far as you are concerned.
Alloc has quit [Ping timeout: 258 seconds]
krid` has quit [Ping timeout: 240 seconds]
Alloc has joined #lisp
narimiran has joined #lisp
jprajzne has joined #lisp
prite has joined #lisp
jeosol has joined #lisp
physpi has quit [Ping timeout: 240 seconds]
avicenna has quit [Ping timeout: 260 seconds]
physpi has joined #lisp
minion has joined #lisp
specbot has joined #lisp
avicenna has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
karlosz has quit [Remote host closed the connection]
jonatack has quit [Ping timeout: 240 seconds]
Alloc has quit [Ping timeout: 240 seconds]
toorevitimirp has joined #lisp
Alloc has joined #lisp
Oladon has quit [Quit: Leaving.]
cjb has quit [Quit: end of day :)]
Cymew has joined #lisp
mangul has joined #lisp
shangul has quit [Ping timeout: 265 seconds]
philweb has quit [Ping timeout: 245 seconds]
schweers has joined #lisp
schweers has quit [Client Quit]
schweers has joined #lisp
shifty has joined #lisp
C-16 has quit [Quit: leaving]
terpri__ has joined #lisp
jonatack has joined #lisp
terpri_ has quit [Ping timeout: 244 seconds]
iamFIREc1 has joined #lisp
<mathrick> mfiano: it still doesn't do much to show the state of the code being stepped through, even though they're nicer than adding FORMATs by hand
iamFIREcracker has quit [Ping timeout: 258 seconds]
<mathrick> I want sly to show me the locals and my current place in the source frame as I step through it, and also to be able to set breakpoints as I please, though that's somewhat different of an issue
rogersm has joined #lisp
bg__ has quit [Quit: Leaving]
msk has joined #lisp
<beach> mathrick: If you wait I while, it will happen, but not with Sly.
msk has quit [Max SendQ exceeded]
msk has joined #lisp
msk has quit [Max SendQ exceeded]
msk has joined #lisp
Bourne has joined #lisp
<mathrick> neat
toorevitimirp has quit [Remote host closed the connection]
<beach> Thanks.
toorevitimirp has joined #lisp
jonatack has quit [Ping timeout: 265 seconds]
mangul is now known as shangul
pve has joined #lisp
terpri_ has joined #lisp
terpri__ has quit [Ping timeout: 240 seconds]
jonatack has joined #lisp
space_otter has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 240 seconds]
luna_is_here_ has quit [Ping timeout: 260 seconds]
luna_is_here has joined #lisp
ralt has joined #lisp
aeth has quit [Read error: Connection reset by peer]
nicktick has quit [Ping timeout: 240 seconds]
aeth has joined #lisp
hendursa1 has joined #lisp
HDurer has quit [Remote host closed the connection]
hendursaga has quit [Ping timeout: 240 seconds]
jw4 has quit [Ping timeout: 265 seconds]
jw4 has joined #lisp
HDurer has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
jonatack has quit [Ping timeout: 258 seconds]
cosimone has joined #lisp
ljavorsk has joined #lisp
jonatack has joined #lisp
rogersm has quit [Quit: Leaving...]
jesse1010 has joined #lisp
liberliver has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
terpri__ has joined #lisp
johnjay has quit [Ping timeout: 258 seconds]
terpri_ has quit [Ping timeout: 260 seconds]
heisig has joined #lisp
mangul has joined #lisp
shangul has quit [Ping timeout: 240 seconds]
johnjay has joined #lisp
EvW has joined #lisp
gravicappa has joined #lisp
rogersm has joined #lisp
random-nick has joined #lisp
<sm2n> has anyone tried porting racket's syntax-parse to cl?
lalilulelo has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
<phoe> optima and trivia exist as pattern matching systems in CL
<phoe> I don't know if a direct port of racket's syntax-parse exists.
rogersm has quit [Quit: Leaving...]
jonatack has joined #lisp
bitmapper has quit [Ping timeout: 260 seconds]
<sm2n> hmm, I'm mainly interested because syntax-parse has some interesting facilities for giving more informative error messages
<sm2n> I'll have to learn more about it I guess, I don't know how far trivia+defmacro gets in comparison
_paul0 has quit [Read error: Connection reset by peer]
<phoe> defmacro?
<phoe> if I understand this correctly then syntax-parse is essentially a pattern matching operator
<phoe> oh, wait, no, it's different
terpri__ is now known as terpri
ebrasca has joined #lisp
<sm2n> I still don't understand racket's macro system
<Xach> sm2n: this channel is for common lisp only, sorry
<sm2n> yeah, I know, sorry
Alloc has quit [Ping timeout: 240 seconds]
liberliver has quit [Ping timeout: 265 seconds]
<sm2n> I was just providing context for my original question, which in my defense, was CL related
Alloc has joined #lisp
rippa has joined #lisp
* Xach is coming late to the party
kaftejiman has joined #lisp
orivej has quit [Ping timeout: 258 seconds]
zigpaw1 has quit [Ping timeout: 258 seconds]
liberliver has joined #lisp
Alloc has quit [Ping timeout: 260 seconds]
borodust has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
zigpaw1 has joined #lisp
Alloc has joined #lisp
orivej has joined #lisp
terpri_ has joined #lisp
<Xach>
terpri has quit [Ping timeout: 240 seconds]
<phoe> :O
Alloc has quit [Ping timeout: 240 seconds]
EvW1 has joined #lisp
heisig has quit [Ping timeout: 258 seconds]
v0|d has joined #lisp
Alloc has joined #lisp
prite has quit [Ping timeout: 240 seconds]
EvW1 has quit [Ping timeout: 260 seconds]
eta has quit [Quit: we're here, we're queer, connection reset by peer]
yonkunas has joined #lisp
shka_ has quit [Quit: Konversation terminated!]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
shka_ has joined #lisp
jonatack has quit [Ping timeout: 260 seconds]
prite has joined #lisp
hendursa1 has quit [Quit: hendursa1]
wxie has joined #lisp
hendursaga has joined #lisp
ibinderwolf has joined #lisp
wsinatra has joined #lisp
Bike has joined #lisp
eta has joined #lisp
toorevitimirp has quit [Read error: Connection reset by peer]
jonatack has joined #lisp
toorevitimirp has joined #lisp
choegusung has joined #lisp
dra has joined #lisp
eta has quit [Read error: Connection reset by peer]
yitzi has joined #lisp
Lycurgus has joined #lisp
kaftejiman_ has joined #lisp
Josh_2 has joined #lisp
liberliver has quit [Read error: Connection reset by peer]
liberliver has joined #lisp
kaftejiman has quit [Ping timeout: 258 seconds]
<Josh_2> Afternoon
Alloc has quit [Ping timeout: 258 seconds]
kaftejiman_ has quit [Remote host closed the connection]
Alloc has joined #lisp
schweers has quit [Ping timeout: 260 seconds]
<phoe> hello
wxie has quit [Ping timeout: 246 seconds]
eta has joined #lisp
dominic34 has joined #lisp
shifty has quit [Ping timeout: 240 seconds]
dra has quit [Quit: Leaving]
ahungry has joined #lisp
bitmapper has joined #lisp
froggey has quit [Ping timeout: 246 seconds]
narimiran has quit [Ping timeout: 265 seconds]
bsd4me has joined #lisp
bsd4me has left #lisp [#lisp]
jprajzne has quit [Ping timeout: 264 seconds]
FreeBirdLjj has joined #lisp
Cymew has quit [Ping timeout: 258 seconds]
sjl_ has joined #lisp
ljavorsk has quit [Ping timeout: 240 seconds]
gko_ has joined #lisp
toorevitimirp has quit [Remote host closed the connection]
toorevitimirp has joined #lisp
asedeno has quit [Ping timeout: 240 seconds]
aeth has quit [Ping timeout: 240 seconds]
HDurer has quit [Ping timeout: 240 seconds]
rumbler31 has quit [Ping timeout: 240 seconds]
iamFIREc1 has quit [Ping timeout: 240 seconds]
flazh has quit [Ping timeout: 240 seconds]
msk has quit [Read error: Connection reset by peer]
jmercouris has quit [Ping timeout: 240 seconds]
dddddd has quit [Ping timeout: 240 seconds]
mangul has quit [Ping timeout: 240 seconds]
cosimone has quit [Ping timeout: 240 seconds]
Bourne has quit [Ping timeout: 240 seconds]
lottaquestions has quit [Read error: Connection reset by peer]
drmeister has quit [Ping timeout: 240 seconds]
lispyone_ has quit [Ping timeout: 240 seconds]
luna_is_here has quit [Ping timeout: 240 seconds]
terpri_ has quit [Ping timeout: 240 seconds]
buoy49 has quit [Ping timeout: 240 seconds]
Alfr_ has quit [Remote host closed the connection]
Demosthenex has quit [Ping timeout: 240 seconds]
kilimanjaro has quit [Ping timeout: 240 seconds]
elflng has quit [Ping timeout: 240 seconds]
ralt has quit [Ping timeout: 240 seconds]
nullman has quit [Ping timeout: 240 seconds]
jackdaniel has quit [Ping timeout: 240 seconds]
sjl_ has quit [Ping timeout: 240 seconds]
_oldtopman has quit [*.net *.split]
r3x5 has quit [*.net *.split]
cdegroot has quit [*.net *.split]
kingcons has quit [*.net *.split]
mood has quit [*.net *.split]
wigust has quit [*.net *.split]
dominic34 has quit [*.net *.split]
yitzi has quit [*.net *.split]
wsinatra has quit [*.net *.split]
Bike has quit [*.net *.split]
johnjay has quit [*.net *.split]
gaqwas has quit [*.net *.split]
Lord_of_Life has quit [*.net *.split]
CrazyEddy has quit [*.net *.split]
jibanes has quit [*.net *.split]
quazimodo has quit [*.net *.split]
sjl has quit [*.net *.split]
brass has quit [*.net *.split]
stepnem has quit [*.net *.split]
whiteline has quit [*.net *.split]
simplegauss has quit [*.net *.split]
alandipert has quit [*.net *.split]
hjudt has quit [*.net *.split]
nmg has quit [*.net *.split]
jello_pudding has quit [*.net *.split]
fouric has quit [*.net *.split]
jdz has quit [*.net *.split]
brettgilio has quit [*.net *.split]
srji has quit [*.net *.split]
stux|RC-only has quit [*.net *.split]
ahungry has quit [*.net *.split]
borodust has quit [*.net *.split]
Necktwi has quit [*.net *.split]
maplambda has quit [*.net *.split]
jurov has quit [*.net *.split]
mathrick has quit [*.net *.split]
sveit has quit [*.net *.split]
grobe0ba has quit [*.net *.split]
grumble has quit [*.net *.split]
cods has quit [*.net *.split]
natter has quit [*.net *.split]
ggoes has quit [*.net *.split]
femi has quit [*.net *.split]
gko has quit [*.net *.split]
cmatei has quit [*.net *.split]
tychoish has quit [*.net *.split]
sbryant has quit [*.net *.split]
Patternmaster has quit [*.net *.split]
add^_ has quit [*.net *.split]
samebchase has quit [*.net *.split]
Colleen has quit [*.net *.split]
drewc has quit [*.net *.split]
cyberlard has quit [*.net *.split]
Fade has quit [*.net *.split]
MetaYan has quit [*.net *.split]
sympt has quit [*.net *.split]
eta has quit [*.net *.split]
Alloc has quit [*.net *.split]
Lycurgus has quit [*.net *.split]
pve has quit [*.net *.split]
Archenoth has quit [*.net *.split]
duuqnd has quit [*.net *.split]
notzmv has quit [*.net *.split]
dilated_dinosaur has quit [*.net *.split]
epony has quit [*.net *.split]
Jesin has quit [*.net *.split]
lemoinem has quit [*.net *.split]
troydm has quit [*.net *.split]
jason_m has quit [*.net *.split]
SAL9000 has quit [*.net *.split]
micro has quit [*.net *.split]
dmiles has quit [*.net *.split]
Sauvin has quit [*.net *.split]
ober has quit [*.net *.split]
dlowe has quit [*.net *.split]
Firedancer_ has quit [*.net *.split]
FreeBirdLjj has quit [*.net *.split]
avicenna has quit [*.net *.split]
gaze__ has quit [*.net *.split]
_whitelogger has joined #lisp
orivej has quit [Ping timeout: 265 seconds]
froggey has joined #lisp
liberliver has quit [Quit: liberliver]
EvW has joined #lisp
yitzi has quit [Remote host closed the connection]
yitzi has joined #lisp
jibanes has quit [Ping timeout: 240 seconds]
jibanes has joined #lisp
edgar-rft has quit [Quit: Leaving]
farooqkz__ has quit [Ping timeout: 258 seconds]
rumbler31_ has joined #lisp
dominic35 has joined #lisp
dominic34 has quit [Ping timeout: 240 seconds]
dominic35 is now known as dominic34
gko_ has quit [Ping timeout: 260 seconds]
terpri__ is now known as terpri
msk__ has quit [Quit: Leaving]
jprajzne has joined #lisp
rumbler3_ has quit [Remote host closed the connection]
orivej has joined #lisp
VincentVega has joined #lisp
EvW has quit [Ping timeout: 240 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
<VincentVega> Hi all! Guys, how do I create a shortcut for a type? Instead of writing (simple-array double-float) I just want to say float-array. Will (defvar float-array '(simple-array double-float)) work fine?
<jackdaniel> VincentVega: (deftype float-array `(simple-array double-float))
<VincentVega> jackdaniel: nice, thanks!
Lord_of_Life_ is now known as Lord_of_Life
rogersm has joined #lisp
<phoe> Is an implementation allowed to extend a function with optional arguments if a function only accept mandatory arguments?
<phoe> e.g. is CONS allowed to have a lambda list like (x y &optional read-only-p) or (x y &key read-only-p)?
<phoe> s/accept/accepts/
nicktick has quit [Ping timeout: 258 seconds]
shangul has joined #lisp
<VincentVega> Hmm, why does (make-array 3 :element-type 'boolean) return #(0 0 0) and not #(nil nil nil)?
<Bike> reading an array element before writing to it is undefined behavior
<Bike> if you want it to be full of nils, throw in :initial-element nil
<jackdaniel> (n.b arrays don't have a specialized representation for booleans)
<Bike> that too
<VincentVega> Bike: jackdaniel: Oh, I see. Thanks for the explanation.
<jackdaniel> *probably* don't have
<Bike> i don't think any implementation does
<jackdaniel> I think that there is nothing in the spec what would forbid you from that
<jackdaniel> right
chiota has joined #lisp
gioyik has joined #lisp
theseb has joined #lisp
<markasoftware> What about type bit? Will implementations optimize that?
sjl has quit [Ping timeout: 240 seconds]
mseddon has joined #lisp
<Bike> almost certainly
theseb has left #lisp [#lisp]
<phoe> VincentVega: if you want to be confused further, try (make-array 3 :element-type 'boolean) on ECL
<phoe> markasoftware: yes, bit arrays are usually optimized
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
<phoe> clhs 1.6
<phoe> this says nothing about extra function arguments
<phoe> and I assume that adding optional/keyword arguments to functions that don't accept those doesn't violate conforming code in any way
<Bike> yeah, i don't know the answer to your question phoe
<Bike> certainly several implementations add keyword arguments, e.g. to make-hash-table
<Bike> optional, i don't know
<phoe> yes, but there's already &key in there
<Bike> optional arguments kind of suck anyway
<phoe> other than the fact that (cons 1 2 T) may or may not signal a program-error
<phoe> depending on our extension
<phoe> and I don't know if this is specified anywhere
<phoe> this tells me that adding optional arguments is *not* allowed
mangul has joined #lisp
<Bike> ansi tests are weird sometimes
<phoe> I know, but there needs to be rationale for that
<Bike> a common sense rationale, maybe. i don't think the ansi tests perfectly embody the standard
shangul has quit [Disconnected by services]
mangul is now known as shangul
<phoe> clhs 3.5.1.3
<Bike> one i'm running into with clasp at the moment is that ansi tests seem to assume that when you compare a float to a rational, the float is rationalized and then those rationals are compared
<phoe> "If this situation occurs in a safe call, an error of type program-error must be signaled"
<Bike> which is fine, but all the standard says is that < and so on "perform necessary type conversions"
<phoe> this, to me, means that (cons 1 2 3) *MUST* signal a program-error because of how CONS is defined
<phoe> (in safe code, that is)
<Bike> that doesn't really describe whether cons is in fact defined to take at most two arguments
<phoe> "Syntax: cons object-1 object-2 => cons"
<Bike> sure
<phoe> it is defined to take exactly two arguments
<Bike> and make-hash-table has a syntax not including :synchronized or :weakness
<phoe> hmmmmmm
<Bike> i don't think the standard defines this exactly.
<jackdaniel> is there any reason why do you ask explicitly about &optional?
<Bike> it's not formalized. there are going to be holes.
<phoe> jackdaniel: could be &key or &rest
<Bike> i mean, not formalized in a computer verification sense
<phoe> I am asking explicitly in case of functions that accept only required arguments.
<jackdaniel> make-hash-table extensions and cons extensions have certainly a semantic flaw, where non-conforming programs run
<phoe> so e.g. CONS or FIND-PACKAGE or EQL or what else
jprajzne has quit [Quit: jprajzne]
<phoe> but not LIST or AREF
<phoe> or MAKE-HASH-TABLE
Lycurgus has quit [Quit: Exeunt]
jprajzne has joined #lisp
sjl has joined #lisp
<Bike> keyword arguments are nicer because you can always just pass :allow-other-keys t and presto, other implementations just ignore :weakness or whatever
<jackdaniel> but my question is more revolving around: do you have a reason to wonder about that, or it is just a curiosity
<phoe> I have a good reason to wonder about that
rogersm has quit [Quit: Leaving...]
rumbler31 has joined #lisp
cosimone_ has quit [Quit: Quit.]
<VincentVega> Is there a way to assert that two types are the same? e.g. with (deftype bools () '(simple-array boolean)), I want to see if type bools and (simple-array boolean) are the same.
<Bike> you can do subtypep in both directions. but in that case they are the same by definition.
<phoe> VincentVega: a pair of subtypes
rumbler31 has quit [Ping timeout: 244 seconds]
<phoe> agh I am late
<Bike> what are you worried about, exactly?
cosimone has joined #lisp
<VincentVega> Nice. I am just doing some mop stuff and I only allow certain types supplied by the user.
<phoe> then remember that subtypep is allowed to return (VALUES NIL NIL)
<VincentVega> Alright!
EvW has joined #lisp
cosimone has quit [Quit: Quit.]
<phoe> jackdaniel: I am thinking about the issue of package versioning in a way which makes it mostly backwards-conformant
<Alfr_> phoe, for a quite strict interpretation, take: the defined syntax for cons, consider 1st sentence of 3.5.1.3 as a language feature, then have a look at 1.5.1.1 .
<phoe> clhs 3.5.1.3
<phoe> clhs 1.5.1.1
<phoe> Alfr_: yes, I can understand that
jw4 has quit [Quit: tot siens]
cosimone has joined #lisp
<Alfr_> phoe, this argument also doesn't apply to adding keyword arguments to make-hash-table, because 3.5.1.3 also states: "[...] however, if the function uses &rest or &key, it is not possible for it to receive too many arguments."
jw4 has joined #lisp
gravicappa has quit [Ping timeout: 246 seconds]
jello_pudding has quit [Ping timeout: 240 seconds]
gravicappa has joined #lisp
jasom has quit [Ping timeout: 260 seconds]
jprajzne has quit [Quit: jprajzne]
jprajzne has joined #lisp
karlosz has joined #lisp
narimiran has joined #lisp
dmr0x80 has joined #lisp
<phoe> I am thinking of a package versioning extension like in https://plaster.tymoon.eu/view/2026#2026
jprajzne has quit [Client Quit]
jello_pudding has joined #lisp
jprajzne has joined #lisp
<phoe> let's consider an extended package designator that is allowed to be a list whose first element is a standard package designator and the second, optional element, is a version string
<phoe> an extended package designator is allowed to go mostly everywhere that a standard package designator may go, maybe with the exception of a package-local nickname
<phoe> one issue with this approach is that now all IN-PACKAGE forms have to list the package version in addition to the package name, since now a package is essentially identified with a pair of strings: package name + version.
<phoe> and, since this is essentially a pair of strings, technically it doesn't really differ much from the approach where we simply have different package names for different versions of each package - which, for obvious reasons, doesn't happen in practice
<phoe> but I guess that adding a second field there, which is the package version, might make this approach a little bit more feasible since the package name itself stays constant.
<phoe> backwards compatibility: none, this code won't compile on implementations that do not support it. just like package-local nicknames won't.
jw4 has quit [Read error: Connection reset by peer]
<jackdaniel> it would be equally useful but less portable than just slapping version at the end of a package name
dmr0x80 has quit [Quit: WeeChat 3.0-dev]
<phoe> correct, except as I've noted four posts above, we don't do that for whatever reason
jprajzne has quit [Quit: jprajzne]
<jackdaniel> both require manual curation and only one requires abracadabra with the standard
jprajzne has joined #lisp
<jackdaniel> adding non conformance wont fix the problem of lack of dilligence
<phoe> correct
<Alfr_> phoe, as to whether it's allowed, maybe take 1.6 paragraph 3 as the guideline?
jw4 has joined #lisp
jello_pudding has quit [Ping timeout: 240 seconds]
jprajzne has quit [Client Quit]
jprajzne has joined #lisp
jello_pudding has joined #lisp
mseddon has quit [Read error: Connection reset by peer]
<Josh_2> How can I print my object without the #< .. > ?
<phoe> Josh_2: define a print-object method for it
<Josh_2> I have done that
<phoe> what does your method do?
<Josh_2> print-unreadable-object wraps it with #< .. >
<phoe> then don't use print-unreadable-object
<phoe> this is literally what it does - it prints some stuff inside #<...>
<Bike> keep in mind that unless your object is, in fact, readable, there should be #< in there probably.
<phoe> (if *print-readably* (print-it-readably) (print-unreadable-object ...))
<Josh_2> oof
<phoe> that's the general method
<Josh_2> I didn't know that
<phoe> whereas PRINT-IT-READABLY is allowed to do anything, including signaling an error if the object is not readable.
<phoe> s/readable/printable readably/
<Bike> what are you trying to do?
<phoe> but there is no good general solution because printing an object is poorly defined in general.
<Josh_2> well the solution I have now works
<Josh_2> I just used the (if *print-readably* ..)
<Josh_2> works fine
<Josh_2> just want to use print-object to write my object to a stream
jello_pudding has quit [Ping timeout: 244 seconds]
<Josh_2> that way when looking at the instance in the repl it looks exactly how it will be sent
Sauvin has quit [Read error: Connection reset by peer]
prite has quit [Ping timeout: 240 seconds]
pfr has joined #lisp
kaftejiman has joined #lisp
Alloc has quit [Ping timeout: 258 seconds]
yitzi has quit [Quit: yitzi]
gioyik has quit [Ping timeout: 265 seconds]
voidlily has quit [Ping timeout: 244 seconds]
voidlily has joined #lisp
karlosz has quit [Quit: karlosz]
shangul has quit [Quit: Leaving]
Lycurgus has joined #lisp
jprajzne has quit [Quit: jprajzne]
Bourne has joined #lisp
gioyik has joined #lisp
jprajzne has joined #lisp
jprajzne has quit [Client Quit]
retropikzel has quit [Quit: Leaving]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
EvW has quit [Ping timeout: 244 seconds]
prite has joined #lisp
jw4 has quit [Quit: tot siens]
jw4 has joined #lisp
EvW has joined #lisp
shka_ has quit [Ping timeout: 246 seconds]
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
Alloc has joined #lisp
bilegeek has joined #lisp
wsinatra has quit [Quit: WeeChat 2.9]
lalilulelo has joined #lisp
ck_ has quit [Ping timeout: 256 seconds]
luckless_ has joined #lisp
jello_pudding has joined #lisp
luckless has quit [Ping timeout: 240 seconds]
aeth_ is now known as aeth
rumbler31 has joined #lisp
<aeth> heh, erroring while printing sounds like a horrible idea
<aeth> slime/sly and/or the interactive debuggers probably assume this won't happen and you'll probably wind up with lots of issues
<aeth> It's probably just like messing up when writing a :report in a define-condition (which I do all of the time, which is why I test them!), where you get an error about the error rather than the error you want.
rumbler31 has quit [Remote host closed the connection]
narimiran has quit [Ping timeout: 240 seconds]
<scymtym> disregarding the color scheme, do you think the syntax highlighting, links and mouse-hover behavior in https://techfak.de/~jmoringe/eclector.html#Recoverable-errors is ok or too much?
<aeth> I really don't like that mouse hover where it expands the text in the current line. My expectation if there's that much text would be that it would open another box on top, like a tooltip. I'm not sure how hard that is to do in browsers, though. I know Wikipedia does that now with page previews, though.
<aeth> it also sort of messes up when you mouse over the 2 error because the error message starts with 2, with no space, thus making it into "22"
<aeth> A box with generous padding would also help because then it wouldn't go away so suddenly if you move the mouse because there'd be more space where you could move the mouse while still hovering over part of the error message box. Currently, any up/down mouse movement will close the error.
<scymtym> i agree. i don't know a lot about css tricks and would like to avoid javascript
<aeth> As for the links in the source like nil or defun, I don't think that they have to be bold because when there's so much magic going on, I think the user will expect them to be links. At least, as long as they remain blue. Imo (and I'm just one person) you only need one hint that it's a link: underline, blue, or bold
<scymtym> this is more like an eclector tech demo since all the things are automatically added to the HTML as a "post processing" step
<aeth> I would be shocked if you couldn't do a tooltip-style effect in CSS with no JS (even though most probably use unnecessary JS) because it's just such a common thing in UI that it must've been inserted to CSS sometime in the past 12 years. But I don't know how to do it, either.
<scymtym> yeah, i would have made the links in the code not blue and not bold. must be inherited from the surrounding texinfo css
<aeth> first result of "css tooltip"... https://www.w3schools.com/css/css_tooltip.asp
<aeth> But that's just an actual UI tooltip, not a box, so it might not allow it to be formatted
<aeth> I'd still prefer it over expanding text, though.
<aeth> oh, no, it's just doing a good job faking a UI-style tooltip by default. It's quite flexible.
<aeth> e.g. you can change background-color to red
cosimone has quit [Ping timeout: 264 seconds]
<aeth> I might have to add this sort of functionality to https://gitlab.com/mbabich/cl-documents when I get around to automatically generating HTML documentation
<aeth> scymtym: For error tooltips I'd do something like red text on a tan background (but CSS "red" on CSS "tan" doesn't work, the tan is too dark and the red is too light)... with a ton of padding.
<aeth> (e.g. 10 px padding)
ebrasca has quit [Remote host closed the connection]
<scymtym> aeth: good suggestions, thanks
<aeth> you're welcome
<aeth> sometimes 90% of the work is guessing the exact magic phrase the feature is using :-)
<scymtym> this is without the inherited style: https://techfak.de/~jmoringe/test.html
CrazyEddy has joined #lisp
<aeth> scymtym: interesting
<aeth> Personally, I'm so used to reading source in a dark theme, that I like to embed the source code itself in a dark theme even if the page is light, although maybe a lot of people don't like the mix of styles. http://quickdocs.org/ works like this, but it doesn't do syntax highlighting so the source looks very plain.
<scymtym> custom themes should be very easy to do
<scymtym> in case anybody wants to mess around with the stylesheet: https://jsfiddle.net/jvbfLe82/
<phoe> scymtym: ',(cdr when)
<phoe> WHEN is linked as a macro even though it is used as a variable
<phoe> same thing with FUNCTION and SYMBOL
<phoe> this kind of hyperlinking might use one more fix
<phoe> but, other than that nitpick, this is amazing stuff :O
<scymtym> phoe: links are generated for all CL symbols. there is no code walking
<phoe> yes, I see
<scymtym> i agree that this is an unfortunate shortcoming
<scymtym> aeth: https://jsfiddle.net/jvbfLe82/1/ has the css tooltip after the header comment
Inline has joined #lisp
<aeth> scymtym: nice
<aeth> you might want a bit more padding on the left/right, it looks like there's none, other than that it's great.
EvW has quit [Ping timeout: 240 seconds]
<aeth> And in general, more padding means the more someone can move their mouse over the text in the tooltip without risking closing the tooltip itself
<Inline> how can i define a print-object method for a standard-method object with a name ?
<Inline> as an eql specializer ?
<phoe> Inline: name?
<phoe> what do you mean?
<phoe> methods do not have names, GFs have names
<Inline> i have a defgeneric test-method
<Inline> with method bodies attached to it
<Inline> so all the methods are named that way
<Inline> whichever types they specialize
<phoe> either define a custom subclass of standard-method and specialize on that and add these methods manually to the GF
<phoe> or use EQL specializers
<Inline> hmmm
<Inline> problem is i'm trying to use (compute-applicable-methods #'test-method '(1 2))
karlosz has joined #lisp
random-nick has quit [Ping timeout: 246 seconds]
<Inline> and using that in the listener works, but when i try to return that as a value from a let body with *standard-output* rebound (via make-synonym-stream) i get problems
Bourne has quit [Ping timeout: 240 seconds]
duuqnd has quit [Remote host closed the connection]
<Inline> so having that in a file, i can only print and write to the *standard-output* when loading that file, but not return there
<phoe> wait a second
<Inline> not sure if the above step, should solve my problem
<phoe> I don't understand what you are trying to do with c-a-m
<phoe> c-a-m should return a list of methods all right
<Inline> yes, but it's unreadable object
<phoe> yes, and it is going to be an unreadable object
<phoe> why is that a problem?
<phoe> methods are not readable in general
<Inline> no idea, i can't use c-a-m from a file, in the listener i get a genuine return value
<phoe> ...I don't understand what you are trying to do
<phoe> methods are unreadable objects, yes, why is it a problem? are you trying to read them back?
<Inline> when loading the file, even tho i rebound *so*, the form with c-a-m won't return
<Inline> i want the return value
<Inline> or read it back in as you said
<phoe> you want the return value of c-a-m where exactly?
<Inline> into the listener
<Inline> return value of c-a-m into the listener upon loading that file
<phoe> so you load some file and you want loading this file to return some value?
<Inline> yes
<phoe> clhs load
<phoe> CL:LOAD is not useful in that case because its return value is not what we want
EvW1 has joined #lisp
<phoe> can't you bind that thing to some DEFPARAMETER-defined variable inside that file?
<phoe> then you can query mypkg:*foo* for the object that you want
<phoe> if you (defparameter mypkg:*foo* (compute-applicable-methods #'foo '(1 2)))
<Inline> hmmm
<Inline> will try thank you
fixing_auth_hold has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
<Inline> (let ((mystream (make-synonym-stream '*standard-output*)) (result (compute-applicable-methods #'test-method '(1 2)))) (format mystream "applicable methods: ~a~&" result))
<Inline> that works ofc
<phoe> that is not readable either, but I still have no idea why method readability has any problems
<Inline> (let ((mystream (make-synonym-stream '*standard-output*)) (result (compute-applicable-methods #'test-method '(1 2)))) result) does not work
<phoe> s/has/creates
<phoe> what do you mean, does not work? you do not print to the stream anywhere
<phoe> so nothing is printed
<phoe> that's a feature, not a bug
lalilulelo has quit [Ping timeout: 240 seconds]
random-nick has joined #lisp
sjl_ has quit [Ping timeout: 256 seconds]
terpri_ has joined #lisp
sjl_ has joined #lisp
Inline has quit [Quit: Leaving]
terpri has quit [Ping timeout: 260 seconds]
Bourne has joined #lisp
theseb has joined #lisp
VincentVega has quit [Remote host closed the connection]
kaftejiman_ has joined #lisp
kaftejiman has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 244 seconds]
orivej has joined #lisp
ahungry has quit [Remote host closed the connection]
dominic34 has quit [Remote host closed the connection]
sjl_ has quit [Ping timeout: 258 seconds]
rumbler31 has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
quazimodo has quit [Ping timeout: 240 seconds]
quazimodo has joined #lisp
gaqwas has quit [Ping timeout: 240 seconds]
nicktick has joined #lisp
torbo has joined #lisp
kopiyka has quit [Remote host closed the connection]
kopiyka has joined #lisp
chiota has quit [Quit: leaving]
froggey has quit [Ping timeout: 256 seconds]
mangoicedtea has joined #lisp
kaftejiman_ has quit [Remote host closed the connection]
EvW1 has quit [Ping timeout: 244 seconds]
igemnace has joined #lisp
uedasan has joined #lisp
pve has quit [Quit: leaving]
theseb has quit [Quit: Leaving]
froggey has joined #lisp
random-nick has quit [Ping timeout: 258 seconds]
dilated_dinosaur has quit [Ping timeout: 258 seconds]
Alloc has quit [Ping timeout: 244 seconds]
<sveit> hello. i would like to implement an optimization of the type (F (G X)) = (G (H X)) for several F's but only one particular G. i was wondering if this can be done in practice with compiler macros, or if I really need codewalking.
<sveit> where for each F there is a corresponding H?
Alloc has joined #lisp
stepnem has quit [Read error: Connection reset by peer]