Browse thread
camlp4 pa_macro
-
Dmitry Bely
- Martin Jambon
-
Peter Jolly
- Basile STARYNKEVITCH
- Dmitry Bely
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2005-09-07 (12:28) |
From: | Basile STARYNKEVITCH <basile@s...> |
Subject: | Re: [Caml-list] camlp4 pa_macro |
Le Wed, Sep 07, 2005 at 01:03:07PM +0100, Peter Jolly écrivait/wrote: > Dmitry Bely wrote: > > Is it possible to achieve with pa_macro something like this: > > > > IFDEF NDEBUG THEN > > DEFINE LOG(expr) = () > > ELSE > > DEFINE LOG(expr) = Printf.printf expr > > ENDIF > > ... > > LOG("x=%d,y=%d" x y); > > > > Unfortunately the code above does not work: debug version is OK, but then > > NDEBUG is turned on I have > > > > "This expression is not a function, it cannot be applied" on LOG() > > expression. > For information the pa_trace.ml file (for camlp4 for a pre 3.08 version of ocaml) did exactly what you want to achieve you might look for POESIA on sourceforge at http://sourceforge.net/project/showfiles.php?group_id=79887&release_id=1 download the source package http://prdownloads.sourceforge.net/poesia/poesiasoft_snapshot_20july2005.tar.gz?download and look for the pa_trace.ml inside PoesiaMonIcap this is orphaned software (GPL). I don't maintain it anymore, and I believe it don't compile as-is on 3.08 because of the location change in camlp4 since 3.06. Feel free to patch it for your needs. Regards -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile(at)starynkevitch(dot)net 8, rue de la Faïencerie, 92340 Bourg La Reine, France