EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: Re: found a bug in 3.13.9 dbLoadTemplate - after all that time
From: Ralph Lange <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: kuner <[email protected]>, [email protected]
Date: Fri, 4 Jun 2004 12:31:19 +0200
>>>>> "Andrew" == Andrew Johnson <[email protected]> writes:

  >> Inflating database from test.substitutions
  >> <string>: HOPR referenced but undefined
  >> macExpandString failed
  >> <string>: LOPR referenced but undefined
  >> macExpandString failed
  >> Installing database ../../../db/test.db
  >> rm test.t.db.raw

  > Unfortunately it does install the test.db file, when it should have 
  > aborted the make because of the errors - this is not a bug in 
  > dbLoadTemplates, it's a problem with the EPICS build system.

  > 

I actually would not see this as an error.

dbLoadRecords() on the IOC allows for macro substitutions at IOC load
time, so having undefined macros within a db file is legal.

If you are generating a somewhat generic db file with the template-
substitutions mechanism, but still want to substitute a macro at load
time (we usually provide things like the IOC name in that way), having
$(IOC) undefined during expansion on the host is the usual case.

At least under 3.13 - the App Developers Guide for 3.14 shows the
substitutions argument to the dbLoadRecords() call, but doesn't explain
it anymore. Instead it mentions "environment variable substitutions"
using curly braces (which I never heard of before - also the macLib
doesn't really show any difference between round and curly braces).

So: Is macro substitution within dbLoadRecords() deprecated under 3.14?
In that case make could actually abort when finding an undefined macro.

  > Note that the rules for how templates are expanded are found in the IOC 
  > application's <top>/config/RULES.Db file.  We assume that your RULES.Db 
  > has been modified to use msi instead of dbLoadTemplate.

Very true. We are indeed using MSI as the host side expansion tool -
trying to follow suggestions by Marty and the (3.14) App Developer's
Guide. The make output does not show this to the user (command line
suppressed).

My apologies for creating Bug Reports without double-checking before.

Cheers,
Ralph

References:
found a bug in 3.13.9 dbLoadTemplate - after all that time kuner
Re: found a bug in 3.13.9 dbLoadTemplate - after all that time Andrew Johnson

Navigate by Date:
Prev: EPICS Base Release 3.14.6 Andrew Johnson
Next: Re: found a bug in 3.13.9 dbLoadTemplate - after all that time kuner
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: found a bug in 3.13.9 dbLoadTemplate - after all that time Eric Norum
Next: RE: found a bug in 3.13.9 dbLoadTemplate - after all that time Chestnut, Ronald P.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·