From owner-freebsd-ports Wed Feb 20 19:57:35 2002 Delivered-To: freebsd-ports@freebsd.org Received: from www.smluc.org (smluc.org [206.138.44.17]) by hub.freebsd.org (Postfix) with SMTP id EAB8D37B404 for ; Wed, 20 Feb 2002 19:57:32 -0800 (PST) Received: (qmail 23230 invoked by uid 1000); 21 Feb 2002 03:57:39 -0000 Date: 21 Feb 2002 03:57:39 -0000 Message-ID: <20020221035739.23229.qmail@www.smluc.org> From: erik@www.smluc.org To: freebsd-ports@freebsd.org Subject: Re: Speeding up bsd.ports.mk Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Maxim Sobolev said: > Because the code in question invokes child makes like a mad. Each child > when invoked have to parse huge bsd.port.mk and associated files, spawn > many subshells to get environment (uname(1) and friends) and so on, > which obviously takes a lot of CPU time. I'm currently making a good > progress in tweaking our own bsd.port.mk - so far I got decrease of the > build system overhead by 75% (now it 4 times less than was before). I'm > testing it using very basic "empty" port, do dozen `make all clean' > invocations and measure the time it takes to complete the run. > > I hope to get a patch for review/testing tomorrow. Stay tuned. :) > > -Maxim ugh, ".USE" actually does a fork/exec/wait deal? Could it be re-written to do in-line parsing, possibly building a graph of read files, maybe do it like a real programming language? or too much effort when re-writing as a parse script is easier? :) Maybe I should shut up if I'm not going to bother looking at the source :) -Erik [http://math.smsu.edu/~erik] The opinions expressed by me are not necessarily opinions. In all probability, they are random rambling, and to be ignored. Failure to ignore may result in severe boredom or confusion. Shake well before opening. Keep Refrigerated. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message