dddddd has quit [Remote host closed the connection]
Josh_2 has quit [Read error: Connection reset by peer]
torbo has quit [Remote host closed the connection]
karlosz has joined #lisp
ebzzry has quit [Ping timeout: 265 seconds]
igemnace has joined #lisp
slyrus_ has joined #lisp
slyrus has joined #lisp
slyrus__ has quit [Ping timeout: 240 seconds]
EvW has quit [Ping timeout: 250 seconds]
slyrus_ has quit [Ping timeout: 240 seconds]
abhixec has joined #lisp
igemnace has quit [Remote host closed the connection]
notzmv has quit [Ping timeout: 265 seconds]
shifty has quit [Ping timeout: 240 seconds]
shifty has joined #lisp
Josh_2 has joined #lisp
lxbarbosa has joined #lisp
Lord_of_Life_ has joined #lisp
Codaraxis_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 265 seconds]
Lord_of_Life_ is now known as Lord_of_Life
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.2)]
jeosol has joined #lisp
Bike has quit [Quit: Lost terminal]
brass has joined #lisp
ltriant has quit [Quit: leaving]
Codaraxis__ has joined #lisp
DGASAU has quit [Read error: Connection reset by peer]
DGASAU has joined #lisp
Codaraxis_ has quit [Ping timeout: 240 seconds]
dale has quit [Quit: My computer has gone to sleep]
frgo has quit [Ping timeout: 265 seconds]
frgo has joined #lisp
frgo has quit [Ping timeout: 265 seconds]
mpcjanssen has quit [Quit: WeeChat 1.9.1]
frgo has joined #lisp
mjanssen has joined #lisp
lxbarbosa has quit [Remote host closed the connection]
frgo has quit [Ping timeout: 265 seconds]
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
hdasch has quit [Ping timeout: 250 seconds]
hdasch has joined #lisp
karlosz has quit [Client Quit]
simplegauss_ has quit [Ping timeout: 250 seconds]
karlosz has joined #lisp
simplegauss has joined #lisp
ludston has joined #lisp
rozenglass has quit [Remote host closed the connection]
gravicappa has joined #lisp
libertyprime has quit [Quit: leaving]
sauvin has joined #lisp
karlosz has quit [Quit: karlosz]
ebrasca has joined #lisp
retropikzel has joined #lisp
ebrasca has quit [Remote host closed the connection]
vlatkoB has joined #lisp
orivej_ has quit [Ping timeout: 240 seconds]
<beach>
Good morning everyone!
Frobozz has joined #lisp
Inline__ has quit [Quit: Leaving]
<ck_>
Good morning, beach
ludston has quit [Remote host closed the connection]
ludston has joined #lisp
scymtym has quit [Ping timeout: 240 seconds]
shka_ has joined #lisp
frgo has joined #lisp
frgo has quit [Ping timeout: 240 seconds]
sellout- has quit [Quit: Leaving.]
JohnMS_WORK has joined #lisp
JohnMS_WORK has quit [Read error: Connection reset by peer]
JohnMS_WORK has joined #lisp
duuqnd has quit [Read error: Connection reset by peer]
nullman has quit [Ping timeout: 250 seconds]
nullman has joined #lisp
cosimone has joined #lisp
shka_ has quit [Ping timeout: 240 seconds]
<flip214>
aeth: well, if you can share all the library and executable pages across all the processes, and need only 1MB of dynamic space or so, actual RAM usage might be the same or even smaller (because you don't need all the shared libraries' jump tables)
clothespin has quit [Ping timeout: 276 seconds]
shka__ has quit [Ping timeout: 240 seconds]
shka__ has joined #lisp
sellout- has joined #lisp
scymtym has joined #lisp
jprajzne has joined #lisp
duuqnd has joined #lisp
makomo has quit [Ping timeout: 265 seconds]
<jdz>
pjb: maybe you'd be interested in Shepherd.
Necktwi has joined #lisp
varjag has joined #lisp
ggole has joined #lisp
jello_pudding has joined #lisp
retropikzel has quit [Remote host closed the connection]
schjetne has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
defaultxr has quit [Ping timeout: 268 seconds]
decent-username has joined #lisp
<p_l>
aeth: I've been looking at implementing an alternative, using ECL, though probably statically linked
ralt has joined #lisp
<jackdaniel>
I recall someone has created init binary with ecl which was directly called by linux
<jackdaniel>
I don't know where it go nor I do not have any links
<p_l>
there's nothing special about init binary except that PID1 should never exit (and of course it better reap processes)
<p_l>
but I thing that PID1 should be as small as possible
<p_l>
the rest of the system management can go live in separate daemons
shka__ has quit [Ping timeout: 268 seconds]
shka__ has joined #lisp
<LdBeth>
PID is not required to be static linked
<LdBeth>
^ 1
<p_l>
LdBeth: but it helps when you have a reason to restart it
<p_l>
also, there's no need for PID1 to use anything that requires dynamic linking, and there's no way to atomically replace multiple files, so with glibc's insanity you can get a moment where it reloads while the dynamic libs are incompatible with each other
<ralt>
but it's the initramfs, not PID1
<p_l>
yes, a freak case, but supposedly so is getting into race condition between systemd and your fingers
<jackdaniel>
ralt: that's very likely, thank you for speaking up :-)
<p_l>
ralt: initramfs isn't really a separate thing, so it's PID1 :)
<ralt>
p_l: typically you boot into the initramfs, which then pivot_root into the new PID1
<p_l>
well, whatever gets started as PID1
<Cymew>
This all really sounds like #lispcafe
<p_l>
ralt: yeah, but initramfs is notactually a special case anywhere
<ralt>
it does get the special rootfs :)
<p_l>
ralt: not even that xD
<jackdaniel>
since it may be bundled with the kernel it often plays crucial role when you are developing embedded boards
<jackdaniel>
that said it is indeed offtopic here
<p_l>
on more #lisp side, has anyone played with ECL + mulibc?
<p_l>
*musl
<jackdaniel>
I had reports that it worked fine with uclibc and musl
<p_l>
I see it as a working package in Alpine, but I'd prefer to build a static binary, hmmm
<jackdaniel>
what is mulibc?
<jackdaniel>
nvm, I myself started the offtopic, sorry ^_^
<p_l>
ralt: hmm, I see a dag implementation in linit, might steal some bits ;)
<ralt>
p_l: feel free, but I am not a smart man
cosimone has quit [Quit: Terminated!]
<ralt>
speaking of, Shinmera I was thinking if it was fine with you to fork portacle to add some custom startup on top of it. I'm thinking of writing some software that would essentially give you an API in slime, so having a bundle+custom startup would be perfect for me.
<sam47>
I was trying to register account on https://gitlab.common-lisp.net. It forces 2FA. I have no smartphone, so, I can't have account.
<Shinmera>
ralt: Sure, do what you want.
sam47 has left #lisp [#lisp]
<ralt>
ty
<Shinmera>
Just.. rename it to something that's not Portacle :)
<antoszka>
sam47: No other 2FA types allowed? Yubikey? Authy? Generic OTP generator?
<antoszka>
oh
<ralt>
obviously
<no-defun-allowed>
It can be any other OTP generator, and I believe there's desktop generators.
<no-defun-allowed>
I was pissed off initially that the site suggested it had to be Google Authenticator, but any will do.
<jackdaniel>
maybe it would be a good idea to mention it on gitlab.cl.net
<duuqnd>
AFAIK the most used type of 2FA is an open protocol, so there should be desktop programs
<jackdaniel>
me too, but I've suggested a change to easye and we he has escalated it to gitlab.com project and now it suggests also freeotp (and f-droid repository) as an alternative
<jackdaniel>
s/we he/he/
<no-defun-allowed>
However it seems it breaks every so often, since FreeOTP isn't giving me valid numbers any more.
<no-defun-allowed>
This is the second time it's happened, so I think something I've done is wrong.
<antoszka>
Duuqnd: authy afair has a number of "clients"
<antoszka>
that's good enough
<ralt>
no-defun-allowed: it's fairly sensitive to clock syncs
EvW has joined #lisp
<duuqnd>
antoszka: Authy has given me a bit of trouble in the past. Specifically, Twitch requires authy and didn't let me use my normal OTP program.
<antoszka>
That's strange.
<antoszka>
Especially that the proto is open.
<antoszka>
A service shouldn't be able to differentiate the OTP client.
<p_l>
google authenticator tends to be mentioned because it's easier to tell people "Google Authenticator compatible" than have them remember the right OTP variation
<duuqnd>
I think authy might have its own proprietary protocol as well as the normal OTP.
<duuqnd>
Not sure though.
<no-defun-allowed>
Huh, I set my phone to use the network provided time and it works now. Yay.
<ralt>
who am I supposed to contact if trying to register on gitlab.ci.net tells me "Your account has been blocked"?
<ralt>
there isn't exactly an appropriate "Contact" page :)
<jackdaniel>
ralt: #common-lisp.net would be the place given you use irc
Frobozz has quit [Quit: quit]
jello_pudding has quit [Remote host closed the connection]
keep_learning has joined #lisp
jonatack has joined #lisp
elinow has quit [Ping timeout: 245 seconds]
cyberlard has quit [Quit: Leaving]
skeuomorf has joined #lisp
skeuomorf has left #lisp [#lisp]
eschatologist has quit [Remote host closed the connection]
fortitude_ has quit [Ping timeout: 250 seconds]
decent-username has joined #lisp
decent-username has quit [Remote host closed the connection]
invergo has joined #lisp
invergo has quit [Changing host]
invergo has joined #lisp
clothespin has joined #lisp
Codaraxis_ has joined #lisp
Codaraxis__ has quit [Ping timeout: 240 seconds]
dxtr has quit [Ping timeout: 240 seconds]
<ralt>
jackdaniel: thanks
ironbutt has joined #lisp
jonatack has quit [Quit: jonatack]
jonatack has joined #lisp
dddddd has joined #lisp
dxtr has joined #lisp
stepnem has quit [Ping timeout: 276 seconds]
stepnem has joined #lisp
akotlarski has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
Codaraxis_ has quit [Ping timeout: 240 seconds]
ljavorsk_ has quit [Ping timeout: 245 seconds]
Necktwi has quit [Quit: leaving]
EvW has quit [Ping timeout: 264 seconds]
cosimone has joined #lisp
clothespin_ has joined #lisp
gigetoo has quit [Ping timeout: 240 seconds]
gigetoo has joined #lisp
Necktwi has joined #lisp
nydel has joined #lisp
nydel has quit [Changing host]
nydel has joined #lisp
nydel has quit [Client Quit]
nydel has joined #lisp
nydel has quit [Changing host]
nydel has joined #lisp
gxt has quit [Ping timeout: 260 seconds]
cartwright has quit [Ping timeout: 260 seconds]
_whitelogger has joined #lisp
<scymtym>
the "lisp" file extension is usually used for Common Lisp source code. there should be no need to decompile such a file
elinow has joined #lisp
atgreen has quit [Ping timeout: 268 seconds]
dddddd has quit [Remote host closed the connection]
<ECLIPSE>
scymtym , I am sorry ,,, I have binary data named the first byte of it is AutoCAD-86 shape , and also I have FAS4 file ,, the both of files is malware's
gxt has joined #lisp
* ck_
is slightly amused
<ECLIPSE>
I was able to decompile a bit of FAS file ,,,, but the tool I used is not working good ,, I need something that can convert it to assembly so I can read it and analysis
<beach>
ECLIPSE: This channel is dedicated to Common Lisp.
<ECLIPSE>
beach , the resources is less for this kind of malware , and think that maybe someone here have an idea about how to analysis it ,,,,,, becouse the malware is writen in Lisp language ,,
jeosol has quit [Remote host closed the connection]
<beach>
Autocad is not written in Common Lisp, and Common Lisp is what this channel is about.
<clothespin_>
eclipse: this channel is far far removed from autocad
<ECLIPSE>
ok , Sorry
<ECLIPSE>
thank you
EvW1 has joined #lisp
ECLIPSE has quit [Remote host closed the connection]
ljavorsk_ has joined #lisp
EvW1 has quit [Ping timeout: 250 seconds]
patrixl has quit [Read error: Connection reset by peer]
patrixl has joined #lisp
ljavorsk_ has quit [Ping timeout: 264 seconds]
ebzzry has joined #lisp
orivej has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
nowhere_man has joined #lisp
<pjb>
however, there is generally money in autocad gigs…
<ralt>
let's rename #lisp to #autocad and swim in bills then
nowhere_man has quit [Ping timeout: 240 seconds]
<thijso>
I though AutoCAD had moved away from using lisp?
<thijso>
s/though/thought/
<z0d>
to Python? :->
<pjb>
autobasic
<clothespin_>
autocad will never move away from autolisp so long is there is an autocad because of the huge volumes of autolisp code out there
<beach>
However, there was a time when the company announced that they were going to rewrite it in Common Lisp. That project was canceled, though.
<clothespin_>
rewrite autolisp in common lisp or rewrite autocad in common lisp?
<p_l>
there was a time when they tried to get people to switch over to VBA
lucasb has joined #lisp
<p_l>
this led to situation where there was (still is?) a separate company providing an IDE for AutoLISP, because the VBA approach didn't win much support from userbase, no matter how much it was pushed
<p_l>
(AutoLISP was the *very first* Lisp I encountered)
<clothespin_>
me two
<clothespin_>
too
<beach>
clothespin: The plan was to rewrite AutoCAD in Common Lisp.
<p_l>
AFAIK it was due to AutoLISP that my parents home had a book called "LISP Programming Language", which set me on a slow, long road to Lisp :)
<clothespin_>
that must have been before they rewrote it in C++
<p_l>
I don't think they ever "rewrote" it
<clothespin_>
it was initially C on the dos platform
<p_l>
even circa ~2004 there was still points where you looked and DOS looked back
<clothespin_>
then it became C++ after windows
<p_l>
clothespin_: IIRC it started not on DOS but some Unix platform, but quickly cornered the market by going for DOS
<p_l>
and due to availability on random PCs, similarly to Turbo Pascal, it took over Poland in a storm
<thijso>
Ah, yes, beach, I remember being mildly excited about that (rewrite to Common Lisp)
<jackdaniel>
in scale from -3 to +3 in on-topicness it has +0.001 because words phrases and "lisp" and "common lisp" pop up every now and then ,-)
<jackdaniel>
s/words phrases and/phrases/
<thijso>
Funnily enough, I used AutoCAD and never encountered Lisp during that time. Only much later did I learn about Lisp and retroactively saw that AutoLisp existed...
<clothespin_>
AutoLisp returns nil if it encounters an unbound symbol
<clothespin_>
make debugging hard
<Shinmera>
That's real cool but it's not relevant to Common Lisp.
<jackdaniel>
I've tried to hint that :(
<thijso>
well, to be sure, jackdaniel, you said we were +0.001 on the good side...
<clothespin_>
well at least I'm not the only one who migrated from autolisp to common lisp
<p_l>
on more Common Lisp (well, pre-common but works on CL) CAD software, ICAD apparently was still available to some extent
<p_l>
now compiled using AFAIK ACL, using ported Flavors
<clothespin_>
it's been that way for 20 years
<p_l>
well, it seems a bit harder to get in the last 10
<clothespin_>
dassault systemes bought ICAD and that was pretty much the end of new development
<p_l>
and is more niche than CATIA
<p_l>
even before 2004, when AFAIK the buyout happened
<p_l>
that said, anyone has ICAD for Symbolics, I
<p_l>
I'm interested ;)
<clothespin_>
genworks started selling icad-like kbe when icad went south
<p_l>
yes, in my infinite(simally small) free time, I was thinking of adding one of the things missing from the free software version back, using a lispy (scheme-y?) geometry library
<p_l>
because the FOSS version of gendl misses few components, due to them being dependant on closed-source commercial packages
<clothespin_>
smlib
<p_l>
yep
<p_l>
the computational geometry code
<clothespin_>
it had basic geometry without smlib though, smlib was mainlly for nurbs
<jackdaniel>
according to documentation it still has
<p_l>
... I just found that a project in which I had put my fingers a tiny bit and always thought was underfunded, has enough budget that if someone talked right way they could finance a lisp bonanza...
<p_l>
multinationals are insane, try fleecing one for lisp-programming money :|
zaquest has quit [Read error: Connection reset by peer]
patrixl has quit [Read error: Connection reset by peer]
igemnace has quit [Read error: Connection reset by peer]
patrixl has joined #lisp
atgreen has quit [Ping timeout: 268 seconds]
atgreen has joined #lisp
prite has joined #lisp
gareppa has joined #lisp
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.2)]
flazh has quit [Ping timeout: 265 seconds]
atgreen has quit [Ping timeout: 250 seconds]
smazga has joined #lisp
rumbler3196 has joined #lisp
enrio has quit [Ping timeout: 245 seconds]
<rumbler3196>
anyone having issues with paredit mode lately? Its letting me delete closing parens which is frustrating
schjetne has quit [Ping timeout: 265 seconds]
<rumbler3196>
I should add, when in a slime repl
* Xach
has never tried paredit in the repl
superkumasan has joined #lisp
gareppa has quit [Quit: Leaving]
lxbarbosa has joined #lisp
schjetne has joined #lisp
anewuser has joined #lisp
<rumbler3196>
Xach: ah, what do you use instead?
pfdietz has joined #lisp
<selwyn>
rumbler3196: do you have overwrite mode enabled?
sjl has joined #lisp
lxbarbosa has quit [Read error: Connection reset by peer]
<rumbler3196>
I do not
<Xach>
rumbler3196: I don't use anything. If a form becomes too long to use simple paren balancing in the REPL, i write it in a file (sometimes a temporary one) to manage it.
<selwyn>
huh. out of ideas sorry. paredit is working fine for me
jonatack_ has quit [Read error: Connection reset by peer]
slyrus has quit [Read error: Connection reset by peer]
slyrus has joined #lisp
edgar-rft has quit [Quit: Leaving]
gareppa has joined #lisp
schjetne has quit [Ping timeout: 265 seconds]
toorevitimirp has quit [Quit: Konversation terminated!]
ljavorsk_ has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
cosimone has quit [Quit: Terminated!]
dale_ has joined #lisp
dale_ is now known as dale
gareppa has quit [Quit: Leaving]
atgreen has joined #lisp
ljavorsk_ has quit [Ping timeout: 240 seconds]
Necktwi has joined #lisp
atgreen has quit [Ping timeout: 265 seconds]
karlosz has joined #lisp
Pixel_Outlaw has joined #lisp
<pjb>
note that paredit disables itself when parentheses become unbalanced in a buffer, outside of its control. So: (write-line "1) then repl is not a lisp buffer!")
ljavorsk_ has joined #lisp
dgtlcmo has quit [Quit: Lost terminal]
Necktwi has quit [Quit: leaving]
cyberlard has joined #lisp
<rumbler3196>
I'll try opening a new session and see what happens
<rumbler3196>
nope...
<rumbler3196>
paredit in the scratch buffer works fine. I issue m-x slime and then activate paredit and parens don't keep
<pjb>
rumbler3196: what's your prompt?
<rumbler3196>
; slime 2.24, CL-USER>
<pjb>
ok
elinow has quit [Ping timeout: 268 seconds]
<pjb>
Type: M-x check-parens RET
Remavas has quit [Ping timeout: 240 seconds]
LiamH has joined #lisp
<rumbler3196>
this is where I get mixed up sometimes. I installed slime from the package manager, then after I installed quicklisp I installed the quicklisp-slime-helper
<rumbler3196>
it doesn't appear to return anything
DGASAU has quit [Read error: Connection reset by peer]
Remavas has joined #lisp
Necktwi has joined #lisp
DGASAU has joined #lisp
amerlyq has joined #lisp
Lord_of_Life_ has joined #lisp
enrio has joined #lisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ is now known as Lord_of_Life
kajo has joined #lisp
gareppa has joined #lisp
rixard has joined #lisp
karlosz has quit [Quit: karlosz]
rixard has quit [Client Quit]
rixard has joined #lisp
schweers has quit [Ping timeout: 250 seconds]
Josh_2 has joined #lisp
amerlyq has quit [Quit: amerlyq]
amerlyq has joined #lisp
manualcrank has joined #lisp
gjvc has quit [Remote host closed the connection]
myrkraverk_ has quit [Quit: ChatZilla 0.9.93 [SeaMonkey 2.49.2/20180205033720]]
<jasom>
Josh_2: so the "stackless" part is that the TCB for the coroutine need not include a separate stack.
schjetne has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
gxt has quit [Quit: WeeChat 2.6]
<Josh_2>
(incf samlamamma )
Codaraxis has quit [Ping timeout: 246 seconds]
<Bike>
wouldn't the issue be that you can only resume the yielded coroutine at certain points, that is while the condition is being handled? you can't actually return to the caller and do something you were already doing.
<Bike>
yield to the caller, i mean
schjetne has quit [Ping timeout: 240 seconds]
atgreen has joined #lisp
Lord_of_Life has quit [Read error: Connection reset by peer]
hhdave has quit [Quit: hhdave]
Lord_of_Life has joined #lisp
gxt has joined #lisp
<Bike>
guessing that yield = signal, resume = invoke-restart
dddddd has joined #lisp
cosimone has quit [Remote host closed the connection]
<jasom>
right; you can't invoke restarts out-of-order, so it's a no-go
cosimone has joined #lisp
akotlarski has quit [Remote host closed the connection]
<Bike>
you have to actually maintain a state in the coroutine object, i would think
flazh has joined #lisp
Necktwi has quit [Quit: leaving]
charh has joined #lisp
hh47 has joined #lisp
rippa has joined #lisp
mathrick has quit [Ping timeout: 250 seconds]
anewuser has quit [Quit: anewuser]
jonatack_ has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
gareppa has quit [Quit: Leaving]
mathrick has joined #lisp
amerlyq has quit [Quit: amerlyq]
amerlyq has joined #lisp
eschatologist has joined #lisp
amerlyq has quit [Client Quit]
amerlyq has joined #lisp
amerlyq has quit [Client Quit]
amerlyq has joined #lisp
amerlyq has quit [Client Quit]
sellout- has quit [Quit: Leaving.]
amerlyq has joined #lisp
orivej has joined #lisp
amerlyq has quit [Client Quit]
amerlyq has joined #lisp
amerlyq has quit [Quit: amerlyq]
karlosz has joined #lisp
Kevslinger has joined #lisp
amerlyq has joined #lisp
amerlyq has quit [Client Quit]
retropikzel has joined #lisp
hiroaki_ has quit [Ping timeout: 240 seconds]
amerlyq has joined #lisp
amerlyq has quit [Client Quit]
Inline__ has joined #lisp
amerlyq has joined #lisp
hiroaki_ has joined #lisp
Inline has quit [Ping timeout: 264 seconds]
jreed has joined #lisp
ljavorsk_ has joined #lisp
sellout- has joined #lisp
Oladon_work has joined #lisp
amerlyq has quit [Quit: amerlyq]
amerlyq has joined #lisp
amerlyq has quit [Client Quit]
amerlyq has joined #lisp
karlosz has quit [Quit: karlosz]
ljavorsk_ has quit [Ping timeout: 265 seconds]
jreed has quit [Ping timeout: 245 seconds]
atgreen has quit [Ping timeout: 240 seconds]
jonatack_ has quit [Ping timeout: 240 seconds]
sellout- has quit [Ping timeout: 265 seconds]
refpga has quit [Read error: Connection reset by peer]
EvW has joined #lisp
makomo has joined #lisp
tumdum has joined #lisp
tumdum has quit [Client Quit]
Necktwi has joined #lisp
kajo has quit [Ping timeout: 264 seconds]
cosimone has quit [Quit: Terminated!]
Necktwi has quit [Client Quit]
tumdum has joined #lisp
tumdum has quit [Client Quit]
tumdum has joined #lisp
tumdum has quit [Client Quit]
tumdum has joined #lisp
samlamamma has quit [Remote host closed the connection]
frgo has joined #lisp
makomo has quit [Quit: WeeChat 2.4]
archon_ has joined #lisp
Inline__ has quit [Quit: Leaving]
archon_ has quit [Remote host closed the connection]
Inline has joined #lisp
atgreen has joined #lisp
cosimone has joined #lisp
retropikzel has quit [Ping timeout: 268 seconds]
Codaraxis has joined #lisp
rumbler3196 has quit [Ping timeout: 260 seconds]
kajo has joined #lisp
atgreen has quit [Ping timeout: 240 seconds]
jmercouris has joined #lisp
superkumasan has quit [Ping timeout: 268 seconds]
jmercouris has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 246 seconds]
Oladon_work has quit [Ping timeout: 260 seconds]
varjag has joined #lisp
atgreen has joined #lisp
ggole has quit [Quit: Leaving]
hiroaki_ has quit [Ping timeout: 265 seconds]
hh47 has quit [Ping timeout: 250 seconds]
atgreen has quit [Ping timeout: 268 seconds]
clothespin_ has quit [Ping timeout: 250 seconds]
clothespin has quit [Ping timeout: 265 seconds]
EvW1 has joined #lisp
hiroaki_ has joined #lisp
EvW1 has quit [Ping timeout: 250 seconds]
scymtym has quit [Ping timeout: 245 seconds]
EvW1 has joined #lisp
Oladon_work has joined #lisp
jcowan has joined #lisp
edgar-rft has joined #lisp
EvW1 has quit [Ping timeout: 264 seconds]
<jcowan>
Can sbcl statically type-check keyword actual arguments when the type of the corresponding lambda argument is known?
Codaraxis has quit [Ping timeout: 240 seconds]
clothespin has joined #lisp
karlosz has joined #lisp
lowryder has joined #lisp
EvW1 has joined #lisp
ebrasca has joined #lisp
superkumasan has joined #lisp
sellout- has joined #lisp
EvW1 has quit [Ping timeout: 250 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Codaraxis has joined #lisp
gravicappa has quit [Ping timeout: 268 seconds]
<pfdietz>
I do not know.
bleepcord has joined #lisp
<pfdietz>
FUNCTION types can specify the types of arguments.
<pfdietz>
of keyword arguments
<pfdietz>
If you declaim the type of the function using FTYPE, it will flag the type incompatibility at the call.
<pfdietz>
and issue a warning
<pfdietz>
But declaring the type of parameters in the function body itself? No.
amerlyq has quit [Quit: amerlyq]
xkapastel has quit [Quit: Connection closed for inactivity]
<jcowan>
Okay, ftype is good enough for my purposes.
<jcowan>
I just said "lambda argument is known", as opposed to how it is known.
frgo has quit [Read error: Connection reset by peer]
frgo has joined #lisp
<pfdietz>
I am happy to have over-answered your question. :)
scymtym has joined #lisp
shka_ has quit [Ping timeout: 265 seconds]
troydm has quit [Ping timeout: 276 seconds]
Bike has quit [Quit: Bike]
enrio has quit [Ping timeout: 265 seconds]
EvW has joined #lisp
nowhere_man has joined #lisp
ludston has quit [Remote host closed the connection]
varjag has quit [Ping timeout: 240 seconds]
bleepcord has quit [Quit: WeeChat 2.6]
EvW has quit [Read error: Connection reset by peer]
EvW2 has joined #lisp
EvW2 is now known as EvW
cosimone has quit [Quit: Quit.]
invergo has quit [Ping timeout: 240 seconds]
EvW has quit [Remote host closed the connection]
Pixel_Outlaw has left #lisp ["ERC (IRC client for Emacs 25.3.1)"]
EvW has joined #lisp
EvW has quit [Read error: Connection reset by peer]
sjl has quit [Quit: WeeChat 2.3-dev]
quazimodo has joined #lisp
hh47 has quit [Remote host closed the connection]
akoana has joined #lisp
gxt has quit [Remote host closed the connection]
troydm has joined #lisp
Bike has joined #lisp
gxt has joined #lisp
ralt has quit [Quit: Connection closed for inactivity]
* jcowan
chuckles
EvW has joined #lisp
chipolux has quit [Quit: chipolux]
<jcowan>
Another question. If a lambda list specifies both &optional and &key, is it necessary to fill all optional arguments in the call before any keywords are detected, or is the presence of a keyword enough to trigger keyword processing?
<no-defun-allowed>
Yes, all optional arguments must be filled in first.
EvW has quit [Remote host closed the connection]
<no-defun-allowed>
You can test with read-from-string, which takes two optional arguments then keyword arguments.
EvW has joined #lisp
scymtym has quit [Read error: Connection reset by peer]
LiamH has quit [Quit: Leaving.]
<clothespin>
has anybody written the subset of clojure for concurrency in CL?
scymtym has joined #lisp
<clothespin>
I see not-directly-related but similar functionality in lparallel and cl-async
<no-defun-allowed>
Can't imagine why, but what's that subset?
<clothespin>
i'm not talking about the heavy handed stuff like immutable datastructures and atoms and such
<clothespin>
i read the docs to blackbird, thought it was interesting
<aeth>
jcowan: (let ((l1 (list 1 2 3 :c 42)) (l2 (list 1 :c 42))) (flet ((test-optional-with-key (list) (destructuring-bind (foo &optional bar baz &key a b c) list (values foo bar baz a b c)))) (format t "~{~S ~}~%~{~S ~}~%" (multiple-value-list (test-optional-with-key l1)) (multiple-value-list (test-optional-with-key l2)))))
<aeth>
SBCL even gives a style warning there, although it exists in a few older functions in the standard
<aeth>
It would be reasonable for a language to only allow one or the other
<aeth>
For those who don't want to run it, the first line is "1 2 3 NIL NIL 42 " and the second is "1 :C 42 NIL NIL NIL ", so when the optionals aren't filled in the keyword is treated as an argument. And yes, this has caused a bug in my code before.
stepnem has quit [Ping timeout: 250 seconds]
gxt_ has joined #lisp
<aeth>
And without destructuring bind: (let ((l1 (list 1 2 3 :c 42)) (l2 (list 1 :c 42))) (flet ((test-optional-with-key (foo &optional bar baz &key a b c) (values foo bar baz a b c))) (format t "~{~S ~}~%~{~S ~}~%" (multiple-value-list (multiple-value-call #'test-optional-with-key (values-list l1))) (multiple-value-list (multiple-value-call #'test-optional-with-key (values-list l2))))))
<aeth>
Only a bit more awkward
semz has quit [Quit: Leaving]
stepnem has joined #lisp
gxt has quit [Ping timeout: 260 seconds]
smazga has quit [Quit: leaving]
Oladon_work has quit [Ping timeout: 260 seconds]
* jcowan
nods.
<jcowan>
Thanks
EvW has quit [Ping timeout: 245 seconds]
<jcowan>
aeth: Clisp definitely doesn't do that. Given
<jcowan>
(defun foo (a b c &optional d e &key f g) (print (list a b c d e f g)))
<aeth>
My code does run in CLISP, and yes, without a style warning.
<jcowan>
aeth: Oops, I mixed two examples, obvs
<aeth>
SBCL does have the most helpful compiler, it warns you about stuff like a special variable without earmuffs. CCL can catch some bugs that SBCL doesn't because it interprets the standard differently, though
<Bike>
it uses 1 2 3 :f as the optional arguments, and is left :g 44 for the keyword section
<Bike>
er
<Bike>
sorry, 1 2 3 :f 32 as the optional arguments.
<aeth>
jcowan: The default value of optionals and keywords are nil unless you specify one like &optional foo (bar 42) ; in this case foo is nil and bar is 42 if nothing is passed in
<jcowan>
Right, but there are keys f and g and I am specifying :f and :g
<aeth>
jcowan: In CL, there is no #<unspecified> or whatever a Scheme might use for stuff like that. Pretty much anywhere where there is a default value, it's nil, unless you explicitly use (values) or use an API that does
<Bike>
no you're not, you're specifying five optional arguments
<jcowan>
Say what? a b c are mandatory, not optional
<Bike>
sorry, three required arguments and two optionals.
<Bike>
five fixed position arguments
<jcowan>
All right, that makes sense of it.
<jcowan>
So in fact you must specify all optional arguments, none can remain optional, if keyword arguments are to be processed as such.
<Bike>
yep.
<jcowan>
s/remain optional/be missing
<aeth>
jcowan: It does make sense from the perspective of &optional, which is to get to the later, you have to go through the earlier parts, even if it just means a bunch of ugly nils that were already the defaults
<Bike>
it would probably be even more complicated to try to interpret it another way, given the other parts of how keyword arguments (you can use non-keyword symbols, and pass keyword arguments not specified in the lambda list, plus you don't statically know the lambda list anyway)
<jcowan>
Okay, sorry for all the noise.
sellout- has joined #lisp
<Bike>
no need to apologize
<jcowan>
I'm beginning to grasp why Racket and Kawa treat keywords as syntax rather than Lisp objects.
<Bike>
yeah i kind of like how lisp works well enough, but it does have some really confusing parts
<aeth>
jcowan: Right, because if you see :foo :bar :baz :quux you don't know if you have 0, 2, or 4 keyword arguments.
<jcowan>
(OTOH they don't have anything like &allow-other-keys)
<Bike>
it's also a huge pain in the ass to implement
<jcowan>
I think the moral is not to mix keywords, optional arguments, and rest arguments: pick one.
<jcowan>
I well believe it is.
<Bike>
i think &rest and &key together are ok.
<jcowan>
In Racket/Kawa you have to write :foo ':bar :baz ':quux in that situation
<Bike>
i mean, it kind of forces the rest argument to be a plist, though.
<aeth>
jcowan: &allow-other-keys is imo pretty much mandatory in higher order functions (at least ones that take in lambdas that use keywords) in Common Lisp because you can't pin a library to a version in Quicklisp, so if an API adds another keyword input, your version is now an error at whatever point it's funcalled.
<jcowan>
Yes.
<jcowan>
Yes, keywords and apply don't mix very well in general
<clothespin>
you can apply plists
<clothespin>
you can use &allow-other-keys
<clothespin>
and just bind the vars you want
<clothespin>
great for initialize-instance
<aeth>
There's some advantage to simple lambda list syntax, e.g. you can destructuring bind a plist tail with (... &key ... &allow-other-keys) to parse it... That's convenience you don't get for alists.
<jcowan>
If I'm going to do that, though, everyone has to use &allow-other-keys
<jcowan>
Quite.
<jcowan>
Also, quasiquoted alists look awful.
<clothespin>
all initialize-instance methods use &allow-other-keys
<jcowan>
whereas even if keywords were not self-evaluating, (foo 'a 32 'b 45) is perfectly readable and no more verbose than :a :b
raghavgururajan has joined #lisp
<jcowan>
aaaaak, it's late
<jcowan>
Thanks all
jcowan has left #lisp [#lisp]
ebrasca has quit [Remote host closed the connection]
lucasb has quit [Quit: Connection closed for inactivity]