[cwn] Attn: Development Editor, Latest Caml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue Jun 13 00:30:14 PDT 2006


Hello,

Here is the latest Caml Weekly News, for the week of June 06 to 13,  
2006.

1) pa_monad 1.0 - syntax extension for monads
2) Job Announcement
3) ocamlscript 1.99
4) Would you like a job working on GHC?

========================================================================
1) pa_monad 1.0 - syntax extension for monads
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/ 
e10c96f3896f26ef/5fd7f27eed944f0a#5fd7f27eed944f0a>
------------------------------------------------------------------------
** Jacques Carette announced:

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.

========================================================================
2) Job Announcement
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/ 
1359d3f8bcd8dbe2/b4720fbbe88e0e6a#b4720fbbe88e0e6a>
------------------------------------------------------------------------
** Yaron Minsky announced:

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 at 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.

========================================================================
3) ocamlscript 1.99
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/ 
82ff0abef1c67120/b613e4688d2c77b0#b613e4688d2c77b0>
------------------------------------------------------------------------
** Martin Jambon announced:

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>

========================================================================
4) Would you like a job working on GHC?
Archive: <http://groups.google.com/group/fa.caml/browse_thread/thread/ 
a72bb24306a2c031/1519145a869d7375#1519145a869d7375>
------------------------------------------------------------------------
** Simon Peyton-Jones announced:

                 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 at microsoft.com   We're happy to accept informal enquiries of
course: please contact Simon Marlow (simonmar at microsoft.com) or Simon
Peyton Jones (simonpj at 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

========================================================================
Using folding to read the cwn in vim 6+
------------------------------------------------------------------------
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.

========================================================================
Old cwn
------------------------------------------------------------------------

If you happen to miss a CWN, you can send me a message
(alan.schmitt at polytechnique.org) and I'll mail it to you, or go take  
a look at
the archive (<http://alan.petitepomme.net/cwn/>) or the RSS feed of the
archives (<http://alan.petitepomme.net/cwn/cwn.rss>). If you also wish
to receive it every week by mail, you may subscribe online at
<http://lists.idyll.org/listinfo/caml-news-weekly/> .

========================================================================

-- 
Alan Schmitt <http://alan.petitepomme.net/>

The hacker: someone who figured things out and made something cool  
happen.
.O.
..O
OOO


-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20060613/3aba433f/PGP.bin


More information about the caml-news-weekly mailing list