phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
makomo has quit [Ping timeout: 268 seconds]
frodef has quit [Ping timeout: 246 seconds]
snits has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 258 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life_ is now known as Lord_of_Life
robdog has joined #lisp
snits has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
schjetne has quit [Ping timeout: 246 seconds]
lumm has quit [Ping timeout: 245 seconds]
robdog_ has joined #lisp
wusticality has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
robdog_ has quit [Ping timeout: 268 seconds]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 245 seconds]
abhixec has quit [Ping timeout: 245 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
vms14 has joined #lisp
robdog has joined #lisp
skeuomorf has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
pmc_ has quit [Quit: Leaving]
robdog has joined #lisp
wusticality has quit [Ping timeout: 244 seconds]
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
meepdeew has joined #lisp
meepdeew has quit [Ping timeout: 245 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
xvx has quit [Quit: xvx]
akoana has left #lisp ["Leaving"]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
hiroaki has quit [Ping timeout: 268 seconds]
wusticality has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
actuallybatman has joined #lisp
jbayardo has quit [Quit: Bye!]
actuallybatman has quit [Client Quit]
Arcaelyx has joined #lisp
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
<fiddlerwoaroof> I think I'm going to fold this readmacro into my toolbox
hiroaki has joined #lisp
vms14 has quit [Quit: Doing something with my shit life :D]
igemnace has joined #lisp
robdog has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
robdog has quit [Ping timeout: 264 seconds]
dale has quit [Quit: dale]
<sjl> unexpected downside of lparallel on a machine with lots of cores: any error trashes your UI https://i.imgur.com/LFEJEeC.png
robdog has joined #lisp
q9929t has joined #lisp
q9929t has quit [Client Quit]
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
<no-defun-allowed> yep, you're in for fun if that happens
robdog has quit [Ping timeout: 264 seconds]
<no-defun-allowed> SLIME doesn't trash it like that, just spawns too many SLDBs for one to manage quickly
<aeth> sjl: just wait until the 64c 128t CPUs come out this year
<sjl> "trashes" might be a strong word... I just have to press `a` a bunch of times
<sjl> and my keyboard repeat rate is pretty high
wanz has joined #lisp
meepdeew has joined #lisp
buffergn0me has joined #lisp
robdog has joined #lisp
meepdeew has quit [Ping timeout: 250 seconds]
robdog has quit [Ping timeout: 250 seconds]
dale has joined #lisp
iovec has joined #lisp
Lycurgus has joined #lisp
abhixec has joined #lisp
robdog has joined #lisp
<beach> Good morning everyone!
robdog has quit [Ping timeout: 250 seconds]
<fiddlerwoaroof> morning beach
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
_whitelogger has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
Nilby has joined #lisp
robdog has joined #lisp
ggole has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
meepdeew has joined #lisp
ismay has joined #lisp
meepdeew has quit [Read error: Connection reset by peer]
Arcaelyx has quit [Quit: Textual IRC Client: www.textualapp.com]
buffergn0me has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
Nilby has quit [Read error: Connection reset by peer]
wanz has quit [Quit: wanz]
wanz has joined #lisp
wusticality has quit [Ping timeout: 255 seconds]
robdog has joined #lisp
zhlyg has joined #lisp
dddddd has quit [Remote host closed the connection]
decent-username has joined #lisp
<decent-username> anyone online here?
robdog has quit [Ping timeout: 268 seconds]
<beach> Just ask your question.
<decent-username> It would be nice if someone told me how to add multiple authors an asdf-project under the :author parameter in an asdf:defsystem-form. Right now I've just added two names into a single string.
<ober> decent-username: it sure would :P
<decent-username> I just don't want to sound demanding, because in the end noone is forced to do anything. :)
<decent-username> I just thought there might me some general format people use for multiple authors.
<ober> ./dists/quicklisp/software/cl-cont-20110219-darcs/cl-cont.asd: :author "Slava Akhmechet, Stephen Compall <s11@member.fsf.org>, John Fremlin, Leslie P. Polzer <polzer@gnu.org>"
<decent-username> Thanks ober, that's exactly the answer I was looking for.
<ober> find ~/quicklisp -name "*.asd" -exec grep -ri ":author" {} +
Lycurgus has quit [Quit: Exeunt]
<decent-username> yeah, my shell scripting knowledge is still rather rudimentary. But that means that there will be always enough to learn.
slyrus_ has joined #lisp
wusticality has joined #lisp
Oladon has joined #lisp
wusticality has quit [Remote host closed the connection]
wusticality has joined #lisp
rippa has joined #lisp
mejja has quit [Quit: mejja]
FreeBirdLjj has joined #lisp
pjb has joined #lisp
skeuomorf has quit [Ping timeout: 268 seconds]
libertyprime has joined #lisp
makomo has joined #lisp
wanz has quit [Quit: wanz]
abhixec has quit [Ping timeout: 245 seconds]
wanz has joined #lisp
xkapastel has joined #lisp
adamantium has left #lisp ["ERC (IRC client for Emacs 26.1)"]
<makomo> morning
orivej has quit [Ping timeout: 245 seconds]
ismay has quit [Ping timeout: 264 seconds]
Oladon has quit [Quit: Leaving.]
bendersteed has joined #lisp
wanz has quit [Quit: wanz]
wanz has joined #lisp
zhlyg has quit [Ping timeout: 244 seconds]
robdog has joined #lisp
<Grue`> sjl: i had a similar problem when I tried to force thousands of futures into a thread pool and once an error happens and you abort it, lparallel recreates a worker and runs a new future on it which generates a new error
hiroaki has quit [Ping timeout: 255 seconds]
hiroaki has joined #lisp
robdog has quit [Ping timeout: 246 seconds]
random-nick has joined #lisp
robdog has joined #lisp
decent-username has quit [Remote host closed the connection]
robdog has quit [Ping timeout: 250 seconds]
izh_ has joined #lisp
robdog has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
robdog_ has joined #lisp
aindilis has joined #lisp
orivej has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
robdog_ has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
wusticality has quit [Ping timeout: 244 seconds]
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
wanz has quit [Quit: wanz]
robdog has joined #lisp
wusticality has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
robdog has quit [Ping timeout: 250 seconds]
Lycurgus has joined #lisp
xvx has joined #lisp
schjetne has joined #lisp
robdog has joined #lisp
wanz has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
ebrasca has quit [Read error: Connection reset by peer]
robdog_ has joined #lisp
ebrasca has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
orivej has quit [Ping timeout: 250 seconds]
Zaab1t has joined #lisp
Zaab1t has quit [Client Quit]
robdog_ has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
orivej has joined #lisp
milivoj has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
wusticality has quit [Ping timeout: 255 seconds]
Lycurgus has quit [Quit: Exeunt]
izh_ has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
izh_ has joined #lisp
lumm has joined #lisp
robdog has quit [Ping timeout: 252 seconds]
robdog has joined #lisp
makomo has quit [Ping timeout: 245 seconds]
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
orivej has quit [Ping timeout: 245 seconds]
makomo has joined #lisp
frodef has joined #lisp
robdog_ has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog_ has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
iovec has quit []
robdog has quit [Ping timeout: 268 seconds]
izh_ has left #lisp [#lisp]
karlosz has quit [Quit: karlosz]
robdog has joined #lisp
igemnace has quit [Quit: WeeChat 2.4]
robdog has quit [Ping timeout: 268 seconds]
wanz has quit [Quit: wanz]
robdog has joined #lisp
ravenousmoose has joined #lisp
ravenousmoose has quit [Client Quit]
xvx has quit [Quit: xvx]
Essadon has joined #lisp
Essadon has quit [Max SendQ exceeded]
robdog_ has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
wanz has joined #lisp
robdog has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
<makomo> MichaelRaskin: if you're interested, here's what i came up with for WITH-OVERLOAD https://plaster.tymoon.eu/view/1216#1216
<makomo> given that i've "limited" myself to sublexical scope, i don't really require the correct handling of environments
<makomo> i don't think working within the whole lexical scope (i.e. actually expanding all of the macros) would be useful, because you could unexpectedly affect the expansions of those macros
<makomo> but i guess it depends on what you want to achieve, so maybe a lot of macros like these could have a switch whether to work within sublexical or lexical scope
bendersteed has quit [Quit: bye]
<makomo> one problem remains, and that's MACROLETs' bodies (within the sublexical scope) not being walked by AL
<MichaelRaskin> makomo: indeed, if you are doing something like overloading cl:+ not walking expansions is within the range of understandable options
<MichaelRaskin> I walk macrolet bodies
q3d has joined #lisp
<MichaelRaskin> Did you mean macrolet expanders?
marvin2 has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
<makomo> MichaelRaskin: ah yeah, woops
<makomo> that's what i meant yesterday as well
<MichaelRaskin> But remember that walking the expanders won't affect the expansion
<makomo> are you talking in general or specifically about the expansion of W-O?
<MichaelRaskin> Well, most of the stuff like that
<MichaelRaskin> Sure you can rewrite an expander completely
<makomo> it would affect the expansion, because it would affect the MACROLETs expander
<makomo> W-O would expand into the rewritten MACROLET, etc.
<makomo> then further on, that macrolet (if its used within the body) might go on to do something else
<MichaelRaskin> Well, if you rewrite + to -, still, `(+ 1 2) is not rewritten as this + is data not code
<makomo> right, that's true and that's ok
<makomo> but this, in example 6, `(list (* ,a ,b) ,(+ 1 2))
<makomo> the usage of + here is not within the expansion, but within the expander
<MichaelRaskin> Well, yes
xvx has joined #lisp
<makomo> and i suppose walking macrolets' expanders has no inherent dangers as well, right?
<makomo> just like the case with DEFMACRO's body
<MichaelRaskin> Yeah, no inherent dangers (but probably nice to have it still as an option)
Lord_of_Life_ has joined #lisp
<makomo> MichaelRaskin: yeah i guess. maybe i could try to implement that and open a PR
Lord_of_Life has quit [Ping timeout: 255 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<MichaelRaskin> The True Repo is in Monotone anyway, so feel free to send it in any form and format (I will be applying it as a patch in any case)
<makomo> ah, ok :-)
<makomo> i'll let you know if i get to it
dddddd has joined #lisp
<MichaelRaskin> GitLab does provide a convenient patch export for PRs, of course.
robdog has joined #lisp
orivej has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
<makomo> hm wut, does common-lisp.net's gitlab now require 2-factor auth?
Lycurgus has joined #lisp
wusticality has joined #lisp
wxie has joined #lisp
wusticality has quit [Ping timeout: 246 seconds]
<MichaelRaskin> makomo: you know that desktop password managers do provide support for TOTP?
makomo has quit [Ping timeout: 245 seconds]
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
wanz has quit [Quit: wanz]
<MichaelRaskin> makomo: and the recommendation to put last-measure recovery keys into password manager basically means that a password manager with good master password is good enough.
nanoz has joined #lisp
igemnace has joined #lisp
Inline has quit [Quit: Leaving]
Inline has joined #lisp
volkov has joined #lisp
q9929t has joined #lisp
wanz has joined #lisp
xvx has quit [Quit: xvx]
shka_ has joined #lisp
wxie has quit [Quit: Bye.]
Lycurgus has quit [Quit: Exeunt]
wxie has joined #lisp
pierpal has joined #lisp
volkov has quit [Quit: volkov]
frodef has quit [Ping timeout: 244 seconds]
wxie has quit [Ping timeout: 252 seconds]
q9929t has quit [Quit: q9929t]
wanz has quit [Quit: wanz]
slaterr has joined #lisp
slaterr has left #lisp [#lisp]
lumm has quit [Read error: Connection reset by peer]
gxt has joined #lisp
lumm has joined #lisp
wanz has joined #lisp
wanz has quit [Quit: wanz]
Essadon has joined #lisp
makomo has joined #lisp
wusticality has joined #lisp
q3d has quit [Ping timeout: 256 seconds]
cantstanya has quit [Remote host closed the connection]
Kaisyu has joined #lisp
wusticality has quit [Ping timeout: 245 seconds]
cantstanya has joined #lisp
Inline has quit [Quit: Leaving]
xvx has joined #lisp
<makomo> MichaelRaskin: hm, ok, i'll do a bit more research
Inline has joined #lisp
Ukari has quit [Remote host closed the connection]
Ukari has joined #lisp
<makomo> MichaelRaskin: when :on-macroexpanded-form returns a replacement, that replacement isn't further macroexpanded. is this the intended behavior?
<MichaelRaskin> I would say yes
<makomo> i see, so basically it gives you a chance to replace the expansion itself?
<MichaelRaskin> If you know you are working after the default expansion step, you are _allowed_ to put something to keep unexpanded. Or you can call an expansion explicitly
<MichaelRaskin> I mean, you already have a metaenv anyway
<makomo> by "call an expansion explicitly" you mean calling the macro's expansion function by hand?
Oladon has joined #lisp
ravenousmoose has joined #lisp
<MichaelRaskin> Yes
<makomo> i see. that makes sense, yeah
wanz has joined #lisp
robdog has joined #lisp
robdog_ has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog_ has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
rozenglass has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
lerax has joined #lisp
<lerax> xach: I requested the approval of quicklisp-meta on quicklisp-projects issues. When you have time I'll be glad if you accept it. I think the software is portable, I didn't expose neither common lisp implementation or operating system at the implementation.
<lerax> quicklisp-meta it's already available at ultralisp.org dist.
<lerax> The main usage it's a ql-client wrapper like:
<lerax> (ql-meta:quickload 'trial :dist 'shirakumo)
robdog has quit [Ping timeout: 264 seconds]
<lerax> Which will load the system 'trial from 'shirakumo. If 'shirakumo it's not installed before, ql-meta will install temporary and after 'trial is load will uninstall it.
<lerax> Some documentation provided at: lisp.com.br/quicklisp-meta/
<lerax> I hope this can be useful for someone here beyond me and my friends.
void_pointer has joined #lisp
robdog has joined #lisp
wanz has quit [Quit: wanz]
<Xach> lerax: my only concern, and this is not a fatal concern, is that people will see the name "quicklisp-meta" and think it is part of "official" quicklisp.
<Xach> rather than an add-on by another group
robdog has quit [Ping timeout: 268 seconds]
<Xach> and using a name like "quickload" will increase the confusion
bendersteed has joined #lisp
robdog has joined #lisp
<jackdaniel> rename it to quirklisp and quirkload, it will be both funny and distinctive :-)
<lerax> HMMMMMMMMMMMM, that's indeed a problem to be discussed. I choose that name not thinking about that, but just thinking about the usage. Do you have some suggestion?
<lerax> quirkload? hahaha
<lerax> I'll think in something in soon. But thank you for the feedback xach, I understand the problem you pointed.
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
robdog has quit [Ping timeout: 264 seconds]
<lerax> The ideia of quicklisp-meta it's just to extend and wraps the main functionally of quicklisp to handle multiple dists, that's way the name.
* lerax that's *the reason* of the name
robdog has joined #lisp
<lerax> But indeed you have a point. But I don't want a trash name ahahhha, quirkload will not works for me.
<lerax> I'll try to think in something else.
Oladon has quit [Quit: Leaving.]
drewes has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
drewes has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
drewes has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 252 seconds]
robdog has joined #lisp
giova has joined #lisp
lumm has quit [Read error: Connection reset by peer]
makomo has quit [Ping timeout: 255 seconds]
Zaab1t has joined #lisp
<void_pointer> A suggestion might be "third-party-quicklisp"
<void_pointer> or "third-party-quicklisp-extension"
<void_pointer> It is descriptive and doesn't imply that it is part of official quicklisp but still states the relationship. It is a bit long, though
robdog_ has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
giova has quit [Ping timeout: 256 seconds]
<lerax> I have a ideia.
<lerax> How about quickdist?
<lerax> The proposal of quicklisp-meta acutally it's exactly help in installing dists.
<lerax> I'm really inclined to use that if this is not a problem for you, xach.
robdog_ has quit [Ping timeout: 250 seconds]
<lerax> But about quickload since it's a wrapper of ql:quickload I really think it's cumbersome change the name of this function.
<lerax> So the main usage would be:
<lerax> (ql:quickload :quickdist)
<lerax> (quickdist:quickload 'trivial :dist 'shirakumo)
<lerax> A possible :nickanem can be :qd
<lerax> To be similar but still different of quicklisp.
<lerax> Thanks for the suggestion void_pointer, what you say about the name being descriptive it's true. But it's too much for me.
CyL has joined #lisp
<lerax> Fuck, there is already a system with the name quickdist.
<CyL> lerax: what about quickielisp (no pun intended)
pierpal has quit [Read error: Connection reset by peer]
<lerax> CyL: I don't think this is good, the e is misleading for me. And this doesn't generate a good abreviation like quicklisp-meta -> ql-meta. But thanks for the suggestion.
deba5e12 has joined #lisp
<lerax> It's so hard give name to the things, it's more worse than you choose a useful name is not good enough because would be misleading because another name.
<CyL> lerax: lisp-quickie? The e is not misleading, it's actually a word
deba5e12 has quit [Client Quit]
<lerax> But what relation this name have about managing dists?
<lerax> quicklisp it's name has relation about what the software does.
<lerax> so them quicklisp-meta too
<lerax> quickdist would be nice
<lerax> I don't know how lisp-quickie fits with the software functionality.
<lerax> I'd like to remains the prefix quick. I'll try to thank to something that did not destroy the xach intelectual properties and trademarks.
* lerax thank -> think
izh_ has joined #lisp
wusticality has joined #lisp
robdog has joined #lisp
<MichaelRaskin> lerax: some play on federation? fedelisp (fl:fedload) or something in that direction
<MichaelRaskin> Not saying it is necessary good idea
wusticality has quit [Ping timeout: 268 seconds]
robdog has quit [Ping timeout: 268 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
<lerax> Interesting concept. This makes sense, but it's not very clear without context.
<lerax> Thanks for contributing MichaelRaskin!
<lerax> I have another idea. Since quicklisp-meta the whole point it's to load a system from a more harder dist to find, how about quicksys?
<lerax> quicksys:quickload I think will be ok.
<lerax> fedelisp it's bad for Portuguese speakers hahaha fede means "smells really baaad"
<lerax> For us it would meaning like a shitness lisp xD
robdog has joined #lisp
ravenousmoose has joined #lisp
makomo has joined #lisp
<lerax> Since I didn't find any other system using quicksys, I'll move forward with this.
<lerax> Thank you for the feedback guys and mainly xach for pointing a so important problem.
<lerax> <3
<lerax> If someone still want contribute: here is the issue: https://github.com/commonlispbr/quicklisp-meta/issues/9
robdog has quit [Ping timeout: 264 seconds]
<void_pointer> Or perhaps "multi-dist" or something along those lines
Zaab1t has quit [Quit: bye bye friends]
Ukari has quit [Ping timeout: 255 seconds]
lumm has joined #lisp
<lerax> multi-dist it's better than your other suggestion, but I still want to keep the quick prefix.
FreeBirdLjj has joined #lisp
lerax has left #lisp ["I'll rename the project"]
<Xach> thank you for thinking about it
quazimodo has quit [Ping timeout: 244 seconds]
quazimodo has joined #lisp
Ukari has joined #lisp
makomo has quit [Ping timeout: 255 seconds]
<void_pointer> "quick-multi-dist"
bendersteed has quit [Read error: Connection reset by peer]
makomo has joined #lisp
<Grue`> does anyone successfully use ultralisp? does it break all the time?
robdog has joined #lisp
xvx has quit [Quit: xvx]
robdog has quit [Ping timeout: 264 seconds]
void_pointer has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
robdog has joined #lisp
<shka_> not sure why it is called ultralisp
<shka_> supersoniclisp would be slightly better name imho
<shka_> SSL in short
<shka_> :D
jfb4 has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
xkapastel has joined #lisp
makomo has quit [Ping timeout: 240 seconds]
hiroaki_ has joined #lisp
robdog_ has joined #lisp
hiroaki has quit [Ping timeout: 245 seconds]
Josh_2 has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
akoana has joined #lisp
frodef has joined #lisp
robdog has joined #lisp
robdog_ has quit [Ping timeout: 268 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lumm has quit [Quit: lumm]
lumm has joined #lisp
lumm has quit [Client Quit]
lumm has joined #lisp
robdog_ has joined #lisp
FreeBirdLjj has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
FreeBirdLjj has quit [Ping timeout: 246 seconds]
robdog_ has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
AroPar has joined #lisp
robdog_ has joined #lisp
AroPar has quit [Read error: Connection reset by peer]
makomo has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
lerax has joined #lisp
<lerax> Well
robdog_ has quit [Ping timeout: 264 seconds]
Kaisyu has quit [Quit: Connection closed for inactivity]
robdog has joined #lisp
<makomo> MichaelRaskin: i just added the walking of MACROLET expanders to AL but hit another problem regarding W-O. since SBCL's backquote form is a macro and i inhibit all macro expansions, i never get to code walk the various evaluations performed as part of the backquote evaluation... there is no hope :(
<makomo> i.e. the ,(+ 1 2) part of the backquote within my 6th example doesn't get properly rewritten
<MichaelRaskin> Re: 2FA — I remind you that emailed patches only differ in publicness of discussion for my practical purposes.
<MichaelRaskin> You can whitelist _some_ macros that you do expand
hiroaki_ has quit [Ping timeout: 246 seconds]
<makomo> MichaelRaskin: i guess, but then i really wonder whether it's worth it to stay as portable as possible
<MichaelRaskin> I mean, you can inspect a quasiquote implementation portably
robdog has quit [Ping timeout: 264 seconds]
<makomo> MichaelRaskin: macroexpand a backquote template on the side and then use the name of the operator it expands to to detect it when walking?
<MichaelRaskin> I argue against implementation-name-based non-portability, as a fork of a fully supported implementation could be auto-supported if you do feature detection right
<lerax> xach: your opinion? https://lisp.com.br/quicksys/
<MichaelRaskin> Not macroexpand, take the first element of '`(1)
<makomo> hm right, or that
<makomo> MichaelRaskin: but again, where's the guarantee that it'll always expand to the same macro?
<makomo> in general, it could always produce a different form :-)
<makomo> MichaelRaskin: right, i don't need to macro expand when it's a reader macro, woops
<MichaelRaskin> It could. The question is: anything that is locally _better_ than the current popular implementations should benefit from better support. Autodetection usually ensures that
<MichaelRaskin> Anything _worse_ than the currently accepted practices — well…
wusticality has joined #lisp
<makomo> i see. i guess they are small steps towards a better world. :-) but even then, is it worth it in the end, when you can't be 100% sure that every code walk will always be correct?
<MichaelRaskin> You can be sure some won't
<MichaelRaskin> I provide an example in my paper
<makomo> yeah, of course, that's what i mean
<makomo> that comment from a certain perl dev comes to mind, where he says that in lisp, code generation (macros) *has* to be correct 100% of the time otherwise basic things like assignment (SETF) wouldn't work
<makomo> and with code walking all of that just gets thrown in the water
<makomo> pretty annoying
Josh_2 has quit [Ping timeout: 246 seconds]
lumm has quit [Ping timeout: 264 seconds]
<makomo> even the concept of sublexical scope isn't that useful in the end when you have implementations that expand backquote into macros (and sublexical scope inhibits macro expansion)
<MichaelRaskin> Well, if you draft a CDR about naming and expansion etc., I will do my best to help make sure it describes what we want (and what is cheap), and to make it an officially recognised CDR
nanoz has quit [Quit: Leaving]
<MichaelRaskin> sublexical scope is surely a hacky thing
lumm has joined #lisp
wusticality has quit [Ping timeout: 272 seconds]
<MichaelRaskin> If your code walking is not 100% right, it will still make less of a minefield than typical Perl code
<makomo> MichaelRaskin: hm, i see. perhaps beach's trucler (environment protocol) could also help
<makomo> MichaelRaskin: re sublexical scope: kinda. if i understand it correctly, it does make theoretical sense, but it's usefulness is limited because of the implementation-definedness of backquote
robdog has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
<makomo> MichaelRaskin: heh, yeah... :-)
<makomo> MichaelRaskin: do you know why exactly macroexpand-dammit and hu.dwim.walker remove MACROLETs from code? what's the rationale?
<MichaelRaskin> Doesn't matter they fail in ways that are worse than removing macrolet
<MichaelRaskin> Probably rationale is similar to my reasons to not walk it
FreeBirdLjj has joined #lisp
<makomo> MichaelRaskin: yeah, i've seen that you mention that AL fixes stuff they do wrong, but why exactly do they skip it?
<MichaelRaskin> Well, the less you do with macrolet, the easier your life is
<makomo> MichaelRaskin: hm, wasn't your reason for not walking expanders (both macrolet's and defmacro's) "just" a design decision? maybe i misunderstood
<MichaelRaskin> They correctly think macrolet is not their priority
<makomo> MichaelRaskin: oh, so they remove it without even walking it?
<MichaelRaskin> They do some tricks to get the definitions from there
<MichaelRaskin> Not always sufficient ones
<makomo> for some reason i thought they removed it after trying to walk it, but i guess that doesn't make much sense lol
<makomo> oh, so they do try to do at least something?
<makomo> and then once they're done they remove it?
robdog has quit [Ping timeout: 268 seconds]
<MichaelRaskin> More or less
<MichaelRaskin> I refuse to characterise the internals of macroexpand-dammit because I might slander the author by misconveying some logic in the code
<MichaelRaskin> I do not claim that I fully understand all the design there
<makomo> the eternal documentation curse :-)
<MichaelRaskin> External interface is fine. When it works
FreeBirdLjj has quit [Ping timeout: 255 seconds]
<makomo> MichaelRaskin: oh btw, i wrote some docs for AL regarding its handlers, mainly describing exactly when they're called
<MichaelRaskin> Internals — I filed an issue with a test case, got it marked wontfix and don't see a reason to study further
<makomo> i see :(
lumm_ has joined #lisp
<makomo> i'll see if i can get some PRs ready soon
<MichaelRaskin> Documentation from a person who doesn't know all the logic by heart! Nice! I would be quite grateful for its submission in any way you prefer
lumm has quit [Ping timeout: 245 seconds]
lumm_ is now known as lumm
<makomo> MichaelRaskin: i read a lot of the source code. it was the only way :-)
random-nick has joined #lisp
<MichaelRaskin> Well, for me this way is also unavailable — because I consider nonobvious questions about AL… well, questions that _you_ might be interested in discussing _now_, not what I should have written in the README
notzmv has quit [Ping timeout: 245 seconds]
<MichaelRaskin> What you write is definitely infinitely saner — you actually _have_ the perspective of a person who wants to come and use AL, not a weird model of that perspective by a person bad at empathising
<makomo> heh
<MichaelRaskin> If you want to send just an email with the patches — or documents to include — and preferred credit format, feel free (I won't merge the PR anyway, I will apply it as patch anyway)
lumm has quit [Quit: lumm]
<makomo> MichaelRaskin: mhm, that could work as well. i'll let you know
lumm has joined #lisp
robdog has joined #lisp
<MichaelRaskin> About quasiquote sniffing — I will accept any helper functions that probe for features and an theoretically be useful to macro writers and not obviously broken from the beginning (for some value of obvoiusly)
dddddd has quit [Remote host closed the connection]
<MichaelRaskin> I want to avoid name-checking (even JS is moving away from it, we shouldn't be worse than JS, right?), but feature-probing in case there is no reasonable case where it is worse than nothing is something I want to have (but too many different stuff I want to write some day…)
jfb4 has quit [Read error: Connection reset by peer]
<makomo> MichaelRaskin: right :D
<MichaelRaskin> (Of course, quasiquote walking just works for full walking, and so defun sniffing would be my priority if I ever get around)
lumm has quit [Client Quit]
lumm has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
<MichaelRaskin> (But any environment probing is an interesting thing to have so my priorities are only about chances I write something, not about my unwillingness to discuss or include something)
<makomo> got it :-)
<MichaelRaskin> And thanks for your interest.
<makomo> MichaelRaskin: no problem. :-) it's an interesting problem, but a very annoying one at the same time.
<makomo> speaking of problems, i think i found yet another problematic example for W-O
<MichaelRaskin> I _tried_ to structure the code in a way that permits reuse of the handlers for annoying parts that _are_ already written.
<MichaelRaskin> (code-walker writing methods for macroexpand-all is a show case of that kind of flexibility)
robdog has joined #lisp
<makomo> yup, quite a lot of methods :-)
robdog has quit [Ping timeout: 264 seconds]
<MichaelRaskin> But tagbody handler only needs to be written once — and it could be debugged in the simpler expansion-only case
hiroaki_ has joined #lisp
ChuckleBerry has joined #lisp
Oladon has joined #lisp
trocado has joined #lisp
akoana has left #lisp ["Leaving"]
dale has quit [Quit: dale]
dddddd has joined #lisp
ChuckleBerry has quit []
wusticality has joined #lisp
robdog has joined #lisp
wusticality has quit [Ping timeout: 244 seconds]
ravenousmoose has joined #lisp
ravenousmoose has quit [Client Quit]
robdog has quit [Ping timeout: 250 seconds]
ChuckleBerry has joined #lisp
robdog has joined #lisp
FreeBirdLjj has joined #lisp
ravenousmoose has joined #lisp
<makomo> MichaelRaskin: the mentioned problem, example 8 https://plaster.tymoon.eu/view/1218#1218
lumm has quit [Ping timeout: 250 seconds]
<ChuckleBerry> If anyone here has gone through SICP and used DrRacket, how have the SICP Collections worked for you?
<ChuckleBerry> any hangups?
<makomo> MichaelRaskin: given the definition of sublexical scope in the header of the paste, i think it would be correct *not* to replace the usage of + that occurs within ZOZ's 2nd argument
robdog has quit [Ping timeout: 264 seconds]
<makomo> but then again, it probably gets real tricky real fast to think about these things...
<MichaelRaskin> Sublexical is just horrible. Any special form is allowed to be a macro, by the way
<MichaelRaskin> If I remember correctly
<makomo> ugh, right, lol
<makomo> damn it
ChuckleBerry has quit []
<MichaelRaskin> Although you can accept hardwired macros as special forms, sure
ChuckleBerry has joined #lisp
<MichaelRaskin> And special forms even if they are macros
<makomo> yeah, but i wanted to make it explicit in the writing still
hiroaki_ has quit [Ping timeout: 245 seconds]
<MichaelRaskin> Anyway, Why do you need macrolet to demonstrate that — you can just have a `() in plain code
<MichaelRaskin> With the same effect
ChuckleBerry has quit [Client Quit]
FreeBirdLjj has quit [Ping timeout: 245 seconds]
<makomo> yeah, i don't really
<makomo> i'll probably modify that example
<makomo> so even if i didn't rewrite within macros, certain special operator could end up being operators which means i would miss rewrites which the user would expect
<makomo> lame
<makomo> certain special operators*
<makomo> end up being macros*
jb__ has quit [Ping timeout: 250 seconds]
robdog has joined #lisp
<MichaelRaskin> Well, in case of a _known_ special operator being a macro, known special operator status takes priority
jb__ has joined #lisp
<makomo> hm right
<MichaelRaskin> If not so — it is a separate bug that should be fixed and should not be hard to fix
<makomo> from what i saw within the code, that should be correct
<makomo> and would there be a way to not only inhibit macro expansion, but to also inhibit agnostic lizard trying to walk it?
<MichaelRaskin> Indeed — that's how a bug is different from a missing feature, it looks like everything should already work!
<makomo> haha :-D
robdog has quit [Ping timeout: 264 seconds]
q3d has joined #lisp
<makomo> hm, but to inhibit macro expansion and not further walk the operator *if* it's a macro, i need to be able to tell whether it's a macro or not...
<makomo> which means i get the environment problem all over again
<MichaelRaskin> Checking _if_ it is a macro is cheap
<MichaelRaskin> Either metaenv has an entry, or fallback env has macro-function
<makomo> oh yeah, you're right. so that should produce 100% correct results
<makomo> the problem is when you have to choose between the two -- when passing it to a macro expansion function
Oladon has quit [Ping timeout: 246 seconds]
<MichaelRaskin> Exactly
<makomo> that's what i dubbed "an environment split" :-)
<makomo> hmmm, so it might just be possible to get what i want
<MichaelRaskin> The code for checking _if_ something is a macro is already there
<MichaelRaskin> Maybe it should be factored out
<MichaelRaskin> No objections to it
Jesin has quit [Quit: Leaving]
<makomo> sounds good :-)
<makomo> MichaelRaskin: ok, so i'm able to tell whether it's a macro or not. how would i force agnostic lizard to not only skip macro expanding it, but to also skip trying to walk it (when treating it as a function operator call)?
Jesin has joined #lisp
q3d has quit [Ping timeout: 256 seconds]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<makomo> i guess i could temporarily rewrite it with something like (quite <marker>) and then later undo the rewrites?
<makomo> quote*
grumble has quit [Quit: grumble]
grumble has joined #lisp
zhlyg has joined #lisp
robdog has joined #lisp
<MichaelRaskin> Well, you could inherit just inherit from metaenv
<MichaelRaskin> Well, walker-metaenv
<MichaelRaskin> Try metaenv-macroexpand-1, if it is eq to the form — continue walking, else just return it
<makomo> ah, good point
<MichaelRaskin> Inheriting from walker-metaenv _is_ supposed to be a reasonable choice when you want non-trivial walking policy
robdog has quit [Ping timeout: 252 seconds]
abhixec has joined #lisp
Lycurgus has joined #lisp
makomo has quit [Ping timeout: 245 seconds]
random-nick has quit [Read error: Connection reset by peer]
eschatologist has quit [Ping timeout: 240 seconds]
ggole has quit [Quit: Leaving]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
eschatologist has joined #lisp
amerlyq has joined #lisp
ebrasca has quit [Read error: Connection reset by peer]
Ukari has quit [Remote host closed the connection]
mason has joined #lisp
robdog has joined #lisp
makomo has joined #lisp
charh has quit [Ping timeout: 246 seconds]
robdog has quit [Ping timeout: 264 seconds]
libertyprime has quit [Read error: No route to host]
smasta has joined #lisp
robdog has joined #lisp
charh has joined #lisp
robdog has quit [Ping timeout: 246 seconds]
makomo has quit [Ping timeout: 246 seconds]
drewes has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
makomo has joined #lisp
jb__ has quit [Ping timeout: 246 seconds]
random-nick has joined #lisp
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Lycurgus has quit [Quit: Exeunt]
robdog has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
FreeBirdLjj has joined #lisp
smasta has quit [Ping timeout: 246 seconds]
robdog has joined #lisp
Adamclisi has quit [Remote host closed the connection]
eschatologist has quit [Ping timeout: 264 seconds]
Adamclisi has joined #lisp
akoana has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
smasta has joined #lisp
makomo has quit [Ping timeout: 258 seconds]
robdog has joined #lisp
FreeBirdLjj has quit [Ping timeout: 250 seconds]
shka_ has quit [Ping timeout: 245 seconds]
robdog has quit [Ping timeout: 264 seconds]
Josh_2 has joined #lisp
jfb4 has joined #lisp
robdog has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
eschatologist has joined #lisp
robdog has quit [Ping timeout: 250 seconds]
lumm has joined #lisp
izh_ has left #lisp [#lisp]
nowhere_man has quit [Ping timeout: 258 seconds]
robdog has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
makomo has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
makomo has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 246 seconds]
robdog_ has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
<moldybits> i have some functions: (defun _____ (a b) (mapcar #'+ a b)) ; what should i call these kinds of functions?
<minion> moldybits, memo from makomo: re post-incf: someone asked the same thing a while ago in #clschool. i did a short analysis of a few versions of the macro which might be useful to you https://plaster.tymoon.eu/view/1015#1015
nowhere_man has joined #lisp
<aeth> moldybits: I'd probably call it map-+ with a and b renamed to list-1 and list-2 to make it clear that it only works on lists. (Alternatively, you could use map instead and have it work on all sequences)
makomo has joined #lisp
zhlyg has quit [Ping timeout: 246 seconds]
robdog has joined #lisp
robdog_ has quit [Ping timeout: 250 seconds]
robdog has quit [Ping timeout: 268 seconds]
<moldybits> hm. maybe i'll just fix my indenting.
<moldybits> makomo: that's interesting, thanks.
<makomo> moldybits: :-)
<White_Flame> moldybits: it's a curried mapcar #'+
<ober> does cffi work with abcl?
robdog has joined #lisp
nowhere_man has quit [Ping timeout: 258 seconds]
<moldybits> White_Flame: ah, right. that thing.
robdog_ has joined #lisp
robdog has quit [Ping timeout: 264 seconds]
robdog_ has quit [Ping timeout: 264 seconds]
robdog has joined #lisp
robdog has quit [Ping timeout: 268 seconds]
xkapastel has joined #lisp
robdog has joined #lisp
<makomo> MichaelRaskin: alright, i managed to create a NO-MACRO-EXPANSION-WALKER-METAENV :-)
<makomo> but i had to duplicate almost all of the logic od METAENV-MACROEXPAND-ALL
<makomo> i guess that's fine, because the policy is quite different from the normal one?
<makomo> i'm not sure if the duplication could be reduced, i.e. if it would make sense to modularize METAENV-MACROEXPAND-ALL, but yeah, it works
ltriant has joined #lisp
<makomo> MichaelRaskin: i think WALK-FORM needs a change though, because it always creates a WALKER-METAENV, regardless of the ENV argument's actual class
jack_rabbit has joined #lisp
<MichaelRaskin> Just replace constant with class-of?
<MichaelRaskin> Maybe
<makomo> MichaelRaskin: yeah, that's what i ended up doing :-)
robdog has quit [Ping timeout: 264 seconds]
<MichaelRaskin> makomo: as for metaenv-macroexpand-all — well, it's a double-ANSI-screenful of code (<80x50) that is all about calling callbacks in the right order; I guess replicating it is hard to avoid if policy is radically different — and you don't even always need the callbacks if you inherit and put custom code just where it should be
<MichaelRaskin> In your case callbacks make sense, and maybe it would be possible to add some kind of policy callbacks to walker-metaenv — suggestions welcome, your use case is just further than I planned ahead
<MichaelRaskin> walk-form does what it does because I failed to expect that this can be reusable
<makomo> mhm
<MichaelRaskin> Now I see I was just islly about that
<makomo> what did you mean by "put custom code just where it should be"? perhaps just override another, smaller, method?
<MichaelRaskin> silly
<MichaelRaskin> metaenv-macroexpand-all calls a lot of callbacks
<makomo> hm, if instead of changing the callback policy so that my walker never calls :ON-MACROEXPANDED-FORM, maybe i should keep it as is but change something like METAENV-MACROEXPAND or METAENV-MACROEXPAND-1 to always return the same thing?
<MichaelRaskin> For a special-purpose inherited walker you could inherit from metaenv, or inherit from walker-metaenv and ignore half the callbacks
<makomo> right, true. in this case i wanted it to be "a general code walker but just without macro expansion"
<MichaelRaskin> But maybe if you want to experiment with limits of sublexical contexts you want to have callbacks around
eschatologist has quit [Ping timeout: 240 seconds]
<MichaelRaskin> Well, that full-expansion clause in let* could indeed let a callback override the logic
<MichaelRaskin> Like, first of all you check if a callback says it wants to override, and use its output; otherwise run the currently present cond clauses
nowhere_man has joined #lisp
<makomo> problem is, the expression corresponding to the variable function-replacement just above would have already resulted in a call to either :ON-SPECIAL-FORM-PRE or :ON-FUNCTION-FORM-PRE, right?
<MichaelRaskin> Not sure about the details, you can probably talk me into almost any callback scheme here
<MichaelRaskin> Well, I could add a check higher above, and put some unless somewhere
<makomo> which is not what i really want, since i don't treat it as a function
<makomo> yeah
<makomo> it's questionable whether such an overriding callback is general enough to just be baked in like that. i'm not sure
<makomo> so far the only use case i have for it is inhibiting macro expansion
<MichaelRaskin> I think I just pushed a fix for the walk-form, though
<MichaelRaskin> Actually your logic for walking should be simpler than metaenv-macroexpand-all, right?
<MichaelRaskin> Fewer callbacks make sense…
<MichaelRaskin> Basically, if there is a callback to add to make your method on metaenv-macroexpand-all useless, I am OK with adding it; if not — OK, you need to write 30 lines of policy, that's actually a good result if you can implement a code walking policy in 30 lines.
<makomo> heh, yeah
<makomo> lemme show you how it looks
<MichaelRaskin> Hehe. Remember I mentioned an attempt to write a portable debugger? It is actually in the agnostic-lizard repo
<makomo> yeah, i realized that the other day but haven't taken a serious look at it yet :-)
<MichaelRaskin> _not_ saying it does something useful — maybe it already does something interesting, but not more
<makomo> the MACROP variable and the IF within METAENV-MACROEXPAND-ALL do the trick
dale has joined #lisp
<makomo> maybe it didn't have to be split like that though, but i didn't think hard enough yet
<MichaelRaskin> O-o-k, metaenv-clone should use class-of
<MichaelRaskin> (pushing right now)
<MichaelRaskin> Ouch, 54 lines without comment lines
slac-in-the-box has joined #lisp
<MichaelRaskin> A bit more than I expected
<makomo> i was going to suggest that for METAENV-CLONE but then thought that it's ok because that method was specialized on WALKER-METAENV after all
Essadon has quit [Quit: Qutting]
<makomo> but using class-of does actually make sense, because it can act as a default boilerplate-avoiding implementation
<MichaelRaskin> The _top_ one on generic metaenv is now with class-of
<MichaelRaskin> The rest disappear
<makomo> mhm
<MichaelRaskin> I mean, I wrote metaenv-clone-args specifically to make the metaenv-clone 100% boilerplate
<MichaelRaskin> Then failed to just use class-of
<makomo> :-)
<makomo> MichaelRaskin: i also broke some lines into 2 within MACROEXPAND-ALL so that might add to the line count
<MichaelRaskin> I… I was thinking about other interesting parts of the standard and forgot CLOS actually is powerful
<MichaelRaskin> Indeed
<MichaelRaskin> Actually, if macroexpansion has side effects, you do trigger them
<makomo> that special case for METAENV within WALK-FORM is just for convenience right?
<makomo> logically, it "makes no sense", because a METAENV has nothing to do with walking
<MichaelRaskin> Look at the current version
<makomo> oh, i did, but for some reason thought that part was the same
<makomo> hmm, let me se
<makomo> see*
<MichaelRaskin> I gave up in a sense
<MichaelRaskin> Although maybe I should just allow any metaenv
jb__ has joined #lisp
robdog has joined #lisp
<MichaelRaskin> Yeah, I should clone any metaenv, but coerce to walker-metaenv or input class if it is a subclass
<makomo> the way i understood it was that ENV *must* be a subclass of WALKER-METAENV
<makomo> and then understood the METAENV case as a convenient special case
<MichaelRaskin> It was a bit of a mess, I think _now_ (just pushed) I handle type better
<MichaelRaskin> metaenv is the highest class we still can clone sanely. And identify — you cannot check if the argument is a valid environment