Previous week Up Next week


Here is the latest OCaml Weekly News, for the week of February 03 to 10, 2015.

  1. Celestial Intellect Looking to Expand their Team
  2. Detecting dead code, discovering a project's structure...
  3. GSoC preparedness
  4. Frama-C related postdoc positions at CEA LIST
  5. Other OCaml News

Celestial Intellect Looking to Expand their Team


Eray Ozkural announced:
Please find some job adverts below, we are communicating open
positions involving OCaml development. I anticipate that there would
be enthusiastic and talented researchers in the OCaml community who
might be interested in working on general-purpose machine learning. I
am aware that the desired skills are a tall order; we do need the best
programmers in the world.

Please correspond directly with me for enquiries.

Kind Regards,


We are a general purpose artificial intelligence startup with an
emphasis on universal machine learning methods and parallelism. We
wish to expand our team, and we would like to work with competent
researcher-programmers who will be able to advance our prototypes. 

Machine Learning Researcher: 

We would like to work with bold researchers who are capable of
advancing the state-of-the-art in artificial general intelligence
algorithms. The bulk of the work requires analyzing and improving
existing proprietary models and methods at our firm, however we would
like the ideal candidate to propose entirely new general-purpose
machine learning models and methods, and address open problems in
mathematical artificial intelligence.

Job responsibilities:

– Improve existing universal machine learning algorithms
– Propose, design and implement new machine learning methods
– Analyze theoretical properties of proposed methods
– Experimentally verify machine learning methods

Desired Skills and Experience:

– PhD in a relevant subject (machine learning, statistics, data
mining, neuroscience, etc.), or equivalent research experience

– Functional programming experience
– Experience in Artificial General Intelligence methods
– Experience in stochastic/deep-learning models
– Experience in logical reasoning methods
– Able to design and execute machine learning experiments 

Functional Programming Researcher:

Our prototypes are written in OCaml, and C++. We would like to move
into a purely functional direction since multi-core programming is
essential to high-performance. We are also interested in inventing
domain-specific languages for AI tasks. The ideal candidate for this
position would be able to make good use of existing functional
programming technology to better express our algorithms and models,
and optimize existing code. He/she would be competent in expressing
parallelism in a functional fashion. He/she has good command of
programming language semantics and can design a new domain-specific
functional PL for given requirements. He/she can design an efficient
runtime system and is familiar with problems in scientific computing,
and/or data mining. 

Job responsibilities:

– Design, and implement functional and imperative algorithms 

– Implement new domain specific functional language interpreters and
– Propose and implement parallel programming libraries
– Optimize, refactor, and expand existing functional codebase 

Desired Skills and Experience: 

– PhD level or similar experience required

– OCaml and Haskell experience
– Experience in purely functional algorithms and data structures
– Experience in programming language semantics and design
– Experience in runtime design and implementation
– Experience in functional approaches to parallelism
– Experience in scientific computing and/or data mining 

Parallel Computing Researcher:

Implementing a human-level AI system requires a high degree of
parallelism. We purpose to build systems that will scale well to
billion cores on heterogeneous parallel computers. The ideal candidate
for this position would be able to design scalable algorithms for
computationally intensive AGI algorithms with non-trivial data
structures. He/she would have experience with advanced task and data
partitioning methods, and a variety of parallel computing
architectures (both MIMD and SIMD, both shared and distributed memory,
grid computing, at least). He/she would like to design
middle-ware/library code that will facilitate ease of implementation
across many architectures, and has working knowledge of both explicit
and implicit parallelism. 

Job responsibilities:

– Design, and implement scalable algorithms to solve grand challenges
in AGI 

– Design, and implement solutions for heterogeneous architectures
– Design, and implement programming methods and paradigms for
exa-scale computing
– Analyze and Improve existing parallel algorithms

Desired Skills and Experience:
– PhD level or similar experience required
– Experience in designing scalable parallel algorithms 
– Can program with functional and imperative languages
– Solid understanding of functional parallel programming
– Experience with heterogeneous architectures
– MPI, CUDA, C++ experience.
– Experience with GPGPU algorithm design
– Scientific computing and/or data mining experience
– Grid/cloud computing experience

Detecting dead code, discovering a project's structure...


