Previous week Up Next week

Hello

Here is the latest OCaml Weekly News, for the week of May 26 to June 02, 2015.

  1. State of OCaml on Windows
  2. Two years R&D engineer position available in Computer Science & Arts, Bordeaux, France
  3. Next OUPS meetup, 4th of June 2015
  4. getting the name of a function from its body
  5. Other OCaml News

State of OCaml on Windows

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2015-05/msg00101.html

Thomas Braibant announced:
There have been numerous discussions about the state of OCaml on
Windows on the Opam GitHub [1], and especially here [2]. What
comes out is that there are many ways to use OCaml on
Windows (using the Cygwin-based native win32 port, using the
Cygwin port, compiling from sources to get a Microsoft based
native Win32/Win64 port, using the WODI package manager, using
OCamlPro's OCaml distribution for Windows [3]...), but that none
of these seems to be a clear-cut solution. Moreover, the range of
options has unfortunately shrunk since WODI has stopped being
maintained [4].

We feel like advertising and discussing individual and corporate
efforts to improve the support of OCaml on Windows deserves a
wider audience than people actively looking at a few disparate
GitHub issues. Therefore, we have set up a `wg-windows` mailing
list to work through the issues. Interested parties are welcome
to join it here:

http://lists.ocaml.org/listinfo/wg-windows

Regards,
Thomas

[1] https://github.com/ocaml/opam/issues?utf8=%E2%9C%93&q=opam++windows
[2] https://github.com/ocaml/opam/issues/246
[3] http://www.typerex.org/ocpwin.html
[4] http://wodi.forge.ocamlcore.org/
      

Two years R&D engineer position available in Computer Science & Arts, Bordeaux, France

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2015-05/msg00102.html

David Janin announced:
Inria Bordeaux opens a R&D engineer position in the PoSET research project,
located at LaBRI, Bordeaux, France

Object: research and development on new modeling and programing methods for
realtime computerized artistic systems.

Duration: two years from Autumn 2015.

Where : Inria Bordeaux/CNRS LaBRI, within the research project PoSET.

Salary: from 2000 to 2500 Euros monthly netto (including health insurance)
depending on candidate qualification.

Keywords: functional programing (Haskell or Ocaml), reactive programming,
real-time system, graphical modeling, computational music, science and arts.

More details below. To apply, send CV and motivation letter to David Janin, david.janin@labri.fr

*********************
** Research Context

The Inria research project PoSET is a new research team in Bordeaux with four
permanent researchers and at least as many PhD students. It aims at developing
a new approach to the design, implementation and execution of complex
interactive media systems such as augmented musical pieces or interactive
museographic installations. It aims in particular at developing the notion of
tiled temporal media, a mathematically well-defined and rich model of temporal
media, with a clean and efficient implementation of this model in the
functional programming language Haskell. The resulting software platform
should offer uniform, robust and easy-to-use tools for the homogeneous
capture, transformation and production of heterogeneous temporal media: music,
video, animation, etc.

** Mission

Within the PoSET research and development team, the engineer will be the main
developer of the project. His task will consists in developing consolidated
versions of the existing programming modules and the current on-the-fly
rendering kernel. Further developments, to be designed in collaboration with
researchers and artists, will include interactive extensions of the rendering
kernel, graphic modeling extensions based on higher dimensional tiles, and
various domain-specific libraries (audio, music, video, control). His task
will also include technical assistance to artists in residence creating
artistic systems.

** Profile

Master degree / engineering diploma in Computer Science
- Creative and highly motivated
- Solid programming skills in functional programming (Haskell, Ocaml)
- Prior exposure to Human-Machine Interface and Computational Music would be a bonus
- Language requirements: fluent spoken English or French and fluent written English

** Environment

Hired by Inria Bordeaux Sud-Ouest, the engineer will be located within CNRS
LaBRI in the lively city of Bordeaux which hosts many foreign students and
researchers. Located in the heart of one of the most famous wine region of
France, the direct surrounding of Bordeaux offers great outdoor recreation
including surfing, sailing and cycling. The Pyrenees mountains (hiking,
climbing and skiing) can be reached from Bordeaux in 3h by car. Paris can be
reached from Bordeaux in 3h by train.

** About Inria:

« Established in 1967, Inria is the only public research body fully dedicated
to computational sciences. Combining computer sciences with mathematics,
Inria’s 3,500 researchers strive to invent the digital technologies of the
future. Educated at leading international universities, they creatively
integrate basic research with applied research and dedicate themselves to
solving real problems, collaborating with the main players in public and
private research in France and abroad and transferring the fruits of their
work to innovative companies. The researchers at Inria published over 4,500
articles in 2013. They are behind over 300 active patents and 120 start-ups.
The 172 project teams are distributed in eight research centers located
throughout France. »

** Some related links:

* Inria Bordeaux Sud-Ouest:
http://www.inria.fr/en/centre/bordeaux

* UMR CNRS LaBRI laboratory
http://www.labri.fr/index.php?n=Main.HomePage?userlang=en

* PoSET research project
http://www.labri.fr/perso/janin/poset.html

* SCRIME (Studio de Création et de Recherche en Informatique et Musique Electroaccoustique)
https://scrime.labri.fr/le-scrime/

* PoSET team leader
http://www.labri.fr/perso/janin/

* Some publications in link with the project
http://www.labri.fr/perso/janin/music.html
      

Next OUPS meetup, 4th of June 2015

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2015-05/msg00104.html

Thomas Braibant announced:
The next OUPS meetup will take place on the 4th of June, at IRILL. We will
have a few talks, followed by pizzas.

The program of the talks is:

- Alain Frisch. gen_js_api: Generating Javascript bindings for js_of_ocaml
- Pietro Abate. OpamWeather Service : usage and development
- Gabriel Scherer. Some news about the next version of OCaml
- Thomas Williams. Ornaments for refactoring in OCaml

To register, or for more information, go here
http://www.meetup.com/ocaml-paris/events/222500273/

Thomas, for the organizers of the meetup
      

getting the name of a function from its body

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2015-06/msg00001.html

Gustave Nimant asked and Fabrice Le Fessant replied:
> is there any way in OCaml to get the name of a function from its body, in
> order to write precise error messages for instance ?

Recent versions of OCaml provide "__LOC__", "__FILE__", "__LINE__",
"__MODULE__" and "__POS__" primitives that can be used to display
precise error messages.
      
Gabriel Scherer added:
"Recent" is 4.02 in that case -- although the implementors forgot to indicate
it as such using @since tags in the documentation.
      
Gustave Nimant then said and Francois Berenger replied:
> Thank you for this information I was not aware of.
> It seems that the functions described in
> http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html
> do not answer my question :
> "how to get the name of the current function ?"

It is currently not possible.

There is no __FUNCTION__ like you have in C.
I was also quite interested by this feature a long time ago.
For loggers it is quite useful.

I cannot find the thread back, I don't know where to search the archives
of caml-list.
Gabriel Scherer mentioned there is not always a function name since
they can be inlined by the compiler, if I remember correctly.
      
Fabrice Le Fessant replied:
The main reason for the absence of __FUNCTION__ is probably that it
does not really make sense : you might have several functions with the
same name within the same module :

let f x = x+1
let f list = List.map f list

It makes sense in C, because you can only define a symbol once in a
file, so the pair (__FILE__, __FUNCTION__) is uniq (and if the
function is not static, it is probably even uniq within the
executable).

In OCaml, it is probably better to use the pair (__FILE__, __LINE__)
to tell the dev where to search for the problem.
      

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 http://planet.ocaml.org/.

Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong:
  http://jobs.github.com/positions/0a9333c4-71da-11e0-9ac7-692793c00b45

Runtime length encoding data compression method:
  http://blog.shaynefletcher.org/2015/05/runtime-length-encoding-data.html
      

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