Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Maak.el: Lisp machine command runner in Emacs, infinitely extensible and Scheme (codeberg.org/jjba23)
21 points by jjba23 5 hours ago | hide | past | favorite | 4 comments
 help



It looks like maak does not have a mechanism for specifying file dependencies (run recipe when dependent file is newer than output file). I'd love to be wrong. I try to use Makefile to document data pipelines, but it's easy for it to become spaghetti. [Edit: There's the decade-stale https://github.com/factual/drake "Drake is similar to GNU Make, but designed especially for data workflow management". I can't remember why I bounced off it.]

For command line runners like maak and just, why not use small cli scripts (`quick-math 23 42` instead of `maak quick-math 23 42`)? I think I'm missing the bigger picture.


Seconding that. From the doc, maak is much more related to other general purpose tasks runners (a la "rake" for ruby) than as a replacement for the core usage of Makefile on a C / Fortran / whatever-project (as in "define rules to specify the dependency chain declarively, and a tool will traverse the graph to only run the required commands".)

Which is not a criticism of the tool, if that was their goal !

But it's not obvious from the doc if the maak scheme libraries provides anything to replace the tedious rules that everyone write ("compile x.o when x.c or x.h change", etc...)

In many languages more modern than C, the compiler already has the info needed to know what needs to be compiled or not (or, does not really care, and just recompile everything all the time) ; Makefiles for projects in such language end up being full of ".PHONY" clauses - I see how writing those in lisp could be seen as an improvement.


What does it have to do with the Lisp machine?

Presumably it's a machine command runner (like shell commands and whatnot - as opposed to an Emacs command runner, perhaps).



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: