From ae3538ae43c70aa081dbb70cef0c743885e8fdf2 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Mon, 16 Mar 1998 16:49:05 +0000 Subject: [PATCH] For 3.13.0.beta11 --- RELEASE_NOTES.html | 980 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 980 insertions(+) create mode 100644 RELEASE_NOTES.html diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html new file mode 100644 index 000000000..8c3b5bfa6 --- /dev/null +++ b/RELEASE_NOTES.html @@ -0,0 +1,980 @@ + + + + EPICS Release baseR3.13.0.beta11 + + + + + +

EPICS Release baseR3.13.0.beta11

+ +

July 17, 1997

+ +

All major functionality that will be in R3.13 is now in place. It has +been build on solaris, sunos, HPUX, alpha, SG, and winXX. +There are still some c++ related problems. In particular c++ code +does not build properly on SGI. Thus we are not yet ready for the +first official 3.13 release. Since none of the c++ code is necessary +for IOC applications this should not stop anyone from upgrading to 3.13.

+ + +

The Application Developer's Guide is a major revision of the 3.12 edition. +All Application Developer's should get a hard copy (from the postscript +version) and read it. It describes the features in the latest release. +The latest version is for beta11 base release.

+ +

LANL has a revision of the Record Reference Manual available. See the +LANL EPICS documentation.

+ +

The document "EPICS +IOC Applications: Building and Source/Release Control" provides +guidlines for developing applications with 3.13.

+ +

Changes between beta4 and beta11

+ +

Support for win95 and winNT

+ +

Epics base now builds on windows platforms

+ +

GDD and Portable Channel Access Server

+ +

The gdd library and the portable channel access server now build on +all platforms, except SGI and cygwin32, listed above. +This also means that C++ is supported on these platforms.

+ +

Application Developer's Guide

+ +

The chapter "Building IOC Applications" is gone. It is replaced +by the document "EPICS IOC Applications, Building and Source/Release +Control". Other changes are minor. Following is a brief list:

+ + + +

NOTE: The initHooks described in the appDevGuide is not in beta11. +In beta11 initHooks is the same as previous releases. The new version will +be in the next release.

+ +

Compiler warning messages:

+ +

All of base except drv/old is now being built with

+ + + +

Most warning messages have now been eliminated. The remaining messages +should not be removed without looking hard at code.

+ +

recSubArray

+ +

get_control_double routine returned incorrect values for fields INDX +and NELM.

+ +

devAiStats

+ +

This is now renamed devVXStats. The new device definitions are:

+
+device(ai,VME_IO,devAiVXStats,"VX stats")
+device(ao,VME_IO,devAoVXStats,"VX stats")
+
+

Thus if an application has an old base.dbd and baseLIBOBJS +including definitions for this device support they must be modified.

+ +

SysMon device support

+ +

This is removed from base. It is for APS designed and build +VME create system monitoring. The support code is available +from APS if needed. NOTE: In some beta releases baseLIBOBJS, +had an include for devSysmon.o. Applications using +an old version of baseLIBOBJS will not build until this statement is +deleted.

+ +

dbToRecordtypeH

+ +

The enums for menus had a comma after last item.

+ +

pulseTrainRecord

+ +

recGblInitConstantLink for sgl was referencing wrong field.

+ +

gphLib

+ +

This did not properly support multiple clients in multi-thread environment. +

+ +

dbPvdLib

+ +

Modified to be faster.

+ +

devMz8311

+ +

Use maxCards from module_types.h instead of a #define

+ +

calcRecord

+ +

Allow CALC to be 40 characters. Increase rpbuf from 184 to 200

+ +

mbbiDirectRecord

+ +

Add call to refresh_bits.

+ +

mbbxDirectRecord

+ +

Bx becomes no prompt for mbbi and prompt for mbbo. It was the reverse +before.

+ +

calcoutRecord

+ +

A new record type that replaces old wait record. It is like a calc record +with an output and a delay. It makes the wait record obsolete.

+ +

dbAccess

+ +

dbGetPdbAddrFromLink is a new routine. It returns NULL for all except +LINK_DB links, for which it returns the address of the associated DB_ADDR +structure.

+ +

escape characters in database files

+ +

dbLoadDatabase, dbLoadRecords, and dbLoadTemplate all allow the standard +C escape sequences in quoted strings. For example a string can contain: +"\x00 \27 \t" Thus these sequences pass though the lexical analyzer +.

+ +

dbTranslateEscape

+ +

A new routine in libCom. It is used to translate escape sequences. It +is defined in file epicsString.h. It typical place to use this is on parm +fields that contain escape sequences like "\x00 \27 \t".

+ +

Slow booting

+ +

iocs with big databases were taking a long time to boot. It was discovered +that allocating and then freeing small amounts of memeory frequently resulted +in a VERY long memory free list. This is now fixed.

+ +

boRecord, mbboRecord

+ +

init_record now initialized the RVAL field.

+ +

ProcessCallback

+ +

Benjamin Franksen at BESSY reported a serious bug in the routine +ProcessCallback (not used in base). It has been fixed.

+ +

CALC fields

+ +

postfix and calcPerform (used by calcRecord) have been changed +so that a 0 byte now ends the postfix expression. Also if postfix +detects an illegal expression it generates a 0 length postfix string. +When calcPerform is given a 0 length string it returns a error status. +Thus calcRecord no longer causes the IOC to crash if an illegal +CALC fields is loaded.

+ +

Etc.

+ +

Many other minor problems, bugs, etc. were fixed.

+ +

+ +

