Skip to content
The core OCaml system: compilers, runtime system, base libraries
OCaml C Shell Standard ML Makefile Assembly Other
Branch: trunk
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
asmcomp Replace caml_int_compare and caml_float_compare with primitives (#2324) Mar 26, 2020
boot memprof: remove caml_unused memprof_start_byt and then bootstrap Apr 1, 2020
build-aux Fixing typos in various files (#2246) Feb 13, 2019
bytecomp Replace caml_int_compare and caml_float_compare with primitives (#2324) Mar 26, 2020
compilerlibs Deprecate -annot (#2141) Mar 13, 2020
debugger ocamldebug: initialize all functions in Env (#9356) Mar 11, 2020
driver Merge pull request #9357 from muskangarg21/makedepend Mar 17, 2020
file_formats Cm[ox]_format: document fields that are stored in reverse order. Jan 31, 2020
flexdll @ 7f565ef Update FlexDLL to 0.37 Oct 25, 2017
lambda [minor] matching: rename `group_var` into `simple_omega_like` Apr 7, 2020
lex Quoted extensions in comments, ocamllex and ocamlyacc (#9166) Feb 3, 2020
man [nitpick]: Added "." at the end of warning descriptions in utils/warn… Mar 30, 2020
manual Merge pull request #9422 from Anukriti12/gcd Apr 7, 2020
middle_end Map.filter_map and Set.filter_map Mar 31, 2020
ocamldoc Add a unique id to every signature item Mar 5, 2020
ocamltest ocamltest: opt-in -keep-test-dir-on-success to keep test data on success Apr 2, 2020
otherlibs fix msg_flag type doc comment Mar 19, 2020
parsing Quoted extensions in comments, ocamllex and ocamlyacc (#9166) Feb 3, 2020
runtime caml_output_value_to_malloc: revise freeing of output buffer Apr 8, 2020
stdlib Merge pull request #9365 from gasche/Set-Map-filter_map Apr 2, 2020
testsuite [minor] fix a Makefile warning by defining undefined variables Apr 7, 2020
tools Deprecate -annot (#2141) Mar 13, 2020
toplevel Add a new toplevel directive #use_output "<command>" Mar 16, 2020
typing disambiguation for extension constructors Apr 3, 2020
utils Map.filter_map and Set.filter_map Mar 31, 2020
yacc Quoted extensions in comments, ocamllex and ocamlyacc (#9166) Feb 3, 2020
.depend Deprecate -annot (#2141) Mar 13, 2020
.depend.menhir add a .depend.menhir file for menhir parser dependencies Sep 1, 2018
.gitattributes More compatibility macros to Caml_state (#9202) Dec 26, 2019
.gitignore debugger: rename parser and lexer modules Jan 6, 2020
.gitmodules clean up whitespace and cut long lines Feb 17, 2016
.mailmap adding Jeremy Yallop to the list of Approvers Mar 25, 2019
.ocp-indent Adding an ocp-indent customization file for the project. Sep 11, 2013
.travis.yml Remove sudo:false in .travis.yml (#9402) Mar 28, 2020
BOOTSTRAP.adoc BOOTSTRAP.adoc: clarify some points (closes #9278). Feb 16, 2020
CONTRIBUTING.md Optimization contributions should come with numbers Oct 1, 2019
Changes Update Changes Apr 8, 2020
HACKING.adoc fix HACKING.adoc formatting Mar 9, 2020
INSTALL.adoc Let make's default target build the compiler Sep 30, 2019
LICENSE Update the LICENSE file to reflect new licensing conditions (LGPLv2.1) May 14, 2016
Makefile Add --disable-ocamltest Jan 16, 2020
Makefile.best_binaries nicer style in Makefile.best_binaries Oct 12, 2019
Makefile.common.in Build system: share rules to compile C files (#8930) Sep 11, 2019
Makefile.config.in Add --disable-ocamltest Jan 16, 2020
Makefile.dev Suppress huge output from make when cleaning Aug 28, 2019
Makefile.menhir Makefile.menhir enhancement Jan 10, 2019
Makefile.tools Remove the unused BYTECODE_ONLY and NATIVECODE_ONLY make variables Sep 30, 2019
News Fixing misspellings May 21, 2019
README.adoc README: update link to manual pages and reference inbox.ocaml.org Apr 5, 2020
README.win32.adoc Ensure Makefile.config gets Windows-style prefix Nov 25, 2019
VERSION first commit after branching 4.10 Oct 18, 2019
aclocal.m4 Add attribute(align()) detection and fix XLC build. Nov 25, 2019
appveyor.yml Split the AppVeyor build into two jobs Sep 7, 2018
autogen Allow Git config options to be passed to configure Oct 5, 2019
configure Yet another fix to BFD support Feb 17, 2020
configure.ac Yet another fix to BFD support Feb 17, 2020
dune dune: cmt2annot Mar 30, 2020
dune-project Provide a way to build the bytecode compiler using Dune (#2093) Oct 10, 2018
ocaml-variants.opam opam: bump to 4.11 Dec 11, 2019

README.adoc

Branch trunk Branch 4.10 Branch 4.09 Branch 4.08 Branch 4.07 Branch 4.06 Branch 4.05

TravisCI Build Status (trunk branch) AppVeyor Build Status (trunk branch)

TravisCI Build Status (4.10 branch) AppVeyor Build Status (4.10 branch)

TravisCI Build Status (4.09 branch) AppVeyor Build Status (4.09 branch)

TravisCI Build Status (4.08 branch) AppVeyor Build Status (4.08 branch)

TravisCI Build Status (4.07 branch) AppVeyor Build Status (4.07 branch)

TravisCI Build Status (4.06 branch) AppVeyor Build Status (4.06 branch)

TravisCI Build Status (4.05 branch) AppVeyor Build Status (4.05 branch)

README

Overview

OCaml is an implementation of the ML language, based on the Caml Light dialect extended with a complete class-based object system and a powerful module system in the style of Standard ML.

OCaml comprises two compilers. One generates bytecode which is then interpreted by a C program. This compiler runs quickly, generates compact code with moderate memory requirements, and is portable to essentially any 32 or 64 bit Unix platform. Performance of generated programs is quite good for a bytecoded implementation. This compiler can be used either as a standalone, batch-oriented compiler that produces standalone programs, or as an interactive, toplevel-based system.

The other compiler generates high-performance native code for a number of processors. Compilation takes longer and generates bigger code, but the generated programs deliver excellent performance, while retaining the moderate memory requirements of the bytecode compiler. The native-code compiler currently runs on the following platforms:

Tier 1 (actively maintained) Tier 2 (maintained when possible)

x86 64 bits

Linux, macOS, Windows, FreeBSD

NetBSD, OpenBSD

x86 32 bits

Linux, Windows

FreeBSD, NetBSD, OpenBSD

ARM 64 bits

Linux

FreeBSD

ARM 32 bits

Linux

FreeBSD, NetBSD, OpenBSD

Power 64 bits

Linux

Power 32 bits

Linux

IBM Z (s390x)

Linux

Other operating systems for the processors above have not been tested, but the compiler may work under other operating systems with little work.

All files marked "Copyright INRIA" in this distribution are copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Institut National de Recherche en Informatique et en Automatique (INRIA) and distributed under the conditions stated in file LICENSE.

Installation

See the file INSTALL.adoc for installation instructions on machines running Unix, Linux, OS X and Cygwin. For native Microsoft Windows, see README.win32.adoc.

Documentation

The OCaml manual is distributed in HTML, PDF, and Emacs Info files. It is available at

Availability

The complete OCaml distribution can be accessed at

Keeping in Touch with the Caml Community

The OCaml mailing list is the longest-running forum for OCaml users. You can email it at

You can subscribe and access list archives via the Web interface at

An alternative archive of the mailing list is also available at

You can also access a newer discussion forum at

There also exist other mailing lists, chat channels, and various other forums around the internet for getting in touch with the OCaml and ML family language community. These can be accessed at

In particular, the IRC channel #ocaml on Freenode has a long history and welcomes questions.

Bug Reports and User Feedback

Please report bugs using the issue tracker at https://github.com/ocaml/ocaml/issues

To be effective, bug reports should include a complete program (preferably small) that exhibits the unexpected behavior, and the configuration you are using (machine type, etc).

For information on contributing to OCaml, see HACKING.adoc and CONTRIBUTING.md.

You can’t perform that action at this time.