EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025 
<== Date ==> <== Thread ==>

Subject: RE: synApps quadEM build-time code generation
From: Iain Marcuson via Tech-talk <tech-talk at aps.anl.gov>
To: "J. Lewis Muir" <jlmuir at imca-cat.org>
Cc: "tech-talk at aps.anl.gov" <Tech-talk at aps.anl.gov>
Date: Fri, 11 Oct 2024 19:53:17 +0000
Python being heavy is a good point.  The files rarely have to be generated, so it makes sense to generate and commit them.  I will also commit the Python script and template file.

Thank you all for the help.

Iain.

-----Original Message-----
From: J. Lewis Muir <jlmuir at imca-cat.org> 
Sent: Friday, October 11, 2024 3:39 PM
To: Iain Marcuson <iain.marcuson at sydortechnologies.com>
Cc: Johnson, Andrew N. <anj at anl.gov>; tech-talk at aps.anl.gov
Subject: Re: synApps quadEM build-time code generation

On 10/11, Iain Marcuson via Tech-talk wrote:
> My IOC has quite a few parameters that can be described for our purposes as basically (name, register number, type, bitmask, scale and offset parameter) tuples.  I have a Python script I run before compilation that turns those entries into database files and C++ entries.  I then run the standard `make` to build the IOC.  One possibility I see is for the build process to run that Python script and move the output files as a prelude to the compilation.

A downside of that is that it would make Python a build-time dependency of quadEM.  The EPICS build system already has Perl as a dependency.  A Python dependency for quadEM would make it even heavier.  How often do you have to generate?  If only when something changes, it would seem better to me to include your Python script for generating databases and
C++ entries in the source tree so that it can be used by a developer
when something changes that requires a regen, but also commit the generated files so that Python isn't required to build quadEM.

I don't know how complex your Python script is, but another possibility would be to rewrite it in Perl.  Then you wouldn't be adding a build-time dependency that isn't already there.

Lewis


This message has been scanned for malware by Forcepoint. https://urldefense.us/v3/__http://www.forcepoint.com__;!!G_uCfscf7eWS!ee9UK5zE9S3GZGGpyuWM3O10v2Zmpf2XOqdHh9YJULqP9Dhh5NzzXv3AMizgm_gBlrl-g9s_9ahod1nJYUbYsLEPnXaXZu2RFqfQRA$ 

References:
synApps quadEM build-time code generation Iain Marcuson via Tech-talk
Re: synApps quadEM build-time code generation Johnson, Andrew N. via Tech-talk
Re: synApps quadEM build-time code generation Iain Marcuson via Tech-talk
Re: synApps quadEM build-time code generation J. Lewis Muir via Tech-talk

Navigate by Date:
Prev: Re: synApps quadEM build-time code generation J. Lewis Muir via Tech-talk
Next: Help adding Measurement Computing support to IOC Jesse Hopkins via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025 
Navigate by Thread:
Prev: Re: synApps quadEM build-time code generation J. Lewis Muir via Tech-talk
Next: Help adding Measurement Computing support to IOC Jesse Hopkins via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025