> From: Mike Kupfer <mike.kupfer at sun.com>
> To: April Chin <April.Chin at eng.sun.com>, Korn Shell 93 
> integration/migration 
project discussion <ksh93-integration-discuss at opensolaris.org>
> Subject: Re: [ksh93-integration-discuss] getconf 
> Date: Thu, 05 Oct 2006 16:49:32 -0700
> 
> >>>>> "April" == April Chin <April.Chin at eng.sun.com> writes:
> 
> April> The built-in behavior *may* depend on $PATH, if that built-in is
> April> bound to a pathname.  [...] In the default ksh93, getconf is a
> April> standalone built-in, not bound to a path
> 
> Ah, I see.  What determines whether a built-in is bound to a pathname?
> (Put another way: why are some built-ins bound and others, like getconf,
> not bound?)

The unbound built-ins (e.g., printf, echo) and those bound to /bin
(cat, chown, head, mkdir, rmdir, tee, uniq, wc ) were determined to be 
compatible with the corresponding Solaris /usr/bin utilities.
Note that in Solaris ksh, there are no such built-ins.
So a ksh93 user in the Solaris OS would see compatible behavior executing
"cat" (no pathname prefix, but presumably with the usual /bin or /usr/bin
on their path) as they would in Solaris /usr/bin/ksh.

The built-ins which are incompatible are bound to the /usr/ast/bin
pathname only.  The /bin-bound pathnames are also bound to /usr/ast/bin.
A ksh93 user invokes these built-ins by putting /usr/ast/bin in the
beginning of their path.

Previously, I believe all built-ins were unbound.  In ksh93, built-ins were
added for the utilities, for increased performance.
Binding the utility built-in to the /bin pathname allowed them to only 
be run if the compatible utility in /bin would have been invoked.
In an AT&T environment the /bin utility would be exactly
the same as the built-in.  In the Solaris environment, we need to make 
sure the built-in is upwardly compatible with the Solaris /bin utility 
before enabling it by default in ksh93.

        April
        April

> 
> mike


Reply via email to