Imported from ../bash-2.04.tar.gz.
[platform/upstream/bash.git] / examples / loadables / README
1 Some examples of ready-to-dynamic-load builtins.  Most of the
2 examples given are reimplementations of standard commands whose
3 execution time is dominated by process startup time.  The
4 exceptions are sleep, which allows you to sleep for fractions
5 of a second, finfo, which provides access to the rest of the
6 elements of the `stat' structure that `test' doesn't let you
7 see, and pushd/popd/dirs, which allows you to compile them out
8 of the shell.
9
10 All of the new builtins in ksh93 that bash didn't already have
11 are included here, as is the ksh `print' builtin.
12
13 The configure script in the top-level source directory uses the
14 support/shobj-conf script to set the right values in the Makefile,
15 so you should not need to change the Makefile.  If your system
16 is not supported by support/shobj-conf, and it has the necessary
17 facilities for building shared objects and support for the
18 dlopen/dlsyn/dlclose/dlerror family of functions, please make
19 the necessary changes to support/shobj-conf and send the changes
20 to bash-maintainers@gnu.org.
21
22 Loadable builtins are loaded into a running shell with
23
24         enable -f filename builtin-name
25
26 enable uses a simple reference-counting scheme to avoid unloading a
27 shared object that implements more than one loadable builtin before
28 all loadable builtins implemented in the object are removed.
29
30 Many of the details needed by builtin writers are found in hello.c,
31 the canonical example.  There is no real `builtin writers' programming
32 guide'.  The file template.c provides a template to use for creating
33 new loadable builtins.