Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001907OCamlOCaml generalpublic2003-10-31 01:482013-07-27 07:45
Reporteradministrator 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version3.10.0 
Summary0001907: [patch] pa_macro: support local macros; expand in try..with..
DescriptionFull_Name: Aleksety Nogin
Version: 3.07pl2
OS: Red Hat Linux
Submission from: charter-182-203.caltech.edu (131.215.182.203)


a) It would be nice if pa_macros supported "local" macros where definition is a
part of an expression, not a separate str_item.

For example:

....... some code .....
   DEFINE body =
      ...
      ...
   IN
   IFDEF DEBUG_BUILD THEN
      try body
      with
         .... print a lot of debug information ...
   ELSE body ENDIF

While one could also write
   try
     ...
     ...
   with exn ->
      IFDEF DEBUG_BUILD THEN
         .... print a lot of debug information ...
      ELSE
         raise exn
      ENDIF

the latter is likely to be compiled into much less efficient code in
non-DEBUG_BUILD case.


b) Currently macro parameters are not expanded inside "try .. with .."
expressions.

I have a small patch that implements "DEFINE ... IN" and fixes (b) -
http://nogin.org/patches/ocaml-3.07-macro-localdefine.patch [^]

Note that the above patch is supposed to go on top of the four other pa_macro
patches I've submitted (0001901, 0001902, 0001904, and 0001905). The end result
(pa_macro with all the patches applied) is also available on our CVS - please
see http://cvs.metaprl.org:12000/cvsweb/metaprl/util/Attic/pa_macro.ml?only_with_tag=ocaml_3_07 [^]

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0000188)
administrator (administrator)
2004-06-29 22:04

Ok for b/. Need to think a bit more to "DEFINE x IN ..."
MM, 2004-06-29
(0009889)
gasche (developer)
2013-07-27 07:45

DEFINE <lident> = <expression> IN <expression> was added in 3.10 -- I believe based on Aleksey's patch.

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue
2013-07-27 07:45 gasche Note Added: 0009889
2013-07-27 07:45 gasche Status acknowledged => closed
2013-07-27 07:45 gasche Resolution open => fixed
2013-07-27 07:45 gasche Fixed in Version => 3.10.0


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker