Portability

Which platforms are supported by Objective Caml?

The bytecoded system currently runs on any POSIX-compliant operating system with an ANSI-compliant C compiler (and tries hard to accommodate deviations from POSIX and ANSI-C). It should run straight out of the box on modern Unix workstations, possibly with the help of the GNU gcc compiler.

The native-code compiler currently supports the following processor/operating system combinations:

Processors Operating systems
Intel Pentiums Linux (all distributions)
Windows XP, 2000, NT, ME, 98, 95
FreeBSD, NetBSD, OpenBSD
Solaris 9
AMD 64 Linux (all distributions)
Alpha Tru64 Unix / Digital Unix
Linux
NetBSD, OpenBSD
Sparc Solaris 9
Linux
NetBSD
Mips SGI IRIX 6
HP PA-RISC HPUX 11
Linux
PowerPC Mac OS X
Linux
Strong ARM Linux
Intel IA64 (Itanium) Linux
FreeBSD

If your machine has one of those processors but a different operating system, it should be relatively easy to port the native-code compiler. If you get some combination to run, please tell us.

Porting to another processor requires more work. We have currently no plans for other processors. If you feel like giving it a try, contact us for guidance.

What about MSDOS and MS Windows?

Two Microsoft Windows (95, 98, ME, NT and 2000) ports of Objective Caml are distributed along with the release.

The native Win32 port: This port is built using Microsoft development tools. Both the bytecode and the native-code compilers are fully supported. The bytecode compiler is self-contained, but the native-code compiler needs the Microsoft MASM assembler and Visual C++ compiler. Linking in -custom with the bytecode compiler also requires the Visual C++ compiler.

This port features a simple GUI for the toplevel interactive loop (adequate for learning the language, too restrictive for real work). The debugger is not supported in this port.

The Cygwin port: This port is built using the Cygwin Unix-like environment. Cygwin is required to run the compilers and to run the generated executables, but no Microsoft tools are required.

Compared with the native Win32 port, the debugger is supported, but no GUI is provided.

What about the Macintosh?

Recent releases compile under MPW 3.4.1. (The native-code compiler is not available.) A graphical user interface for the interactive toplevel is in alpha-test (transfer it!) and should soon be ready for general use.

OCaml also fully supports Mac OS X.

What about other operating systems?

You mean, like, OS/2, the Amiga, VMS, etc? Come on, be realistic. These are too marginal to deserve the porting effort.

Are bytecode files portable across platforms?

Yes. Bytecode executables are portable across all platforms, regardless of endianness or word size of the processor. Of course, this is not so for executables produced in -custom mode, which contain compiled C code as well.

Bytecode object files (.cmo files) and compiled interfaces (.cmi files) are also portable.

Data written to a file using output_value can also be read back on another machine running the same program compiled with the same version of Objective Caml, regardless of the processor's endianness and word size.


Caml - Objective Caml - Projet Cristal - Homepages - Contact the Caml maintainers
Author: Xavier Leroy -- Last modified: 2005/01/31