Hello
Here is the latest Caml Weekly News, for the week of June 06 to 13, 2006.
We are pleased to announce the release of the stable version our syntax extension for monadic expressions in Ocaml. All the details can be obtained from http://www.cas.mcmaster.ca/~carette/pa_monad/ . Example: A simple but realistic example of the use of a list monad looks like this bind [1; 2; 3] (fun a -> bind [3; 4; 5] (fun b -> return (a + b))) where we assume the appropriate definitions of the functions "bind" and "return". With the help of "pa_monad" this can be written as perform a <-- [1; 2; 3]; b <-- [3; 4; 5]; return (a + b) which is much clearer and thus easier to understand and maintain. By the way, the expression evaluates to [4; 5; 6; 5; 6; 7; 6; 7; 8] the sum of each pair of values of the input lists. Highlights: - Efficient code: The generated code is as efficient as hand-coded. - Highly flexible: The "bind" and "failwith" functions can be specified in various ways (a) Binding with default names: perform ... (b) Binding with user-defined names: perform with my_bind and my_failwith in ... (c) One-of-a-kind binding: perform with fun a f -> f a and ... in ... (d) Module-based binding: perform with MyMonad in ... or with OCaml's local modules: let foo ... = let module MyMonad = ... in perform with MyMonad in ... The package for this extension contains more examples as well as some self-tests and an extensive README with yet more details (including a patch to tuareg-mode). In the source code (and the generated ocamldoc html), one can find amongst other things an informal and formal description of the grammar of the extension, and a (rewriting) semantics for the extension. This code is licensed under the GNU library general public license, compatible with Ocaml's own license.
I'm pleased to announce that Jane Street Capital is yet again actively looking to hire some top-notch functional programmers. Jane Street Capital (http://janestcapital.com) is a proprietary trading company located in Manhattan, and we're looking to hire developers interested in working on trading systems and infrastructure, all built in OCaml. Jane Street is an open and informal environment (you can wear shorts and a t-shirt to the office), and the work is technically challenging and wide-ranging. Pay is competitive, and we're a reasonably small company (around 100 employees), so advancement is pretty quick for someone who performs well. Here's what we're looking for (in no particular order): - Strong programming skills. Pretty much all of our programming is in OCaml, so being a solid Caml hacker is a big plus. Extra points for deep knowledge of OCaml internals and experience wrapping thorny libraries. But we're also interested in great programmers who we are convinced will be able to pick up OCaml quickly, so anyone with a high-level of proficiency with functional languages would be a good match. - A commitment to the practical. Our work is tightly integrated with our trading operation, and we work very hard to keep our work relevant. One of the big attractions of the job is the opportunity to apply serious ideas to real-world problems. - Great communication skills. We need people who can explain things clearly and cogently. - Strong mathematical and analytic skills. We want people who can solve difficult technical problems, and think clearly and mathematically about all sorts of problems. - Strong Unix/Linux skills --- We're looking for someone who knows their way around the standard Unix tools, can write makefiles, shell scripts, etc. We're also very interested in people with serious systems administration and architecture experience. If you're interested (or have any students you think might be a good match) and would be willing to relocate to New York, please send a cover-letter and resume to: yminsky@janestcapital.com And you can get more information about us here: http://www.janestcapital.com/ocaml.html Note for foreign applicants: it is never too early to apply! The quote for this year for H1-B visas is already filled, so the earliest possible hiring date is October 2007.
We are pleased to announce a pre-release of the future ocamlscript 2. Ocamlscript allows to write single-file programs that include their own compilation options and run fast thanks to ocamlopt. Ocamlscript is simply a command-line tool which takes a single input file, compiles it and runs it. 1) Key concepts: - one source file contains everything (no more tar.gz or makefiles); - programs run fast (unlike scripts using the "ocaml" command); - programs are recompiled when needed (based on last modification dates). 2) Novelties A script is now composed of two parts: - a short header which is written in OCaml and that is used to set compilation options (packages to use, compiler options, a special preprocessing, or even a completely different compiler to use instead of ocamlopt); - the program itself. By default, the program is compiled with ocamlopt and camlp4o as preprocessor, but this can be changed. This new version is not 100% compatible with the last release of ocamlscript (1.1). It only concerns specific cases, i.e. scripts that requi re exactly one cmx or cmxa file with no other option. 3) A complete example Real example: a CGI script which uses the PCRE-OCaml, Ocamlnet (cgi package) and Micmatch_pcre libraries. The syntax extension provided by Micmatch_pcre is automatically loaded. PCRE-OCaml (pcre package) is automatically loaded as a dependency of Ocamlnet and Micmatch_pcre. So the script simply needs to start like this: #!/usr/bin/env ocamlscript Ocaml.packs := ["micmatch_pcre"; "cgi"] -- .. The full source code is there: http://martin.jambon.free.fr/examples/domains.ml.html The resulting CGI executable is running as: http://wikiomics.org/cgi-bin/cgi/domains 4) Development status This is the pre-release 1.99.0 of the future ocamlscript 2. It is provided without a true documentation, and some aspects of the interface co uld change until the 2.0 release. User input will be greatly appreciated (see wiki below). 5) Distribution OCamlscript was written by David Mentré (original version) and Martin Jambon (latest features). It is distributed under the terms of the Boost software license. Source code: http://martin.jambon.free.fr/ocaml.html#ocamlscript Wiki page for comments, questions and more: http://ocaml.pbwiki.com/Ocamlscript
Would you like to be paid to work on GHC? The Glasgow Haskell Compiler (GHC) is now being used by so many people, on so many platforms, that at GHC HQ we've been struggling to keep up. We're delighted to say that we are now looking to hire a GHC support engineer to work with us. Here is how we envisage working together: * You would work 3-5 days a week on GHC (details flexible). * You don't need to live in Cambridge, but we would like you to visit every few months, so that we build up a face-to-face relationship. * You'll be a self-employed consultant, not a Microsoft employee. You bill us; we pay you. * The position is a one year fixed term contract in the first instance. * GHC is, and will remain, an open-source project with a BSD-style license. We are looking for help with the role of supporting GHC in the field. Specifically, here's what the job involves: * Investigating, prioritising and fixing bugs, improving the test suite * Managing the STABLE branch of the source tree * Managing the GHC release cycle * Keeping the GHC web site up to date * Answering questions from GHC users * Helping to support the open-source community that works on GHC itself We're particularly looking for someone who is experienced in a variety of operating system platforms and libraries. You should be able to deal with questions like "I try to build GHC on Solaris 2.3.4 and get `undefined symbol _readline'"; or "How do I link to DLLs on Windows?"; or "does the ByteString library in GHC 6.2.1 do XXX?". The role will not primarily involve working on GHC's core; it's the parts round the edges that you would mainly focus on. You must be able to read and write Haskell, but we don't expect that you'll need to write a great deal of Haskell code. C and 'make' experience are important too. Above all, we are looking for someone who is enthusiastic about Haskell, and fired up about the prospect of becoming a GHC expert. If you are interested, please send your CV and a statement of why you would be a good fit for the job, to our Human Resources Department at camjobop@microsoft.com We're happy to accept informal enquiries of course: please contact Simon Marlow (simonmar@microsoft.com) or Simon Peyton Jones (simonpj@microsoft.com) for further information. The rate of pay is dependent on qualifications and experience. It'll be fun! Simon Peyton Jones and Simon Marlow
Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).
:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.
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.