travis-ci/travis-cookbooks — pull request #213 by rafl (2013-08-24 18:01:18+00:00)
Title: Provide both threaded and non-threaded Perl builds

Perl has a lot of configure options that can change the behaviour of the resulting installation. One of the most drastic changes are caused by enabling perl's interpreter threads (ithreads) support, which allows multiple threads each running a full perl interpreter with all data sharing between threads being explicit.

Enabling ithreads also implies enabling the MULTIPLICITY options, which allows more than one perl interpreter to exist in a single process. This feature is what enables `fork` emulation on Windows.

Both ithreads and MULTIPLICITY, if enabled, change the ABI and C-level API of the resulting perl, so for many modules, especially those interfacing with its C API, it's highly useful to test with both threaded and non-threaded builds.

Additionally, all perl modules making use of the `threads` module do require a perl compiled with ithreads, which means it's not currently possible to test them with travis-ci.

ithreads enabled perls, while they're not the default, are relatively common. The system perl installation of many Linux distributions, such as Debian and Ubuntu, comes with ithreads enabled by default.