Michael Forney, the developer of the composite server SWC on the base of the Wayland protocol, develops a new compiler CProc that supports the C11 standard and some GNU extensions. To generate optimized executable files in the compiler, the project QBE is used as a backend. The compiler code is written in Si language and extends under free license ISC.
Development has not yet been completed, but at the current stage, support is implemented most of the C11 specification. Among the unsupported features – arrays of variable length, preprocessor, generation of executable PIE files (POSITION INDEPENDENT CODE) and shared libraries, InLICE assembler, type “Long Double”, specifier _Thread_local, Voltile-types, string literals with prefix (L “.. . “).
The capabilities of CPrOC are already enough to build itself, MCPP, GCC 4.7, Binutils and other basic applications. The key difference from other compilers is the orientation for the creation of a compact and non-complicated implementation. For example, backend allows you to generate code showing 70% of performance from advanced compilers, but the proposed functionality is laid in 10% of large compilers. The assembly for architectures X86_64 and AARCH64 on Linux and FreeBSD platforms with Glibc, BSD LIBC and MUSL libraries are supported.