Introduction to DICE Version 1.1

Introduction to DICE Version 1.1

The DSPCAD Integrative Command Line Environment: Introduction to DICE Version 1.1 Shuvra S. Bhattacharyya, William Plishker, Chung-Ching Shen, Nimish Sane, and George Zaki Department of Electrical and Computer Engineering, and Institute for Advanced Computer Studies University of Maryland at College Park, USA fssb, plishker, ccshen, nsane, [email protected] Abstract—DICE (the DSPCAD Integrative Command heterogeneous programming languages or models of Line Environment) is a package of utilities that facilitates computation. DICE is being developed by the Mary- efficient management of software projects. Key areas of land DSPCAD Research Group, which focuses on emphasis in DICE are cross-platform operation, support computer-aided design (CAD) techniques for digital for projects that integrate heterogeneous programming signal processing (DSP) systems. However, the features languages, and support for applying and integrating different kinds of design and testing methodologies. The provided in DICE are generally not specific to DSP or package is being developed at the University of Maryland CAD-for-DSP applications, and can be applied in other to facilitate the research and teaching of methods for domains. implementation, testing, evolution, and revision of engi- For clarity, we should note what DICE is not. DICE neering software. The package is also being developed as is not meant to replace existing software development a foundation for developing experimental research soft- tools. DICE is not a shell nor is it a compiler or synthe- ware for techniques and tools in the area of computer- sizer. It is not a debugger nor does it provide simulation aided design (CAD) of digital signal processing (DSP) capabilities. It does not provide automatic transcoding systems. The package is intended for cross-platform for porting between platforms and languages. DICE is operation, and is currently being developed and used actively on the Linux, Mac OS, Solaris, and Windows instead a command line solution to utilize all of these (equipped with Cygwin) platforms. existing kinds of tools more effectively, especially for This report provides an introduction to DICE, and cross-platform design. provides background on some of the key features in DICE Version 1.1. This report also gives a brief introduc- II. SETTING UP DICE tion to dicelang, which is a plug-in package for DICE DICE is implemented as a collection of utilities that that provides additional utilities, libraries, and tools are in the form of Bash scripts, C programs, and Python for managing software projects in specific programming scripts. Therefore, facilities for interpreting/compiling languages. these languages must be available to use all of the capabilities in DICE. DICE is developed with signif- I. INTRODUCTION icant attention to cross-platform operation. Platforms This report provides an introduction to DICE, which on which DICE is used actively include Linux, Mac stands for the DSPCAD Integrative Command Line OS, Solaris, and Windows (equipped with Cygwin). Environment, and accompanies the latest release of DICE can be downloaded from the DICE Project DICE, which is Version 1.1. The objective of DICE Website [1]. Details on setting up, using, and trou- is to provide a flexible, lightweight environment for bleshooting DICE can also be found through this the research, development, testing, and integration website. of software projects, particularly those that employ III. INTRODUCTION TO DICE UTILITIES Technical Report UMIACS-TR-2011-10, Institute for Advanced DICE includes a variety of utilities to help improve Computer Studies, University of Maryland at College Park, 2011. productivity while working in a command-line or shell- based project development environment. This section dlk p1 provides a brief introduction to some of the basic cd ˜/documents/doc1 utilities available in DICE. These utilities help improve g p1 the convenience with which one can do some common After the above sequence of commands, the user will and fundamental tasks. 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 dlk <label> directory. 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). Once one runs the dlk command in a specific rlk <label> 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- g <label> scribed earlier. Thus, especially when large collections of labels are involved, rlk can be useful to conserve <label> Here, is a label that has been associated with disk space or reduce clutter in the dice_user/g dlk a directory through prior use of the 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 cd ˜/projects/proj1 and dxpopd commands perform the same functions 2 as their standard UNIX counterparts, except that they different directories. We refer to these utilities infor- do not produce any text to standard output. Instead, mally as the DICE utilities for MTA (“moving things their standard output is redirected to the DICE user around”). These utilities can be especially convenient files dice_user/tmp/dxpushd_discard.txt when used in conjunction with the directory navigation and dice_user/tmp/dxpopd_discard.txt, utilities described in Section III-A, but they can also respectively. By redirecting the output in this way, the be used independently of any other utilities. output is available for diagnostic reference as needed Users who are upgrading from the previous version without cluttering standard output. This is useful, for of DICE should take note that the names of several example, when “pushing” and “popping” directories MTA utilities have changed in the latest version. This in scripts as it helps to keep the output from the section provides the updated names of the utilities. scripts more relevant to the direct functionality of the The DICE MTA utilities reference a standard user scripts (rather than their internal use of pushd and subdirectory in DICE that we called the DICE user popd operations). clipboard. The DICE user clipboard resides within The usage formats for dxpushd and dxpopd are another standard user directory called the DICE tempo- the same as their standard UNIX counterparts: any ar- rary directory or simply, the temporary directory when guments provided to these wrapper versions are passed the DICE qualification is understood from context. on directly to pushd and popd, respectively. The paths of the DICE user clipboard and temporary The naming of the dxpushd and dxpopd com- directory are stored in the DICE environment vari- mands illustrates a naming convention that is used ables UXCLIPBOARD and UXTMP, respectively. The often (but not everywhere) in DICE: that of prefixing value of the UXTMP variable (i.e., the location of the the name of a DICE utility with “dx.” DICE plug-in temporary directory) is set by default upon startup of packages, such as the dicelang package, which is DICE to be the path to a subdirectory called tmp discussed in Section V, will in general have similar in the DICE user directory.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us