Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: Re: Announcing pymsi - EPICS macro substitution and expansion tool
From: Dirk Zimoch <dirk.zimoch@psi.ch>
To: Angus Gratton <angus.gratton@anu.edu.au>
Cc: Goetz Pfeiffer <Goetz.Pfeiffer@helmholtz-berlin.de>, tech-talk@aps.anl.gov
Date: Thu, 04 Oct 2012 12:16:41 +0200
Goetz Pfeiffer wrote:
On 10/04/2012 08:25 AM, Angus Gratton wrote:
Hi everyone,

I wanted to let you all know I've just posted a macro expansion tool
that we've been using for some time here at the ANU 14UD. It's called
'pymsi'

For now it's in the 'epicsapps' distribution related to pyepics,
although it's really a command line tool that doesn't require any
Python knowledge or even the pyepics libraries (just a working Python
installation.)

Docs at:
http://pyepics.github.com/epicsapps/pymsi.html

Code at:
https://github.com/pyepics/epicsapps


pymsi is a similar tool to "msi", it takes templated input databases
and processes them to produce output databases. Some syntax is even
identical. However, pymsi has several additional powerful features for
compile-time database evaluation:

- Components can be nested hierarchically, allowing individual
   databases to be very flexibly reused (the 'DRY' principle[1].)

- Embedded database parser, verifies database syntax at compile time.

- dbd verification allows every field in the database to be checked
   against the database definition at compile time, catch pesky errors
   and typos early.

- Powerful macro expansion engine - local scopes, inline default values,
   errors on missing macros.

- Automatic dependency generator for Makefile integration (changes to
   any subdatabase will cause make to automatically rebuild the parent
   database.)

- Detailed error messages with accurate line & column numbers for quick
   and accurate debugging.

- Easy integration with the EPICS build system.


(More details and an example can be found at the documentation link
above.)

Posting it here in the hope that it's useful to other labs. Please let
me know if I can answer any questions or improve the documentation in
any way.

Cheers,


Angus

[1] https://en.wikipedia.org/wiki/Don%27t_repeat_yourself

Hello Angus,

unfortunately there is already a tool named pymsi.

Here is the project homepage:

http://www-csr.bessy.de/control/pymsi/

It is also referenced here:

http://www.aps.anl.gov/epics/tech-talk/2010/msg01464.php

and here:

http://www.aps.anl.gov/epics/extensions/index.php

Could you please rename your project ?

Greetings

  Goetz Pfeiffer


________________________________

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.

Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv. Vorsitzende Dr. Beatrix Vierkorn-Rudolph
Geschäftsführung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas Frederking

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin

http://www.helmholtz-berlin.de



Hi Angus,

In my opinion, "pymsi" is not a good name anyway (and pymsi.py is even worse). Why do you code the programming language you used to write the program in its name? This is like using program names like "C++softioc" or "cmkdir". The user does not care which programming language you used. To me the name sounds like a "macro substitution and include utility *for python*" (like pyepics is an epics interface *for python*) but it is just "*written in python*". Goetz' pymsi in opposite is made "*for python*", i.e. to be used inside a python program.

Dirk






References:
Announcing pymsi - EPICS macro substitution and expansion tool Angus Gratton
Re: Announcing pymsi - EPICS macro substitution and expansion tool Goetz Pfeiffer

Navigate by Date:
Prev: Re: Announcing pymsi - EPICS macro substitution and expansion tool Goetz Pfeiffer
Next: Lambda-TDK Genesys support Jiro Fujita
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017 
Navigate by Thread:
Prev: Re: Announcing pymsi - EPICS macro substitution and expansion tool Goetz Pfeiffer
Next: Re: Announcing pymsi - EPICS macro substitution and expansion tool Angus Gratton
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·