OCaml at LexiFi

Alain Frisch, 2014/07/03

The release of OCaml 4.02 is approaching and amongst many other new stuff, it will include the work on -ppx and extension points, supporting light-weight syntactic tools (without Camlp4). This effort was coordinated with the OCaml community through the wg-camlp4 mailing list, and now it is very enjoyable to see the community starting to make good use of these new features. In this post, I wanted to collect pointers to blogs and projects making use of extension points.

Alain Frisch, 2010/12/01

[Edit 2014-06-05]: We have finally decided to drop our local extension for lazy record fields. Our experience is that it was just too dangerous to forget that a field is lazy and force it inadvertently. So we first restricted the feature to very limited situations and finally decided to drop it, both to be on the safe side and to reduce our diff with OCaml. The extension for the lazy let is much more widely used in our code base and we are quite happy with it. Some interesting programming patterns, esp.

Alain Frisch, 2014/04/10

I'd like to introduce a new language feature, inlined record arguments on constructors, which I propose for inclusion in OCaml. In a nutshell, it allows you to define a record directly within a sum type constructor:

1
2
3
  type t =
     | A of { x : int; y: string }
     | ...

The argument of the constructor is a full-fledged record type. All features of records are available: dot notation, mutable fields, polymorphic fields, punning syntax, record override. You can write:

Alain Frisch, 2012/06/29

In a previous post, I've described a proposal on how to get rid of Camlp4 to write simple syntax extensions. This proposal slowly becomes a reality:

Alain Frisch, 2013/01/11

In this post, I propose Static Exceptions as a new language feature allowing programmers to express interesting control flows in a compact way.

Alain Frisch, 2012/11/28

The goal is to display the following to stdout:

(0,0)
(1,1)
(2,2)
...
(1000000,1000000)

How would you implement that in OCaml? For such a simple task, we probably expect the program to be IO bound, right? Ok, let's try with the idiomatic way, which is to use format strings as provided by the Printf module from OCaml standard library:

Alain Frisch, 2012/11/27

Most languages provide some way to manipulate tuples of values with a proper label for each field. They are called structures in C, records in OCaml; objects as found in most mainstream OO languages extend this same notion.

Alain Frisch, 2012/07/23
Registration is now open for ICFP and affiliated events, including the ML workshop 2012. Researchers, developers and users of OCaml and other languages of the ML family (SML, F#) are invited to participate to the workshop, on September 13. This is between the main ICFP conference and the OCaml Users and Developers Workshop, also of interest for the OCaml community.
Alain Frisch, 2012/03/15

I'm pleased to announce that the next instance of the ML workshop will take place on September 13th in Copenhagen.

ML2012 will be an informal workshop targeting both researchers, implementors, and users of ML languages (like Standard ML, OCaml, and F#).

Alain Frisch, 2011/12/08

It is often useful to get access to types at runtime, in order to implement generic type-driven operations. A typical example is a generic value pretty-printer. Unfortunately, the OCaml compiler does not keep type information at runtime. At LexiFi, we have extended OCaml to support runtime types.

Syndicate content