diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html index 319a4f39c..24a19a6e6 100644 --- a/RELEASE_NOTES.html +++ b/RELEASE_NOTES.html @@ -7,67 +7,97 @@ -

EPICS Release 3.13.5

+

EPICS Release 3.13.6

-

Sept 2001

+

March 2002

-

-Changes since 3.13.4

-

-convertRelease and checkRelease -

-New applications created with makeBaseApp.pl now have the functionality of -the makeConfigAppInclude.pl and makeIocCdCommands.pl scripts combined into -a single convertRelease.pl script. -

-The new script also provides consistency checking of the entries in the +

Changes since 3.13.5

+ +

iocInit

+ +

initialProcess is now called before interruptAccept. This means that +initial processing will be done before periodically scanned and I/O Inter +scanned record s start processing.

+ +

dbCa.c

+ +

dbCaGetLink must return -1 when settinf sevr to INVALID or a FPE may be +rasied on a powerPC.

+ +

devMbboDirectCamac>/b>

+ +

The call to cfsa was passing val as an argument. It is changed to rval. +See tech-talk message from Noboru Yamamoto Nov 2001.

+ +

mbbiRecord

+ +

All existing manipulations of UDF in process() are removed and one udf is +set FALSE when the raw value is successfully read.

+ +

selRecord

+ +

In do_sel udf is not set false at the beginning. If selm has an invalid +value recGblSetSevr(psel,SOFT_ALARM,MAJOR_ALARM) is called.

+ +

Changes since 3.13.4

+ +

convertRelease and checkRelease

+ +

New applications created with makeBaseApp.pl now have the functionality of +the makeConfigAppInclude.pl and makeIocCdCommands.pl scripts combined into a +single convertRelease.pl script.

+ +

The new script also provides consistency checking of the entries in the config/RELEASE file, so that gnumake will stop with an error report if a -definition in any other <supporttop>/config/RELEASE file is different to -the same definition in this application. This checking can be disabled by -editing config/Makefile.Host. -

-Applications created using earlier versions of EPICS will continue to work -as before and will not benefit from the consistency check functionality. -

-devAiSoftRaw and devAoSoftRaw -

-ai and ao records using DTYP="Raw Soft Channel" can have their EOFF -and ESLO fields set manually at design or run-time, and these values will -be used when LINR=LINEAR. The same applies to any device support that -doesn't provide a special_linconv() routine; if special_linconv() is -provided however, the original behaviour occurs (EOFF is set to EGUL and -ESLO is calculated by that routine). The ESLO and EOFF fields now have CA -monitors posted if their value is changed by the special_linconv() -routine. -

-cac_recv_task -

-Increased stack size from 4096 to 819l. -

-drvTS -

-Now uses osiSock for to handle implementation diffences -

-Constant Links -

-Hex and octal constants are now accepted for constant links. -recGblInitConstantLink uses %i instead of %u for unsigned types. -This is so that hex constants are accepted. %u does not accept hex. -dbPutString makes a link constant if either strtod or strtol eats entire string. -Previously only strtod was used. -

-Breakpoint tables -

-A bug that caused an invalid conversion when the raw value is greater than the maximum table value is fixed. -If the raw value is outside the table, the aiRecord and aoRecord now specify a severity of MAJOR_ALARM instead of INVALID_ALARM. -

-VAL field a promptgroup -

-The VAL field of the following recordtypes can now be given values by database -configuration tools: aiRecord, aoRecord, biRecord, boRecord, calcoutRecord, longinRecord, longoutRecord, mbbiDirectRecord, mbbiRecord, mbboDirectRecord, mbboRecord. -

-Several of the changes have been made to help prevent exceptions on powerPcs -when conversions are made from float to double. +definition in any other <supporttop&gt/config/RELEASE file is +different to the same definition in this application. This checking can be +disabled by editing config/Makefile.Host.

+ +

Applications created using earlier versions of EPICS will continue to work +as before and will not benefit from the consistency check functionality.

+ +

devAiSoftRaw and devAoSoftRaw

+ +

ai and ao records using DTYP="Raw Soft Channel" can have their EOFF and +ESLO fields set manually at design or run-time, and these values will be used +when LINR=LINEAR. The same applies to any device support that doesn't +provide a special_linconv() routine; if special_linconv() is provided +however, the original behaviour occurs (EOFF is set to EGUL and ESLO is +calculated by that routine). The ESLO and EOFF fields now have CA monitors +posted if their value is changed by the special_linconv() routine.

+ +

cac_recv_task

+ +

Increased stack size from 4096 to 819l.

+ +

drvTS

+ +

Now uses osiSock for to handle implementation diffences

+ +

Constant Links

+ +

Hex and octal constants are now accepted for constant links. +recGblInitConstantLink uses %i instead of %u for unsigned types. This is so +that hex constants are accepted. %u does not accept hex. dbPutString makes a +link constant if either strtod or strtol eats entire string. Previously only +strtod was used.

+ +

Breakpoint tables

+ +

A bug that caused an invalid conversion when the raw value is greater than +the maximum table value is fixed. If the raw value is outside the table, the +aiRecord and aoRecord now specify a severity of MAJOR_ALARM instead of +INVALID_ALARM.

+ +

VAL field a promptgroup

+ +

The VAL field of the following recordtypes can now be given values by +database configuration tools: aiRecord, aoRecord, biRecord, boRecord, +calcoutRecord, longinRecord, longoutRecord, mbbiDirectRecord, mbbiRecord, +mbboDirectRecord, mbboRecord.

+ +

Several of the changes have been made to help prevent exceptions on +powerPcs when conversions are made from float to double.

CA Server Bug

@@ -77,11 +107,11 @@ when conversions are made from float to double. subscriptions using ca_clear_event(), but this may not be noticed because the problem is probably rare under low or moderate load, and because CA clients automatically reconnect. The problem was only reproducible here under heavy -load presented when the R3.14 client side regression tests were run on a fast -Linux workstation. For example, when the tests were run on a 500 MHz NT host -I was unable to reproduce the bug. On vxWorks you may see threads with the -name "CA client" and also "CA event" even if there are no clients connected -(the casr diagnostic will also incorrectly report that clients are +load presented when the R3.14 client side regression tests were run on a +fast Linux workstation. For example, when the tests were run on a 500 MHz NT +host I was unable to reproduce the bug. On vxWorks you may see threads with +the name "CA client" and also "CA event" even if there are no clients +connected (the casr diagnostic will also incorrectly report that clients are connected). As the IOC stays in long term operation without a reboot, and depending on the frequency of occurrence at your site (if any), you may also notice that memory and file descriptors have been lost.

@@ -125,12 +155,12 @@ lost. This message is no longer generated.

drvEpvxi

National Instruments MXI-2 devices are now fully supported on both 68K and -PowerPC (the PowerPC BSP must provide code for the vxWorks intVecGet() routine -though). PowerPC CPUs that have a Universe VME interface chip will have -problems driving MXI-1 boards, although they can be made to do so by setting -the variable 'vxi_use_failed_mxi' to a non-zero value in the st.cmd file -before iocInit() and ignoring any warnings about the MXI-1 board having failed -its self-test.

+PowerPC (the PowerPC BSP must provide code for the vxWorks intVecGet() +routine though). PowerPC CPUs that have a Universe VME interface chip will +have problems driving MXI-1 boards, although they can be made to do so by +setting the variable 'vxi_use_failed_mxi' to a non-zero value in the st.cmd +file before iocInit() and ignoring any warnings about the MXI-1 board having +failed its self-test.

If a VME-MXI-2 board will not be installed as the VME system controller read the NOTES: towards the top of the driver source for an essential @@ -149,8 +179,8 @@ disconnects while put notifys are outstanding.

A bug was fixed that was related to dynamically changing lock sets.

-

The record support put_array_info is called after the a put only if the put -is successful. Previosuly it was always called.

+

The record support put_array_info is called after the a put only if the +put is successful. Previosuly it was always called.

breakpoint tables

@@ -171,8 +201,8 @@ present. This bug does not occur if an R3.13.3 server is not present.

server address. The CA repeater was also upgraded to detect, and fix, any problems of this nature.

-

Symptom: Undefined symbols show up when EPICS R3.13.3 was loaded  into a PC -IOC running Tornado II.

+

Symptom: Undefined symbols show up when EPICS R3.13.3 was loaded  into a +PC IOC running Tornado II.

Changed: Conditionally compiled out references to architecture inappropriate system calls.
@@ -195,9 +225,9 @@ when the record was attached to a 32 bit digital device .

Access Security TrapWrite feature

-

Access security now provides the ability to trap write requests coming from -a client. RULEs in the access configuration files accept an option argument -NOTRAPWRITE or TRAPWRITE. For example:

+

Access security now provides the ability to trap write requests coming +from a client. RULEs in the access configuration files accept an option +argument NOTRAPWRITE or TRAPWRITE. For example:

RULE(1,WRITE,TRAPWRITE)
If the additional argument is not specified the default is NOTRAPWRITE. @@ -215,8 +245,8 @@ the Application Developer's Guide.

When obtaining graphic, control, and alarm limits, the destination values were not initialized. If record support did not set values then the -unitialized values were returned. This caused exceptions to occut on powerPCs. -The values are now initialized to 0.

+unitialized values were returned. This caused exceptions to occut on +powerPCs. The values are now initialized to 0.

drvTS.c
 

@@ -244,15 +274,15 @@ The values are now initialized to 0.

The 3.14 releases of base will no longer support the INC step.


Channel Access Changes

-

Fixed the RISC architecture specific problem in iocCore which results in an -intermittent and infrequent assert failure with this message: "assert +

Fixed the RISC architecture specific problem in iocCore which results in +an intermittent and infrequent assert failure with this message: "assert (ev_que->evUser->nDuplicates>=1u)". This was actually fixed in release 3.13.2.

@@ -314,10 +344,10 @@ with NSEV instead of SEVR of the source record.

output record types.
  • UDF behaviour is fixed: UDF is now reset after warm reboot, after setting any of the BX fields in supervisory mode and after (successful) - reading from DOL in closed_loop mode. Also, UDF_ALARM is raised if UDF has - not yet been reset, as with other record types
  • -
  • LINK / INVALID alarm is raised if reading from DOL fails. This, also, is - similar to other output records.
  • + reading from DOL in closed_loop mode. Also, UDF_ALARM is raised if UDF + has not yet been reset, as with other record types +
  • LINK / INVALID alarm is raised if reading from DOL fails. This, also, + is similar to other output records.

  • @@ -345,18 +375,18 @@ to double.

     


    dfanoutRecord.c

    A dbPutLink is attempted for all links even if a put for a previous link -fails. If a dbPutLink fails  recGblSetSevr(pdfanout,LINK_ALARM,MAJOR_ALARM) is -called.

    +fails. If a dbPutLink fails  recGblSetSevr(pdfanout,LINK_ALARM,MAJOR_ALARM) +is called.

    dbStaticLib

    @@ -376,64 +406,47 @@ involved the year 00 appeared in the ascii string

    Channel Access

    -

    -1) A severe problem where the CA client did not exit a loop sending UDP to a list of addresses -if an error condition was returned from the system call which sends a UDP frame was fixed. -This problem was discovered during load testing, and will be more likely to occur under heavy -network loading conditions. -

    +

    1) A severe problem where the CA client did not exit a loop sending UDP to +a list of addresses if an error condition was returned from the system call +which sends a UDP frame was fixed. This problem was discovered during load +testing, and will be more likely to occur under heavy network loading +conditions.

    -

    -2) A problem where the client library could fail and use a deallocated data structure if a -connection dropped while it was waiting to send a message to a client was fixed. -

    +

    2) A problem where the client library could fail and use a deallocated +data structure if a connection dropped while it was waiting to send a message +to a client was fixed.

    -

    -3) The CA client now maintains a congestion avoidance threshold on UDP search -transmissions similar to the congestion avoidance algorithm employed by modern version of -TCP. There are also some small changes related to how the search counters are maintained -without allowing them to overflow. This patch was made in R3.13.1 because I originally -identified it as the fix for (1) above, but it turned out to not be the root cause. -

    +

    3) The CA client now maintains a congestion avoidance threshold on UDP +search transmissions similar to the congestion avoidance algorithm employed +by modern version of TCP. There are also some small changes related to how +the search counters are maintained without allowing them to overflow. This +patch was made in R3.13.1 because I originally identified it as the fix for +(1) above, but it turned out to not be the root cause.

    -

    -4) A bug fix was made for a problem where the CA repeater was inheriting on HP-UX, and -possibly other UNIX systems that are not Solaris, certain open file descriptors when -fork()/exec() are used to start the CA repeater. -

    +

    4) A bug fix was made for a problem where the CA repeater was inheriting +on HP-UX, and possibly other UNIX systems that are not Solaris, certain open +file descriptors when fork()/exec() are used to start the CA repeater.

    -

    -5) Changes that allow CA to work on Microsoft Visual C++ 6.0 (which includes a new win -sock DLL and some changes in esoteric parts of the socket API). -

    +

    5) Changes that allow CA to work on Microsoft Visual C++ 6.0 (which +includes a new win sock DLL and some changes in esoteric parts of the socket +API).

    -

    -6) always inform client of "no write access" for a SPC_NOMOD fields. -

    +

    6) always inform client of "no write access" for a SPC_NOMOD fields.

    -

    -7) calls to ca_printf removed from rsrv. -

    +

    7) calls to ca_printf removed from rsrv.

    -

    -8) prevent UDP daemon from running damaged messages with TCP protocol and -visa-versa -

    +

    8) prevent UDP daemon from running damaged messages with TCP protocol and +visa-versa

    -

    -9) use ipAddrToA() so that address print out does not come out byte swapped on the PC -

    +

    9) use ipAddrToA() so that address print out does not come out byte +swapped on the PC

    -

    -10) improved debug messages and added diagnostics -

    - -

    -11) don't send an exception to client when bad request received over UDP. -

    +

    10) improved debug messages and added diagnostics

    +

    11) don't send an exception to client when bad request received over +UDP.


    config

    breakpoint tables -

    Tables names were previously forced to be alphanumeric. This restriction is -removed.

    +

    Tables names were previously forced to be alphanumeric. This restriction +is removed.

    drvTS.c
     


    @@ -494,8 +507,8 @@ removed.

    dbNotify

    -

    If  dbPutNotify called dbProcess and dbProcess returned an error the notify -completion callback was called twice. This bug is fixed.

    +

    If  dbPutNotify called dbProcess and dbProcess returned an error the +notify completion callback was called twice. This bug is fixed.

    drvBB232

    @@ -546,8 +559,8 @@ were posted, no monitors on the single bit fields.

    drvGpib.c -

    all mallocs changed to callocs. This is needed for the new unbundled bitbus -support.

    +

    all mallocs changed to callocs. This is needed for the new unbundled +bitbus support.

    bitbus support

    @@ -569,20 +582,30 @@ includes the following

  • drvRs232.h
  • NOTE: drvBitBus.h, drvBitBus.c, drvBitBusInterface.h, and drvBitBusErr.h -appear in both base and unbundled because drvGib uses it.  Must be -fixed when gpib is unbundled. -

    drvBBMsg.c drvBBMsg.c drvRs232.c drvTy232.h -

    Removedfrom base. Seemed to be old duplicate version of drvBB232.c or -not used at all. -

    devXxDig500Msg232.c -

    removed, was replaced by the digitel record type & device support -

    CAN and IPAC -

    This support has been available for some time as an unbundled product. -It is not longer included with base. -

    Allen Bradley +appear in both base and unbundled because drvGib uses it.  Must be fixed when +gpib is unbundled. + +

    drvBBMsg.c drvBBMsg.c drvRs232.c drvTy232.h

    + +

    Removedfrom base. Seemed to be old duplicate version of drvBB232.c or not +used at all.

    + +

    devXxDig500Msg232.c

    + +

    removed, was replaced by the digitel record type & device support

    + +

    CAN and IPAC

    + +

    This support has been available for some time as an unbundled product. It +is not longer included with base.

    + +

    Allen Bradley

    +

    The allen bradley support has been available for some time as an unbundled -product. It is not longer included with base. -

    devOpt support +product. It is not longer included with base.

    + +

    devOpt support

    +

    The following gpib support modules have been changed to fix compiler bug for vxWorks 5.3:

    calcoutRecord -

    Under certain conditions (an input link referencing a PV on another ioc and -an unusually long ioc initialization), the calcout record would cause an  +

    Under certain conditions (an input link referencing a PV on another ioc +and an unusually long ioc initialization), the calcout record would cause an  error during iocInit by attempting to dbScanLock a record prematurely. This anomaly has been resolved with this version. No changes to the functionality of the calcout record were made.

    @@ -684,9 +707,9 @@ are accepted.

    Initial values for static variables are now honored. Previously the syntax was permitted but the initial value was ignored. Note that initial -values will give a compilation error if the "recursive" option is used because -the assignments are within the body of a struct {} definition; it seemed -worthwhile supporting the syntax for the non-recursive case.

    +values will give a compilation error if the "recursive" option is used +because the assignments are within the body of a struct {} definition; it +seemed worthwhile supporting the syntax for the non-recursive case.

    devMbbiDirectSoftRaw, devMbbiSoftRaw, devMbboDirectSoftRaw, devMbboSoftRaw
    @@ -712,8 +735,8 @@ to the value 0xffffffff. Thus old databases will act like previously

    dbl("<record type>","<output file>","<field list>")

    -

    The vxWorks console command dbl now allows an additional argument, which is -a list of field names.

    +

    The vxWorks console command dbl now allows an additional argument, which +is a list of field names.

    For example

    @@ -749,8 +772,8 @@ for developing applications with 3.13.

    The following explains changes that need to be made to existing applications that followed the EPICS -IOC Applications: Building and Source/Release Control. guidelines. See the -new version of this manual for details. +IOC Applications: Building and Source/Release Control. guidelines. See +the new version of this manual for details.

    Before switching applications to beta12 it is STRONGLY recommended that you execute:

    @@ -760,52 +783,39 @@ that you execute:

    gnumake clean uninstall -

    -Changes to <top>/config:

    -  -
    -CONFIG_APP
    -
    -Remove the following lines:
    +

    Changes to <top>/config:

    +  +
    +
    CONFIG_APP
    +
    Remove the following lines:
    +
    -
    ifndef T_A
    +  
    ifndef T_A
     T_A = $(HOST_ARCH)
     endif #ifndef T_A
    - -
    -RELEASE
    - -
    -If desired add a definition for TEMPLATE_TOP
    - -
    -RULES_TOP RULES.Db RULES.ioc RULES.iocBoot
    -
    -These no longer exists in base.  Replace your version with the version -from:
    +
    +
    RELEASE
    +
    If desired add a definition for TEMPLATE_TOP
    +
    RULES_TOP RULES.Db RULES.ioc RULES.iocBoot
    +
    These no longer exists in base.  Replace your version with the + version from:
    +
    -
    <base>/templates/makeBaseApp/top/config
    +
    <base>/templates/makeBaseApp/top/config
    +
    +
    RULES_TOP
    +
    Remove the rules for creating soft  links.
    +
    makeDbDepends.pl, makeIocCdCommands.pl, replaceVAR.pl
    +
    Copy the versions from  + <base>/templates/makeBaseApp/top/config
    +
    makeSoftLinks
    +
    Remove this file
    +
    -
    -RULES_TOP
    - -
    -Remove the rules for creating soft  links.
    - -
    -makeDbDepends.pl, makeIocCdCommands.pl, replaceVAR.pl
    - -
    -Copy the versions from  <base>/templates/makeBaseApp/top/config
    - -
    -makeSoftLinks
    -
    -Remove this file

    Changes to xxxApp/src

    Move the following definitions from Makefile.Vx to Makefile.Host: @@ -848,9 +858,9 @@ SEM_DELETE_SAFE|SEM_INVERSION_SAFE|SEM_Q_PRIORITY
        semTake(sem,WAIT_FOREVER);
         semGive(bsem);
    -in a 25MHZ mv167 took  (4.4 ,7.8) microseonds when (semBCreate,semMCreate) was -used. The extra options as well as allowing a task to lock recursively are -worth the difference in performance. +in a 25MHZ mv167 took  (4.4 ,7.8) microseonds when (semBCreate,semMCreate) +was used. The extra options as well as allowing a task to lock recursively +are worth the difference in performance.

    Task Priorities

    The priority of the channel access client for database links was changed from @@ -891,8 +901,8 @@ is:
    See the Application developer's Guide for details about access security.

    tsdefs.h and tsSubr.c

    -tsTextToStamp and tsTimeTextToStamp no longer modify the pointer or the string -referenced by pText. +tsTextToStamp and tsTimeTextToStamp no longer modify the pointer or the +string referenced by pText.

    The nextField routines used by tsSubr were moved inside tsSubr.c  and made static routines.

    @@ -901,11 +911,11 @@ static routines.

    Checked for Y2K complience. It turns out it was even ok when NTP time overflows in 2036. However it was modified so that no overflows should occur while converting between NTP, UNIX, and EPICS epochs. In addition the -conversion of fractions of a second to nanaoseconds was changed and formatting -was changed so that interesting code does not run off right side of page. -Hopefully EPICS base is now fine for Y2K. In fact it should be fine (as far as -time is converned) until the Unix epoch overflows a 32 unsigned integer in the -year 2106.
    +conversion of fractions of a second to nanaoseconds was changed and +formatting was changed so that interesting code does not run off right side +of page. Hopefully EPICS base is now fine for Y2K. In fact it should be fine +(as far as time is converned) until the Unix epoch overflows a 32 unsigned +integer in the year 2106.
     

    nextFieldSubr.c

    @@ -918,17 +928,17 @@ present. If this statemant is commented out then vxWorks 5.2 is assumed.

    makeBaseApp

    Only the perl version is now supported. Due to encouragement from Rozelle -Wright (LANL) and the developers at BESSY, makeBaseApp now uses template files -instead of being one huge ugly perl script.  Ralph Lange (BESSY) made major -changes to makeBaseApp. It supports two sets of templates provided with base -(simple and example) as well as templates stored elsewhere. Thus each site can -add new sets of template files. +Wright (LANL) and the developers at BESSY, makeBaseApp now uses template +files instead of being one huge ugly perl script.  Ralph Lange (BESSY) made +major changes to makeBaseApp. It supports two sets of templates provided with +base (simple and example) as well as templates stored elsewhere. Thus each +site can add new sets of template files.

    See the new WWW documentation on Application Source Release for details

    dbStaticLib

    -The include path now supports the unix convention that an empty directory name -means the current directory. Thus the following are OK +The include path now supports the unix convention that an empty directory +name means the current directory. Thus the following are OK
    -I nnn::mmm    # Current directory is between nnn and mmm
     -I :nnn        # Current directory is first
     -I nnn:        # Current directory is last
    @@ -955,9 +965,7 @@ details.

    argument event_number. -

    -base.dbd

    - +

    base.dbd

    VAL = AVAL * ESLO + EGUL
    The original  bi-polar adc device support modules added a "bias" to the raw -value so that the raw value is >= 0. When they were written neither RVAL or -EOFF existed. +value so that the raw value is >= 0. When they were written neither RVAL +or EOFF existed.

    RISC architectures

    Some changes were made to build on RISC architectures. A new include and @@ -1031,11 +1039,11 @@ source file (adjustment.h and adjustment.c) were created to aid this support. We can thank Peregrine McGehee for this new support.

    errlog

    -This is a replacement for the old code that implemented errMessage, errPrintf, -and epicsPrintf. It provides for multiple system wide error loggers. The -existing iocLog has been modified to use the new code. The new code supports -the old calls and adds some new calls. See Application Developer's guide  for -details.
    +This is a replacement for the old code that implemented errMessage, +errPrintf, and epicsPrintf. It provides for multiple system wide error +loggers. The existing iocLog has been modified to use the new code. The new +code supports the old calls and adds some new calls. See Application +Developer's guide  for details.
     

    devABSLCDCM

    @@ -1050,8 +1058,8 @@ Removed from base. Major rewrite of this routine. It computes the cpu usage via a low priority taks rather than using spy. It reports file descriptor usage rather than tcp connections (this is what is actually measures). The format of the INP ,and -OUT fields has changed since the previous version.  The new device definitions -are: +OUT fields has changed since the previous version.  The new device +definitions are:
    device(ai,INST_IO,devAiVXStats,"VX stats")
    @@ -1071,8 +1079,8 @@ field(OUT,"@cpuScanPeriod")
    The source file has comments showing a sample database.

    devSymb

    -This has been drastically changed. Look at <base>/src/dev/symbDev/README -for details. +This has been drastically changed. Look at +<base>/src/dev/symbDev/README for details.

    CA Client Library

    Problems where 3.13.beta11 clients were unable to connect to 3.11 and receive @@ -1086,8 +1094,8 @@ now runs better on systems without local interface query capabilities The constructor for class casPV no longer requires a reference to the server. For backward compatibility a reference to the server may still be supplied, but it will not be used. The C++ Portable Channel Access Server Library now -builds on VMS. A really bad bug was fixed in the example directory server when -clients use PV names with ".xxxx" (a field name) in them. +builds on VMS. A really bad bug was fixed in the example directory server +when clients use PV names with ".xxxx" (a field name) in them.

    Global Data Descriptor Class - GDD (only used by the C++ CA server)

    A bug occurring when the primitive type was changed to/from aitSting and the @@ -1114,8 +1122,8 @@ libraries when using an optimised build, then start GUI programs from a DOS window.

    EPICS Environment Variables that Include Host IP Addresses

    -It is now possible to use DNS host names in addition to dotted IP addresses in -EPICS environment variables. All operating systems that have a DNS client +It is now possible to use DNS host names in addition to dotted IP addresses +in EPICS environment variables. All operating systems that have a DNS client implementation should allow this. Currently only vxWorks does not, and so if you would like to use real host names instead of dotted IP addresses on vxWorks you must use the "hostAdd()" function to add host name / IP address @@ -1142,10 +1150,10 @@ document "EPICS IOC Applications, Building and Source/Release Control". Other changes are minor. Following is a brief list: -For all utilities the required database definition files are generated -from a dctsdr file from a previous epics release. A dctsdr file can be -specified or else the utilities can be run in a directory which contains -default.dctsdr (or a soft link with that name). sdr2recordtype also requires -the header file generated by a previous epics release. -

    -Conversions - replacement for DBF_CVTCHOICE

    -Let's briefly review database conversion, i.e. the LINR field for ai and -ao records. -

    The allowed conversions are: +

    The allowed conversions are:

      -
    1. -None
    2. - -
    3. -Linear
    4. - -
    5. -Breakpoint Tables
    6. +
    7. None
    8. +
    9. Linear
    10. +
    11. Breakpoint Tables
    The main complication results from the breakpoint tables. Previously EPICS handled breakpoint tables as follows: -

    The user prepares files in one of two formats: The first is just a list -of "raw value, eng units value". The second format is a file with a header -line followed by a table of raw data values that represent data at equally -spaced engineering unit values. In either case the ascii data is converted -to an internal binary format containing breakpoint tables. This data is -part of default.dctsdr. -

    Here is how breakpoint table are now handled. + +

    The user prepares files in one of two formats: The first is just a list of +"raw value, eng units value". The second format is a file with a header line +followed by a table of raw data values that represent data at equally spaced +engineering unit values. In either case the ascii data is converted to an +internal binary format containing breakpoint tables. This data is part of +default.dctsdr.

    + +

    Here is how breakpoint table are now handled.

    One other comment needs to be made about conversions. The Allen Bradley -device support for the IXE module uses the LINR field in a non standard -way. This was a mistake but compatibility must be maintained. Thus menuConvert +device support for the IXE module uses the LINR field in a non standard way. +This was a mistake but compatibility must be maintained. Thus menuConvert contains a lot of choices used only by the IXE device support. -

    -Converting existing applications

    -

    -Database Configuration Tools

    - -
  • -DCT - Rather than making major changes to DCT, a TCL/TK replacement has -been written. The executable is named DCT313.
  • - -
  • -GDCT - A new version is provided that supports 3.13. The executable is -named GDCT313.
  • - -
  • -CAPFAST
  • +

    Converting existing applications

    +

    Database Configuration Tools

    + -

    -Application Source/Release Control

    +

    Application Source/Release Control

    At the present time There are at least three Application Source/Release Control Systems in active use. The old technique of having cat_ascii and replace_ascii directories no longer work. In addition makesdr no longer @@ -1564,463 +1515,393 @@ exists. The new system offers developers far more flexibility but it also means that each Application Source/Release Control system has to be modified to take advantage of the new capabilities. Again the changes in RULES and makeBaseApp should make this task easier. -

    The document "EPICS + +

    The document "EPICS IOC Applications: Building and Source/Release Control" describes a -utility makeBaseApp which can be used for small applications. It also provides -guidlines that can be used for large applications. -

    -Locally developed Record/Device support

    +utility makeBaseApp which can be used for small applications. It also +provides guidlines that can be used for large applications.

    +

    Locally developed Record/Device support

    +by dbGetLink/dbPutLink.

    + +
    +All parm fields are now declared char * parm rather than char parm[] In +addition the defines INSTIO_FLD_SZ to VXI_PARAM_SZ no longer exist. This is +done so that unused links now use less storage. -
  • -link.h
  • +

    Record Instance Definitions

    -
    All parm fields are now declared char * parm rather than char parm[] -In addition the defines INSTIO_FLD_SZ to VXI_PARAM_SZ no longer exist. -This is done so that unused links now use less storage. - -

    -Record Instance Definitions

    - -

    -Convert to proper format

    -All record instances must be capable of being loaded into an ioc via dbLoadDatabase, -dbLoadRecords, or dbLoadTemplate. This is the same format that dbLoadRecords -and dbLoadTemplate used in 3.12 releases. Note that if any files contain -the statements: -
            database(x) { nowhere() {
    -        }
    -        }
    +

    Convert to proper format

    +All record instances must be capable of being loaded into an ioc via +dbLoadDatabase, dbLoadRecords, or dbLoadTemplate. This is the same format +that dbLoadRecords and dbLoadTemplate used in 3.12 releases. Note that if any +files contain the statements: +
            database(x) { nowhere() {
    +        }
    +        }
     
     or
     
    -        database(x) {
    -        }
    +        database(x) { +        }
    These statements must be removed. They were in pre 3.12 releases. -

    -CONSTANT Links with value "0"

    -Release 3.13 is now capably of distingushing between a null link (a link -that is not given any value at all) and a constant link with the value -0. This cause problems for some old record instance files. For example -if a record instance is defined as: -
            record(fanout,name) {
    -                field(SELN,"1")
    -                field(SELL,"0")
    -        }
    -Such definitions can be fixed by either completly removing the link definition -or changing the value from "0" to "". + +

    CONSTANT Links with value "0"

    +Release 3.13 is now capably of distingushing between a null link (a link that +is not given any value at all) and a constant link with the value 0. This +cause problems for some old record instance files. For example if a record +instance is defined as: +
            record(fanout,name) {
    +                field(SELN,"1")
    +                field(SELL,"0")
    +        }
    +Such definitions can be fixed by either completly removing the link +definition or changing the value from "0" to "". +

    here is a complete list of record types and fields that may have this -problem: +problem:

    A good way to find these problems is to use grep. For example: -
            grep SELL */*.db
    +
            grep SELL */*.db
    This assumes that you are in directory that contains subdirectorys containing .db files. -

    -IOC Startup files

    -The command dbLoad is no longer supported. The new method is to issue one -or more dbLoadDatabase commands and any combination of dbLoadRecords and + +

    IOC Startup files

    +The command dbLoad is no longer supported. The new method is to issue one or +more dbLoadDatabase commands and any combination of dbLoadRecords and dbLoadTemplate commands. -

    -Other Release Notes

    -

    -IOC Test routines

    +

    Other Release Notes

    + +

    IOC Test routines

    Many changes have been made to the EPICS ioc test routines, i.e., routines -given to the vxWorks shell. Please read the chapter "IOC Test Facilities" -in the Application Developer's Guide for details. -

    -Changes to Record and Device Support

    +given to the vxWorks shell. Please read the chapter "IOC Test Facilities" in +the Application Developer's Guide for details. +

    Changes to Record and Device Support

    - -

    -Make rules and config files

    -The config environment has been extensively changed. BASE now has its own -set of config files. Extensions will be able to use the base config files -(for the version of base it is built against) and add it's own definitions. +

    Make rules and config files

    +The config environment has been extensively changed. BASE now has its own set +of config files. Extensions will be able to use the base config files (for +the version of base it is built against) and add it's own definitions. Changes to extensions will come at a future time. -

    -GNU C++ for base

    -It is now possible to compile 3.13 EPICS base with the gnu C and C++ compilers. -A C++ compiler that properly supports templates is required to build the -new ca server and the gdd library. -

    -log server

    + +

    GNU C++ for base

    +It is now possible to compile 3.13 EPICS base with the gnu C and C++ +compilers. A C++ compiler that properly supports templates is required to +build the new ca server and the gdd library. + +

    log server

    Thanks to William Lupton at KECK the log server will now (under the latest EPICS 3.13) obtain a new directory for the log file in response to SIGHUP. -

    -CA repeater fix

    -Thanks to Kim Gillies, Bret Goodrich, and others at NOAO a problem has -been discovered and fixed in the 3.12 CA repeater under solaris. -

    -Portable CA server

    + +

    CA repeater fix

    +Thanks to Kim Gillies, Bret Goodrich, and others at NOAO a problem has been +discovered and fixed in the 3.12 CA repeater under solaris. + +

    Portable CA server

    A new CA server C++ class library is available. The server library is in libcas.a. The API is described in casdef.h. Doc is in progress. An example server tool can be found at base/src/cas/example. The server has been tested under sunos4 and solaris. A multi-threaded version of the new server for vxWorks is in progress. -

    -Macro Substitution Library

    + +

    Macro Substitution Library

    The macro substitution library discussed in tech-talk is now part of epics -base. Thus was contributed by Bill Lupton. The static database library -uses this library. dbLoadRecords and dvbLoadTemplate also use it. -

    -VXI Resource Manager fix

    +base. Thus was contributed by Bill Lupton. The static database library uses +this library. dbLoadRecords and dvbLoadTemplate also use it. + +

    VXI Resource Manager fix

    Thanks to Ric Claus of SLAC a bug has been isolated in the VXI resource -manager. -
    Symptom: correct slot isnt located when EPICS_VXI_LA_BASE is set to -something other than zero. -

    -Access Security

    -If asSetFile has been set in a startup file and access security initialization -fails, then iocInit returns -1 so that startup file does not finish. -

    -errPrintf

    +manager.
    +Symptom: correct slot isnt located when EPICS_VXI_LA_BASE is set to something +other than zero. + +

    Access Security

    +If asSetFile has been set in a startup file and access security +initialization fails, then iocInit returns -1 so that startup file does not +finish. + +

    errPrintf

    On Unix this now calls fprintf(stderr instead of printf -

    -iocLogClient.c

    + +

    iocLogClient.c

    This now calls printf instead of epicsPrintf to prevent deadlocks. -

    -Native type for DBF_USHORT

    -Formerlly old database access, which does not have unsigned short called -the native type DBR_FLOAT. It now calls it DBF_LONG -

    -Allen Bradley Driver

    + +

    Native type for DBF_USHORT

    +Formerlly old database access, which does not have unsigned short called the +native type DBR_FLOAT. It now calls it DBF_LONG + +

    Allen Bradley Driver

    Analog Output Block Transfers were being requested too frequently +

    If link_status command fails (3 times in succession) adapters are now -immediatly declared down. +immediatly declared down.

    +

    For btRead and btWrite, The driver now enforces a timeout of 5 seconds which is 1 second more than scanner itself enforces. This is so that if -scanner throws away a BT request it will still timeout. +scanner throws away a BT request it will still timeout.

    +

    For btRead and btWrite is is no longer permissible to issue a new btRead -or btWrite from tha callback routine. -

    The on line doc has the following two changes: -