Over the past 6-7 years the speaker has had cause (sometimes self-inflicted) to port Erlang/OTP to several exotic and some not-so-exotic operating system platforms, including OpenVMS and several UNIX variants such as Tru64, HPUX (Itanium), and AIX. In this talk, the speaker will discuss the general process of building Erlang/OTP from source and some of the challenges that are commonly encountered when porting Erlang/OTP to new platforms. These challenges range from trivial matters such dealing with minor differences between C runtime library and header file implementations on different platforms through to dealing with somewhat more complicated and problematical areas such as threading, SMP support, and various processor, operating system, and file system peculiarities. Specific issues will be considered, and solutions will be presented. In addition to porting Erlang/OTP to the new platform, for anything but the most trivial of cases some work will generally also be required to port Erlang/OTP applications to the new platform. Many Erlang/OTP applications include C/C++ driver code that must also be ported, and porting this code can sometimes prove almost as problematical as porting Erlang/OTP itself. Additionally, Erlang/OTP application code may contain operating-specific functionality. Some of the challenges faced when porting large and complex Erlang/OTP applications such as Riak, CouchDB, and RabbitMQ will be considered. The speaker will also briefly discuss future plans for Erlang/OTP on the OpenVMS platform.
- To describe work that has been done to port Erlang/OTP to various operating system platforms and to discuss some of the problems that are commonly encountered during such porting exercises and solutions to those problems in the hope that this information will assist others to port Erlang/OTP and Erlang/OTP applications to more platforms and thus achieve Erlang/OTP world-domination.
- General audience. Most relevant to people interested in porting Erlang/OTP and Erlang applications to new operating system environments.