From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id PAA08992 for caml-redistribution; Fri, 11 Dec 1998 15:10:57 +0100 (MET) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id UAA25571 for ; Wed, 9 Dec 1998 20:22:12 +0100 (MET) Received: from jaune.inria.fr (jaune.inria.fr [128.93.11.80]) by nez-perce.inria.fr (8.8.7/8.8.7) with ESMTP id UAA13271 for ; Wed, 9 Dec 1998 20:22:10 +0100 (MET) Received: (from ddr@localhost) by jaune.inria.fr (8.8.7/8.8.7) id UAA02655 for caml-list@inria.fr; Wed, 9 Dec 1998 20:21:35 +0100 Message-ID: <19981209202135.A2650@jaune.inria.fr> Date: Wed, 9 Dec 1998 20:21:35 +0100 From: Daniel de Rauglaudre To: caml-list@inria.fr Subject: Camlp4 2.01 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.93.2 Sender: weis Camlp4 is a preprocessor-pretty-printer for Objective Caml. The version 2.01, compatible with Ocaml 2.01 has been released. All informations and downloading address at: http://caml.inria.fr/camlp4/ Among changes, notice that the interface of the module Token changed. If you defined your own lexers (not using the predefined Plexer), you have things to changes in your programs. See the file README-2.01 in the distribution and the documentation of Camlp4. Camlp4 Version 2.01 - Changes ----------------------------- Token interface * Big change: the type for tokens and tokens patterns is now (string * string) the first string being the constructor name and the second its possible parameters. No change in EXTEND statements using Plexer. But lexers have: - a supplementary parameter "tparse" to specify how to parse token from token patterns. - fields "using" and "removing" replacing "add_keyword" and "remove_keyword". See the file README-2.01 for how to update your programs and the interface of Token. Grammar interface * The function "keywords" have been replaced by "tokens". The equivalent of the old statement: Grammar.keywords g is now: Grammar.tokens g "" Missing features added * Added "lazy" statement (pa_r.cmo, pa_o.cmo, pr_r.cmo, pr_o.cmo) * Added print "assert" statement (pr_o.cmo, pr_r.cmo) * Added parsing of infix operators like in Ocaml (e.g. |||) in pa_o.cmo Compilation * Added "make scratch" * Changed Makefile. No more "make T=../", working bad in some systems. * Some changes to make compilation in Windows 95/98 working better (thanks to Patricia Peratto). Classes and objects * Added quotations for classes and objects (q_MLast.ml) * Added accessible entries in module Pcaml (class_type, class_expr, etc.) * Changed classes and objects types in definition (module MLast) Miscelleneous * Some adds in pa_sml.cmo. Thanks to Franklin Chen. * Added option "-no_cp" when "pr_o.cmo" or "pr_r.cmo" is loaded: do not print comments between phrases. * Added option "-split_gext" when "pa_extend.cmo" is loaded: split GEXTEND by functions to turn around a PowerPC problem. Bug fixes * Fixed pa_r.cmo, pa_o.cmo to parse, and pr_r.cmo, pr_o.cmo to print "(x:#M.c)" * Fixed printing pr_o.cmo of "(a.b <- 1)::1" * Extended options with parameters worked only when the parameter was sticked. Ex: camlp4o pr_o.cmo -l120 foo.ml worked, but not: camlp4o pr_o.cmo -l 120 foo.ml -------------------------------------------------------------------------- Daniel de RAUGLAUDRE Projet Cristal - INRIA Rocquencourt Email: daniel.de_rauglaudre@inria.fr Web: http://cristal.inria.fr/~ddr/ --------------------------------------------------------------------------