From: skaller <skaller@users.sourceforge.net>
To: Joel Reymont <joelr1@gmail.com>
Cc: Caml List <caml-list@inria.fr>
Subject: Re: [Caml-list] Camlp4s 4.02
Date: Mon, 09 Jul 2007 21:28:05 +1000 [thread overview]
Message-ID: <1183980485.26391.15.camel@rosella.wigram> (raw)
In-Reply-To: <CD195899-C577-4F8B-BB47-98E224A4242C@gmail.com>
On Mon, 2007-07-09 at 10:58 +0100, Joel Reymont wrote:
> This is most awesome, I think. With all due respect to the developers
> of the "new" camlp4, I wonder if it will now join the revised
> syntax :-).
>
> What do you think?
Dypgen based on the fly extensions will replace both :)
FYI .. the Felix programming language grammar is now loaded
from the library as text. This is made possible by two technologies:
* Dypgen is an extensible GLR parser, which allows new grammar
productions to be added to a grammar during parsing.
The LR0 kernel is rebuilt when this happens. The current
encoding is very fast.
* OCS Scheme is used to encode the user actions as text which
is executed to create an Ocs_types.sval or Scheme value
(aka s-expression). The s-expressions are translated to the
usual Felix AST terms built with polymorphic variants.
The syntax definitions and extensions are properly scoped
by the grammar itself.
Both camlp4's suffer from the weakness of being separated
from the user program text. This is a software engineering
disaster, because it means an '*.ml' file can't just be
compiled. You have know, through magic, ESP, or RTFM which
preprocessor has to be used to compile it (and you have
to make sure you compiled that too).
At the very least, Ocaml should be modified to add a new
statement/directive such as:
syntax fred;;
which tells the reader and the compiler which syntax extension
has to be used to interpret the rest of the program. That way
it might be loaded automatically, and, programs like ocamldoc
and ocamldep can proceed without the user having to keep
track of the language of every file separately from the file itself.
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
next prev parent reply other threads:[~2007-07-09 11:28 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-09 9:40 Daniel de Rauglaudre
2007-07-09 9:58 ` [Caml-list] " Joel Reymont
2007-07-09 11:28 ` skaller [this message]
2007-07-10 8:33 ` Daniel de Rauglaudre
2007-07-10 9:08 ` skaller
2007-07-10 9:38 ` Olivier Andrieu
2007-07-10 13:19 ` Nicolas Pouillard
2007-07-10 11:13 ` Daniel de Rauglaudre
2007-07-10 13:05 ` skaller
2007-07-10 13:53 ` Daniel de Rauglaudre
2007-07-09 11:51 ` Richard Jones
2007-07-10 11:32 ` Stefano Zacchiroli
2007-07-10 12:19 ` Daniel de Rauglaudre
2007-07-10 12:33 ` Stefano Zacchiroli
2007-07-10 15:04 ` [Caml-list] Camlp4s 4.02 -> 4.03 Daniel de Rauglaudre
2007-07-10 15:08 ` Stefano Zacchiroli
2007-07-10 22:39 ` Markus E.L.
2007-07-10 23:30 ` [Caml-list] camlp4..camlp5 Daniel de Rauglaudre
2007-07-11 6:45 ` Stefano Zacchiroli
2007-07-11 10:54 ` Markus E.L.
2007-07-11 16:11 ` Daniel de Rauglaudre
2007-07-11 10:52 ` Markus E.L.
2007-07-11 7:52 ` [Caml-list] Camlp4s 4.02 -> 4.03 Nicolas Pouillard
2007-07-10 15:17 ` skaller
2007-07-10 15:46 ` Till Varoquaux
2007-07-10 15:58 ` skaller
2007-07-10 16:08 ` Till Varoquaux
2007-07-10 16:46 ` skaller
2007-07-10 13:12 ` [Caml-list] Camlp4s 4.02 skaller
2007-07-10 13:54 ` Daniel de Rauglaudre
2007-07-10 14:40 ` Yitzhak Mandelbaum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1183980485.26391.15.camel@rosella.wigram \
--to=skaller@users.sourceforge.net \
--cc=caml-list@inria.fr \
--cc=joelr1@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox