Previous week Up Next week


Here is the latest Caml Weekly News, for the week of 20 to 27 December, 2005.

  1. ant 0.7
  2. LablPCRE 0.9 - a PCRE binding for Objective Caml
  3. ocfgc - a parser generator for ordered CFG (with GLR/Tomita's parsing)
  4. fjavac - a functional java compiler

ant 0.7


Achim Blumensath announced:
I'm pleased to announce the release of ant version 0.7. The archive can
be found at

ant is a typesetting system inspired by TeX. It does not aim at complete
compatibility with TeX but focuses instead on a flexible, clean, and
modular design. New in this release are:

  o improved h&j algorithm (better ligature handling, river detection)
  o improved OpenType support
  o improved PDF generator


PS: Yes, I do know about Apache Ant.

LablPCRE 0.9 - a PCRE binding for Objective Caml


Robert Roessler announced:
The second public release of the LablPCRE OCaml binding for PCRE is 
now available, featuring a new "module" interface with expanded 
functionality and supporting PCRE releases 6.1 - 6.4 (current).

LablPCRE still provides simple and easy to use access to regular 
expression pattern matching - while a richer module-based interface is 
now standard, the original "object" interface is available for those 
who prefer that style.

While I have been pleased to incorporate feedback on the interface 
layout, I am still very interested in expanding the platforms 
supported "natively" in the Makefile, and welcome any contributions, 
patches, or suggestions in this area... not only will these help 
LablPCRE advance to "1.0" status, they will greatly facilitate the 
release (and usefulness) of other projects to the OCaml community.

With a distribution incorporating pre-built Windows binaries, LablPCRE 
is released under the "new" BSD license, and may be downloaded here:

ocfgc - a parser generator for ordered CFG (with GLR/Tomita's parsing)


Stephen Tse announced:
We would like to announce our project written in OCaml: "ocfgc" - a
parser generator for ordered context free grammars (OCFG) based on GLR
(Generalized LR) parsing, also known as Tomita's parsing.

GLR parsing allows syntax specification in the full context-free
grammar, eliminating shift or reduce conflicts in LR/LALR parsing.
High efficiency is achieved using a graph-structured parse stack.

Ordered CFG (see our paper below) specifies the datatype tags together
with associativity and precedence per production rule, making it
possibly to generate abstract syntax trees from a concise specification of
concrete syntax.

We have applied the parser generator for Java 5; the parser can parse
any JDK 1.5 files under 0.5 second.

- concise specification (e.g.
- automatic error diagnosis with line numbers and grammar information
- automatic construction of abstract-syntax trees
- generates maps, iterators, pretty-printers
- on-the-fly disambiguation filters

Currently ocfgc is bundled with our fjavac (Functional Java Compiler)
project, which can be obtained at:

Basic type checking and bytecode compilation of the compiler are
implemented, but supports for generics and type inference are still

Our following paper "Concise Concrete Syntax" explains the idea of
ordered CFG, which can also be applied to LR/LALR parsing:

fjavac - a functional java compiler


Stephen Tse annouced:
We would like to announce our project written in OCaml: "fjavac" - a
functional Java 5 compiler.

Currently the compiler can parse and pretty-print all JDK 1.5 files.
Our abstract syntax trees has been carefully designed for easy of use.
Hopefully other people find our project useful for Java language
extensions or program analyzes.

Our parser is based on GLR (Generalized LR) parsing, making it very
easy to extend the language syntax without worrying about shift/reduce
conflicts in LR/LALR parsing.

Basic type checking and bytecode compilation have been implemented,
but are still under testing. Type checking and type inference for
generics have not been implemented yet. Our long term research goal is
to produce a complete and formal specification of Java compilation
(using Twelf, a logical framework).


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

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