OCaml, Opam & OCaml Tooling

The Generic Syntax Extension

OCaml 4.01 with its new feature to disambiguate constructors allows to do a nice trick: a simple and generic syntax extension that allows to define your own syntax without having to write complicated parsetree transformers. We propose an implementation in the form of a ppx rewriter. it does only a simple transformation: replace strings prefixed The Generic Syntax Extension

Tags: , ,

Better Inlining: Progress Report

As announced some time ago, I am working on a new intermediate language within the OCaml compiler to improve its inlining strategy. After some time of bug squashing, I prepared a testable version of the patchset, available either on Github (branch flambda_experiments), or through OPAM, in the following repository: [code language=”bash” gutter=”false”] opam repo add Better Inlining: Progress Report

Tags: , , ,

An Indentation Engine for OCaml

Since our last activity report we have released the first stable versions of two projects: OPAM, an installation manager for OCaml source packages, and ocp-indent, an indentation tool. We have already described the basics of OPAM in two precedent blog posts, so today we will focus on the release of ocp-indent. Indentation should be consistent An Indentation Engine for OCaml

Tags: , , ,

Beta-release of OPAM

OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow. I have recently announced the beta-release of OPAM on the caml-list, and this blog post introduces the basics to new OPAM users. Why OPAM We have decided to start writing a brand new Beta-release of OPAM

Tags: , ,

OCamlPro’s Contributions to OCaml 4.00.0

OCaml 4.00.0 has been released on July 27, 2012. For the first time, the new OCaml includes some of the work we have been doing during the last year. In this article, I will present our main contributions, mostly funded by Jane Street and Lexifi. Binary Annotations for Advanced Development Tools OCaml 4.00.0 has a OCamlPro’s Contributions to OCaml 4.00.0

Tags: , ,

Profiling OCaml amd64 code under Linux

We have recently worked on modifying the OCaml system to be able to profile OCaml code on Linux amd64 systems, using the processor performance counters now supported by stable kernels. This page presents this work, funded by Jane Street. The patch is provided for OCaml version 4.00.0. If you need it for 3.12.1, some more Profiling OCaml amd64 code under Linux

Tags: , ,

Packing and Functors

We have recently worked on modifying the OCaml system to be able to pack a set of modules within a functor, parameterized on some signatures. This page presents this work, funded by Jane Street. All the patches on this page are provided for OCaml version 3.12.1. Packing Functors Installation of the modified OCaml system The Packing and Functors

Tags: , , , ,

OCaml and Windows

Recently, I have been experimenting wiht OCaml / MSVC running on Windows 7 64bit. I have mainly followed what the OCaml’s README.win32 was saying and I learned some NSIS tricks. The result of this experiment is the following two (rather big) windows binaries : ocaml-trunk-64-installer.exe (92 MB) ocaml-3.12-64-installer.exe (92 MB) These binaries are auto-installer for OCaml and Windows

Tags: , ,

OCaml Cheat Sheets

When you are beginning in a new programming language, it is sometimes helpful to have an overview of the documentation, that you can pin on your wall and easily have a look at it while you are programming. Since we couldn’t find such Cheat Sheets, we decided to start writting our own cheat sheets for OCaml Cheat Sheets

Tags: , ,

OCaml 32bits longval

Archive: ocaml-3.11.2-longval-byte-i686.tar.bz2 You will need OCaml 3.11.2 installed on a i686 linux computer. The archive contains: libcamlrun-linux-i686.a ocamlrun-linux-i686 Makefile README The Makefile has two targets: sudo make install will save /usr/bin/ocamlrun and /usr/lib/ocaml/libcamlrun.a in the current directory and replace them with the longval binaries. sudo make restore will restore the saved files. If your install OCaml 32bits longval

Tags: , ,