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 2024 | 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 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Zero length length requests, EPICS upgrades, and cothread |
From: | Emmanuel Mayssat <[email protected]> |
To: | Matt Newville <[email protected]>, "Johnson, Andrew N." <[email protected]> |
Cc: | EPICS mailing list <[email protected]> |
Date: | Mon, 16 Dec 2013 16:37:34 -0800 |
I use cothread and pyepics.
Cothread is also a dependency of the PythonQt MASAR which is developed (and therefore probably used) at NSLSII > That is, if we know that elements NORD through NELM-1 are not valid > data then it seems better to not return them, unless the user > explicitly asks for it. Then again, I think it would be preferable to > have uniform behavior. Looking forward to hearing what the best > approach should be... To complicate things a little, let me just say that there is a mental model (intuitive model) that both implementations should (maybe) conform to. caget on a waveform should return NORD elements caput $waveformPV $value should return an error (wrong syntax) or set the waveform to a size 1 array caget(waveformPV,count=N,fill_value=-1.234) returns N elements where the first few are from the waveform (NORD elements) and the rest is filled with fill_value. Count can be greater than NELM, if count is -1, then returns NELM elements. *About changing behavior and upgrading software* I occasionally read that people are afraid to change the behavior of their software because "they are going to break their accelerator". Personally, when I upgrade, I do major QA. Additionally I allow for partial/progressive deployment . In an upgrade, I expect (minor) issues and am ready to rollback the upgrade if required. In my view, changes are perfectly acceptable if you get closer to the mental model, i.e. make you software more intuitive and programmer-friendly. What may not be acceptable is when core developers of "collaborative" software stops their improvements because they are told that the intended changes would break their accelerator. As a result, the entire collaboration is held hostage. Obviously it helps if the changes are documented in the release file. Hope that helps! -- E |