Xach changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook>
Alfr has quit [Remote host closed the connection]
Lord_of_Life has quit [Read error: Connection reset by peer]
Lord_of_Life has joined #commonlisp
manicennui has quit [Quit: Connection closed for inactivity]
pegaso has joined #commonlisp
char has joined #commonlisp
waleee has quit [Ping timeout: 258 seconds]
lotuseater has quit [Ping timeout: 246 seconds]
kakuhen has quit [Ping timeout: 255 seconds]
char has quit [Ping timeout: 245 seconds]
pegaso has quit [Quit: Leaving]
char has joined #commonlisp
peterhil has quit [Ping timeout: 255 seconds]
kakuhen has joined #commonlisp
zephyr1 has joined #commonlisp
zephyr has quit [Ping timeout: 265 seconds]
zephyr1 is now known as zephyr
tyson2 has quit [Remote host closed the connection]
CrashTestDummy2 has joined #commonlisp
CrashTestDummy3 has quit [Ping timeout: 258 seconds]
prxq_ has joined #commonlisp
prxq has quit [Ping timeout: 245 seconds]
<beach> Good morning everyone!
akoana has quit [Quit: leaving]
akoana has joined #commonlisp
akoana has quit [Quit: leaving]
casual_friday has quit [Quit: %bye%]
Devon has joined #commonlisp
Devon is now known as Devon7
Devon7 is now known as Devon
mister_mmm has quit [Remote host closed the connection]
mister_mmm has joined #commonlisp
karlosz has joined #commonlisp
<contrapunctus> hey, beach
karlosz has quit [Quit: karlosz]
Bike has quit [Quit: Lost terminal]
wilfred has joined #commonlisp
contrapunctus has left #commonlisp [#commonlisp]
contrapunctus has joined #commonlisp
mister_mmm has quit [Remote host closed the connection]
char has quit [Ping timeout: 258 seconds]
shka has joined #commonlisp
treflip has joined #commonlisp
mayuresh has joined #commonlisp
<mayuresh> hello everybody. :)
<mayuresh> hi beach from france, and contrapunctus from delhi. :)
mayuresh has quit [Quit: Leaving]
andrei-n has joined #commonlisp
mayuresh has joined #commonlisp
<contrapunctus> mayuresh: नमस्कार ^^
<mayuresh> wow, that is impressive "contrapunctus", namaskar to you too.
amb007 has quit [Ping timeout: 258 seconds]
<mayuresh> contrapunctus: do you work under common lisp in a commercial setting?
mayuresh has quit [Quit: leaving]
<contrapunctus> mayuresh: naw, I'm just a hobbyist. Most of my experience has been Elisp and Scheme, but using the CL facilities in the former and the promise of similar level of interactive development as Emacs piqued my interest.
mayuresh has joined #commonlisp
<mayuresh> woo, sorry about that, trying "irssi", it's different.
<contrapunctus> pjb: thanks ;)
<mayuresh> contrapunctus: are you still active in the industry?
dickbar__ has joined #commonlisp
<contrapunctus> mayuresh: haha, I program as a hobbyist, I've never programmed professionally 😅️
<mayuresh> contrapunctus: wow, that's interesting. a full-time common lisp hobbyist programmer.
CrashTestDummy3 has joined #commonlisp
<mayuresh> contrapunctus: do answer only if you want to; what do you do professionally?
<contrapunctus> mayuresh: I'm a musician.
<mayuresh> contrapunctus: that's awesome. which instrument?
<contrapunctus> classical guitar, with some experience in singing and composition
CrashTestDummy2 has quit [Ping timeout: 255 seconds]
<mayuresh> wow. were you trained formally? or self acquired skill?
<contrapunctus> I was formally trained, yes.
<mayuresh> cool.
<mayuresh> for those who do not with to be tied down to emacs + slime/sly
CrashTestDummy3 has quit [Quit: Leaving]
<mayuresh> i have been using some edition of "vi" for close to 20 years.
CrashTestDummy has joined #commonlisp
CrashTestDummy has quit [Read error: Connection reset by peer]
<mayuresh> working with emacs drives my mind crazy because my fingers don't bend the same way as other's.
<contrapunctus> mayuresh: why not Emacs and Evil?
<contrapunctus> (or god-mode, or Boon, or Lispy, or Modalka - some of the other modal editing packages.)
<beach> mayuresh: Emacs + SLIME (or Sly I guess) give you a huge number of advantages that I believe you can't get from any other free environment right now. It would be silly to encourage people not to try out an environment with all those advantages.
karlosz has joined #commonlisp
<moon-child> the verbiage 'who do not with to be tied down to emacs + slime/sly' suggests to me rather that the suggestion is targeted at people who _have_ tried slime and would like to use something else
<mayuresh> moon-child: right-on, right-on. :)
<mayuresh> only, instead of "with" i meant "wish".
<splittist> I think it quite plausible that someone who thinks (and whose fingers 'think') in vi will be more productive in one of the vi-centered development styles than trying to re-learn editing in emacs (or emacs-based vi environments), even over the medium term.
wilfred has quit [Quit: Connection closed for inactivity]
<splittist> Over the long term, a vi-ish pane in CLOSOS will mean ultimate productivity to everyone (:
<mayuresh> beach: the very thought that i have abandon what i've mastered (under vi/vim) and memorise and internalise the enormous number of key combinations for using emacs + slime/sly.
<mayuresh> splittist: what is CLOSOS, couldn't find anything via "bing".
<splittist> mayuresh: on the other hand, I wouldn't exaggerate how difficult it is to switch between vi and emacs
<mayuresh> splittist: my mind and fingers go on autopilot under "vi/vim".
<contrapunctus> beach: I was wondering...how long might it be before Common Lisp programs can use FCGE-based sandboxing?
<mayuresh> at one of my interviews they asked me about how to move around within "vi" and I couldn't even tell them how to move up down right left.
<mayuresh> i just don't *have* to think while using vi/vim.
<contrapunctus> mayuresh: you _are_ aware of Evil, right? ._.
<splittist> mayuresh: I can't imagine a circumstance in which such a question is a productive use of interview time. Perhaps it was smalltalk, though.
<moon-child> perhaps he was using vi during the interview, and it was just a point of curiosity? I think that would be appropriate
<mayuresh> splittist: they even asked me about how to work at the unix command line, again questions i couldn't answer because i don't think actively about it while working.
<mayuresh> i never cleared the interview, the reason they gave was i didn't know what "fizz-buzz" was all about.
<mayuresh> it was only after reaching me home base that i looked up fizz-buzz and found out about it.
<jackdaniel> so much offtopic
<beach> contrapunctus: I don't even know what that kind of sandboxing is.
<moon-child> first-class global environment-based, presumably :)
<mayuresh> i was actually 10 years senior to the senior-most person in the company panel of interviewers.
Th30n has joined #commonlisp
<mayuresh> jackdaniel: apologies, won't happen.
<beach> contrapunctus: Ah, sorry, I misread. Maybe a year or so.
<contrapunctus> beach: I see, thanks :)
<mayuresh> contrapunctus: veering off-topic for you, "evil" is just a mode, but i still have to relearn the "other" key-bindings, right?
<beach> mayuresh: Nobody is forcing you to use Emacs, but you should know that your productivity might suffer if you don't. More importantly perhaps, if you submit code for others to read, you need to make sure that things like indentation and spacing are conventional, and it is never a good idea to try to do that manually.
<mayuresh> beach: aren't there any code formatters available for 'cl'?
<mayuresh> beach: with "go" i could use "gofmt".
dsk has joined #commonlisp
<beach> Yes, it is called Emacs + SLIME.
<mayuresh> that's too much of baggage for a code-formatter tool.
<beach> mayuresh: In particular, the indentation of LOOP clauses is tricky, and that is something that slime-indentation handles pretty well.
<mayuresh> stallman did the free software world a dis-service by developing gnu emacs.
<mayuresh> beach: if slime-indentation can handle it (being written in elisp, i think) can't there be any external code formatters written in 'cl' that can handle it equally well?
<beach> mayuresh: I think you need to moderate your opinions a bit. They have been pretty specific from the beginning, and you have often been wrong.
<mayuresh> beach: i haven't been wrong, i have just been divergent. if you can't handle a different point of view, learn to ignore it.
<beach> What Richard Stallman did was merely a Unix version of a long tradition that includes Zmacs and Multics Emacs.
<beach> mayuresh: I see.
<mayuresh> unix tradition already had "ed" and "vi".
<mayuresh> stallman could have adapted. but chose to enforse his own whims and fancies instead.
attila_lendvai has joined #commonlisp
<splittist> What we need is someone like jackdaniel to create a beautiful LOOP-linter
<mayuresh> not just a linter, but also a code-formatter adhearing to a bunch of standards.
kakuhen has quit [Quit: Leaving...]
<mayuresh> the code-formatter could be made even more awesome if it could be flexible enough to adopt newer standards per company policies.
<mayuresh> i just found out that "phoe" (who's writing the 2e of commonlisp recepies) has also written a book about the commonlisp condition system.
<mayuresh> things are looking really great for commonlisp now-a-days.
<mayuresh> back in 2005 when i was building the commonlisp team at cleartrip we couldn't even get commonlisp books in india easily.
<mayuresh> we had to put a lot of effort into convincing the finance manager to part funds for purchasing books from the united states.
CrashTestDummy has joined #commonlisp
dsk has quit [Ping timeout: 255 seconds]
<moon-child> mayuresh: tools such as gofmt are problematic because some code does require manual indentation. A batch tool cannot in every case infer the correct behaviour (though if you are dealing with a large base of poorly-indented code such autoindentation is better than none). This is why interactive indentation assistance is superior
<mayuresh> moon-child: then given a case like mind, it would be just okay to have an indentation assistance function inside "vim".
<mayuresh> mind == mine.
<mayuresh> silly me. :)
pve has joined #commonlisp
hendursa1 has joined #commonlisp
<moon-child> I think so
<mayuresh> i didn't have any intention to aggravate anyone, just that it would be nice to be accepted by others as well.
<mayuresh> if i prefer "vi/vim" there's no need to push emacs + slime/sly on me, just because others find it comfortable.
<mayuresh> the question of superiority of one over the other should not arise in the first place.
<mayuresh> that's being quite bigoted, i'd say.
hendursaga has quit [Ping timeout: 244 seconds]
<dickbar__> mayuresh: The feeling of push is in your mind. Not the others mind!
<mayuresh> dickbar: the feeling of push was quite evident from the insistence of others out here.
<mayuresh> okay, gotta go have lunch.
<mayuresh> dickbar: feelings are mostly a result of a response to external stimulus.
<mayuresh> bye for now.
mayuresh has quit [Quit: leaving]
<dickbar__> mayuresh: Yes and under your control and choosing.
Th30n has quit [Quit: WeeChat 3.2]
Th30n has joined #commonlisp
dsk has joined #commonlisp
clintm has quit [Ping timeout: 245 seconds]
Lord_of_Life has quit [Ping timeout: 268 seconds]
Lord_of_Life has joined #commonlisp
karlosz has quit [Quit: karlosz]
varjag has joined #commonlisp
notzmv has quit [Ping timeout: 265 seconds]
OlCe has joined #commonlisp
mayuresh has joined #commonlisp
<mayuresh> hello, again. :)
<mayuresh> okay, just in case it's unknown, "common lisp pro" mailing list;;
selwyn has joined #commonlisp
<pjb> mayuresh: for CL professionals! ;-)
<mayuresh> pjb: true that. :)
<mayuresh> unless this channel is only for 'cl' hobbyists. :p
<mayuresh> i just checked out the lispworks free edition.
<mayuresh> it's *very* *very* interesting.
<mayuresh> i wonder what kind of stuff the full edition might provide.
<White_Flame> the docs are all online, afaik
<pjb> mayuresh: no memory size limitation.
<White_Flame> does it come with all the libs?
<White_Flame> I think last time I looked (a loooong time ago), allegro had a heap limit plus didn't come with all the libs
<mayuresh> there used to also be something from franz, right?
<mayuresh> we tested it while at cleartrip.
<White_Flame> that's allegro
<mayuresh> ah, okay.
<White_Flame> clozure is also commercially supported, but the implementation is fully free
<mayuresh> clozure! that macos thing?
<White_Flame> it's cross platform, but yeah is a descendent of macintoch cl
<mayuresh> actually, what i found interesting about lispworks is their 'ide'.
<mayuresh> almost everything is point-and-click.
<White_Flame> I don't think people really consider those to be any more advanced than slime
<mayuresh> ha ha. :D
<White_Flame> however, for point and click building stuff, lispworks & allegro have that for their GUI builder stuff iirc
<mayuresh> lispworks as this 'gui' for reading object graphs.
CrashTestDummy2 has joined #commonlisp
<mayuresh> reading == viewing + interacting with.
CrashTestDummy3 has joined #commonlisp
<contrapunctus> mayuresh: Evil is the 'Extensible Vi Layer'. The full Vim experience in Emacs.
CrashTestDummy has quit [Ping timeout: 268 seconds]
<mayuresh> pjb: could you please activate http://pjb.ogamita.org/
CrashTestDummy2 has quit [Ping timeout: 255 seconds]
<pjb> mayuresh: in the meantime, you can go to http://www.informatimago.com/~pjb/sites/org.ogamita.pjb/
<pjb> mayuresh: but it's mostly old stuff…
<mayuresh> okay. cool.
hhdave has quit [Remote host closed the connection]
<pjb> Nowadays, the activity goes to gitlab/github… :-)
<mayuresh> true. github has really changed the landscape a lot.
<mayuresh> github has gone way beyond sourceforge ever was.
<mayuresh> does anyone out here remember freshmeat?
<contrapunctus> Does anyone know how I might get in touch with the administrators of cliki.net and common-lisp.net? They are blocked on Tor and I always have to use web.archive.org to browse them :\
<jackdaniel> contrapunctus: join #common-lisp.net
<contrapunctus> jackdaniel: thanks ^^
<mayuresh> contrapunctus: you work over "tor"? paranoid are we?
<contrapunctus> haha
<mayuresh> :)
<mayuresh> for those who came in late (to lisp);
<mayuresh> also for those who are scared of coming in (to lisp).
<mayuresh> :)
andrei-n has quit [Quit: Leaving]
lonjil has quit [Ping timeout: 272 seconds]
lonjil has joined #commonlisp
waleee has joined #commonlisp
cranium has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
OlCe has quit [Ping timeout: 255 seconds]
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
CrashTestDummy3 has quit [Ping timeout: 255 seconds]
<jackdaniel> mayuresh: common lisp recipes were authored by Edmund Weitz, not phoe
peterhil has joined #commonlisp
<jackdaniel> I don't think that it is possible for other author to publish a second edition of an existing book
<beach> jackdaniel: I believe Edi has given his permission to Apress.
<mayuresh> jackdaniel: thanks for that, i was under a misconception.
<jackdaniel> beach: a permission for someone else to write a second edition? interesting
<mayuresh> jackdaniel: though i distinctly remember phoe mentioning it out here.
<jackdaniel> s/interesting/surprising/ (to me)
<beach> jackdaniel: Yes, I believe so.
<mayuresh> maybe i was too tired and was imagining things.
<jackdaniel> no, I was not aware of that being a possibility. thank you for correction beach
<beach> jackdaniel: I may have the details wrong. Check with phoe to be sure. But I am sure that phoe has a contract to do the second edition. Whether Edi had to give his permission I am not certain about. Perhaps Apress has all the rights.
<mayuresh> anyone knows phoe's real name, would like to visit his website.
<jackdaniel> it is Michał Herda, I don't know whether he has a website
<jackdaniel> beach: I'm not that much interested in it to investigate, but I won't wrongfully 'correct' people on that note in the future - thanks.
<mayuresh> jackdaniel: thanks. will bing it.
CrashTestDummy3 has joined #commonlisp
<mayuresh> jackdaniel: phoe's website at https://phoe.github.io/
CrashTestDummy2 has quit [Ping timeout: 268 seconds]
<mayuresh> okay, a stupid question; how is (+ 1 2 3) evaluated? left to right?
<jackdaniel> yes, arguments in the function application are evaluated from left to right
<jackdaniel> in scheme (and in C fwiw) it is unspecified
<mayuresh> so it will be; first 1 + 2, and the result is added to 3.
<jackdaniel> no, three arguments will be passed to a function #'+
<jackdaniel> + is a function that accepts any number of arguments
<mayuresh> okay, but what does the standard say about the sequence?
<mayuresh> will + do 1 and 2 first and work the result with 3?
<jackdaniel> I don't know, but the standard is available somewhere on the internet, I'm sure of it
<mayuresh> okay. thanks nevertheless. :)
<beach> It doesn't matter what + does in which order. What matters is that it computes the sum of its arguments.
<jackdaniel> beach: the order of operations may influence the result (at least when you use floats)
<mayuresh> are there any such rules for - and /?
<jackdaniel> clhs 12.1.1.1
<specbot> Associativity and Commutativity in Numeric Operations: http://www.lispworks.com/reference/HyperSpec/Body/12_aaa.htm
<beach> jackdaniel: yes, I was commenting only on integers.
<jackdaniel> mayuresh: my remark about the standard was a hint, that you should first try to look up answers to your questions
<mayuresh> jackdaniel: sure. will do so here on.
<jackdaniel> this is a reading I sometimes recommend: http://catb.org/~esr/faqs/smart-questions.html
<mayuresh> that's a good document. thanks jackdaniel. :)
pillton has quit [Ping timeout: 256 seconds]
dsk has quit [Ping timeout: 255 seconds]
<mayuresh> okay, gotta go, snack time.
mayuresh has quit [Quit: leaving]
<pve> Hello! What is the correct terminology for when things (e.g. defmacro) affect how the compiler generates fasls in the future (not sure how to phrase it properly)?
<pve> is it "changes the compilation environment"?
<beach> pve: No, it changes the global environment.
<beach> pve: The compilation environment disappears after a compilation is finished.
<pve> beach: ah thank you
<beach> ... or rather, the compilation environment *might* disappear...
<pve> right, global environment it is then
<beach> An implementation is free to have a single global environment that is used both as the startup environment, the compilation environment, and the evaluation environment.
<beach> And most (all?) implementations do.
notzmv has joined #commonlisp
<jackdaniel> I think that compilation environment is usually different, but I'm still sipping my coffee so I might have confused things terribly :)
<beach> Right you are.
<pve> and just to be clear, I mean a situation where I modify the definition of a macro and must therefore recompile the files that use that macro
<beach> I think it has to be for the implementation to be conform actually.
<beach> pve: Yes, that's definitely the global run-time environment.
<jackdaniel> pve: when you modify the macro then you must recompile all forms that make use of that macro if you want the new macroexpansion take effect
<pve> beach: ok great
<pve> jackdaniel: yep
<beach> clhs 3.2.1
<beach> pve: ^
<beach> Somewhere in the middle.
<beach> jackdaniel: This is interesting. That page says they can all be the same, but I am pretty sure I have seen phrases in the standard where it says things like "the function is not created at compile time".
<beach> ... and if they are all the same, the function *is* created at compile time.
<jackdaniel> beach: perhaps they account for a possibility that the global environment has compiler-specific entries all the time (and they are used only by the compiler)
<beach> Yes, but then those entries would make up the compilation environment, so then they are not the same.
<jackdaniel> right, I see now
* jackdaniel is thinking
peterhil_ has joined #commonlisp
<beach> Ah, "It is unspecified whether a definition available in the compilation environment can be used in an evaluation initiated in the startup environment or evaluation environment."
<beach> So I guess when the standard says that such and such is not created at compile time, in fact most of the time it might be.
<beach> ... but isn't in most implementations as you pointed out.
<jackdaniel> makes sense
<jackdaniel> so the fact, that calling compile-file does not introduce functions from the compiled file may be considered a feature and not something implied by the standard
<beach> An interesting thing to do in WSCL would be to use the environment terminology in the rest of the document. Currently, that terminology seems to be avoided in favor of something more vague, like "the function is not created at compile time".
<beach> Yes, that's what I am thinking.
peterhil has quit [Ping timeout: 265 seconds]
<jackdaniel> but as you have pointed out, other parts of the standard seem to contradict that
<beach> I need to go through each dictionary entry to see whether there is really a contradiction. I suspect there are some.
<pve> beach: thanks, that's the page I should have read, although it doesn't mention "global".. I assume "global environment" means "run-time environment"?
<jackdaniel> hm, let's take "defgeneric is not required to perform any compile-time side effects." - this part says, that the compiler may not introduce the function into the compiler environment
<jackdaniel> so far so good (no contradiction)
<jackdaniel> pve: global environment is opposed to lexical or dynamic
<jackdaniel> i.e it contains globally available variables and functions
<beach> jackdaniel: Yes, so far so good, as you say.
<jackdaniel> beach: same for defun: it is *not required" to perform any compile-time side effects; then we have "In particular, defun does not make the function definition available at compile time", so the definition is not avialable in the compilation environment
<beach> Whew! :)
cage has joined #commonlisp
<jackdaniel> then we have "If a defmacro form appears as a top level form, the compiler must store the macro definition at compile time, so that occurrences of the macro later on in the file can be expanded correctly."
<pve> jackdaniel: alright.. the glossary contains definitions for "run-time environment" and "global environment", but I'm uncertain if the definitions are equivalent
<pve> seems like they could be
<jackdaniel> so for defmacro it seems to be unspecified whether it is retained after the compilation ends or not
<beach> jackdaniel: Right, still no contradiction.
<beach> pve: I think it depends. During compilation, the global environment may be the evaluation environment.
attila_lendvai has quit [Ping timeout: 246 seconds]
<pve> beach: oh, I think I get it now
<beach> Good.
<beach> GAH, I need a break. I'll read additional remarks later.
tyson2 has joined #commonlisp
random-nick has joined #commonlisp
selwyn has joined #commonlisp
<jmercouris> there is something confounding me
<jmercouris> I don't get why a function that returns a SEXP cannot be handled by tomato
<jmercouris> there are some rules about spinneret I don't get
<jmercouris> can someone explain this?
<jmercouris> wait a minute, I think I understand
<jmercouris> AH, WITH-HTML-STRING IS A MACRO
<jmercouris> I should have just looked at the source
<contrapunctus> :o
Bike has joined #commonlisp
random-nick has quit [Ping timeout: 246 seconds]
random-nick has joined #commonlisp
derelict has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
<jmercouris> here is something I cannot understand
<jmercouris> (defparameter x '(:a :href "xyz" "hello"))
<jmercouris> (spinneret:with-html-string x) -> ""
<jmercouris> (spinneret:with-html-string (:a :href "xyz" "hello")) -> "<a href=xyz>hello</a>"
<jmercouris> how do you explain that?
<Bike> well, probably it's a macro that doesn't evaluate its parameter. let me find the documentation
<jmercouris> ah fuck, again
<jmercouris> yes
<jmercouris> thank you
<jmercouris> sorry, I'm really tired
<Bike> it is no problem
<jmercouris> `(spinneret:with-html-string ,x) ...
<Bike> i remember people being confused by this in cl-who as well
<jmercouris> yes, however I ran into the same exact issue right about an hour ago
<jmercouris> so I should not have been confused :-D
rgherdt has joined #commonlisp
<_death> this is one reason I like yaclml :)
rgherdt_ has joined #commonlisp
hendursa1 has quit [Quit: hendursa1]
hendursaga has joined #commonlisp
rgherdt has quit [Ping timeout: 268 seconds]
peterhil_ has quit [Ping timeout: 268 seconds]
dsk has joined #commonlisp
attila_lendvai has joined #commonlisp
treflip has quit [Quit: bb]
char has joined #commonlisp
dsk has quit [Ping timeout: 255 seconds]
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Inline has joined #commonlisp
char has quit [Ping timeout: 246 seconds]
waleee has quit [Quit: WeeChat 3.2]
OlCe has joined #commonlisp
peterhil has joined #commonlisp
waleee has joined #commonlisp
manicennui has joined #commonlisp
derelict has quit [Ping timeout: 245 seconds]
Th30n has quit [Quit: WeeChat 3.2]
sp41 has joined #commonlisp
dsk has joined #commonlisp
baullrog has joined #commonlisp
makomo has joined #commonlisp
makomo has quit [Client Quit]
baullrog has quit [Quit: Leaving]
<jmercouris> (defparameter x '(:a :href "xyz" "hello"))
<jmercouris> (spinneret:with-html-string (:h1 "lol") (loop for y in (list 1 2) collect (:p x)))
<jmercouris> I am stumped about how to expand X
<jmercouris> this feels wrong: (eval `(spinneret:with-html-string (:h1 "lol") (loop for y in (list 1 2) collect (:p ,x))))
<jmercouris> there must be some paradigm I am missing
<jmercouris> anyone?
<jackdaniel> how about: (defmacro merci-with-html-string (x) `(… ,x)) ;?
baullrog has joined #commonlisp
<Bike> an example in the readme has (:ol (dolist (item *shopping-list*) (:li (1+ (random 10)) item)))
<jackdaniel> usually such functional macro shoudl be accompanied with a functional application version, that is i.e (call-with-html-string #'my-body)
<jmercouris> hm
<jackdaniel> some dsl check whether the argument is a list, and if it is first they consult their own rules, and if not they delegate the question
<jackdaniel> so (with-htlm-string … (:p (identity x)))
<jmercouris> I might follow the readme paradigm then
<jmercouris> I saw that as well, I just use loop a lot more than dolist
<jmercouris> in the worst case, maybe I wll make a wrapper as daniel has suggested
<jmercouris> thanks for the eyes
<pve> etimmons: ok, I got the directory scan hooked up to ASDF. Here is my first ASDF extension: https://github.com/pve1/alphabetical-asdf
<jackdaniel> lexicographical perhaps? (if you sort by names)
<jmercouris> I'm sorry
<jmercouris> but that sounds like a really bad idea
<jmercouris> it loads files based on alphabetical order?
<pve> jackdaniel: lexicographical sounds better
<jmercouris> I assume this is not meant to be a practical extension?
<jackdaniel> naming files 01-foo.lisp is not a terrible idea (however unusual for asd) - I think that some configuration rules on linux are loaded with such ordering
<pve> jmercouris: oh it's dead serious ;) but obviously meant for utilities with a smallish number of files
<_death> could just use BASIC convention.. 10-classes.lisp 20-macros.lisp 30-more-stuff.lisp .. I used it for something.. and I think I saw it used in trivia or optima or whatever
<jackdaniel> if you simply want to point at the directory you want to load files from, then such extension makes sense
<jackdaniel> right, and the minor digit is for further refinement :)
<jmercouris> well, OK
<jmercouris> reminds me of version control as this:
<jmercouris> "final version1.lisp
<jmercouris> final final version 1.lisp
<jmercouris> final final finalversionactually final2.lisp
<jackdaniel> I don't know what you are talking about
<jmercouris> explicit > implicit
<jmercouris> I'm talking about people who constantly rename files instead of using version control
<jmercouris> feels the same thing, don't know how to use ASDF, so name things alphabetically
<jmercouris> it's a common meme
<jackdaniel> naming files in lexicographical order have more benefits. when I list a directory with multiple list files using `ls' then they would be arranged in the load order
<jmercouris> wow, that's super useful
<jackdaniel> I think that too, thanks for the affirmation
<_death> it's nice when you know what to read first.. with ordinary system definitions it's easy to figure out, but with package-inferred-systems I didn't bother to find a way to quickly get a toposort
<pve> _death: yes the example given in the file demonstrates the BASIC convention, and but also A-foo, B-bar (which I think is a bit less pretty)
<pve> and yeah, I wanted to be able to see the load order directly in the dired buffer or ls output
<_death> pve: for small utilities, I have a snippets repository.. I use package-inferred-systems for it, so dependencies are easy (specified in the defpackage form), and if they don't depend on anything but CL, the files are "standalone".. I do add a line to the .asd file for each snippet
<pve> jackdaniel: I see now, lexicographical order is more general than alphabetical order
<jmercouris> cat x.asd, now you can see it
<jmercouris> I can't imagine this approach scaling for anything beyond 10 files
<jmercouris> imagine wanting to insert a file between two files
<jmercouris> also it is actually MORE cognitive overhead to surmize the load order than :serial t
<jmercouris> surmise*
<pve> _death: I see, I haven't quite gotten around to using package-inferred-system
mister_m` has joined #commonlisp
<pve> jmercouris: when you get to 10 files, you add a subdirectory :)
<jackdaniel> directory-inferred-systems, sounds like an idea ,)
selwyn has quit [Read error: Connection reset by peer]
elf_fortrez has joined #commonlisp
peterhil has quit [Ping timeout: 255 seconds]
derelict has joined #commonlisp
dsk has quit [Ping timeout: 255 seconds]
peterhil has joined #commonlisp
Alfr has joined #commonlisp
<etimmons> pve: ohhhh, nice! Looks like the operation-done-p on the define-op works?
<pve> etimmons: yep, seems to work
<etimmons> jmercouris: It's helpful that for many things the load order largely doesn't matter, so there's likely little juggling that needs to be done.
<pve> etimmons: it was surprisingly tricky for me to figure out how to get it to work, but the code ended up very simple
<etimmons> Just make sure to load package definitions first, load macros defs early (before they would be expanded), and load class definitions before any defmethod that uses them
<etimmons> And that should cover the vast majority of use cases
<etimmons> pve: Looking at it now, it does look quite simple
<pve> etimmons: am I allowed to use asdf/session:consult-asdf-cache?
yitzi has joined #commonlisp
<pve> etimmons: I like that it is now able to detect new files, new directories, renames etc without using :force t
<etimmons> pve: Hmmm. I'm a bit surprised that functionality isn't exported from asdf.
<etimmons> I think it's doubtful that function would change in the near future, but to help ensure it, you should request that it's exported from the asdf package as well.
<etimmons> And do-asdf-cache (the macro form) might be slightly better to use
<pve> oh, ok
<pve> I ended up using it because when I tried to make a SCAN-OP I just kept hitting walls
<pve> I couldn't get define-op for my system to use the scan-op, so I gave up on that approach
<etimmons> I wonder if you could add a method to input-files for define-op that performs your scan
<etimmons> There's an :around method for input files that automatically caches it for you
<pve> aha! that's interesting
<pve> would be nice to get a prettier approach, because my current (setf asdf:component-children) method where it straight up ignores the new value is pretty sketchy to say the least
<etimmons> haha, yeah. I think you could work around that using some of the new system parsing GFs that got added in this latest release.
<etimmons> But your approach is probably a very good one for earlier versions
<pve> I haven't yet tried it on recent versions.. I should try. Wonder if it works like that.
<etimmons> Hmmm, on second thought, input-files may not be the best... ASDF will compare timestamps so it's possible that just modifying an existing file would invalidate the define-op when it doesn't need to
<etimmons> Something to keep in mind at least if you try it!
<pve> ok, thanks
paulapatience has joined #commonlisp
sm2n has joined #commonlisp
tyson2 has joined #commonlisp
amb007 has joined #commonlisp
OlCe has quit [Ping timeout: 258 seconds]
cranium has quit [Quit: Leaving]
dickbar__ has quit []
peterhil has quit [Remote host closed the connection]
peterhil has joined #commonlisp
lotuseater has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
<jasom> minion: memo for char: The only advantage to not having a default is you can't be wrong. A sensible default is probably better, especially if your library is structured such that you can improve the default and new passowrds being stored will benefit from increased hardening.
<minion> Remembered. I'll tell char when he/she/it next speaks.
elf_fortrez has quit [Quit: Client closed]
OlCe has joined #commonlisp
elf_fortrez has joined #commonlisp
selwyn has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
OlCe has quit [Ping timeout: 272 seconds]
elf_fortrez has quit [Ping timeout: 246 seconds]
dsk has joined #commonlisp
fe[nl]ix has quit [Remote host closed the connection]
fe[nl]ix has joined #commonlisp
dsk has quit [Ping timeout: 255 seconds]
paulapatience has quit [Ping timeout: 255 seconds]
kevingal has joined #commonlisp
lotuseater has quit [Ping timeout: 255 seconds]
raeda has quit [Ping timeout: 256 seconds]
raeda has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
Guest57 has joined #commonlisp
<Guest57> Anyone know a portable way to do C++-style RAII (automatically running some resource-management code of your own when the object is destroyed destroyed) in Common Lisp? A library I can use is fine. I know about finalisers, but afaik they're not in the standard and are an implementation dependent feature... I've also seen stuff using macros and
<Guest57> unwind-protect, but they only work for "I want this resource to have its clean up code run at the end of the scope/end of the macro", and don't let me stick them in data structures access them from other scopes and have the code in the destructor then finally run when they are destroyed.
baullrog has quit [Quit: Leaving]
<Guest57> Nevermind, I found this https://common-lisp.net/project/trivial-garbage/ which says it gives a portable way to use finalisers. Don't know how I missed it.
Guest57 has quit [Quit: Client closed]
mister_m` has quit [Ping timeout: 272 seconds]
selwyn has joined #commonlisp
kevingal has quit [Remote host closed the connection]
Lycurgus has joined #commonlisp
Lycurgus has quit [Quit: Exeunt]
<Bike> they're gone, but using finalizers for RAII seems wrong. destructors are run at well defined times, unlike finalizers
<mfiano> and well defined threads :)
<mfiano> usually resources need to be cleaned on the same thread they were initialized...at least in my limited experience
mister_m` has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
tyson2 has joined #commonlisp
dsk has joined #commonlisp
elf_fortrez has joined #commonlisp
<White_Flame> things like (with-open-file ...) are more akin to a RAII scope
<White_Flame> hmm, but yeah sounds like they wanted a particular end of life handler for an object
<White_Flame> on the heap
<pve> I'm curious, can I test whether "pathname" is a directory like this: (string= (directory-namestring pathname) (namestring pathname))
<White_Flame> uiop:directory-pathname-p
<White_Flame> or you could check to see if the filename/extension/version is nil, but there might be other edge cases
<pve> yeah, I'm looking at the uiop one.. was just wondering if comparing directory-namestring to namestring would also work (not going to do it like that though)
amb007 has quit [Ping timeout: 272 seconds]
amb007 has joined #commonlisp
<etimmons> If the pathname had a device (as is common on Windows) it wouldn't work
<pve> ah
<pve> of course
elf_fortrez has quit [Ping timeout: 246 seconds]
sp41 has quit [Quit: leaving]
kakuhen has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
lad_ has joined #commonlisp
lad has quit [Remote host closed the connection]
dsk has quit [Ping timeout: 255 seconds]
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
Lord_Nightmare has joined #commonlisp
pillton has joined #commonlisp
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
JeromeLon has joined #commonlisp
OlCe has joined #commonlisp
karlosz has joined #commonlisp
pve has quit [Quit: leaving]
OlCe has quit [Ping timeout: 265 seconds]
rgherdt_ has quit [Ping timeout: 268 seconds]
varjag has quit [Ping timeout: 255 seconds]
Oladon has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
karlosz has quit [Quit: karlosz]
Alfr has quit [Killed (copper.libera.chat (Nickname regained by services))]
Alfr has joined #commonlisp
igemnace has quit [Quit: WeeChat 3.2]
elf_fortrez has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
hendursaga has quit [Quit: hendursaga]
hendursaga has joined #commonlisp
taiju has quit [Ping timeout: 252 seconds]
Lycurgus has joined #commonlisp