EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

EPICS Base

This is the main core of EPICS, comprising the build system and tools, common and OS-interface libraries, Channel Access client and server libraries, static and run-time database access routines, the database processing code, and standard record, device and driver support.

Bug and Vulnerability Reporting

Bugs discovered in EPICS Base can be reported via email to the tech-talk mailing list, or can be filed directly into the Launchpad bug tracker. Private reporting of a security vulnerability can be achieved by filing a Private Security issue through the Launchpad bug tracker.

Code Management

As of April 2017 the EPICS Base source code is being managed using the Git version control software, hosted at Canonical's Launchpad.net website. We also use Launchpad for bug tracking, and to a lesser extent for planning new features. A mirror of the code repository is available on Github, and we plan to switch that for Launchpad sometime soon, although we will continue to support both.

Contributions to EPICS Base are welcome, and can be accepted as Pull Requests through our Github project, by using the similar but somewhat older Launchpad.net code review process, or by sending patches to the core-talk mailing list. Potential contributors should understand the implications of code portability to the different operating systems that we have to support, and are advised to discuss significant developments with the core development team before starting to work to avoid duplication or wasted effort.

Versions and Numbering

There are many different versions of Base in use at the various EPICS sites at any one time. Separate pages on this site (linked below) provide information relating to each major release series; the differences between minor release versions are covered within the relevent major release page.

The EPICS Version numbering system has evolved over the years so older version numbers may not mean quite the same thing as more recent ones, but any version with a zero component in the number such as 3.15.0.1 was a developer release and should not be used for production systems. The first release in the 3.15 series that qualified for production use was version 3.15.1.

The current major release of EPICS Base is called EPICS 7. This jump in the major version number is an attempt to recover from the problem that software was developed by the community called "EPICS V4" but that did not replace the Base-3.x code at all, V4 actually built on top of V3. EPICS 7 is a combination of the Base-3.16 code (with some additional functionality) along with most of the C++ modules from the EPICS V4 development, and we called it EPICS 7 to express the fact that it is combination of the two.

What do the descriptive terms next to the above series mean? Most of them don't have any formal definition, they're just to give an indication whether we're still developing new features for them and/or applying bug-fixes. Here's the main point: The core epics developers work for organizations that still use (or are under contract to maintain) those release series which are not marked as "closed". New features are normally developed for and added to the latest release series only (although that partly depends on who is writing the code), but bug-fixes and updated operating system support get applied to the earliest series that make sense.

Note that we can make no explicit guarantees about continued future maintenance. Once the APS Accelerator stops using 3.14 that series will probably be closed (unless someone else funds continuing maintenance of it). A similar rule applies to operating system support — if you are the only site using an OS or an older OS version you will have to step up to keep newer releases of Base running on it. This is all a question of funding, we can only work on what our employers are willing to pay for.

So which of the above series should you pick for a project? That choice depends on many things. If you need to use features that are only available in the latest release series then the choice is clear, but if not and you are fairly new to EPICS it might be better to avoid the newest series because tutorials and/or support software such as Asyn or other driver/device support might not have been updated yet to build on that series. In general though we suggest using the newest series that you can since it will be maintained for longer.

Operating System Hints

If you are using vxWorks 6.x, look at the vxWorks 6.x page for help on configuring and patching vxWorks for use with EPICS. The Tornado page provides help for vxWorks 5.x/Tornado 2 users. Look at the Tornado 2.2 and Linux page for building vxWorks 5.5 code on a Linux host. The Power PC page was written for sites upgrading from MC680x0 CPUs.

The RTEMS page provides some pointers to information about the host and target support available for that operating system. Several EPICS sites are now working seriously with this operating system. Eric Norum's Getting started with EPICS on RTEMS tutorial provides a step by step guide for newcomers.

The MS Windows page gives pointers to the different tools and compilers both commercial and free (as in beer) that are used to build EPICS on Microsoft Windows systems.

ANJ, 07 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·