Repository navigation
Home
The purpose of APExp is to provide a (temporary) build environment, where any POSIX software should be easy to configure and compile with minimal patching and manual intervention. To do this, APExp has diverged quite significantly from the original Plan9 APE on several points:
Several APE libraries (libap, lib9, libbsd, libv, libnet, libpthreads, ...) have been merged into a single libap.a. In addition to this, a large portion of musl libc has been imported into this merged libap, and the sources have been re-organized into a directory structure resembling that of musl libc. Lately have bug fixes and complementations to the library been added using generative AI (especially Claude). AI has also been instrumental in improving the compiler. The original compiler is mainly C89 with some C99 support. The APExp compilers have an almost complete support for C99, C11 and C23.
Since the main aim of the project is to let configure scripts run with minimal interuptions, we focus on de facto standard utilities. This means that we have ported several utilities from GNU to Plan9:
- awk
- bash
- bison
- coreutils
- diffutils
- flex
- grep
- make
- patch
- sed
- tar
We also have some additional utilities from sbase.
Part as a proof-of-concept and part because many sources are released as archives, we build several different (un)archivers by default in APExp:
- bzip2
- gunzip
- clzip
- unace
- unarj
- unrar
- xz
- zstd
- BASIC
- Chicken scheme
- ObjC
- Perl
- sqlite
- Tcl with Tk GUI libraries and the iTcl extensions.
- libcurl and curl
- libcurses
- libdwarf and dwarfdump
- libressl and openssl
- libpng
- libxml2