From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 9 May 2000 12:15:32 -0400 From: rob pike rob@plan9.bell-labs.com Subject: [9fans] Plan 9 future (Was: Re: Are the Infernospaces gone?) Topicbox-Message-UUID: a8ee5e52-eac8-11e9-9e20-41e7f4b1d025 Message-ID: <20000509161532.UI-UhfeihBY4aVt40_aPnbHtQXg27J0GEIQ8OflSMxM@z> One difference being that our equivalent of bind() binds only the chunk that contains the object we are binding. I think this is a big conceptual mistake. It means that the effect of the bind depends on the invisible underlying structure of the name space rather than its visible appearance. Since the point of a name space is to give intuitive names to arbitrary structure, your design is sure to confuse. Worse, I think it negates the reasons for the exercise. As an example, our /bin and /dev directories are complex union directories. The ability to rebind /bin or /dev en masse is a boon for programs that wish to construct private name spaces, for security or other purposes. In your world, programs that wish to do this must reconstruct the union directories, a serious obstacle for things like shell scripts. I understand your desire to avoid loops, but a) it's easy to make the tools that walk trees robust against loops and b) it's not nearly as big a deal as you think (well, your phrase is "rather bad", hardly a rallying cry in support of your design). You're second-guessing yourself into a confusing situation, appealing to the implementation to argue for the behavior you provide instead of offering transparent, clean behavior. -rob