Wednesday, 26 November 2008

LLVM 2.4 released

Developers of the compiler framework LLVM are sticking to a rapid release schedule, shipping the latest 2.4 version of LLVM. This includes extensive OCaml bindings that can be used to generate arbitrary native code at run time.

OCaml and LLVM form a powerful team that can be of mutual benefit in many different ways. Firstly, the OCaml language is derived from a family of languages that were specifically designed for manipulating programs and writing compilers. So OCaml is ideally suited for this task and many LLVM users stand to gain a lot by writing their high-level code (particularly front-ends) in OCaml. Secondly, the current OCaml implementation can be improved in many different ways using LLVM. One alluring project is the creation of an automated FFI for OCaml that uses run-time generated code to interface to existing native code libraries with a minimum of fuss by eliminating the impedance mismatch between the OCaml and C type systems and representations.

Using LLVM from OCaml has been the topic of two OCaml Journal articles already this year.

Monday, 24 November 2008

Object-oriented programming in OCaml

The OCaml Journal just published an article about object oriented programming:

"The OCaml programming language is unique among member of the ML family because it provides not only the core ML features of variant types, pattern matching and functors but also two different features of the type system that provide subtyping: objects and polymorphic variants. Compared to conventional object-oriented languages, OCaml's objects are unusual because they are structurally typed, a characteristic that removed the need to declare class types but which can adversely affect developer productivity and run-time efficiency if used inappropriately. This article describes the design, implementation and use of OCaml's object system, giving references to examples of good design..."

To read this article and more, subscribe to The OCaml Journal today!

Stunning slides about the growth of OCaml at XenSource/Citrix

In 2002, members of Cambridge University released the open source Xen project to provide free high-performance virtualization technology for the masses.

In 2004, the team founded the company XenSource and began developing the enterprise-level distributed management software that would make virtualization easy and form the backbone of their products in the years to come. A team of thirty dedicated programmers in Palo Alto California began developing the software in C, Python and Ruby.

Two years later, the US team had succeeded in burning tens of millions of dollars funding but had failed to produce any product. So XenSource, under new management, took the bold step of replacing their large team of US developers with a team of only four British OCaml developers. Within months, all of the Python and Ruby was replaced, both reliability and performance were dramatically improved and the company shipped their first product. One year later, XenSource sold to Citrix for $500M.

One of the first OCaml developers to join XenSource, Anil Madhavapeddy, stunned the audience at this years CUFP conference with the tale of Citrix growing from 4 to 18 OCaml developers since April 2006. Anil has kindly made his awe-inspiring slides available on-line.


Monday, 10 November 2008

Huffman data compression

The OCaml Journal just published an article about data compression:

"Data compression algorithms are not only very useful in practice but are also extremely compelling pragmatic examples of programming theory. The popular Huffman data compression algorithm is from the family of entropy encoding compression algorithms. This article walks through the construction of a simple but efficient Huffman compressor and decompressor written entirely in OCaml..."

To read this article and more, subscribe to The OCaml Journal today!

Sunday, 2 November 2008

Low-level optimization tips and tricks: part 1

The OCaml Journal just published an article about optimization:

"The OCaml programming language is unusually well suited to high-performance computing among functional programming languages because it provides a highly efficient code generator with a performant run-time and garbage collector. This makes it feasible to write high performance programs entirely in OCaml without having to drop to lower-level languages like C and Fortran for performance-critical sections of code. This article describes the low-level optimizations that underpin the ability to write performant OCaml programs by leveraging knowledge about the OCaml compiler..."

To read this article and more, subscribe to The OCaml Journal today!

Saturday, 1 November 2008

Largest order of OCaml for Scientists

Cornell University recently placed the largest ever order of our book OCaml for Scientists in order to use our monograph as a text book for their students when teaching the awesome OCaml programming language. To date, OCaml for Scientists has sold hundreds of copies worldwide and continues to be one of our best selling products, having earned us 4.5× more profit than the average programming book.

If you would like to place a bulk order of OCaml for Scientists, please contact us.