Notes for Release 3.13 of EPICS Base

+ +

+


For Release 3.13 major changes have been made to EPICS base. The IOC +Application Developer's Guide has been extensively modified and now describes +release 3.13. If you are upgrading for a 3.12.xxx or earlier release you +must obtain and read the new App Dev Guide.

+ +

In porting EPICS to multiple architectures, the previous method of using +utilities to convert the database definition files to a binary file (default.dctsdr) +caused problems. The problem is that the binary file is created on one +architecture and used on another. This has worked so far for sun4 and hp +hosts combined with motorola 68xxx processors. As support for more host +and more ioc architectures is developed problems are appearing. This paper +describes changes that solve the problems.

+ +

Because the changes result in extensive changes to database access, +other changes are also made. The file syntax is changed. The internal database +structures are simplified and also changed to make it easier to support +runtime add/delete of record types and record instances.

+ +

Goals

+ + + +

Backward Compatibility

+ + + +

Incompatibilities

+ + + +

Overview of new database support

+ +

EPICS defines a set of database file formats. In addition any of these +files can contain include statements. For each ioc, the application developer +will create a set of files specifying the record types, devices, and drivers +needed for that ioc. Normally a master file will be created which consists +of include statements that bring in record, device, and driver definitions. +Default configurations can be provided for new users or for particular +applications.

+ +

Database configuration and utility tools access the database via the +static database access library. This library reads the files. It provides +routines for reading the information in the database and for creating and +modifying record instances. Database definition files can be read incrementally. +

+ +

Other database configuration tools (capfast, relational database systems, +object oriented databases, etc.) can also be used as long as they generate +record instances in the format described below. In this case, however, +it is still necessary to generate the other files because they are needed +by database access and for record and device support modules.

+ +

Tools are provided that generate C code from the database files. Header +files are generated for menu and record type definitions. These header +files are used by record and device support. In addition the record type +definitions contain code which computes field offsets and sizes and record +sizes. This code is compiled by the same cross compiler that is used to +compile other ioc code. Thus cross platform compatibility is achieved. +

+ +

In order to initialize an ioc, all files needed by that ioc have to +be loaded. It is also necessary to load the record/device/driver support +modules.

+ +

Everything is designed so that the following are possible:

+ + + +

An additional feature is that, for database configuration tools, record +instance numeric fields and menu fields are stored as character strings. +This solves the following problems.

+ + + +

Another feature is is that it is now possible to distinguish link constants +with a value of 0 from links that have never been given a value.

+ +

Other changes have been made while the opportunity was available.

+ + + +

Database Definition File format

+ +

Formats are defined for the following:

+ + + +

See the Application Developer's Guide for details.

+ +

The menu choices replace the existing global, record, and conversion +choices. The global and record choices are very similar and thus are easy +to combine. The method of handling the old conversion choices is described +below. That section also describes the breakpoint tables.

+ +

The record type description format has been completely changed. It now +has a "real" syntax. It should be MUCH easier to generate new +definitions.

+ +

The device choice and driver support definitions are defined so that +it is easy to provide incremental definitions.

+ +

The record instance format is an extension of the 3.12.beta13 and later +GDCT .db format.

+ +

Path and include statements are supported. This provides a powerful +tool for combining definitions from many sources. The path is a unix style +path, i.e. a colon separated list of directory names.

+ +

default.dctsdr conversion tools

+ +

NOTES

+ + + +

The following tools are provided:

+ + + +

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:

+ +
    +
  1. None
  2. + +
  3. Linear
  4. + +
  5. Breakpoint Tables
  6. +
+ +

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.

+ + + +

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 +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
  • + + + +

    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 +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 +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

    + + + +

    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() {
    +        }
    +        }
    +
    +or
    +
    +        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 "".

    + +

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

    + + + +

    A good way to find these problems is to use grep. For example:

    + +
            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 dbLoadTemplate commands.

    + +

    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

    + + + +

    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

    + +

    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

    + +

    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

    + +

    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

    + +

    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

    + +

    On Unix this now calls fprintf(stderr instead of printf

    + +

    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

    + +

    Analog Output Block Transfers were being requested too frequently

    + +

    If link_status command fails (3 times in succession) adapters are now +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.

    + +

    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:

    + + + +

    vmic2534

    + +

    Support has been added by LBL. It still needs to be ansified.

    + +

    New options for links

    + +
  • FWDLINK
    +A forward link now works between IOCs but only if the field is PROC. When +recGblFwdLink is executed, a 1 is written.
  • + +
  • OUTLINK new option CA (In addition to PP and NPP)
    +CA means always make it channel access link
  • + +
  • INLINK new options CA CP CPP (In addition to PP and NPP)
  • + + + +

    dbAccess (dbGetField dbPutField) make sure that link field strings are +not longer than 39 characters. They allow M for MS and N for NMS

    + +

    callback and scan task names

    + +

    The task names have been changed to make them unique

    + +

    dbPutString

    + +

    If the strlen of the new field is >= field_size an error is returned. +

    + +

    event scanned records

    + +

    Multiple priorities are now supported.
    +WARNING: Default PRIO is low thus old event scanned records may be executed +at a lower priority then previous release.

    + +

    Allen Bradley Stepper Motor Support (Ric Claus SLAC)

    + +

    Support for the allen bradley stepper motor is available. See the APS +EPICS Hardware Support page for details.

    + +

    initHooks

    + +

    INITHOOKafterCaLinkInit1 is replaced by INITHOOKafterCaLinkInit
    +INITHOOKafterCaLinkInit2 no longer exists

    + + +