Re: Dynamic adjustments of build dependencies for the number of available processors

2015-01-05 Thread Tim Murphy
On 5 January 2015 at 18:13, SF Markus Elfring wrote: > > I assume that you want something different from this > > but you need to explain better, sorry :-) > > I hope that an other wording will be clearer. > > Can make rules be extended on demand while a build script > is evaluated? > > How much

Re: Better description for "define"?

2015-01-06 Thread Tim Murphy
define..endef allows you to assign multi-line values to a variable. Regards, Tim On 6 January 2015 at 11:57, SF Markus Elfring wrote: > > The "define" construct is already in the index. > > I am missing an explanation there for the aspect when the construct > "define … endef" > should be used

Re: Visualisation of make files as graphs

2015-01-12 Thread Tim Murphy
This is generally a hopeless thing to do because the graphs become enormous spiderwebs. Gephi is good enough to do large makefiles without crashing or slowing down to a stop. You can use "gmake --print-database -f Makefile" and then write a script to convert that into .dot format which gephi wi

Re: Difficulties from the combination of functions "call" and "eval"

2015-01-18 Thread Tim Murphy
With eval and call one can get confused quite easily. Try changing eval to info and then inspect the output to see if it makes sense as a makefile. Write small test makefiles that do small aspects of what you want and build them up step by step until you get the result you want when you introduce a

Re: Using hash instead of timestamps to check for changes.

2015-04-04 Thread Tim Murphy
> > >My thinking is that the timestamp is in fact an overly conservative > > test. We never have the case that the timestamp indicates something > > *has not* been changed when in fact it has (i.e. we always build if > > something has changed), > > That's interesting, because in my exper

Re: Using hash instead of timestamps to check for changes.

2015-04-11 Thread Tim Murphy
On 11 April 2015 at 16:38, Enrico Weigelt, metux IT consult < enrico.weig...@gr13.net> wrote: > On 07.04.2015 00:17, Eric Melski wrote: > > > > ClearCase > > does this in various configurations, and Perforce will if your client > > spec has "modtime" set. I'm sure other SCM systems can be setup t

Re: Parallel make

2015-04-29 Thread Tim Murphy
Without wanting to turn this into a commercial/advert you might want to consider trying the Electric Cloud Huddle beta since it works with multiple machines in a convenient way and deals with the problems of getting correct parallel builds. It is also free for now at least. Sorry for that :) On 29

$(file) can't read files

2015-05-26 Thread Tim Murphy
$(file) offers the ability to write files which saves one from tricks involving $(shell). Calling $(shell) is very slow indeed in some makefiles. $(shell cat filename) is also often used to read files into variables. There isn't much reason why $(file <) shouldn't read a file though is there?

Re: $(file) can't read files

2015-05-31 Thread Tim Murphy
On 30 May 2015 at 19:02, Paul Smith wrote: > On Wed, 2015-05-27 at 07:50 +0100, Tim Murphy wrote: > > $(shell cat filename) is also often used to read files into variables. > > > > There isn't much reason why $(file <) shouldn't read a file though is > &g

Re: Order of expansion of recipe lines

2016-03-14 Thread Tim Murphy
On 14 March 2016 at 14:22, Paul Smith wrote: > > > I wonder if we shouldn't change the way we handle expansion of recipe > lines to meet peoples' expectations: instead of expanding all recipe > lines first we would expand recipe lines one at a time, as we got ready > to run that line. > > I dunno

Re: Order of expansion of recipe lines

2016-03-14 Thread Tim Murphy
On 14 March 2016 at 14:22, Paul Smith wrote: > Something that seems to be a constant source of confusion for users is > the fact that GNU make expands the entire recipe first, before it starts > any rules. Consider this recipe: > > all: > @echo hi > @$(info there) > > or in

Re: INTERNAL: Exiting with 2 jobserver tokens available; should be 5!

2016-11-12 Thread Tim Murphy
Something like Valgrind might spot some initial problem that doesn't immediately crash but eventually spirals out of control. It seems to support ARM linux now: "20 October 2016: valgrind-3.12.0 is available. This release supports: X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, PPC32/Linux, PPC

Re: INTERNAL: Exiting with 2 jobserver tokens available; should be 5!

2016-11-19 Thread Tim Murphy
recent times. Regards, Tim On 19 November 2016 at 22:03, Jaak Ristioja wrote: > Hi! > > On 13.11.2016 07:37, Tim Murphy wrote: > > Something like Valgrind might spot some initial problem that doesn't > > immediately crash but eventually spirals out of control. > >

Re: question

