RD Controls<P> EPICURE Software Release Note 3.1<P> <b> EPICURE Code Development Environment</b><P> <b> Project Work Areas</b>

RD Controls

EPICURE Software Release Note 3.1

EPICURE Code Development Environment

Project Work Areas

Deb Baddorf

Introduction

The code development environment on WARNER accommodates EPICURE, CRYO and OPS software development. The three types of development environment share command files but have parallel disk structures. It is important to keep the work environments separate, but to allow for easy switching between them. Commands are provided to move between directories and to set up the project. Commands are the same among the environments. A single set of commands is provided so that another programmer can easily step into the project when the first programmer leaves or is on vacation.

Usage

Defining Logicals and Symbols

Shared symbol and logical definitions are set up by including the following line either in one's login file, or in another file which is always run before entering the WORK areas. You could put it in another file if you do not want these symbols and logicals defined except for sessions when you intend to work on software projects.

$ @PROJECT_COMMANDS:EPICURE_LOGIN.COM
One logical defined is PARAM_DIR. This is a directory where these procedures write internal information. If you have defined a logical USER_LANDFILL_SITE, then PARAM_DIR will point to that location. (Several programs on the WARNER systems use the landfill logical, so you can avoid having stuff left in your SYS$LOGIN directory. See RD Controls Software Release No. 49.) If you have no landfill logical, PARAM_DIR will point to a subdirectory in your SYS$LOGIN area called [.PARAM_SAVE]. Then, if the directory pointed to by PARAM_DIR does not exist, the EPICURE_LOGIN file will create it. This will only happen once.

Additional symbols which you may want to define are done by:

$ @PROJECT_COMMANDS:EPICURE_LOGIN_AUX.COM
It is strongly suggested that you read through this file of auxiliary symbols before running it. Some of the symbols may conflict with symbols you have already gotten used to using in your own login file. Some of them you may just decide you are unlikely to use. This file is now segmented into two parts. As you can see by reading the command file, if the set of symbols at the end conflicts with your normal usage, you can avoid them by calling the procedure with a parameter ``PARTIAL'':
$ @PROJECT_COMMANDS:EPICURE_LOGIN_AUX.COM PARTIAL
If you don't want to use any of the symbols in this auxiliary file, you don't have to call it at all.

Choosing Your Environment

As mentioned, there are three types of software development sharing this structure. The three types are referred to as ``environments''. One's environment can be EPICURE, CRYO, or OPS.

Following the invocation of the EPICURE_LOGIN command file, you should select your environment. This can be in your login file or wherever you have put the EPICURE_LOGIN command file. Use only one of the following lines:

$ ENVIRONMENT EPICURE

$ ENVIRONMENT CRYO

$ ENVIRONMENT OPS

Later, the environment can also be changed interactively so that you can work in more than one environment. Since you will probably have one environment that you work on most often, it is best to declare that environment from the same command file which calls the EPICURE_LOGIN file.

The EPICURE_LOGIN command file defaults the environment to EPICURE. EPICURE programmers therefore don't really need to declare an environment, but it is still a good habit.

The command ENVIRONMENT can be abbreviated to ENV for faster typing.

Seeing What Projects Are Available

This is an optional step. If you know what project you need to work on you can skip this step. However, this command is always available to help you find the name of projects available.

The ``search projects'' command is PROJECT or can be abbreviated PROJ.

$ PROJECT
You can type PROJECT to show the whole list. Basically the command is doing a SEARCH, so if you just type PROJECT it will ``find'' the whole file, and will highlight the whole file.

You can find all projects associated with any phrase.

$ PROJECT phrase
For instance,
$ PROJECT programmers_name

$ PROJECT CAMAC

$ PROJECT BEAM

Use your imagination.

Working with a Project

To work on a project, the WORK command creates a consistent setup, no matter who needs to work with this project. To work with a particular project, you type:

$ WORK project_name

This does several things for you.

Comments/Caveats About WORK areas

CMS directories

The CMS directories live in a directory parallel to the WORK areas. See Figure .

The only thing a programmer needs to do with the CMS directories is done by CMS or MMS commands. Files are put into these directories with the CMS command. For more information, type CMS and then HELP, or see the manual sets which are available. Don't ever manually put files into or take them out of the directories under the CMS tree.

PROJECT_SETUP.COM file

When a new project is created, an empty PROJECT_SETUP.COM file is created. The project programmers can edit this file to do what they need to have done. Usually it defines symbols and logicals required for the particular project.

Symbols and logicals which a particular programmer wants to have in place for all his/her login sessions should go in their own LOGIN.COM file rather than the PROJECT_SETUP.COM file. This way they need not be repeated in each project you get assigned, and they also don't affect a different programmer who may have occasion to work with a particular project.

Remember that someone else might occasionally have to WORK with this project (even if they are just looking at the code) and may not have the same tastes, so try not to put things in the PROJECT_SETUP.COM file which would mess up somebody else's terminal.

Commonly Used Command Procedures

This section describes the commonly used command procedures and the DCL commands used to invoke them. Command procedures are located in directory PROJECT_COMMANDS. The necessary DCL command symbols required to invoke these procedures are in files:

PROJECT_COMMANDS:EPICURE_LOGIN.COM and

PROJECT_COMMANDS:EPICURE_LOGIN_AUX.COM.

The first file contains the command symbols that are required for software development. The second contains optional but possibly useful command symbols. As a rule, all EPICURE,CRYO or OPS software developers should refer to EPICURE_LOGIN.COM in their login.com file. Referring to EPICURE_LOGIN_AUX.COM is optional. Review both of these files to get an idea of what they do.

Many of these command procedures work in conjunction with other command procedures, especially those which deal with changing your default directory.

Many procedures need to have information kept after they have terminated. This is done in one of three ways.

  1. Process symbols
  2. Logical definitions
  3. The parameter subdirectory, SYS$LOGIN:PARAM_SAVE.DIR

Process symbols and logical definitions are used when the information is not needed to be maintained across logins. The parameter subdirectory is used when information is required across logins.

Software development command procedures include the following:

Example of Development Environment Dialog

This section gives an example of a dialog between a user and the development environment command procedures.

$ @PROJECT_COMMANDS:EPICURE_LOGIN !in login file

$ @PROJECT_COMMANDS:EPICURE_LOGIN_AUX !in login file if desired

$ ENV OPS

$ WORK TIME_READ

Working with OPS project TIME_READ

- - - your TIME_READ related activity - - -

$ WORK PRESERVE

Working with OPS project PRESERVE

- - - your PRESERVE related activity - - -

$ ENV EPICURE

$ WORK RONALD

Working with EPICURE project RONALD

- - - your RONALD related activity - - -

Summary of Available Command Procedures

Summary of elements in DEC/CMS Library EPICURE_ROOT:[CMS.COM]

Keywords: WARNER, software, programming

Distribution:

normal

Security, Privacy, Legal

rwest@fsus04.fnal.gov