3 ms·
Fun fact: Unix Makefile was invented as a result of this incident. > Make originated with a visit from Steve Johnson (author of yacc, etc.), storming into my o
by segfaultbuserr 5y ago
Fun fact: Unix Makefile was invented as a result of this incident.
> Make originated with a visit from Steve Johnson (author of yacc, etc.), storming into my office, cursing the Fates that had caused him to waste a morning debugging a correct program (bug had been fixed, file hadn't been compiled, cc *.o was therefore unaffected). As I had spent a part of the previous evening coping with the same disaster on a project I was working on, the idea of a tool to solve it came up. - Stuart Feldman
- Too 5y agoOh the irony. Makefiles has been the number one source of this issue itself. Usually due to badly specified transitive dependencies. Like only rebuild .o files on changes to .c files but forget completely about changes to .h files etc. Removed c files leaving stale .o files still being linked in is another favorite. But yeah, I guess the predecessor it replaced must have been even worse. Today we can have higher expectations.
- NieDzejkob 5y agoMy favorite solution is Tup, which uses FUSE to observe exactly which files each command is reading. That way it's impossible to write a Tupfile for which incremental builds don't work properly.
- iforgotpassword 5y agoI was actually thinking of this approach once but immediately convinced myself it's crazy. Good to see it seems to work at least. :-)
- rustybolt 5y agoI also remember changing the makefile, mindlessly running 'make' without looking at the output, then running the program and wondering why the program isn't behaving differently.