2016-12-28 Thread Tim Murphy
Excuse-mois, je ne parle pas le Francais bien mais si je vous comprend bien vous avez utilisait l'option avec make mais ca c'est un option de f77. Peut etre vous pouvez taper: make FFLAGS="--N ftrap=common" Bonne chance, Tim 2016-12-28 9:44 GMT+00:00 rania rais : > Bonjour, > > > j'aimerais

Re: thoughts and questions on order-independent Makefile method

2017-05-02 Thread Tim Murphy
If your build gets big enough you'll start to get to the point where the single-process parse is longer than the parallel build so be a little careful about how many evals you use - I'm speaking from experience. It only matters if your build gets big though and if you use a single-makefile rather

Re: [PATCH 1/2] Trivial correction on document

2017-06-21 Thread Tim Murphy
"that that" seems correct to me in this case and removing it incorrect. There is a presumption and a conclusion and the sentence emphasises that the conclusion is still presumed. On 21 June 2017 at 06:38, Martin Dorey wrote: > My native English speaker intuition says that "if it were" and "if it

Re: [bug #52209] Support for ifeq function

2017-10-13 Thread Tim Murphy
Sorry for "plugging" my work but you can use loadable modules to implement any function you like and I have done "ifeq" some time ago here: https://bitbucket.org/tnmurphy/extramake ... except my version is $(equals...) This is a good way to experiment with what you want from the function before

Re: Regression caused by Commit: 5bd7ad2b225b ("Preserve the real value of -jN in MAKEFLAGS using jobserver.")

2017-10-30 Thread Tim Murphy
For my money -j is always a top-level setting. To have it per makefile and then let makefiles depend on that behaviour would open the door to lots of scary bugs. Regards, Tim On 29 October 2017 at 18:57, Paul Smith wrote: > On Thu, 2017-09-28 at 16:28 +1000, NeilBrown wrote: > > One of my Ma

Re: function uniq in make

2018-08-06 Thread Tim Murphy
You could try to write a new function and get it accepted but don't forget that there is a mechanism for loadable modules that allows you to make functions which can be dynamically loaded into an existing version of gnu make. Regards, Tim On Mon, 6 Aug 2018, 05:32 , wrote: > Hi, > > I miss the

Re: GNU Make for Java projects

2019-02-11 Thread Tim Murphy
Targets with multiple outputs have never been well supported in GNU make and despite appeals and the problem having existed forever and despite examples of commercial make implementations that support it well, it would not surprise me if support for it was something we could only hope for for our c

Re: Idea: Allow $(name ...) as an abbrevation of $(call name ....)

2019-06-10 Thread Tim Murphy
If you can't make first-class functions that are the equal of $(filter) or $(subst) or whatever, or indeed replace them, then it seems like a bit of a fudge for the sake of 4 characters. I think one could end up having huge discussions about this to a pretty limited benefit and miss spending the t

Re: Idea: Add command-line option for reporting potential makefile errors

2019-06-12 Thread Tim Murphy
If you use strace to detect dependencies you might have to do a thorough patent search. I will say no more because it's not my place to. Regards Tim On Wed, 12 Jun 2019, 03:09 David A. Wheeler, wrote: > Problem: > > Makefiles often have errors, and they lay dormant because they're > undetected

Re: Idea: Allow $(name ...) as an abbrevation of $(call name ....)

2019-06-13 Thread Tim Murphy
builtin functions can check their arguments to some extent. Interesting to wonder if user defined ones can. we don't even have $(equals) or a way to know the number of arguments that were supplied or any mathematical operations with which to compare. So when something is called wongly it charges on

Re: Idea: MAKE_SILENCEWARNINGS variable silences make warnings

2019-06-13 Thread Tim Murphy
Wouldn't it be safer to disable specific warnings for specific target(s), or specific sections of a makefile? On Tue, 11 Jun 2019 at 19:42, Paul Smith wrote: > On Tue, 2019-06-11 at 14:37 -0400, David A. Wheeler wrote: > > Create a new make special variable "MAKE_SILENCEWARNINGS". > > I have to

Re: Idea: Allow $(name ...) as an abbrevation of $(call name ....)

2019-06-13 Thread Tim Murphy
On Fri, 14 Jun 2019 at 03:17, Masahiro Yamada wrote: > On Fri, Jun 14, 2019 at 2:58 AM David A. Wheeler > wrote: > > > > On Thu, 13 Jun 2019 18:18:15 +0100, Tim Murphy > wrote: > > > builtin functions can check their arguments to some extent. > Interesting to

Re: Feature request / patch: dependency-only prerequisites

2019-07-09 Thread Tim Murphy
I quite like this idea because so many of us work on integrating things that we have no permission to modify and we need ways to make them work cleanly without messing them up. They are sort of "fix-up" or "patch" dependencies. I'm not sure the name makes this clear though. Regards, Tim On Sat

Re: Tail call elimination

2020-05-11 Thread Tim Murphy
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, wrote: > Hi Pete, > > I like your enthusiasm and understand the benefit. If this can

Re: Tail call elimination

2020-05-18 Thread Tim Murphy
I have often wanted to auto generate targets with progressive numbers to ensure uniqueness or count the number of times a particular macro is used and most especially to compare two numbers to see if they are numerically greater, less or equal. Example: generating rules from potentially very long

Re: Tail call elimination

2020-05-18 Thread Tim Murphy
$(shell) causes severe parse performance problems in large makefiles unless you use it extremely sparingly. [insert strong expression of frustration at make's deficiencies being treated as blessed] :-) Regards, Tim On Mon, 18 May 2020 at 19:18, Pete Dietl wrote: > > Each of these has an ob

Re: Tail call elimination

2020-05-18 Thread Tim Murphy
Re comparing strings: we already have ifeq and what I have often wanted is to have a function equivalent so I can use it in expressions. As bad as ifeq may be from the point of view of locale this need be no better to be an improvement over the unpleasant hacks I've had to use to get the same effec

Re: Tail call elimination

2020-05-19 Thread Tim Murphy
A question would be do we want to use GMP or are 64 bit ints enough? I'm inclined to say ints are ok of they are wide. Sorry to jump to such a basic question. I sort of think it helps frame a discussion about what people really want. I mostly needed addition, comparison and decrement of values th

Re: Tail call elimination

2020-05-20 Thread Tim Murphy
On Wed, 20 May 2020 at 15:47, Daniel Herring wrote: > Hi Pete, > > My objections to GMP: > > - major added dependency (Make needs to be widely portable, and it is > often part of a boot-strapping procedure. The core functionality needs to > be trim. Heavy lifting needs to be separable.) > > - s

Re: Tail call elimination

2020-05-21 Thread Tim Murphy
On Thu, 21 May 2020 at 13:08, Paul Smith wrote: > > > Other function syntax where there are "different" types of parameters > > or arguments (i.e. subst, patsubst, findstring, filter, etc.), use a > > syntax something like: > > > > $(math operator, value list) > > > > Consistent syntax patterns a

Re: Tail call elimination

2020-05-22 Thread Tim Murphy
I don't fully understand these motivations, which is again not to say they are not good - I just don't get them: 1) to implement everything in 1 function (or 2) - it seems like a slightly artificial requirement - one that a user of the feature wouldn't think to ask for. 2) documentation - again, pr

Re: math expressions (was: Re: Tail call elimination)

2020-05-25 Thread Tim Murphy
On Mon, 25 May 2020 at 18:34, Pete Dietl wrote: > Question about 64-bit, what happens when compiling make for a 32-bit > system? I don’t think c90 has `stdint.h`... maybe there’s something in > gnulib. Anyway, would we want to support 64 bit integers even on 32-bit > platforms? > > If at all poss

Re: math expressions (was: Re: Tail call elimination)

2020-05-28 Thread Tim Murphy
On Thu, 28 May 2020 at 22:07, Pete Dietl wrote: > Upon taking a look at gnulib, I found that they have arithmetic wrap > functions which guarantee wrapping. > We can use these functions to guarantee that overflow will just wrap > around. > > Let's leave the shift operators out for now. > > comp i

Re: [bug #61594] suggest new $(hash ...) function

2021-12-01 Thread Tim Murphy
I have added such a function as a loadable library before - you might consider that if you can't get it done another way. https://github.com/tnmurphy/extramake look at hash.c. To try it : cd example && make -f example.mk > I called the function siphash24 because that's what I used - and its' d

Re: [bug #61594] suggest new $(hash ...) function

2021-12-06 Thread Tim Murphy
How does Python or Javascript manage with their map implementations that use a hash to select a bucket? One would want a low collision hash and that's really all that's needed to make unique filenames from input data that would be too long to just concatenate. Regards, Tim On Sun, 5 Dec 2021 at

Re: [PATCH v4] Add '--shuffle' argument support

2022-02-20 Thread Tim Murphy
Ideally one would want to automatically learn about what depended on what from recording the orders that were successful versus the orders that had failures. Regards, Tim On Sun, 20 Feb 2022, 12:25 Sergei Trofimovich, wrote: > On Sun, Feb 20, 2022 at 10:30:10AM +, Sergei Trofimovich wrote:

Re: [bug #62936] Confusing description of chained rules in the manual

2022-10-18 Thread Tim Murphy
On Sat, 15 Oct 2022 at 23:57, Paul D. Smith wrote: > Follow-up Comment #1, bug #62936 (project make): > > I don't know why you say "you cannot update a non-existing file": make does > this all the time! When you start make in a clean directory there are no > object files, for example, and so tho

Re: [bug #62936] Confusing description of chained rules in the manual

2022-10-23 Thread Tim Murphy
On Sat, 22 Oct 2022, 20:33 Paul Smith, wrote: > 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 wor

Re: [bug #64571] Add option to print targets

2023-11-01 Thread Tim Murphy
On Wed, 1 Nov 2023 at 13:58, Paul D. Smith wrote: > GNU Make is used by so many people for so many things, and I'm leery of > creating some new facility that ends up being "not really right" for what > people want to do, but that then must be maintained forever going forward. > It seems to me to

Re: [bug #64571] Add option to print targets

2023-11-16 Thread Tim Murphy
On Thu, 16 Nov 2023 at 09:11, Tim wrote: > Follow-up Comment #4, bug #64571 (project make): > > > > I'm just skeptical that this wouldn't degenerate into a morass of > conflicting requests for new features. > > Maybe. But this is clearly a highly demanded feature just for > auto-complete/dis

Ability to print the make database as json - experimental

2023-12-28 Thread Tim Murphy
to keep everything separated for now. I've also not mentioned that for the "MakefileName" in the example I actually have inserted the contents of "$(MAKEFILE_LIST)" as that seems more correct in a way. There is an attached json produced by running on make itself - which is all the testing I've done - this is a hack and probably needs real test data and a load of tests. Most of the code is in src/jprint.c. I had to export some things in questionable ways and that is one of many reasons why I would never expect this feature to get back into GNU make proper. I just think it can exist in a fork and potentially be of use to someone. Regards, Tim Murphy makefile-30281.json.gz Description: application/gzip

Re: Ability to print the make database as json - experimental

2023-12-29 Thread Tim Murphy
t; > generates illegal JSON: > Thanks for that - Ive made sure to use the string escaper with defines. :-) You should see the changes pushed to the branch now Thanks so much for taking a look at it! Best regards, Tim Murphy

Re: Ability to print the make database as json - experimental

2025-03-18 Thread Tim Murphy
ewriting makefiles - either as new makefiles or as some other build system. Regards, Tim Murphy On Thu, 28 Dec 2023 at 22:22, Tim Murphy wrote: > Hi > I've often wanted to extract information from a large build in some way > that's more reliable than grep. The GNU ma

Re: Ability to print the make database as json - experimental

2025-03-22 Thread Tim Murphy
On Thu, 20 Mar 2025 at 21:07, David A. Wheeler wrote: > > > > On Mar 18, 2025, at 1:21 PM, Tim Murphy wrote: > > > > I've recently updated and rebased my experimental fork of make with the > branch that dumps the internal database of the makefile to JSON for

Re: pullrequest feat

2025-07-02 Thread Tim Murphy
Hi :-) That's a cool idea. Can you send us the diff or a link to the diff? Regards, Timothy Murphy On Wed, 2 Jul 2025 at 14:00, xf liao wrote: > Hello everyone, my name is Nico, and I’m from China. I’m a senior IT > systems architect, and I use Make in my daily work to build IT environments.

Re: [bug #67265] $(file) in commands is executed too early

2025-06-30 Thread Tim Murphy
On Mon, 30 Jun 2025, 16:41 Zack Weinberg, wrote: > Follow-up Comment #3, bug #67265 (group make): > > 1. The point of the bug report is that $(file) *should be* processed later > than other $(...) constructs. Having said that, it would probably be > sufficient, and perhaps a less invasive change

Re: [bug #67265] $(file) in commands is executed too early

2025-06-30 Thread Tim Murphy
On Mon, 30 Jun 2025 at 18:14, Zack Weinberg wrote: > > p.s. I do insist that this is a bug, not a feature request. The existing > behavior is strictly less useful than the requested behavior, and > surprising > to boot. If I understand you then you want to use $(file) to get around the command

Re: pullrequest feat

2025-07-02 Thread Tim Murphy
On Wed, 2 Jul 2025 at 22:40, Bahman Movaqar wrote: > Somehow in the same vein is the work I did in bmakelib: > https://github.com/bahmanm/bmakelib/blob/main/doc/logged.md > That library is impressive. I wondered if GNU make could benefit from a function that fetches the current time - this migh

<    1   2