From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 20 Oct 2008 10:21:26 -0700 From: "Roman V. Shaposhnik" In-reply-to: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Message-id: <1224523286.4534.7.camel@goose.sun.com> MIME-version: 1.0 Content-type: text/plain Content-transfer-encoding: 7BIT References: <26c1814ccfc8559a96987385a144c4e7@quanstro.net> <1224063742.4463.145.camel@goose.sun.com> <64debd1118fe0541e4b377bfbb18b2a2@coraid.com> <1224314778.32175.28.camel@goose.sun.com> Subject: Re: [9fans] several things Topicbox-Message-UUID: 227019ea-ead4-11e9-9d60-3106f5b1d025 On Mon, 2008-10-20 at 17:09 +0300, Yaroslav wrote: > > Or here's an easier way to ask the same: is there a simple reason > > for > > $ bind /foo /really/nested/bar > > always triggering walks into /foo and /really/nested/bar and not > > allowing for "lazy evaluation"? > > The evaluation of bind argument "happens at the time of the bind, not > when the binding is later used." -- see bind(2). That is well understood. But perhaps you've misunderstood my question (well, either that or I wasn't too articulate asking it). The question was really about *why* such a behavior was chosen to begin with? On the surface it seems that namespace-as-a-substitution table is not such a bad idea AND it adds flexibility. After all, it is trivial to emulate eager evaluation if you have lazy one implemented, but not the other way around. Of course, "you don't argue with Ken" (c) ;-) Which means that there's a pretty good reason for bind evaluation to be eager, its just that it doesn't seem obvious to me. Hence the question. Thanks, Roman.