# OCaml at LexiFi

Alain Frisch, 2016/04/14

This post describes how unboxing for float values works in OCaml, focusing on recent evolutions. Most of the content here applies to boxed integer types as well (int32, int64 and nativeint).

Alain Frisch, 2015/01/08

This post is about the special representation that OCaml uses for arrays of floating point values. My claim is that this special representation is useful, but also harmful in some contexts. There are better alternatives that achieve the same benefits without the drawbacks.

If you are familiar about the OCaml representation of value and the special representation for arrays of floats, you can skip the first two sections.

Alain Frisch, 2015/04/27

LexiFi is currently experimenting with the js_of_ocaml compiler in order to create some browser-side applications in OCaml. In this context, we have started a new project called gen_js_api which aims at simplifying the creation of bindings to Javascript libraries. The approach is quite different from js_of_ocaml's native FFI (which relies on language extensions).

Alain Frisch, 2014/12/22

LexiFi is hiring!

We are looking for full time software developers, with a passion for functional programming, ideally in OCaml, and for beautiful code.

Learn about how LexiFi uses OCaml: http://www.lexifi.com/product/technology/ocaml

No prior knowledge of finance is required. If you are interested, please send your resume to careers@lexifi.com.

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

In this post, I'll not describe an existing extension to OCaml that we use at LexiFi, but rather some ideas for a future possible extension.

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.