Here is the latest Caml Weekly News, for the week of December 21 to 28, 2010.
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00231.htmlXavier Leroy announced:
Dear subscribers, Just to let you know that the caml-list mailing list, previously managed by Mailman running on our development server, was migrated to the Sympa list manager running on INRIA's dedicated, professionally-administered mailing-list server. Thanks are due to Jean-Paul Chieze who performed the migration with great care. To review and change your subscription options, please visit: https://sympa-roc.inria.fr/wws/info/caml-list Messages to the list should be posted to caml-list AT inria.fr, as before. There used to be an alternate address @yquem.inria.fr which will cease to work some time in the future, so please bookmark the @inria.fr address. Along with the migration, we also got new Web archives for the list (going back to its inception in the early 1990's): https://sympa-roc.inria.fr/wws/arc/caml-list The new archives don't look quite as good as the old ones, but at least dates are not mangled. Enjoy the mailing list and please be forgiving if the migration is a bit bumpy.
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00239.htmlGerd Stolpmann announced:
A new version of ocamlnet (3.2) is ready for download and installation. This version adds a number of features: * Netfs.stream_fs is the class type for a simple file system. It is quite minimalistic, and covers a bit more than can be done with the standard library (w/o Unix) * Netfs.local_fs is an implementation of stream_fs for accessing the local filesystem * Http_fs.http_fs is another implementation for accessing filesystems via HTTP * Shell_fs.shell_fs is another implementation for accessing filesystems by executing shell commands * There are generic algorithms for iterating and copying files * Netglob: is an implementation of globbing (wildcard resolution). It can be used for local files, but also for any stream_fs file. * Netmulticore is an experimental library for parallelizing code by using multiple processes. * Netconversion.user_encoding returns the current character encoding the user has set in the environment (locale) * Netsys_posix: adding the openat family of functions; adding fchdir; adding fdopendir There is also a bugfix: Http_client can again take advantage from aggressive connection caching. Download: http://download.camlcity.org/download/ocamlnet-3.2.tar.gz Manual: http://projects.camlcity.org/projects/dl/ocamlnet-3.2/doc/html-main/index.html Examples for Netmulticore: https://godirepo.camlcity.org/svn/lib-ocamlnet2/trunk/code/examples/multicore/ Please report problems to gerd AT gerd-stolpmann.de GODI users: ocamlnet-3.2 is only provided for Ocaml 3.12, and in the ocamlnet3 overlay for Ocaml 3.11.
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00240.htmlDon Syme announced:
(It's been a while since I posted to the Caml list. My warm regards to everyone in the community, and best wishes for 2011) Hi all, The F# team are looking for a world class developer to join the team in Redmond. We are seeking a talented and highly motivated software engineer with experience in compilers, language tools and data programming to help us ship the next version of F#. The ideal candidate will have a love for functional programming and the F# language, strong .NET programming skills including object-oriented techniques, knowledge of network, data and cloud programming, and experience of working on compilers. An interest in giving F# talks and working with F# users is also a strong plus, as is experience in data-oriented work, object/relational mappings, web services and other connectivity technologies. Above all, we're looking for people who can make significant contributions to the F# language implementation & tools, and who can help develop the foundations necessary for the application of F# in the professional developer community. An MS or PhD degree in Computer Science or a related technical field is considered an advantage. The F# compiler is released as open source via a code-drop model on major releases, and experience with both large projects and binary/code releases on smaller, agile projects is valuable. We'd love to hear from you! Please apply via the online forms, and feel free to contact myself or Joe Pamer (jopamer AT microsoft.com) for more information. Details at https://careers.microsoft.com/JobDetails.aspx?ss=&pg=0&so=&rw=1&jid=30512&jlang=EN. Applications must be submitted via the online forms. Kind regards & best wishes, Don Job Category: Software Engineering: Development Location: United States, WA, Redmond Job ID: 739350 30512 Division: Server & Tools Business
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00242.htmlAlain Frisch announced:
LexiFi is looking to expand its team of OCaml developers. We have many fun projects; it's a great time to join us! The official job offer (in French) is available here: http://www.lexifi.com/careers/jobs/fr/ingenieur_developpement We are based in Paris area (Boulogne-Billancourt). Internships are also possible. Please send your cover letter and resume to careers AT lexifi.com
Archive: https://sympa-roc.inria.fr/wws/arc/caml-list/2010-12/msg00267.htmlMarkus Mottl asked and Jacques Garrigue replied:
> please consider the following code: > > ------------------- > module M = struct type t = A | B end > > module X : sig > (* type t = M.t = A | B *) > include module type of M > (* include module type of M with type t = M.t = A | B *) > end = struct include M end > > let () = assert (M.A = X.A) > ------------------- > > This will fail, because M.A is not of the same type as X.A. But I > would really like to make the types equivalent. > > Using the first commented out line instead of the module type > inclusion will succeed, but then I would not be able to automatically > include any functions potentially contained in module M. The last > commented out line won't work, because one cannot establish a type > equivalence via a manifest type definition after "with type". Even > if, I don't think one could override anything else but an abstract > type that way, and we are including a sum type here already. > > Does anybody have any suggestions for a workaround? I suspect this > may be a missing feature. Unfortunately there is no easy workaround using 3.12.0. Intuitively at least the 3rd line should work, but a bug prevents this. In 3.12.1, you should be able to write either the 3rd, or the simpler following version: include module type of M with type t = M.t This should solve your problem. Side note: the choice to make "include M" define "type t = A | B" rather than "type t = M.t = A | B" was done to allow more implementations (any module defining the same operations as M is allowed, rather than modules sharing the same representation for types.) But it resulted in not allowing the code you write here, which was not intentional.
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/. References with physical equality: http://www.lexifi.com/blog/references-physical-equality ocaml-extunix 0.0.2 released: https://forge.ocamlcore.org/forum/forum.php?forum_id=760 hypertable bindings: https://forge.ocamlcore.org/projects/hypertable/
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.