
The DSPCAD Integrative Command Line Environment: Introduction to DICE Version 1 Shuvra S. Bhattacharyya, Soujanya Kedilaya, William Plishker, Nimish Sane, Chung-Ching Shen, and George Zaki Department of Electrical and Computer Engineering, and Institute for Advanced Computer Studies University of Maryland at College Park, USA fssb, soujanya, plishker, nsane, ccshen, [email protected] Abstract—DICE (the DSPCAD Integrative Command is being developed by the Maryland DSPCAD Re- Line Environment) is a package of utilities that facilitates search Group, which focuses on computer-aided design efficient management of software projects. Key areas of (CAD) techniques for digital signal processing (DSP) emphasis in DICE are cross-platform operation, support systems. However, the features provided in DICE are for projects that integrate heterogeneous programming generally not specific to DSP or CAD-for-DSP appli- languages, and support for applying and integrating different kinds of design and testing methodologies. cations, and can be used be in other domains just as The package is being developed at the University of effectively. Maryland to facilitate the research and teaching of For clarity, we should note what DICE is not. DICE methods for implementation, testing, evolution, and re- is not meant to replace existing software development vision of engineering software. The package is also being tools. DICE is not a shell nor is it a compiler or synthe- developed as a foundation for developing experimental sizer. It is not a debugger nor does it provide simulation research software for techniques and tools in the area of capabilities. It does not provide automatic transcoding computer-aided design (CAD) of digital signal process- for porting between platforms and languages. DICE is ing (DSP) systems. The package is intended for cross- instead a command line solution to utilize all of these platform operation, and is currently being developed and used actively on the Windows (equipped with Cygwin), existing kinds of tools more effectively, especially for Solaris, and Linux platforms. cross-platform design. This report provides an introduction to DICE, and provides background on some of the key features in II. SETTING UP DICE DICE. This report also gives a brief introduction to DICE is implemented as a collection of utilities that dicelang, which is a plug-in package for DICE that are in the form of bash scripts, C programs, and python provides additional utilities, libraries, and tools for scripts. Therefore, facilities for interpreting/compiling managing software projects in specific programming these languages must be available to use all of the languages. capabilities in DICE. DICE is developed with signif- icant attention to cross-platform operation. Platforms I. INTRODUCTION on which DICE is used actively include Windows This report provides an introduction to DICE, which (equipped with Cygwin), Solaris, and Linux. stands for the DSPCAD Integrative Command Line En- DICE can be downloaded from the DICE Project vironment. The objective of DICE is to provide a flex- Website (http://www.ece.umd.edu/DSPCAD/projects/ ible, light-weight environment for the research, devel- dice/dice.htm). Details on setting up, using, and trou- opment, testing, and integration of software projects, bleshooting DICE are covered in the DICE User’s particularly those that employ heterogeneous program- Guide [1], which is available through this website. ming languages or models of computation. DICE III. INTRODUCTION TO DICE UTILITIES Technical Report UMIACS-TR-2009-13, Institute for Advanced Computer Studies, University of Maryland at College Park, August DICE includes a variety of utilities to help improve 2009. productivity while working in a command-line or shell- based project development environment. This section cd ˜/projects/proj1 provides a brief introduction to some of the basic utili- dlk p1 ties available in DICE. These utilities help improve the cd ˜/documents/doc1 convenience with which one can do some common and g p1 fundamental tasks. More utilities and further details are After the above sequence of commands, the user will described in the DICE User’s Guide [1] . end up in ˜/projects/proj1. A. DIRECTORY NAVIGATION If the dlk command is called with a label that is For users of command line based development en- already associated with a different directory, then the vironments, directory navigation can be cumbersome previous association is silently overwritten, and the and time consuming when done many times a day. To association is changed so that the label is linked to alleviate this, DICE provides a number of utilities for the current working directory. efficient navigation through directories. This group of The associations used by DICE between directory utilities allows one to label directories with arbitrary, labels and absolute paths are maintained in a subdi- user-defined identifiers, and to move to (i.e., cd to) rectory called g in the dice_user directory. The directories by simply referencing these identifiers. This dice_user directory is a directory in which user- is a much more convenient way of “jumping” from specific files related to DICE are maintained. Infor- one directory to another compared to typing the com- mation about setting up the dice_user directory is plete directory path or explicitly changing directories provided as part of the instructions for installing and through the relative path of the desired destination setting up DICE. directory. After using the DICE navigation utilities for several The primary DICE utility related to directory navi- weeks, it is natural to build up a large collection gation is dlk, which stands for the “directory linking of directory labels, and such a collection can eas- utility”. The following is the general usage format for ily be backed up, along with other relevant, user- the dlk command. specific DICE settings and files, by backing up one’s dice_user directory. dlk <label> To remove a label-directory association, one can Here, <label> is the string that is to be associated use the DICE rlk command. The name rlk is short as the label for the current working directory. Such a for “remove (directory) link”. The usage format is as label can be of arbitrary length, but should contain only follows. alphanumeric characters (e.g., no spaces). rlk <label> Once one runs the dlk command in a specific directory, the user can return to same directory at Assuming that the given label is currently associated any future time (during the same shell session or a with a specific directory from a prior call to dlk, the subsequent session) by running the DICE g command. rlk command removes the association between the la- The command name g is derived from the word bel and directory. This has the side effect of removing a “go”. The general usage format for the g command small text file, since each label-directory association is is as follows. stored as a separate text file in dice_user/g, as de- scribed earlier. Thus, especially when large collections g <label> of labels are involved, rlk can be useful to conserve Here, <label> is a label that has been associated with disk space or reduce clutter in the dice_user/g a directory through prior use of the dlk command. directory. Running the g command allows one to cd (change The set of DICE directory navigation commands directory) to the directory that is currently associated includes two simple wrappers around the common with the given label. UNIX commands pushd and popd, which As a simple example, consider the following se- manipulate the directory stack as they change quence of commands, and assume that the directory the current working directory. The wrappers are called paths referenced in the commands are valid. dxpushd and dxpopd, respectively. The dxpushd 2 and dxpopd commands perform the same functions different directories. We refer to these utilities infor- as their standard UNIX counterparts, except that they mally as the DICE utilities for MTA (“moving things do not produce any text to standard output. Instead, around”). These utilities can be especially convenient their standard output is redirected to the DICE user when used in conjunction with the directory navigation files dice_user/tmp/dxpushd_discard.txt utilities described in Section III-A, but they can also and dice_user/tmp/dxpopd_discard.txt, be used independently of any other utilities. respectively. By redirecting the output in this way, the The DICE MTA utilities reference a standard user output is available for diagnostic reference as needed subdirectory in DICE that we called the DICE tempo- without cluttering standard output. This is useful, for rary directory or simply, the temporary directory when example, when “pushing” and “popping” directories the DICE qualification is understood from context. The in scripts as it helps to keep the output from the path of this directory is stored in the DICE environment scripts more relevant to the direct functionality of the variable UXTMP, and the value of this variable (i.e., scripts (rather than their internal use of pushd and the location of the DICE temporary directory) is set popd operations). by default upon startup of DICE to be the path to a The usage formats for dxpushd and dxpopd are subdirectory called tmp in the DICE user directory. the same as their standard UNIX counterparts: any ar- So, for example, if the DICE user directory is located guments provided to these wrapper versions are passed at ˜/dice_user, then the DICE temporary directory
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages10 Page
-
File Size-