From owner-freebsd-current@FreeBSD.ORG Wed Apr 14 18:09:40 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E6F1116A4CE for ; Wed, 14 Apr 2004 18:09:40 -0700 (PDT) Received: from smtp0.server.rpi.edu (smtp0.server.rpi.edu [128.113.53.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8C0C343D54 for ; Wed, 14 Apr 2004 18:09:40 -0700 (PDT) (envelope-from drosih@rpi.edu) Received: from [128.113.24.47] (gilead.netel.rpi.edu [128.113.24.47]) by smtp0.server.rpi.edu (8.12.8/8.12.8) with ESMTP id i3F19bEd002359; Wed, 14 Apr 2004 21:09:38 -0400 Mime-Version: 1.0 X-Sender: drosih@mail.rpi.edu Message-Id: In-Reply-To: <20040414232927.GA56961@xor.obsecurity.org> References: <20040413121925.GB29867@voodoo.oberon.net> <407C4035.8020609@ciam.ru> <1081896823.772.58.camel@klotz.local> <20040414131949.3A56E43D31@mx1.FreeBSD.org> <20040414232927.GA56961@xor.obsecurity.org> Date: Wed, 14 Apr 2004 21:09:36 -0400 To: Kris Kennaway , Robin Schoonover From: Garance A Drosihn Content-Type: text/plain; charset="us-ascii" ; format="flowed" X-Scanned-By: CanIt (www . canit . ca) cc: FreeBSD Current Subject: Re: Second "RFC" on pkg-data idea for ports X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Apr 2004 01:09:41 -0000 At 4:29 PM -0700 4/14/04, Kris Kennaway wrote: >On Wed, Apr 14, 2004, Robin Schoonover wrote: > > > > I use make -V a lot, and it's slow (every time you run it, make > > has to reread all the bsd.*.mk files, such as bsd.port.mk). The > > speed isn't much of an issue when you only do one or two ports, > > but when you are examining the entire ports collection, you notice. > > >> That said, I'd still rather use a makefile based ports system anyway. > >Necessarily, *any* file format you choose will need to parse >auxilliary files analogous to bsd.port.mk. There's just no getting >around the fact that ports rely on a lot of infrastructure and >conditional evaluation to set their variables (although it can be >optimized relative to what we have in CVS today [1]). > >Note that it's intentional that a lot of things are centralized >in bsd.port.mk where they may be easily maintained, instead of >being set in 10000 individual makefiles. > >Kris > >[1] As a test, I recently was able to cut index build times by >60% from 5 to a little over 2 minutes on test box with fast disks, >by stripping out (almost) everything non-essential from the 'make >describe' code path. Personally, I think you can get quite a penalty by trying to perform too much string-manipulation by using make/sh variables combined with all kinds of fancy invocations of sed, awk, etc. In other situations (which are totally unrelated to ports), I have greatly improved performance of some operation by replacing some clever shell scripts with ruby or perl. Neither of those are speed demons compared to C, but they make a huge difference for something which is using sed/awk for lots of low-level string manipulation. My hope is that if I get far enough along into the pkg-data project, the result would be that many of the common operations would be faster. However, right now I can only say "that is one of my goals", and I can't prove it would actually happen... -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu