OCaml

Software Screenshot:
OCaml
Software Details:
Version: 4.02.3 updated
Upload Date: 1 Oct 15
Developer: INRIA
Distribution Type: Freeware
Downloads: 70

Rating: 2.5/5 (Total Votes: 2)

It 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.

Objective Caml comprises two compilers. One generates bytecode which is then interpreted by a C program.

This compiler runs quickly, is portable to essentially any 32 or 64 bit Unix platform and generates compact code with moderate memory requirements.

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.

Objective Caml is the most popular variant of the Caml language.

From a language standpoint, it extends the core Caml language with a fully-fledged object-oriented layer, as well as a powerful module system, all connected by a sound, polymorphic type system featuring type inference.

The Objective Caml system is an industrial-strength implementation of this language, featuring a high-performance native-code compiler (ocamlopt) for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc, Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc) and an interactive read-eval-print loop (ocaml) for quick development and portability.

The Objective Caml distribution includes a comprehensive standard library, a replay debugger (ocamldebug), lexer (ocamllex) and parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4) and a documentation generator (ocamldoc).

What is new in this release:

  • Updated to Tcl/Tk 8.6.
  • Reject multiple declarations of the same method or instance variable in an object.
  • Propagate type information towards pattern-matching, even in the presence of polymorphic variants.

What is new in version 4.02.1:

  • Updated to Tcl/Tk 8.6.
  • Reject multiple declarations of the same method or instance variable in an object.
  • Propagate type information towards pattern-matching, even in the presence of polymorphic variants.

What is new in version 3.12.1:

  • Buds fixed:
  • Unused variables not detected in "include (struct .. end)"
  • camlp4 revised syntax printing bug in the toplevel (reported on caml-list)
  • configure: do not define _WIN32 under cygwin
  • Hardened generic comparison in the case where two custom blocks are compared and have different sets of custom operations.
  • Hardened comparison between bigarrays in the case where the two bigarrays have different kinds.
  • Fixed wrong autodetection of expm1() and log1p().
  • Don't add .exe suffix when installing the ocamlmktop shell script
  • ocamldoc: minor fixes related to the display of ocamldoc options
  • Fixed bug with huge values in OCAMLRUNPARAM
  • Mismatch between declaration and definition of caml_major_collection_slice
  • Feature wishes:
  • Added '-ml-synonym' and '-mli-synonym' options to ocamldep
  • Added '-ocamldoc' option to ocamlbuild
  • Added possibility to add options to ocamlbuild
  • Added access to current camlp4 parsers and printers
  • Improved instruction selection for float operations on amd64
  • Added a 'usage_string' function to Arg
  • Allow with constraints to add a type equation to a datatype definition
  • Allow to merge '@before' tags like other ones
  • Allow dependency on file "_oasis"
  • Other changes:
  • Changed default minor heap size from 32k to 256k words.
  • Added new operation 'compare_ext' to custom blocks, called when comparing a custom block value with an unboxed integer.

What is new in version 3.12.0:

  • Record patterns of the form { lbl = pat; _ } to mark that not all labels are listed, purposefully.
  • Warnings are now numbered and can be switched on and off individually. The old system with letters referring to sets of warnings is still supported.
  • Added option '-strict-sequence' to force left hand part of sequence to have type unit.
  • Map: implement functions from Set that make sense for Map.
  • Add support for native dynlink.
  • The semantics of warning 7 (code 'M', method override) have changed (it now detects all overrides, not just repeated definitions inside the same class body), and it is now inactive by default.

What is new in version 3.11.2:

  • Better documentation for min and max w.r.t. NaN
  • ocamlbuild uses wrong compiler for C files
  • ocamlbuild does not use properly configuration information
  • Under some Windows installations, high start-up times for Unix lib
  • Problem with scanf and CRLF
  • ocamlmklib problem under Windows
  • BSD problem with socket addresses, e.g. in Unix.getnameinfo
  • Issue with parsing of float literals by the GNU assembler
  • Problem with modules and private types

Requirements:

  • GNU C compiler - gcc

Similar Software

PathFinding.js
PathFinding.js

12 Apr 15

Narayana
Narayana

1 Oct 15

PureScript
PureScript

10 Feb 16

Stackless Python
Stackless Python

28 Feb 15

Other Software of Developer INRIA

CardioViz3D
CardioViz3D

11 Jul 15

Axel
Axel

3 Jan 15

LDPC/LDGM
LDPC/LDGM

2 Jun 15

Comments to OCaml

Comments not found
Add Comment
Turn on images!