Caml Trading talk at CMU

Here is an old but good presentation about Janestreet, with a discussion of why OCaml fits in the company.
When asked how they deal with the inevitable difficulty in hiring OCaml programmers, Yaron replied something to the effect that:

If you don’t hire bad programmers, many things become easier.

DrScheme Style Buffer Evaluation for OCaml in Emacs

When you want to evaluate code inside of DrScheme, you hit the F5 key and the entire editor buffer gets evaluated inside of a new REPL. Unlike Emacs, the ability to send the current expression, region, or buffer to the REPL isn’t available. It might sound constricting, but in practice it is very nice because you are always working with the most up-to-date versions of your definitions. It might sound slow to start a new REPL on each run, but it isn’t; on my older desktop the new REPL comes up before my finger even comes off of the F5 key. This approach seemed like a nice to have for working with OCaml in Tuareg mode on Emacs, so I pieced together a function to do so against Tuareg 1.45.6:

(defun tuareg-eval-buffer-drscheme-style ()
  "Send the buffer to a brand new Tuareg Interactive process."
  (interactive)
  (tuareg-kill-caml)
  (sleep-for 0.25)
  (if (get-buffer tuareg-interactive-buffer-name)
      (kill-buffer tuareg-interactive-buffer-name))
  (tuareg-eval-buffer)
  (switch-to-buffer tuareg-interactive-buffer-name))

Out of the box Tuareg mode will ask you what program name to run to start OCaml each and every time you evaluate the buffer, even when the variable storing that name is defined. I didn’t find a way to avoid this prompt so I patched Tuareg such that it will not ask you if a value is already defined for the program name. Here is the patch.
Thus far it has been nice to have the option of evaluating the whole buffer in a new REPL in addition to the existing incremental evaluation options.

Make exploring large OCaml projects easy

OCamlSpotter is a tool which finds definition places of various names (identifiers, type names, modules, etc) in OCaml programs automatically for you. The original OCaml’s -annot option provides the same sort of functionality but OCamlSpotter provides much more powerful browsing: it can find definitions hidden in the deep nested module aliases and functor applications.

(via caml-list)

Unix System programming in OCaml

It is my pleasure to announce that Xavier Leroy and Didier Rémy’s course on Unix system programming in Objective Caml is now available in english at this address :
http://ocamlunix.forge.ocamlcore.org/
If you had a look at the individual publications of the chapters announced on the project feed you may want to have a look again: some parts of the text were improved and a few translation errors were corrected in the final version.

This course looks like a lot of fun!
(via caml-list)