Trepan-Debuggers / Trepan-Debuggers/remake
Keeping the make process running as a daemon (not --keep-going, not 'watch make')
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 850
- Forks
- 80
- PR merge metrics
- No merged PRs in 30d
Description
I've asked this on the make mailing list but didn't have any luck. Apologies if this is out of scope for remake.
I use make to build a document tree, again and again, when prerequisites change. I observe outside change events and use inotify on some files and when a change has occurred, I re-run make. So my problem is not detecting the change - I already know when a change has occurred and where it happened.
My problem is that the more complex a document tree gets, the more makefiles I put on the build graph and the more files make has to parse on each startup. In some of my projects, I have thousands of makefiles amounting to multiple MBs of rules that make has to read and reread. It handles that remarkably well, but it can lead to long startup times, which makes me wonder: Would it be possible to keep the make process itself running as a daemon with the state that it has generated?
Put differently: There are some applications of make where booting up make and building the dependency graph is the most expensive part, by far. Would it be possible to keep the make process running and that graph in memory?
Related to that: It further seems like a waste to generate so many .mk and .d files only to restart make and read them in. It would be great if I there was an option to tell make to not create files and read them in, but directly pipe their output back into memory.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no source files or tests; start by tracing remake's startup parsing of makefiles, including generated .mk and .d files, and the existing interaction with inotify-driven rebuilds. Determine whether keeping the dependency graph in memory and running make as a daemon is feasible, then document the required scope and acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100