Continuing this old thread, David Baelde suggested:
Another (late, but maybe useful) suggestion is to look at bisect:

It's not a static analysis but a coverage checker. Still, it'll show
you entry points, and also dead code, on some example runs. I've tried
it recently (on a medium pure OCaml tool) and found it surprisingly
easy to use.

GSoC preparedness


Yotam Barnoy announced said:
Another year has gone by, and Google Summer of Code is upon us again.
Unfortunately, it doesn't seem like we're ready to participate this
year either (sign up dates for mentoring organizations are Feb 9th to
the 20th). After seeing some comments on reddit, I have taken the
liberty of establishing 2 pages on the wiki:

- GSoC ideas (
this is a list of ideas for projects that students could do. It needs
to be filled up and then maintained, so that by next year at least, we
actually have something to show google.

- GSoC Application
( a hastily
filled out application covering the questions google expects answered.
This should also be maintained so that it's pretty much ready to go.

Please fill out these pages as much as you can -- particularly the
ideas page. I haven't listed any project ideas myself, but I tried to
write some guidelines for the kinds of things that could be used as
Gabriel Scherer replied:
Thanks for starting this discussion.

I've been considering the idea of preparing an OCaml GSoC application
for Summer 2016. (It's too early to tell but I'm considering
volunteering as a mentor for 2016, while I already know very well that
this would be impossible for 2015.)

The previous effort led by Sylvain Le Gall and Cristophe Troestler was
in 2011. You can find what they collected here:

I will try to collect some nice GSoC ideas for OCaml and add them to
the wiki page.
Anil Madhavapeddy also replied:
My experience with GSoC is that they look for a combination of breadth
and preparedness, as well as selecting a few smaller organisations
that are different every year. I prefer mentoring in these internship
programs for projects that use OCaml as a means rather than an end, as
the language will improve just by more people using its ecosystem and
tools. It's usually counterproductive to expect interns to dive in and
fix core compiler bugs, whereas a larger percentage could very
valuably get started on things like OPAM, js_of_ocaml or Mirage.

Mirage/Xen will definitely be putting in an application this year
again, and anyone interested in doing an OCaml related project is very
welcome to mail me a suggestion or add it directly to:

It would be great to see an OCaml application as well, of course,
although it might be time better spent organising a page that is
maintained on an ongoing basis rather than just for the purposes of
Jon Harrop later added:
Couple of ideas:

· Android support for OCaml.

· Replace the backend of GLSurf (which currently generates C code and
compiles it with GCC) with a generic library that uses LLVM for
run-time compilation of generated code.        

Frama-C related postdoc positions at CEA LIST


Julien Signoles announced:
The CEA LIST, Software Security Labs (LSL) is looking for candidates
for 2 postdoc positions to begin as soon as possible at Saclay,

* Quick position descriptions:

Both positions include theoretical research and OCaml development
related to Frama-C, a framework for code analysis of C programs.

1. Function Synthesis for C Programs from Formal Specifications:

the aim of this postdoc is to automatically generate a function body
that satisfies a given function contract. This way, it becomes
possible to test a function which calls an undefined-but-specified
function. See link below for details.

2. Program Transformation for Information Flow Analysis of C Programs:

the aim of this 18-months research-engineer position is to improve
a program transformation tool which tracks information flows of
C programs. See link below for details.

* Context:

The successful candidates will work in the CEA LIST's new offices
located at the heart of Campus Paris Saclay, in the largest European
cluster of public and private research.

* Requirements:

Candidates should have a Ph.D. in Computer Science (at least, the
defense is planned soon). They should be familiar with several of the
following topics:
- functional programming (OCaml)
- semantics of programming languages (ISO C 99)
- compilation techniques
- formal specification
- logic (first subject)
- information flow security (second subject)

* Application:

Applicants should send an email to Julien Signoles (Julien.Signoles
_at_ including a CV and a motivation letter.

* Links:



Other OCaml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the OCaml Weekly News the links to the
recent posts from the ocamlcore planet blog at <>.

Recursive lists in C++:

Unikernel demo at FOSDEM:

I wrote a book about OCaml (in Portuguese):

Ninth OCaml compiler hacking evening (back in the lab, with a talk from Oleg):

Release of Bookaml 2.0:

Old cwn

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.

Alan Schmitt