On Sun, Dec 24, 2023, 11:47 Ihor Radchenko wrote: > João Távora writes: > > >> May you elaborate? > >> > > > > I have already elaborated a while back, but on a tangent deep down in a > > thread and I'm on my phone right now. So maybe these links would give you > > an idea of what it looks like. > > > > http://random-state.net/log/3390120648.html > > > https://www.reddit.com/r/Common_Lisp/comments/okvgf0/examples_of_callwith_style_in_macros/ > > https://news.ycombinator.com/item?id=12476032 > > > > These are all common lisp related, but there are, I'm fairly sure, > numerous > > examples in Elisp, though not necessarily named "call-with". Let me know > > what you understand of the examples before we continue. > > I do not think that your idea will work. > What you propose is compiling `org-assert-version' once. > Hmm? How can that be what I'm proposing if I didn't even know about this definition. Is it a form, a macro? What ultimate problem is it solving? What condition do you need to assert at Emacs master build-time, failing which something else will go wrong? I just provided ideas on how to solve a very common build-time pitfall in Lisp. A pitfall that can be solved by requiring a recompilation of everything, as seems to be the current way, or in other less brutal ways. Keep in mind something in the build system is causing builds to fail with cryptic messages even for people who don't use Org or rarely ever do. I've never touched any Org related files in my life, why should it blow up in my face? Of course happens to all package maintainers but usually there is a fix. There should be one here, too. > You may also want to elaborate yourself on an example of a macro that is > > emblematic of the expansion-site recompilation problem that, as I > contend, > > you fixed somewhat heavy-handedly and lead to these recurring irritations > > to many users. We can see if we can fix that example with with the > > technique I allude to. > > May you please try to explain what you mean in other words? I am not > sure what you are trying to convey in this paragraph. > Give me (us) an example of a defmacro form whose body is frequently changed and which requires the expanders of such a macro, which presumably live in other files, to be recompiled, even if said files haven't changed.