Caml Weekly News Previous week Up Next week

Hello

Here is the latest Caml Weekly News, for the week of September 06 to 13, 2011.

  1. OCAPIC 2.5, tutorial
  2. Nouveau livre pour la programmation en OCaml (2011)
  3. Functional Programming eXchange 2012: Call for abstracts
  4. Running ocaml programs on Windows
  5. Bloom filters
  6. Other Caml News

OCAPIC 2.5, tutorial

Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2011-09/msg00054.html

Philippe Wang announced:
during this summer, a few changes have happened for OCAPIC.
OCAPIC is about programming PIC18 micro-controllers using OCaml (the complete 
language with a modified runtime library) rather than assembly (PIC ASM or 
subsets of C).

- a new look for the website, and a new URL (the former one is still valid)
  http://www.algo-prog.info/ocapic/

- a new major version for OCAPIC (2.5)
 The list of new features is available on the download page:
 http://www.algo-prog.info/ocapic/web/index.php?id=Download

- and more importantly, a tutorial (in both French and English) for those who 
want to explore this particular world of PIC micro-controllers in OCaml.
 As a PIC environment simulator is part of OCAPIC, you can even experiment 
PIC programming without having any PIC hardware.
 http://www.algo-prog.info/ocapic/web/index.php?id=Documentation

Feel free to send feedback or ask questions.
      

Nouveau livre pour la programmation en OCaml (2011)

Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2011-09/msg00056.html

Philippe Wang announced:
(sorry, no English version this is about a new book written in French)
_______

Bonjour,

un livre pour l'apprentissage de la programmation en OCaml est paru cet été.
Il s'agit de
  "Programmation de droite à gauche et vice-versa"
par Pascal Manoury.
   ISBN 978-2-916466-05-7, 150 pages.

Le livre correspond à un cours dispensé en L2 à l'Université Pierre et
Marie Curie.

Le livre sur le site de l'éditeur :
http://paracamplus.com/?CGIRunMode=book&urn=Cours/UPMC/LI220/6

Le 1er chapitre est disponible en PDF là :
http://paracamplus.com/Books/Cours/UPMC/LI220/6/extrait.pdf
      

Functional Programming eXchange 2012: Call for abstracts

Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2011-09/msg00071.html

Robert Pickering announced:
Functional Programming eXchange is a developer conference that focuses
on functional programming. The 2012 edition will take place on Friday
March 16th March 2012, at the Skills Matter eXchange, in London.
Typically talks are explore concepts that often crop up in functional
programming such as parallelism or domain specific languages, look at
frameworks built in functional languages or are cases studies of using
functional programming in industry.

Previous speakers have included: Simon Peyton Jones, Miles Sabin,
David Pollak, Adam Granicz, Antonio Cisternino, Tomas Petricek, Jonas
Boner, and Viktor Klang.

Videos of the talks at the previous events can be found here:
http://skillsmatter.com/event/scala/functionalpx-2011
http://skillsmatter.com/event/cloud-grid/functional-programming-exchange-2009

If you are interested at speaking at this conference please send a
talk abstract to 
talks_functionalpx AT skillsmatter.com.

I’m aiming to make the decision about which talks have been chosen
around 14th October so if you submit an abstract expect to hear from
me around this time.
      

Running ocaml programs on Windows

Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2011-09/msg00068.html

