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

Reply via email to