fa9e4066f08beec538e775443c5be79dd423fcabahrensThis directory, and its subdirectories contain the source code
fa9e4066f08beec538e775443c5be79dd423fcabahrensfor ksh-93; the language described in the second addition of
fa9e4066f08beec538e775443c5be79dd423fcabahrensthe book, "The KornShell Command and Programming Language," by
fa9e4066f08beec538e775443c5be79dd423fcabahrensMorris Bolsky and David Korn which is published by Prentice Hall.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksksh-93 has been compiled and run on several machines with several
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksoperating systems. The end of this file contains a partial list of
fa9e4066f08beec538e775443c5be79dd423fcabahrensoperating systems and machines that ksh-93 has been known to run on.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe layout of files for ksh-93 has changed somewhat since ksh-88,
fa9e4066f08beec538e775443c5be79dd423fcabahrensthe last major release. Most of the source code for ksh remains in
fa9e4066f08beec538e775443c5be79dd423fcabahrensthe sh directory. However, the shell editing and history routines
fa9e4066f08beec538e775443c5be79dd423fcabahrensare in the edit sub-directory. The code for shell built-ins is
fa9e4066f08beec538e775443c5be79dd423fcabahrensin the bltins directory. The data directory contains read-only
fa9e4066f08beec538e775443c5be79dd423fcabahrensdata tables and messages that are used by the shell. The include
fa9e4066f08beec538e775443c5be79dd423fcabahrensfiles remain in the include directory and the shlib directory
fa9e4066f08beec538e775443c5be79dd423fcabahrensis gone. The features directory replaces the older install
fa9e4066f08beec538e775443c5be79dd423fcabahrensdirectory. The method for generating systems specific feature
fa9e4066f08beec538e775443c5be79dd423fcabahrensinformation has changed substantially.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe Makefile file contains several compilation options that can be set
fa9e4066f08beec538e775443c5be79dd423fcabahrensbefore compiling ksh. Options are of the form SHOPT_option and become
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarks#define inside the code. These options are set to their recommended
fa9e4066f08beec538e775443c5be79dd423fcabahrensvalue and some of these may disappear as options in future releases.
fa9e4066f08beec538e775443c5be79dd423fcabahrensA value of 0, or no value represents off, 1 represents on.
fa9e4066f08beec538e775443c5be79dd423fcabahrensNote that == is needed, not =, because these are nmake state variables
fa9e4066f08beec538e775443c5be79dd423fcabahrensand changing their value will cause all modules that could be affected
fa9e4066f08beec538e775443c5be79dd423fcabahrensby this change to be recompiled.
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe options have the following defaults and meanings:
fa9e4066f08beec538e775443c5be79dd423fcabahrens ACCT off Shell accounting.
fa9e4066f08beec538e775443c5be79dd423fcabahrens ACCTFILE off Enable per user accounting info.
fa9e4066f08beec538e775443c5be79dd423fcabahrens AUDIT off For auditing specific users
fa9e4066f08beec538e775443c5be79dd423fcabahrens AUDITFILE "/etc/ksh_audit"
fa9e4066f08beec538e775443c5be79dd423fcabahrens APPEND on Allows var+=val string and array append.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks BASH off Bash compatibility mode. It is not fully implemented
fa9e4066f08beec538e775443c5be79dd423fcabahrens and is experimental.
fa9e4066f08beec538e775443c5be79dd423fcabahrens BRACEPAT on C-shell type abc{d,e}f style file generation
fa9e4066f08beec538e775443c5be79dd423fcabahrens CMDLIB_BLTIN off Makes all commands in libcmd.a builtins. The
fa9e4066f08beec538e775443c5be79dd423fcabahrens SH_CMDLIB_DIR nmake state variable can be used to
5a5eeccada4b11bc692e9a5015d5f4a4f188226cmarks specify a directory.
fa9e4066f08beec538e775443c5be79dd423fcabahrens CMDLIB_DIR off Sets CMDLIB_BLTIN=1 and provides a default value
fa9e4066f08beec538e775443c5be79dd423fcabahrens of "/opt/ast/bin" for SH_CMDLIB_DIR.
fa9e4066f08beec538e775443c5be79dd423fcabahrens COMPOUND_ARRAY
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks on Allows all components of compound variables except the
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks first to be any string by enclosing in [...]. It also
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks allows components other than the last to be arrays.
fa9e4066f08beec538e775443c5be79dd423fcabahrens This is experimental and only partially complete.
fa9e4066f08beec538e775443c5be79dd423fcabahrens CRNL off <cr><nl> treated as <nl> in shell grammar.
fa9e4066f08beec538e775443c5be79dd423fcabahrens DYNAMIC on Dynamic loading of builtins. (Requires dlopen() interface.)
fa9e4066f08beec538e775443c5be79dd423fcabahrens ECHOPRINT off Make echo equivalent to print.
fa9e4066f08beec538e775443c5be79dd423fcabahrens ESH on Compile with emacs command line editing. The original
fa9e4066f08beec538e775443c5be79dd423fcabahrens emacs line editor code was provided by Mike Veach at IH.
fa9e4066f08beec538e775443c5be79dd423fcabahrens FILESCAN on Experimental option that allows fast reading of files
fa9e4066f08beec538e775443c5be79dd423fcabahrens using while < file;do ...; done and allowing fields in
fa9e4066f08beec538e775443c5be79dd423fcabahrens each line to be accessed as positional parameters.
fa9e4066f08beec538e775443c5be79dd423fcabahrens FS_3D off For use with 3-D file system. Enabled automatically for
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks sytems with dynamic linking.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks KIA off Allow generation of shell cross reference database with -I.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks MULTIBYTE on Multibyte character handling. Requires mblen() and
fa9e4066f08beec538e775443c5be79dd423fcabahrens mbctowc().
fa9e4066f08beec538e775443c5be79dd423fcabahrens NAMESPACE on Allows namespaces. This is experimental, incomplete
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks and undocumented.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks OLDTERMIO off Use either termios or termio at runtime.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks OO on Experimental object oriented extension. This option
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks should disappear soon.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks OPTIMIZE on Optimize loop invariants for with for and while loops.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks P_SUID off If set, all real uids, greater than or equal to this
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks value will require the -p flag to run suid/sgid scripts.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks PFSH off Compile with support for profile shell.
fa9e4066f08beec538e775443c5be79dd423fcabahrens RAWONLY off Turn on if the vi line mode doesn't work right unless
fa9e4066f08beec538e775443c5be79dd423fcabahrens you do a set -o viraw.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks SEVENBIT off Strip the eigth bit from characters.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks SPAWN off Use spawn as combined fork/exec. May improve speed on
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks some systems.
fa9e4066f08beec538e775443c5be79dd423fcabahrens STATS on Add .sh.stats compound variable.
fa9e4066f08beec538e775443c5be79dd423fcabahrens SUID_EXEC on Execute /etc/suid_exec for setuid, setgid script.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks TIMEOUT off Set this to the number of seconds for timing out and
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks exiting the shell when you don't enter a command. If
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks non-zero, TMOUT can not be set larger than this value.
fa9e4066f08beec538e775443c5be79dd423fcabahrens TYPEDEF on Enable typeset type definitions.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks VSH on Compile with vi command line editing. The original vi
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks line editor code was provided by Pat Sullivan at CB.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe following compile options are set automatically by the feature testing:
fa9e4066f08beec538e775443c5be79dd423fcabahrens DEVFD Set when /dev/fd is a directory that names open files.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks SHELLMAGIC
fa9e4066f08beec538e775443c5be79dd423fcabahrens Set on systems that recognize script beginning with #! specially.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks VPIX Set on systems the have /usr/bin/vpix program for running MS-DOS.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIn most instances, you will generate ksh from a higher level directory
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markswhich also generates libcmd and libast libraries on which ksh depends.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksHowever, it is possible to generate ksh, with by running make -f ksh.mk
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksin this directory. The ksh.mk file was generated from the nmake Makefile.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIf you do not have make or nmake, but do have a Version 7 UNIX compatible
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksshell, then you can run the script mamexec < Mamfile to build ksh.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIf you have nmake, version 2.3 or later, you can use it without the -f ksh.mk.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIn either case, ksh relies on libraries libast and libcmd which must be
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksbuilt first. The binary for ksh becomes the file named ./ksh which can
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksbe copied to where ever you install it.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIf you use old make or the Mamfile, and you system has dynamic shared
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markslibraries, then you should define the variables mam_cc_static and
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksmam_cc_dynanamic as the compiler options that request static linking
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksand dynamic linking respectively. This will decrease the number of
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksshared libraries that ksh need and cut startup time substantially.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe makefile should also generate shcomp, a program that will precompile
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksa script. ksh93 is able to recognize files in this format and process
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksthem as scripts. You can use shcomp to send out scripts when you
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksdon't want to give away the original script source.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIt is advisable that you put the line PWD=$HOME;export PWD into the
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks/etc/profile file to reduce initialization time for ksh.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksTo be able to run setuid/setgid shell scripts, or scripts without read
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markspermission, the SUID_EXEC compile option must be on, and ksh must be installed
fa9e4066f08beec538e775443c5be79dd423fcabahrensin the /bin directory, the /usr/bin directory, the /usr/lbin directory,
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksor the /usr/local/bin directory and the name must end in sh. The program
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markssuid_exec must be installed in the /etc directory, must be owned by root,
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksand must be a suid program. If you must install ksh in some other directory
fa9e4066f08beec538e775443c5be79dd423fcabahrensand want to be able to run setuid/setgid and execute only scripts, then
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksyou will have to change the source code file sh/suid_exec.c explicitly.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksIf you do not have ksh in one of these secure locations, /bin/sh will
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksbe invoked with the -p options and will fail when you execute a setuid/setgid
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksand/or execute only script. Note, that ksh does not read the .profile
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksor $ENV file when it the real and effective user/group id's are not
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksequal.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe tests sub-directory contains a number of regression tests for ksh.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksTo run all these tests with the shell you just built, go to the tests
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksdirectory and run the command
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks SHELL=$dir/ksh $dir/ksh shtests
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markswhere dir is the directory of the ksh you want to test.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe file PROMO.mm is an advertisement that extolls the virtues of ksh.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe file sh.1 contains the troff (man) description of this Shell.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe file nval.3 contains the troff (man) description of the name-value
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markspair library that is needed for writing built-ins that need to
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksaccess shell variables.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe file sh.memo contains a draft troff (mm) memo describing ksh. The
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksfile RELEASE88 contains the changes made for ksh88. The file RELEASE93
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491markscontains the changes made in this release since ksh-88. The file
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksRELEASE contains bug fixes made in this release since ksh-88. The file
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksCOMPATIBILITY contains a list of incompatibilities with ksh-88. The
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksfile bltins.mm is a draft troff (mm) memo describing how to write
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksbuilt-in commands that can be loaded at run time.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marks
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksMost of the work for internationalization has been done with ksh93.
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksThe file ksh.msg is a generated file that contains error messages
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksthat need to be translated. In addition, the function translate()
3eb3c57322eccc9d4c2880c26f57ceb5a85c2491marksin sh/init.c has to be completed to interface with the dictionary
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarkslookup. The translate function takes two argument, the string
fa9e4066f08beec538e775443c5be79dd423fcabahrensthat is to be translated and a type which is
fa9e4066f08beec538e775443c5be79dd423fcabahrens 0 when a library string needs translation.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 1 when one of the error messages in ksh.msg needs translation.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2 when a string in a script needs translation. You use a $ in front
fa9e4066f08beec538e775443c5be79dd423fcabahrens of a double quoted string in a script to indicate that it
fa9e4066f08beec538e775443c5be79dd423fcabahrens needs translation. The -D option for ksh builds the dictionary.
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe translate routine needs to return the translated message.
fa9e4066f08beec538e775443c5be79dd423fcabahrensFor dictionaries that need to use a numeric key, it should be
fa9e4066f08beec538e775443c5be79dd423fcabahrenspossible to use the strhash() function to generate numbers to
fa9e4066f08beec538e775443c5be79dd423fcabahrensgo along with each of the messages and to use this number both
fa9e4066f08beec538e775443c5be79dd423fcabahrenswhen generating the dictionary and when converting strings.
fa9e4066f08beec538e775443c5be79dd423fcabahrensIf you encounter error messages of type 1 that are not be translated via
fa9e4066f08beec538e775443c5be79dd423fcabahrensthis translate() function send mail to the address below.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensPlease report any problems or suggestions to:
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensdgk@research.att.com
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensksh93 has been compiled and alpha tested on the following. An asterisk
fa9e4066f08beec538e775443c5be79dd423fcabahrenssignifies that ksh has been installed as /bin/sh on this machine.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens* Sun OS 4.1.[123] on sparc.
fa9e4066f08beec538e775443c5be79dd423fcabahrens Sun OS 4.1.1 on sun.
fa9e4066f08beec538e775443c5be79dd423fcabahrens Solaris 2.[1-9] on sparc.
fa9e4066f08beec538e775443c5be79dd423fcabahrens Solaris 2.[4-8] on X86.
fa9e4066f08beec538e775443c5be79dd423fcabahrens HP/UX 8 on HP-9000/730.
fa9e4066f08beec538e775443c5be79dd423fcabahrens HP/UX 9 on HP-9000/730.
fa9e4066f08beec538e775443c5be79dd423fcabahrens HP/UX 10 on HP-9000/857.
fa9e4066f08beec538e775443c5be79dd423fcabahrens HP/UX 11 on pa-risc.
fa9e4066f08beec538e775443c5be79dd423fcabahrens System V Release 3 on Counterpoint C19
fa9e4066f08beec538e775443c5be79dd423fcabahrens System V Release 4 on AT&T Intel 486.
fa9e4066f08beec538e775443c5be79dd423fcabahrens System V Release 4 on NCR 4850 Intel 486.
fa9e4066f08beec538e775443c5be79dd423fcabahrens IRIX Release 4.0.? System V on SGI-MIPS.
fa9e4066f08beec538e775443c5be79dd423fcabahrens IRIX Release 5.1 System V on SGI-MIPS.
fa9e4066f08beec538e775443c5be79dd423fcabahrens IRIX Release 6.[1-5] System V on SGI-MIPS.
fa9e4066f08beec538e775443c5be79dd423fcabahrens System V Release 3.2 on 3B2.
fa9e4066f08beec538e775443c5be79dd423fcabahrens UTS 5.2.6 on Amdahl 3090,5990,580.
fa9e4066f08beec538e775443c5be79dd423fcabahrens System V Release 3.2 on i386.
fa9e4066f08beec538e775443c5be79dd423fcabahrens SMP_DC.OSx olivetti dcosx MIServer-S 2/128.
fa9e4066f08beec538e775443c5be79dd423fcabahrens SMP_DC.OSx Pyramid dcosx MIServer-S 2/160 r3000.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 4.3BSD on Vax 8650.
fa9e4066f08beec538e775443c5be79dd423fcabahrens AIX release 2 on RS6000.
fa9e4066f08beec538e775443c5be79dd423fcabahrens AIX 3.2 on RS6000.
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 1.X on Intel
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 2.X on Intel
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 2.X on Alpha
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 2.X on Alpha
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 2.X on OS/390
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 2.X on sparc
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux 2.4 on intel itanium 64
fa9e4066f08beec538e775443c5be79dd423fcabahrens Linux Slackware on sparc64
fa9e4066f08beec538e775443c5be79dd423fcabahrens* Linux ARM on i-PAQ
fa9e4066f08beec538e775443c5be79dd423fcabahrens OSF1 on DEC alpha.
fa9e4066f08beec538e775443c5be79dd423fcabahrens OSF4 on DEC alpha.
fa9e4066f08beec538e775443c5be79dd423fcabahrens UMIPS 4.52 on mips.
fa9e4066f08beec538e775443c5be79dd423fcabahrens BSD-i [2-4] on X86.
fa9e4066f08beec538e775443c5be79dd423fcabahrens OpenBSD on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens NetBSD on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens FreeBSD on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens NeXT on Intel X86.
fa9e4066f08beec538e775443c5be79dd423fcabahrens NeXT on HP.
fa9e4066f08beec538e775443c5be79dd423fcabahrens* Windows NT using UWIN on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens* Windows NT using UWIN on alpha
fa9e4066f08beec538e775443c5be79dd423fcabahrens Windows NT using Cygwin on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens Windows NT with NutCracker libraries.
fa9e4066f08beec538e775443c5be79dd423fcabahrens Windows NT with Portage libraries.
fa9e4066f08beec538e775443c5be79dd423fcabahrens Windows 3.1 using custom C library.
fa9e4066f08beec538e775443c5be79dd423fcabahrens OpenEdition on MVS
fa9e4066f08beec538e775443c5be79dd423fcabahrens Darwin OS X on PPC
fa9e4066f08beec538e775443c5be79dd423fcabahrens MVS on OS 390
fa9e4066f08beec538e775443c5be79dd423fcabahrens SCO Openserver 3.2 on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens Unixware 7 on X86
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrensGood luck!!
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarks
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarksDavid Korn
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarksdgk@research.att.com
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarks
d2443e765650e70b88cd0346e67d2aee6dd1ea3amarks