From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kevin Ryde Newsgroups: gmane.lisp.guile.devel Subject: Re: Evolution & optimization of the module system Date: Mon, 26 Feb 2007 10:37:34 +1100 Message-ID: <87649p3j29.fsf@zip.com.au> References: <87sld4g6io.fsf@chbouib.org> <877iufhwj6.fsf@zip.com.au> <87irdyxzy3.fsf@laas.fr> <87wt2bxibp.fsf@zip.com.au> <87lkiq8s5k.fsf@laas.fr> <87bqjl25nk.fsf@zip.com.au> <87lkipovzz.fsf@laas.fr> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1172446678 6243 80.91.229.12 (25 Feb 2007 23:37:58 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 25 Feb 2007 23:37:58 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Feb 26 00:37:52 2007 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HLSwB-0004yM-Bb for guile-devel@m.gmane.org; Mon, 26 Feb 2007 00:37:51 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HLSwB-00019v-DL for guile-devel@m.gmane.org; Sun, 25 Feb 2007 18:37:51 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HLSw8-00018F-Ow for guile-devel@gnu.org; Sun, 25 Feb 2007 18:37:48 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HLSw6-000166-UL for guile-devel@gnu.org; Sun, 25 Feb 2007 18:37:48 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HLSw6-000160-SJ for guile-devel@gnu.org; Sun, 25 Feb 2007 18:37:46 -0500 Original-Received: from mailout2-8.pacific.net.au ([61.8.2.231] helo=mailout2.pacific.net.au) by monty-python.gnu.org with esmtp (Exim 4.52) id 1HLSw6-0000Jr-8V for guile-devel@gnu.org; Sun, 25 Feb 2007 18:37:46 -0500 Original-Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.2.162]) by mailout2.pacific.net.au (Postfix) with ESMTP id 34FCC10B3BD for ; Mon, 26 Feb 2007 10:37:38 +1100 (EST) Original-Received: from localhost (ppp246F.dyn.pacific.net.au [61.8.36.111]) by mailproxy1.pacific.net.au (Postfix) with ESMTP id 16D538C0A for ; Mon, 26 Feb 2007 10:37:41 +1100 (EST) Original-Received: from gg by localhost with local (Exim 4.63) (envelope-from ) id 1HLSvu-0001ae-Pr for guile-devel@gnu.org; Mon, 26 Feb 2007 10:37:34 +1100 Mail-Copies-To: never In-Reply-To: <87lkipovzz.fsf@laas.fr> (Ludovic =?iso-8859-1?Q?Court=E8s's?= message of "Fri, 23 Feb 2007 14:15:44 +0100") User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) X-detected-kernel: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:6562 Archived-At: ludovic.courtes@laas.fr (Ludovic Court=E8s) writes: > > Well it _does_ hurt, even with real-life numbers of imports, as the > experiments I made tend to show If that's true you'll have to start from the beginning again, everyone's eyes glaze over at "1000 modules". > From a performance viewpoint, the question is: how can we > provide the fastest variable lookup and duplicate binding detection, > i.e., using what data structures and algorithms? There's no need to think too hard about the data until the innermost code dealing with them is in C. I guess the general problem is sets of names to be combined and looked up with certain precedence. I can't see anything much to help that without using quite a bit of extra memory (which of course is bad for gc, and bad for the system generally because it's unshared). One possibility for duplicates would be lazy checking, only check for a clash when actually using a symbol. That's sort of the prolog theory: don't worry now about what might never come up. I suspect the total work would end up greater though. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel