[Info-vax] DCL and scripting

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Wed Dec 12 10:52:14 EST 2018


On 2018-12-12 13:38:41 +0000, Simon Clubley said:

> The biggest thing for me is that John doesn't seem to think there's a 
> major conceptual problem with inserting C code into DCL, even given 
> DCL's unique requirements.
> 
> If you can get C code into DCL, I wonder if that could be used to fix 
> up other DCL issues.

C is available in kernel mode, and using, the so-called kernel CRTL.  
Some C library functions are and others can be implemented in the 
kernel CRTL fairly easily, while other functions—typically thise 
involving system calls or RTL calls not directly available in kernel 
context—are much more difficult to provide in the kernel CRTL.  And 
those are usually omitted.

> For example, we know from previous discussions the line editing code in 
> the terminal driver is an unmaintainable mess, so we can't edit command 
> lines which are longer than the terminal width. Could the problem be 
> worked around (at least for DCL) by placing line editing code into DCL ?

DCL can't fix a terminal driver limit.

The terminal driver keeps one (non-wrapped) line around.  DCL already 
keeps the complete command line in its history, and works around the 
terminal driver limit.

As I've commented elsewhere, the changes permissible within the 
existing class and port terminal driver stack are constrained by the 
expectations of upward-compatibility.  It's difficult to retrofit 
changes into this and similar environments, as it's very easy to break 
(some) existing code with changes to documented or even to undocumented 
behavior.

What do I mean by this? I broke the test suite with a change to 
SYLOGIN.COM years ago; to the login terminal driver settings.  Somebody 
somewhere was going to be dependent on the old behavior, even though 
the new behavior made more sense in the then-current era.  Similarly 
and separately an aeon or two ago, OpenVMS changed the I/O completion 
processing to be asynchronous across multiple processors in an SMP 
configuration, and that change exposed latently-broken OpenVMS cpde and 
app code all over the place.  Both sets of changes was reverted.

The terminal driver environment could be well-served by a redesign and 
replacement.  Most systems have at most one or maybe two hardware 
serial lines and those now primarily relegated to server bring-up tasks 
and console tasks, and we can only expect traditional serial consoles 
to be replaced.  Other "serial" connections are USB, network or iLO.  
Keep the old terminal driver stack around pending app migrations, but 
get folks over to the new implementation.

Rewriting the terminal driver and/or the CLI environment?  I'd 
certainly like to see that and for various reasons, but I'd assume that 
there are few existing apps that would care about that, and there are 
other projects folks want more.  There's a port to complete, and a 
whole lot of other work pending.




-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list