[Info-vax] Access to _all_ VMS system services and library functions from DCL ?
Craig A. Berry
craigberry at nospam.mac.com
Tue Jul 11 22:44:53 EDT 2017
On 7/11/17 6:49 PM, Arne Vajhøj wrote:
> On 7/11/2017 12:14 PM, Craig A. Berry wrote:
>> On Tuesday, July 11, 2017 at 9:37:47 AM UTC-5, Stephen Hoffman wrote:
>>> There'll certainly be some folks that'll
>>> never be pried off DCL and 32-bit and itemlists, and there'll be those
>>> that adopt the newer approaches at varying paces. . .
>
>> Ain't that the truth. Everything discussed in this thread as future
>> and hypothetical and "if only" has been available in Perl on VMS for
>> twenty years. With the VMS::Process module, you can fetch one JPI
>> item into a single value, or all of them at once into a hash.
>> Bitmaps are decoded into strings where possible. If VSI changes the
>> maximum length of a username, your Perl code wouldn't need to change
>> because the strings are stored as Perl scalar values (essentially a
>> dynamic string descriptor on steroids). Obviously the internals of
>> the module would have to change, but the equivalent would be
>> necessary with any other potential solution, such as with the JVM
>> interfaces upon which Arne's example was based.
>> So I find somewhere between amusing and annoying the general tenor of
>> this discussion, i.e., that getting at this stuff without using item
>> lists is a bold new challenge when in fact it's a problem that was
>> solved pretty well a couple of decades ago.
> Just to be clear.
>
> Nobody AFAIK in this thread had any doubts that it was possible
> to write a plugin/module/whatever to enable a scripting language
> to use a system service with item lists.
Most of the discussion was about user-friendly ways to get at the
information buried in system services *without* having to use item lists
and other arcana.
> The discussion was whether it was possible to have a scripting
> language where one could manually setup an item list structure and get
> it send over to the system service.
Which, without additional wrapper classes, gives you a scripting
language with the low-level features that anyone choosing to use a
scripting language was trying to get away from.
> Are Perl doing the first or the second?
The module I mentioned does not set up item lists in Perl code. Perl
does have a syscall interface on Unix systems that does something more
or less equivalent to calling system services, but it's more common to
do the wrapping in the extension code itself and provide the interface a
Perl programmer would want to use to Perl directly. In principle,
anything that can be done in C can be done in Perl (just like JNI) but
I'm not aware of direct, low-level access to system services.
From the point of view of a scripting language programmer, it doesn't
matter whether the item list gets set up in C code via the plug-in or
extension facilities or via a lower-level interface in the scripting
language itself. Anyone considering a better way to do what they are now
doing in DCL is going to expect the data they want to appear in a Python
dictionary or a Haskell data map or a Perl hash or a Javascript object
or similar.
More information about the Info-vax
mailing list