The Perl Compiler


B::C is stable and used in production for -O0 and -O3. For bigger programs not all methods in certain packages are detected, you'd need to add them via -u<packagename>.

The Bytecode compiler is only stable for >=5.8, non-debugging, threaded. The CPAN Bytecode compiler is disabled for 5.6, we keep the old. The old core compiler fails for 50% of the testcases.

The optimizing B::CC compiler is very unstable, work is in progress. Certain alioth benchmarks are 6x faster. Recursive function calls and certain dynamic ops are not yet supported.

Windows and other OS with strict linking will fail to install due to some not exported libperl symbols. Looks at the patches in ramblings.

perl 5.16 has finally all needed symbols exported, but the 5.16 perl release is considered too instable to be recommended for production.
The latest released compiler version 1.42 is only supported up to 5.14.2. 5.14.3 and 5.12.5 are also too insecure to be used in production.

See STATUS and the tested modules (log.modules*) for the details.

Test Status

The compilers are regurlary tested on cygwin1.7/gcc-4, darwin 10.8, centos4, centos5, centos6, debian6, debian7, freebsd7, freebsd8, solaris10/intel sunpro, openbsd49, netbsd.
With the latest gcc and clang compilers, with the latest address-sanitizer versions.
Not so regularly on windows strawberry/gcc, activeperl/msvc8 and darwin 10.4/powerpc.