-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog
319 lines (312 loc) · 14.8 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
Changes since labca_3_8_0:
Changes since labca_3_7_2:
- move master repo to gitub.com/till-s/epics-labca
- port to new scilab API (old api no longer supported)
Changes since labca_3_7_1:
2018/03/02 (TS):
- tarball rules must include submodule (sciclean)
- fixes (perlification) for non-cygwin windows builds
Changes since labca_3_7_0:
2018/02/12 (TS):
- Added Makefile rules to create released tarball
Changes since labca_3_5_5:
2018/02/12 (TS):
- removed mexLock from initialization code (breaks matlab 2017;
see email thread with mathworks/J. Sebek, 12/9/2017)
***
Note: changes that went into R3.6 were rolled back; there
is no 'official' 3.6 branch/release.
***
Changes since labca_3_5_3:
2017/08/18 (HS):
- Removed RELEASE_SITE file and added it to .gitignore.
Changes since labca_3_5_2:
2017/08/11 (TS):
- replaced CVS $Id$/$Name$ in manual.tex and glue/ini.cc by git description strings
2017/08/11 (TS):
- fixed manual.tex (warnings due to new html.sty)
2017/08/11 (TS):
- removed CVS $Id$ keywords
2017/08/11 (TS):
- added test case for recent bugfix
2017/08/10 (TS):
- merged changes from labca_3_5_branch
Changes since labca_3_5_1:
2017/08/10 (TS):
- use psed/sed everywhere (SED defined in configure/CONFIG)
Changes since labca_3_5_0:
2017/08/08 (TS):
- use sed on linux, psed on windows (perl 5.22 stopped shipping psed)
2017/08/08 (TS):
- BUGFIX (thanks to Jesus Vasquez for reporting). When retrieving
DBF_LONG in native format, result was inadvertently converted to float
and then promoted to double which lead to a loss in precision.
2015/09/08 (TS):
- fixed test script (didn't catch all partial enum string mismatch)
- fixed test script (matlab compatibility)
Changes since labca_3_4_2:
2015/09/08 (TS):
- replaced #include <tsDefs.h> by <epicsTime.h>
- replaced obsolete TS_STAMP by epicsTimeStamp (TS_STAMP is a macro
for the latter under reasonably recent base)
2015/06/04 (TS):
- RENAMED lcaGetEnumStates -> lcaGetEnumStrings
2015/06/04 (TS):
- matlab/lcaGetEnumStates.c, matlab/Makefile: added lcaGetEnumStates()
- matlab/lcaDebugOn.c, matlab/lcaDebugOff.c, matlab/Makefile: added
lcaDebugOn()/lcaDebugOff().
- ezca/ezca.c, ezca/ezca.h: added ezcaGetEnumStates()
- glue/labca.sce.in, glue/ezcaSciInt.c: changed names from ezca->labca.
Added helper to unload labca. Added lcaGetEnumStates()
- testing/lcaTest.sce, testing/lcaTest.m: added tests for lcaGetEnumStates()
2015/06/03 (TS):
- Reorganized ezcaGetPrecision(), ezcaGetUnits(), ezcaGetNelem(),
ezcaGetStatus(), getLimits() (which is now getInfo()) to share
more code and eliminate duplication (of which there is still
plenty).
- added compile-time test to check consistency between CA size
macros and EZCA's
Changes since labca_3_4_1:
2015/03/12 (TS):
- Added top-level rule to uninstall everything but documentation (for
prep. of distribution tarball).
- Silenced compiler warnings (changed format string arg of lcaSetError()
to 'const char*')
- Applied fixes for matlab 2014a contributed by Matthew Furseman.
Changes since labca_3_4:
2013/06/25 (TS):
- FIXED: build problems due to changed scilab libraries when going
from scilab-5.3 to 5.4. Thanks to Takashi Obina for reporting and
suggesting a fix.
- documentation/xmlhelp/en_US/Error.xml no longer passed through
xml_to_jar. Removed <titleabbrev> and replaced <thead> by <th>.
Changes since labca_3_3:
2012/01/13 (TS):
- glue/ezcaSciInt.c: removed epicsShareAPI for C2F(ezca). This caused
a leading underscore (when building w/o .def file as we now do) which
is not understood by scilab's addinter.
- glue/Makefile: (WIN) add dependency libraries to TARGET_LDFLAGS instead
of LIB_LIBS + <xxx>_DIR. This works around problems if the library path
contains blanks.
- README.win32pathwithblanks: updated info.
- documentation/Makefile: use portable workaround for mkdir -p
(w/o causing errors if target dir is already present).
2012/01/12 (TS):
- glue/Makefile: re-enabled mx_DIR + friends (non-windows only)
- matlab/lcaSetMonitor.c, matlab/lcaNewMonitorWait.c,
matlab/lcaNewMonitorValue.c: removed unused 'i' variable.
- matlab/Makefile: enable warnings for MEX compiler (linux).
- testing/Makefile: always build lcaTest.m (even under scilab) so that
it is present for distribution.
- ReleaseNotes: updated.
- glue/Makefile:
o win32/64 scilab-5 needs 'output_stream' and 'intersci'
libraries in addition to LibScilab :-(. Manual intervention is
needed to build for scilab-4 (define SCILAB_V4 makefile variable).
o Commented unused library paths (libmx_DIR + friends).
o Use 'psed' (perl) instead of 'sed' and use double quotes for
sake of win-non-cygwin portability.
o Use 'vpath' instead of symlink to find sciclean.c for sake
of win-non-cygwin portability.
2012/01/11 (TS):
- glue/ctrlC-polled.c: scilab-5 seems to properly export + declare
'basbrk' (even under windows) so we use it.
- glue/multiEzca.c: silence compiler warnings (64-bit?) by
using ptrdiff_t instead of int and explicit type conversions
where appropriate.
- glue/mglue.c, glue/mglue.h: silence compiler warnings (64-bit?) by
using size_t instead of int where appropriate.
- documentation/Makefile: removed run-time test for scilab version (too
hard to get to work under windows). We just in stall the scilab-5 help
files anyways.
- configure/RELEASE: removed CONFIG-SLAC hacks - doesn't work as intended.
- configure/CONFIG: added defaults for 'windows-x64'
- configure/RULES: avoid complicated shell commands (which windows command.com
is unable to unerstand).
2012/01/11 (TS):
- ezca/ezca.c: silenced compiler warnings (signed/unsigned,
size_t printf format).
2010/08/23 (TS):
- Changed SED commands that transform lcaTest.sce -> lcaTest.m
so that the script is (again) properly transformed for matlab.
Thanks to Steph Allison for pointing out problems...
Changes since labca_3_2_beta:
2010/06/04 (TS):
- Added (partly hand-crafted) help files for scilab-5.
2010/05/28 (TS):
- IMPROVEMENT. ezcaGetUnits(), ezcaGet_xxx_Limits(), ezcaGetPrecision(),
ezcaGetStatus() used to transfer the native element count even if
the PV value itself was discarded.
Modified ezca.c so that only 1 element is requested by these calls.
This enhances speed with slow connections :-).
- several small changes to support scilab-5.2. Some header install
locations have changed since 5.1; __PARAMS() macro has gone.
2009/10/13 (TS):
- several small changes to support scilab-5.1. (Scilab-5 is completely
re-vamped.)
TODO: Since scilab-5 help files must be in their XML format (converted
to javahelp jars though) we need to re-write the documentation, breaking
out individual commands into some 'meta' format from which XML and
tex can be generated.
HELP DOES NOT WORK YET on scilab-5!
Changes since labca_3_1:
2008/5/21 (TS):
- added ezcaGetWarnLimits() and ezcaGetAlarmLimits() and the respective
interfaces from scilab + matlab.
Changes since labca_3_0_beta:
2007/9/5 (TS):
- wrapped all malloc/calloc/realloc/free calls into 'lcaMalloc, lcaCalloc'
etc. to help debugging memory issues.
- special scilab cleanup code because many scilab sanity tests are
macros which return from a subroutine w/o giving us a chance to clean up
(see glue/sciclean/).
2007/9/5 (TS):
- fixed memory leak (lcaPutNoWait) in ezca (copy of data made by
ezcaPutOldCa() was never free()ed when ezcaPutOldCa() calls were
grouped). Thanks to Greg Portmann for helping hunting this down.
2007/8/29 (TS):
- fixed (some) memory leaks (scilab only). Scilab macros (stack-c.h)
would jump out of our routines w/o giving a chance to clean things up.
Use the new 'sciclean' facility to register cleanups as necessary.
Also, C-string matrices (GetRhsVar(...,"S",...)) were never free()ed!
- removed redunant printing of error/warning messages. This should
fix a complaint that errors were still reported even from a
try-catch-end block.
2007/6/19 (Jim Sebek)
- extended fix that was introduced (4/07) to work around problems with
mcc compilation due to .m files residing in the same directory as .mex
files. Now both, the labca initializer and finalizer are skipped when
invoked during mcc compilation. Apparently this solves the problem.
Changes since labca_2
2007/6/10 (TS):
- call _exit() from the finalizer if called from the caRepeater fork
must not do any other cleanup since the forked process has no thread.
This fixes the 'starved caRepeater fork' problem (hanging process would
never die).
2007/6/7 (TS):
- completely reworked the finalizer. Good shutdown now seems to work
w/o hangs or crashes for scilab and matlab on linux/solaris + win
in gui and nogui mode.
2007/6/4 (TS):
- ezcaDelay() now polls the Ctrl-C flag like the other calls.
- added EZCA_ABORTED return code to flag user abort (CTRL-C) condition.
2007/6/1 (TS):
- Some changes to CONFIG/RELEASE/RULES for automatically finding the
correct mex-file extension. Also, EPICS_HOST_ARCH-specific settings
for the EPICS_BASE, MATLABDIR + SCILABDIR variables were implemented.
2007/6/1 (TS):
- stupid win32 doesn't implement c99 types :-o
Resort to 'epicsTypes.h'...
2007/5/23 (TS):
- Added lcaLastError() to retrieve the last error that was recorded.
The usual scilab/matlab error reporting scheme is not good enough
because I cannot report a vector of errors. If a lcaXXX operation
fails on a subset of PVs this routine can report the error status
for individual PVs (to be used like and possibly in addition to
'lasterror' in scilab/matlab).
- Added multi-ezca interface to lcaLastError and wrappers
for scilab and matlab.
- Added multi-ezca interface to ezcaNewMonitorWait and wrappers
for scilab and matlab.
- Added ezcaNewMonitorWait() which blocks until new monitor data
becomes available. This routine is groupable.
- Changed implementation of EzcaPendEvent(). There is really no need
for ca_pend_event() anymore with multithreaded CA :-). This means
that we can keep a count of outstanding operations and let EzcaPendEvent
simply ca_flush_io() and block on a semaphore (occasional timeout so
that we can poll the X loop and check for Ctrl-C). As requests are
answered a CA background task executes the callbacks which decrement
the 'outstanding' counter and eventually post to 'done' semaphore.
--> lcaXXX calls NO LONGER take multiples of ezcaTimeout to complete :-)
but complete as soon as possible (w/o having to resort to a high CA poll
rate).
2007/5/22 (TS):
- labca now 'throws' (ezca) error codes when an error occurs
(via mexErrMsgIdAndTxt / Scierror) that can be picked up
by the application via catch + lasterror.
- lcaNewMonitorValue() now 'throws' errors for all cases that
in previous versions returned < 0 flag values. I.e., if
lcaNewMonitorValue() completes successfully then it returns either
0 or 1.
Changes since labca_2_1_beta (T.S):
2007/5/9 (TS):
- use c99 types int8_t, int16_t, int32_t rather than char, short, int.
(multiEzca.c; see also change made 2006/9/1).
2007/5/8 (TS):
- lcaPutNoWait() would not flush out commands (thanks to Greg Portman
for reporting).
2007/4/11 (TS):
- scilab got stuck when initializing labca in non-windowing mode (-nw).
This was because we still checked the X loop in ctrlC-polled.c.
Now we use checkevts_() to find out if we have should work the X loop.
2007/4/10 (Jim Sebek):
- attempts to mcc-compile matlab scripts that use labCA had failed
apparently because the help (.m) files are in the same directory
as the respective mex object files.
Jim found a work-around that tests if a compilation is in progress
and which skips labca initialization if this is the case.
2006/12/19 (TS):
- mexLock() glue and CA libraries so that EPICS is not shut down
as a result of matlab 'clear' operations [epics shutdown -> exit()].
2006/9/1 (TS):
- ezcaLong is really 32bit, i.e., I fixed multiEzca.c to use 'int'
instead of 'long' which is correct on 32bit and 64bit platforms.
Changes since labca_2_0_alpha (T.S):
2006/4/14 (TS):
- scilab now also uses polled 'ctrlC' handling (undocumented
'isbrk() and inibrk()' routines.
- changed shutdown procedure. This is still a pain and I don't
understand exactly what needs to be done to avoid crashing
the app on exit. Current solution seems to work on all
platforms for both scilab and matlab.
2006/4/11 (TS):
- upgraded to 3.14(.8.2)-style Makefiles.
2006/4/10 (TS):
- ezcaEndGroupWithReport() used to clear out unconnected channels
assuming that the disconnected state was a result of a failing
search_and_connect(). We now clear only channels that never were
successfully connected and leave other ones alone. This allows
monitors to pick up seamlessly after IOC reboots.
- disallow implicit mapping of native type -> FLOAT for monitors.
(The old behavior let disconnected channels look for a FLOAT
type monitor. We now let lcaNewMonitorValue() report -10 if
asking for the native type of a disconnected channel).
2006/2/17 (TS):
- we now use (undocumented) MATLAB 'utHandlePendingInterrupt()' to poll
for pending 'Ctrl-C' rather than hacking into the windows event loop.
Our hack didn't work with matlab 7.2(?)/win32 anymore.
2005/6/7 (TS):
- flush output buffers (lcaPutNoWait())
Changes since labca_1_5 (T.S):
2004/3/24 (TS):
- EZCA modifications:
o try to recycle work nodes marked as 'trashme'.
o assume ca_clear_channel() does real cleanup (i.e. assume
it cancels scheduled callbacks) and hence recycle channel
structures from push_channel(). Also, have push_channel()
remove deleted channels from the hash table.
o call clean_and_push_channel() if search attempts timeout:
probably, the PV name is invalid and we want to prevent 3.14
background tasks to continue searching.
o provide 'ezcaClearChannel()' and 'ezcaPurge()' to let the user
explititely remove unneeded channels.
- provide 'lcaClear()'.
- Provided 'lcaPutNoWait()' for setting values without waiting for
record processing to complete on the server.
Changes since labca_1_5pre_beta (T.S):
- set shared library version numbers in anticipation of future
releases.
Changes since labca_1_4_beta (T.S):
2004/3/8 (TS):
- Have the matlab version call 'errMsgTxt()' on error to
trigger the standard way of error flagging. I finally
found the reason for the linux crashes (matlab ships with outdated
system libraries) ;-)
- Implemented a workaround in ezErr() -- Scilab's mexPrintf()
[i.e. sciprint] crashed when munging long strings (multi-line
errors). We now break those messages up in smaller chunks...
- multi_ezca_put() now returns a value to indicate error status
(rval == number of successfully written PVs, -1 on error).
Changes since labca_1_3_beta:
2004/2/20: T.S added matlab implementation of lcaGetStatus()
2004/2/20: T.S added this ChangeLog