On Wed, 2022-10-19 at 07:28 +0100, Tim Murphy wrote: > Outside of make "update" implies existence - we use CRUD as a term > for example not RUD. Why redefine the language? Actually for > databases the word "upsert" has been invented to explain a roughly > analagous situation is going on - perhaps that is an option? e.g. > "upcreate"?
"Updating a target" has a well-defined meaning that's used everywhere in the documentation and the mailing lists etc., and it's also the term used everywhere in the POSIX spec for the definition of make and in the documentation of other versions of make such as BSD make etc. I don't want to change this. Sometimes, words are used to mean specific things in specific situations, that may be slightly different than when they are used in other situations. And, I definitely don't want to replace it with a term of art that's only known and used in the database world, such as upsert. > According to Cambridge: > "leave well enough alone" > to allow something to stay as it is because doing more might make > things worse > > Is make really "trying not to make things worse?" .. It depends on how you define "worse". Rebuilding targets that don't need to be rebuilt, is worse than not rebuilding them. If you don't believe that then you don't need make at all, you can just use a shell script :). And of course, it COULD make things worse if the build of the target failed for some reason. According to Merriam-Webster: "leave well enough alone": To stop changing something that is already good enough. Seems appropriate to me.