Copyright 1991-2016 by Kevin G. Barkes All rights reserved. This article may be duplicated or redistributed provided no alterations of any kind are made to this file. This edition of DCL Dialogue is sponsored by Networking Dynamics, developers and marketers of productivity software for OpenVMS systems. Contact our website www.networkingdynamics.com to download free demos of our software and see how you will save time, money and raise productivity! Be sure to mention DCL Dialogue! DCL DIALOGUE Originally published July 1991 DCL: The Musical By Kevin G. Barkes Okay, here's the secret to memorizing DCL commands: Put them to music. The idea certainly isn't new. Perhaps the most widely-publicized example of this genre is "The Elements", written in 1959 by America's premiere parodist, Tom Lehrer. (Mr. Lehrer's work has recently been re-released on compact disc, proving that bad taste and puerile rhyming never go out of style. But I digress.) Mr. Lehrer made the life of chemistry students much easier by taking the names of the elements and putting them to music, specifically Gilbert & Sullivan's "I Am The Very Model of a Modern Major General" (The Major General Song) from "The Pirates of Penzance." True, the result was less memorable than his legendary "Vatican Rag", "The Masochism Tango", and "Poisoning Pigeons in the Park", but it got a lot of us through Chemistry I. Space prohibits re-publishing the work in toto, but here's a brief sample: There's antimony, arsenic, aluminum, selenium And hydrogen and oxygen, and nitrogen and rhenium And nickel, neodymium, neptunian, germanium And iron, americium, ruthenium, uranium Europium, zirconium, lutetium, vanadium, And lanthanum and osmium and astatine and radium, And gold and protactinium and indium and gallium... And iodine and thorium and thulium and thallium. (Music by Sir Arthur Sullivan, Words by Tom Lehrer) You don't have to be Irving Berlin or even M.C. Hammer to adapt the idea to DCL. Take, for example, lexical functions. (Note: letters separated by hyphens should be pronounced individually): There's context, edit, element, directory and p-i-d And c-v-time, c-v-s-i, c-v-u-i, c-s-i-d And locate, length and integer and extract and environment Device, mode, parse, type, user and t-r-n-l-n-m File attributes and verify and time and string, get-d-v-i, And privilege, identifier, message, search, get-j-p-i, And f-a-o and process and set-p-r-v, get-s-y-i... And as of five-point-four-dash-two that just leaves us get-q-u-i. You get the idea. Of course, converting all of DCL's myriad commands, arguments and modifiers into lyrical form is a massive effort. Partial as I am to the works of Andrew Lloyd Webber, the resulting opera may be called "Phantom of the Operating System" or, perhaps, "Aspects of VMS". Or even "Ken and the Amazing Risc-y VAX". Maybe I ought to take the CD player out of my office and get back to work... ************ DCL ADVISORY Persons who are particularly sensitive to DCL performance issues should be aware that possible future changes to the command language interpreter may pose some problems. This isn't a new issue; it was in the VMS 5.2 release notes, which were published more than two years ago. Random checks with various DCL afficianados has revealed, however, that this particular notice seems have slipped through the cracks. Currently DCL only reads the first four characters of commands and qualifiers. That's why you can type in things like LOGOUTNOW and be certain DCL will interpret the entry as LOGOUT, provided someone hasn't defined the former as a symbol. It's long been maintained that efficient command procedure coding requires shortening DCL verbs and qualifiers to four letters. For example, $ DIRECTORY/NOHEAD/NOTRAIL/OUTPUT=FILE.TMP should appear as: $ DIRE/NOHE/NOTR/OUTP=FILE.TMP in order to minimize the amount of work performed by the command interpreter when it parses the line. Problem is, the number of layered products whose commands are being added to DCLTABLES is putting the squeeze on the number of available, exclusive four-character verbs and qualifiers. There are two possible solutions to this dilemma: go the UNIX route, and add non-descriptive items to the DCL vocabulary (grep, awk, etc.), or increase the minimum length of verbs and qualifiers. DEC's decided to bump up the length requirement, if and when it institutes the change. DEC's recommendation, as it has always been, is to spell out commands and qualifiers completely in .COM files. In addition to providing self-documenting code, it prevents possible ambiguity when new products and their commands are added to your system. The speed of most new VAX systems is such that performance increases from truncating verbs and qualifiers is virtually negligible. For those persons with older VAXen, I'd suggest expanding the abbreviated commands to six characters, just to be on the safe side. DEC promises a "reasonable transition period" before making any changes, but it's probably not a bad idea to make persons who write command files aware of the possible behavior alteration. ******* IS IT DATA OR DCL? This is another oldie (the error was reported nearly a year ago). Whenever DCL encounters a line in a command file that doesn't begin with a dollar sign ($), it's supposed to treat the line as data. If the line isn't usable data, DCL should issue the error message: %DCL-W-SKPDAT, image data records (records not beginning with "$") ignored You've probably seen this message hundreds of times. It occurs most frequently when you have blank lines at the end of your command procedure. It began appearing in later releases of VMS 4.0, when DEC announced it was tightening the rules for command file coding. Interestingly enough, it appears the message is not generated when DCL commands are entered into a command file without a leading "$". Under VMS as late as 5.4-1, the following command file: $ SHO DEFAULT SHOW DEFAULT (leave in blank lines) $ EXIT produces: USER2:[BARKES] USER2:[BARKES] with nary an error message to be seen. DEC will undoubtedly get around to fixing this in the ubiquitous "future release of VMS". Prudent command file maintainers will be on the lookout for this potential problem. ************************************************* Kevin G. Barkes is an independent consultant, who has obviously been affected by the heat. He publishes the KGB Report newsletter, operates the www.kgbreport.com website, lurks on comp.os.vms and can be reached at kgbarkes@gmail.com.