On Sun, 29 Jun 2025 at 00:40, Kaz Kylheku <k...@kylheku.com> wrote: > In my opinion, this should be done by improving the interface between > Guile and Make. > > I mean why would you be making a reverse function as a C extension when > you already have a Lisp dialect bolted on? > > I have a couple of reasons and some are simply personal taste:
- guile is not native - it is still a transplant. I found this example: $(guile (mkopen "tmp.out" "w")) - nothing wrong but it's clearly another language bolted into make. Make has a native way to be extended (load) and I could just as well argue that all extensions should be native as that is more pure. It's certainly easier to use. - guile support historically wasn't enabled by default. load will work on older versions of make to a greater degree. - It's probably slightly faster not to involve an interpreter and the back-and-forth data conversion. The performance of make's interpreter mattered to me in one job - made a huge difference - but of course in many cases it doesn't matter at all. - Beyond university I've never felt tempted to continue writing scheme - even C, awful and painful as it is, is more attractive. There's actually an elegance to trying to write C without huge bugs, although I don't claim to have managed that! - C gives you access to a huge array of other libraries. We don't need this for reverse but since I have a library of functions I might as well add one more. I don't see it as there being a "should" - only what you want to do. Best regards, Tim