From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Haertel Message-Id: <200201211958.g0LJwFY93587@ducky.net> To: 9fans@cse.psu.edu Subject: Re: [9fans] Getting started in Plan9 - help In-Reply-To: <20020121184840.6A59C19981@mail.cse.psu.edu> Date: Mon, 21 Jan 2002 11:58:15 -0800 Topicbox-Message-UUID: 3fcf0168-eaca-11e9-9e20-41e7f4b1d025 >> If you put the command history editor in the shell, then you can only >> use it in the shell; if you use another shell from time to time, then > >Not if you put it in a library and link the library >against every single program that could ever possibly >want to read input! Or better yet, put it in rio. Then every program gets the feature, and nobody has to remember to use the funny library. Plus, libraries have some troubles of their own.. * If static libraries, then you have to relink everything every time you change the library. * If dynamic linked libraries, you have taken the first step on the slippery slope to the land of gratuitious complexity, where even a simple "hello, world" C program can execute 100000 instructions before it actually prints anything. (No, I'm not kidding.) For some reason, people seem to think adding features in dynamic libraries is "free". Only problem with putting it in rio is that you don't have quite enough information there. To do intelligent history and completion, you really want to know a few things like what program you're doing it for, what their current directory is, what their environment variables are, and so on.