Yes we do want make to be a first class language and have had to put up
with it being a b*** a*** to do computations and impossibly slow to use
$shell.

Regards,

Tim

On Mon, 11 May 2020, 20:47 Daniel Herring, <dherr...@ll.mit.edu> wrote:

> Hi Pete,
>
> I like your enthusiasm and understand the benefit.  If this can be
> done cleanly, then why not?
>
> However, I am still vaguely uneasy about the idea.  I don't think Make
> will ever be a first-class programming language.  Prolog was a better
> general-purpose language, but more people use Make because it is a
> domain-specific tool.  Traditional Make has a certain simplicity that
> makes it fairly easy to read and to machine generate.  As Make becomes
> Turing-complete, it may loose these properties and grow in complexity.
>
> How would you debug this?  Do parallel builds?  Do distributed builds?
> Optimize build times?  etc.
>
>
> Maybe it would be more useful to develop a protocol for invoking external
> programs and including their results in the build rules?  Something like
> the support for generating build dependencies, with cleaner semantics and
> a direct way to run multiple times in a build.  For example, when a code
> generator like Qt's moc or uic is run, it could also generate a rule
> update that causes Make to compile and link the results.
>
> This might give full general semantics (invoke your language of choice)
> while preserving simplicity (communicate simple Make rules).
>
> If we do want Make to be Turing-complete, then it may be better to link in
> an embedded language (Guile, Lua, Python, ...), rather than building a new
> ad-hoc language.
>
> - Daniel
>
>
> On Mon, 11 May 2020, Pete Dietl wrote:
>
> > What do you all think about me attempting to implementing tail call
> elimination for recursive make functions? This combined with the proposed
> (let) construct would be rather powerful.
> >
> > I did the first 10 exercises in Advent of Code 2019 in Make. but ran
> into problems with blowing the stack from recursion.
> >
> >
>
>

Reply via email to