Unix Software from Plan 9
These are ports of Plan 9's UTF-8, formatted print, buffered I/O, and regular expression libraries, along with mk, a simple replacement for make.

supported systems
Digital Unix OSF1 (Alpha), Linux (x86 and PowerPC), FreeBSD (x86), NetBSD (x86), Mac OS X (Power PC), OpenBSD (x86), SunOS (Sparc)
installation
Links to source tgzs are below. On supported systems, extract and make install. The default installation target is /usr/local. To install elsewhere, make PREFIX=/usr/elsewhere install.
On unsupported systems, you will need to create Make.YourOS-YourArch. See the existing ones for examples. If you write one for a new system, please send it to us for inclusion in the tar files.
libutf
Libutf is a port of Plan 9's support library for UTF-8 and Unicode.
manual: isalpharune(3), rune(3), runestrcat(3), utf(7)
download: libutf.tgz (checksums)
license: original Bell Labs MIT-like or Lucent Public License
libfmt
Libfmt is a port of Plan 9's formatted print library. As a base it provides all the syntax of ANSI C's printf but adds the ability for client programs to install new print verbs. One such print verb (installed by default) is %r, which prints the system error string. Instead of perror("foo"), you can write fprint(2, "foo: %r\n");. This is especially nice when you write verbs to format the data structures used by your particular programs. Needs libutf.
manual: print(3), fmtinstall(3), quote(3), fmtstrtod(3)
download: libfmt.tgz (checksums)
License: original Bell Labs MIT-like or Lucent Public License
libbio
Libbio is a port of Plan 9's buffered I/O library. It provides most of the same functionality as stdio or sfio, but with a simpler interface and smaller footprint. Needs libutf and libfmt.
manual: bio(3)
download: libbio.tgz (checksums)
License: Vita Nuova Free-for-All or Lucent Public License
libregexp9
Libregexp9 is a port of Plan 9's Unicode-capable regular expression library. It is small and simple and provides the traditional extended regular expressions (without modern complications like {} and various \x character classes). It supports Unicode via wide character or UTF-8 encoding. Needs libutf and libfmt.
manual: regexp9(3), regexp9(7)
download: libregexp9.tgz (checksums)
License: Vita Nuova Free-for-All or Lucent Public License
mk
Mk is a simple replacement for make. Needs libutf, libfmt, libbio, and libregexp9.
manual: mk(1)
download: mk.tgz (checksums)
License: Vita Nuova Free-for-All or Lucent Public License
one with everything
Includes mk and all the libraries.
download: mk-with-libs.tgz (checksums)
contact
Russ Cox (rsc@swtch.com)

Space Glenda