[Info-vax] DCL's flaws (both scripting and UI)

mcleanjoh at gmail.com mcleanjoh at gmail.com
Wed Jan 21 16:11:22 EST 2015


On Thursday, January 22, 2015 at 3:21:35 AM UTC+11, John Reagan wrote:
> On Wednesday, January 21, 2015 at 10:37:50 AM UTC-5, JF Mezei wrote:
> 
> > 
> > 1- Is it possible to get DCL to support modern quoting that causes less
> > irritation to Hoff ?
> 
> To give some sense of the difficulty in changing DCL...
> 
> During the port to Itanium, we had the IMACRO compiler collect and print
> out various pieces of information about the modules. The number of
> "routines", sizes, number of temp registers used, CCs used, predicates used, and
> flow graph information about the "complexity".  It is common for routines to
> jump into another routine and then into another routine, etc. While that wasn't a problem on VAX, it was somewhat of a problem on Alpha since you had to match
> prologs with epilogs with respect to register restores, and it was worse on
> Itanium to match up all the 'alloc' instructions so the output registers would
> all match regardless of which entry point was used (and don't get me started
> on NaTs).
> 
> The #1 complex module?  The shadow driver.  #2?  One of the modules in the
> Macro32 parser itself.  #3?  DCL.  Routine after routine after routine all
> with JSB linkages that jump in and out of each other with random pieces of
> global state shoved into every corner.  And the funky stack management (don't
> forget DCL has a supervisor mode stack but the ^Y interrupts your user mode
> program) when you hit ^Y/exit or ^Y/continue is calling standard specific and hurts your brain.  
>  
> 
> > 
> > 
> > 
> > 2- DCL versions
> > 
> > How difficult would it be to do something like Unix and have the first
> > line of a DCL command procedure define the DCL flavour. This would allow
> > procedures that make use of new features, new argumebnt apssing etc to
> > exist alongside procedures that use the old DCL for compatibility purposes.
> 
> Either that or a SET EXTENDED_DCL command or such.  I actually like the shebang
> style. One could imagine DCL taking the remainder of the .COM file and giving
> it as input to the command in the shebang.  That is if anybody can read the
> DCL source code to figure it out.

No!  Not the "shebang" style.  The line starts out being a comment and then subsequent characters in the comment text say that it's not?  That's illogical.

As for some other comments in this post I suggest people thinking about how they could be implemented.

You want to define an object/structure?  What syntax would you use to define the fields?  Under DCL I can say A = "0" in one line and the next say A = "78636534597487t784t" and DCL handles it.  What happens with a string field in an object?  Can you get the CLI to expand some "free-standing" strings (which presumably means a change of address) but not strings in objects?

To add looping (FOR, WHILE or whatever) the CLI would have to add some internal labels (start of loop, exit from loop) and an implicit GOTO to get back to the start of the loop.  And if it doesn't have an explicitly labelled (cf. internally labelled) end point wouldn't it need BREAK and CONTINUE?


John



More information about the Info-vax mailing list