[Info-vax] %PCSIUI-E-PRIVCLASS1 when using PRODUCT with PIPE

Tim Sneddon tsneddon at panix.com
Tue Dec 11 08:47:35 EST 2018


Jairo Alves <jairo.ptbr at gmail.com> wrote:
> 
>> That is a DCL command procedure invocation.  That command procedure 
>> specifies the input be from the TT device.  That then creates the DCL 
>> equivalent of a subshell.  And the output from DCL procedure 
>> invocations can be redirected.
>> 
> 
> I see. It's a subshell, not a "pseudo-command file". I tried out of
> curiosity to run a loop in that command, and sure enough, DCL throws an
> exception, precisely because it is not emulating a command file, but
> instead a sub shell, where loops are forbidden.
> 
> I> @TT:
> _I> n = 0
> _I> loop:
> %DCL-W-NOLBLS, label ignored - use only within command procedures
>  \LOOP:\
> _I> wr sys$output n
> 0
> _>  Exit
> 

It is being treated as a command procedure.  Years ago I investigated
this as I was trying to figure a way to provide a better implementation
of $(SHELL ...) for MMK.  DCL actually checks to see if the command
procedure is disk based or not.  If it is disk based, then certain
constructs become possible, like multi-line IF-THEN-ELSE-ENDIF, loops,
etc. If not, then you get single-line DCL.

If I had more time I'd dig out the specific place in the listings
where this is checked.  Maybe VAXman (a.k.a Brian) has it memorised,
he has done quite of bit in the DCL space over the years.

Regards, Tim.



More information about the Info-vax mailing list