Jocelyn Serot asked and Török Edwin replied:
> This may be a trivial question for people working on multiple platforms but,
> having worked for a long time only on Unix-like platforms (including Mac OS 
> X),
> i'm a bit puzzled..
> 
> What is the "best" (simplest both for the programmer and, most importantly, 
> the
> end user) way to develop a program in Ocaml in order to distribute it to 
> people
> having only MS Windows platforms ? 
> 
> Is it possible to cross-compile (from what i've read, no)  ?

mingw32-ocaml can cross-compile, Debian and Fedora includes it.
You'll need to cross-compile all the OCaml (and native) libs you use though 
(Fedora might provide pre-cross-compiled libs, not sure).

Unfortunately there doesn't seem to be an easy way to cross-compile for Win64 
in Debian
(might be possible if an mingw-w64-ocaml package is created based on 
mingw-w64), but 32-bit
executables run just there too.

> 
> Do i have to install a ocaml distribution on a machine running windows, 
> compile
> my program with the installed tools (ocamlc/ocamlopt) and distribute the
> resulting .exe ?

That'd work of course, but you have the inconvenience of booting windows 
everytime.

> Aux question : In the Unix version, arguments are passed on the command 
> line. I
> understand that the same can be done under Windows using some kind of 
> "shell"
> (under Cygwin). But this may be disruptive to many Windows users who are 
> used
> to the "click to launch" approach. Is there some kind of tool that could
> automatically wrap a command-line-based app into a click-to-launch app (with
> some additionnal pop-ups to enter arguments for ex) ? 

Not that I know of, but one could be written using ocaml-win32 (or lablgtk).
Is your app purely console based otherwise, or does its Unix version have a 
GUI?

> Sorry if these questions sound trivial but despite a long experience in 
> Ocaml
> programming (>15 yrs), i've never been exposed to sw dev under windows (in 
> fact
> i deliberately avoid this terrain ;) 
> 
> Btw, for those interested, the program i'm trying to port is a compiler
> generating VHDL code for FPGAs from high-level actor-dataflow descriptions
> (more info here :
> http://wwwlasmea.univ-bpclermont.fr/Personnel/Jocelyn.Serot/caph.html).
> For the moment, i'm distributing a bytecode but this requires the target
> audience to have a ocaml distrib installed on their machine (which, from
> experience, most of them view it as an hindrance). 

Does that mean that you don't use 3rdparty libs, or only use
ones that can be compiled to pure bytecode (without native code)?
If so cross-compiling with mingw32-ocaml should work fairly well.

Another alternative would be to distribute ocamlrun.exe alongside your 
program.
      
Dmitry Grebeniuk also replied:
> What is the "best" (simplest both for the programmer and, most importantly, 
> the
> end user) way to develop a program in Ocaml in order to distribute it to 
> people
> having only MS Windows platforms ?

  If you want to just distribute your program, you can get
cross-compilers.  They will make the binaries that you
can distribute, of course.
  If you want to test your program (to see whether it runs,
at least!), assure the quality of your program in some
ways -- the cross-compiling is not enough, and you
should use the real windows installation or some kind
of a virtual machine.  This is caused by the differences
between many windows versions, currently installed
"windows updates", software versions (for example,
the version of installed ActiveState Tcl/Tk package
for GUI OCaml programs).

> Is there some kind of tool that could
> automatically wrap a command-line-based app into a click-to-launch app (with
> some additionnal pop-ups to enter arguments for ex) ?

  The best way is to distribute a tcl/tk-powered application
with a fair GUI (and with the tcl/tk itself).
  Also the "wish" utility from tcl/tk does exist in windows
tcl/tk installation (AFAIR), you can use it too, for simple
GUIs, for just "prompt and go" wrappers.
  Lablgtk2 is good too.
  Avoid the .bat/.cmd files generation (Sys.command too),
since cmd (the windows shell) uses some
incomprehensible ways to handle the quotes. It's more
safe to write some utility in ocaml+labltk that passes
command line options to the real working program with
Unix.create_process-like functions (the functions that
receive the argv[] list! arguments shouldn't be concat'ed
to the string).

  As for ocaml-windows-mingw-32bit developement, you
can use my project "overbld": http://overbld.sourceforge.net/ ;,
it provides installers for some variants of OCaml+libraries
distribution.  I will add/fix libraries to/in the distribution.
(compiler in the overbld distribution will be updated when
OCaml 3.13 will be released, in 1..2 weeks from the OCaml
release).
  It's easy for me, since I'm fighting this issue (windows,
ocaml, libraries) for a long time.
  64 bits are not required for my windows applications, so
I'm not adding/compiling 64-bit version of overbld.  But it is
not a very hard task, as I have seen, since OCaml runs on
mingw64.  (Really, I saw it On The Internets!).
      

Bloom filters

Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2011-09/msg00070.html

Anders Fugmann asked and Gilles Pirio replied:
> Before starting my own Bloom filter implementation, I want to ask if
> anyone knows of any existing implementation of Bloom filters in Ocaml.
> I'm especially interested in counting bloom filters.

Martin Jambon's implementation of Bloom filters can be found at
https://github.com/mjambon/memories

I know he's actively watching this list so feel free to contact him
for further info.
      
Ashish Agarwal also suggested:
There was a PADL paper presenting an implementation in Haskell:
http://blog.malde.org/index.php/2009/02/11/notes-from-padl/
      

Other Caml News

From the ocamlcore planet blog:
Thanks to Alp Mestan, we now include in the Caml Weekly News the links to the
recent posts from the ocamlcore planet blog at http://planet.ocamlcore.org/.

Second release candidate of Ocsigen 2.0:
  http://ocsigen.org/

OCAPIC 2.5:
  http://caml.inria.fr/cgi-bin/hump.cgi?contrib=742

Baby steps with Mercury - doing file I/O.:
  http://blog.dbpatterson.com/post/10101986648

A Note on Geomancy:
  http://alaska-kamtchatka.blogspot.com/2011/09/note-on-geomancy.html

4x4-Bit Matrix Transposition:
  http://alaska-kamtchatka.blogspot.com/2011/09/4-matrix-transposition.html

Segmentation Faults, TAP and Eclipse:
  http://gaiustech.wordpress.com/2011/09/09/segmentation-faults-tap-and-eclipse/

L-BFGS 0.8 released:
  https://forge.ocamlcore.org/forum/forum.php?forum_id=805

new release of ocaml-buddy:
  https://mancoosi.org/~abate/new-release-ocamlbuddy

Boolean Expression Simplifier:
  https://forge.ocamlcore.org/projects/bes/

Goodbye MLstate, goodbye Opa:
  http://dutherenverseauborddelatable.wordpress.com/2011/09/06/goodbye-mlstate-goodbye-opa/
      

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