Here is the latest Caml Weekly News, for the week of April 13 to 16, 2010.
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/7e740cee4f8972c6#Johannes Kanig announced:
Mlpost 0.8 is finally out! You can get it at http://mlpost.lri.fr/ or at the ocamlforge. Notable changes are a few new modules, such as Tree_adv which delivers more powerful placement of trees, using overlays, or Real_plot, a nice alternative to Plot for float-valued functions. There also is a new system of contributions (contribs), and two contribs for the moment. The first, Mlpost_lablgtk, allows to easily include Mlpost figures into a GTK interface. The other one, Mlpost_dot, draws graphs using a placement as given by the dot(graphviz) tool. The Cairo backend is considered stable now and delivers mostly identical results as the Metapost backend. It supports PS, PDF , PNG and SVG output. A few minor bugs have been fixed, thanks to Julien Signoles, Stéphane Glondu and others. Finally, there are 4 incompatible changes, hopefully they do only affect a few people. See the CHANGES file for more details. Have fun and do not hesitate to submit bug reports, either by mail to the developers, or via the bug tracking system on the forge. If you want to follow the Mlpost development more closely, we are now using a public git repository at the INRIA forge: git clone git://scm.gforge.inria.fr/mlpost/mlpost.git
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/c7c7e9c877d8ec68#Adrien Nader asked and Satoshi Ogasawara replied:
> Is there any FRP library I can use with GTK? I think I saw something > about React and gtk but I can't find it anymore. I'm not afraid of > working on that aspect myself but wanted to know if there was already > something or maybe at least some work on that. You may be interested in Amthing( https://forge.ocamlcore.org/projects/amthing/ ) is, under development, a FRPed GUI library written by OCaml. Amthing dose not have GUI components yet, but has simple sprite system ( labels, images, rectangles and any visible objects can be puted on screen). It's already work well on X11. You can read some examples in the source repository.
I am proud to announce my first open source library, written in OCaml and available immediately on Github: http://github.com/krohrer/caml-inspect/ I hope nobody takes offense over the fact that I chose Github over Forge.ocamlcore.org. For the license, I simply copied the LGPL v2.1 used by ExtLib, which should be ok, I hope. Best regards Kaspar Rohrer PS: A short introduction and screenshots are available on my personal blog: http://lambdamuesli.blogspot.com/
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/07af330b94bc5aa1#Daniel Bünzli announced:
A small update to React and Rtime. * React 0.9.1 http://erratique.ch/software/react - Added E.retain and S.retain. - A few List.map where replaced by List.rev_map. - Fixes to breakout.ml to make it work on vte based terminals. * Rtime 0.9.1 http://erratique.ch/software/rtime - Fix a gc and leak bug in delay_s and delay_e. - Improved and added examples to run unix timelines.
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/5de3ee4bf002ee87#Alain Frisch explained:
During today's ocaml meeting, the question of whether first-class module types could support subtyping was asked. I'd like to give a more detailed answer here. The explicit subtyping construction (e : t1 :> t2) could easily be extended to support subtyping of the form (module S with type t1 = ...) :> (module S) that is, to forget some type annotations. One could also support subtyping of the form: (module S) :> (module S') provided that S is a subtype of S' (as module types), and *moreover* that the coercion from S to S' is the identity. The only real use I could see for it is when S and S' refer to the equal module types but they are just different names (in which case (module S) and module (module S') cannot be unified). The reason to require the coercion S ~~> S' to be trivial is that the explicit subtyping construction is assumed to be a runtime no-op. That said, it is not difficult to use subtyping of module types by hand as in: (module (val x : S) : S') which works as soon as S is a subtype of S'. Concretly, the code generated for this piece of code is simply the coercion from module type S to module type S'. This also work to forget type annotations (in which case the coercion is the identity). Given how simple this construction is, I don't think it is worth extending the ( :> ) relation to support module types in very limited cases.
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/56fc92fceb45764d#Yaron Minsky announced:
This is an updated version of the call for participation for CUFP. Most importantly, the proposal deadline has been updated. Commerical Users of Functional Programming (CUFP) is a workshop that is co-located with ICFP. If you have experience using OCaml (or another functional language) in a pragmatic setting, consider submitting a proposal to give a talk about it at CUFP! ------------------------------------------ Commercial Users of Functional Programming Workshop (CUFP) 2010 Call for Participation Sponsored by SIGPLAN Co-located with ICFP 2010 Baltimore, Maryland Sep 27-29, 2010 Submission Deadline: 15 June 2010 Functional programming languages have been a hot topic of academic research for over 35 years, and have seen an ever larger practical impact in settings ranging from tech startups to financial firms to biomedical research labs. At the same time, a vigorous community of practically-minding functional programmers has come into existence. CUFP is designed to serve this community. The annual CUFP workshop is a place where people can see how others are using functional programming to solve real world problems; where practitioners meet and collaborate; where language designers and users can share ideas about the future of their favorite language; and where one can learn practical techniques and approaches for putting functional programming to work. # Giving a CUFP Talk # If you have experience using functional languages in a practical setting, we invite you to submit a proposal to give a talk at the workshop. We're looking for two kinds of talks: *Experience reports* are typically 25 minutes long, and aim to inform participants about how functional programming plays out in real-world applications, focusing especially on lessons learned and insights gained. Experience reports don't need to be highly technical; reflections on the commercial, management, or software engineering aspects are, if anything, more important. You do not need to submit a paper! *Technical talks* are expected to be 30-45 minutes long, and should focus on teaching the audience something about a technical technique or methodology, from the point of view of someone who has seen it play out in practice. These talks could cover anything from techniques for building functional concurrent applications, to managing dynamic reconfigurations, to design recipes for using types effectively in large-scale applications. While these talks will often be based on a particular language, they should be accessible to a broad range of functional programmers. If you are interested in offering a talk, or nominating someone to do so, send an e-mail to francesco(at)erlang-consulting(dot)com or yminsky(at)janestreet(dot)com by **15 June 2010** with a short description of what you'd like to talk about or what you think your nominee should give a talk about. Such descriptions should be about one page long. There will be no published proceedings, as the meeting is intended to be more a discussion forum than a technical interchange. # Program Committee # * Francesco Cesarini, Erlang Training and Consulting (Co-Chair) * Tim Dysinger, Sonian Networks * Alain Frisch, LexiFi * Nick Gerakines, Chegg * Adam Granicz, IntelliFactory * Amanda Laucher * Romain Lenglet, Google Japan * Yaron Misky, Jane Street (Co-Chair) * Mary Sheeran, Chalmers * Don Stewart, Galois * Dean Wampler, DRW Trading # More information # For more information on CUFP, including videos of presentations from previous years, take a look at the CUFP website at http://cufp.org. Note that presenters, like other attendees, will need to register for the event. Presentations will be video taped and presenters will be expected to sign an ACM copyright release form. Acceptance and rejection letters will be sent out by July 15th.
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/5990f9cd6f5f994f/7d59d8c2fb11c8bc?pli=1Christoph Bauer announced:
Dawid wrote: > So I get working native code. > The remaining problem is that camlp4 crashes on some Unix call when > preprocessing. I solved it by preprocessing all the code on another machine. I looked again into that problem. ocamlrun opens a DLL (dllunix.so) and this dll trys to use symbols from ocamlrun (caml_alloc_string). Unfortunatly this doesn't work. The easiest solution is, to link ocamlrun agains libcamlrun_shared.so and to set an internal libpath. Download it from here: http://home.arcor.de/chr_bauer/ocaml-aix.html
Archive: http://groups.google.com/group/fa.caml/browse_frm/thread/3dbd812cba5a65f1?pli=1Stéphane Glondu announced:
The Lwt team is pleased to announce the release of Lwt 2.1.0. You can download it at: http://ocsigen.org/lwt/install Here is a list of changes from the previous version (2.0.0): * Rename Lwt.select to Lwt.pick * Removing module Lwt_monitor in favour of Lwt_mutex and new module Lwt_condition * More react helpers: - Lwt_event.next - Lwt_event.limit and Lwt_signal.limit - Lwt_event.from * Adding function Lwt_main.fast_yield * Adding unit tests * Optimisation of Lwt * Adding module Lwt_log for logging * Adding a camlp4 filter for remmoving logging statement or inlining tests * Adding module Lwt_daemon * Adding function Lwt_unix.recv_msg and Lwt_unix.send_msg * Adding function Lwt_unix.wait4 * Adding function Lwt_io.establish_server * Adding module Lwt_list * Enhancement in Lwt_process, it now support redirections and timeouts * Allow to use select on arbitrary high file descriptors * More commands and features in Lwt_read_line: - Handle "undo" command - New controlable read-lines instances - More edition commands - Completion as you type - Backward search * Enhancement in Lwt_term: more drawing functions and allow to put the terminal into drawing mode * Optimisation of Lwt_stream * Optimisation of Lwt_io.write_char and Lwt_io.read_char * Bugfix of Lwt_stream: two parallel Lwt_stream.get returned the same value * Bugfix in Lwt_unix.connect: it returned immediatly on EINPROGRESS * Bugfixes in Lwt_glib: file descriptors were not monitored correctly
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/. ocaml-boxes: https://forge.ocamlcore.org/projects/ocaml-boxes/ Sebib 1.0.0: http://caml.inria.fr/cgi-bin/hump.cgi?contrib=725 Rtime 0.9.1: http://caml.inria.fr/cgi-bin/hump.cgi?contrib=683 OCaml Meeting 2010 is over: http://forge.ocamlcore.org/forum/forum.php?forum_id=586 OCaml Users Conference 2010: http://rwmj.wordpress.com/2010/04/17/ocaml-users-conference-2010/ Cluster Computing at Mylife.com: http://blog.camlcity.org/blog/omeeting2010.html React 0.9.1 and Rtime 0.9.1: http://erratique.ch/software/rtime Off to the OCaml Users Conference: http://rwmj.wordpress.com/2010/04/14/off-to-the-ocaml-users-conference/ ocaml bindings for Buddy BDD: https://mancoosi.org/~abate/ocaml-bindings-buddy-bdd
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.