[Info-vax] Creating an open source version of VMS, was: Re: OpenVMS Hobbyist Notification
Arne Vajhøj
arne at vajhoej.dk
Thu Mar 12 14:19:30 EDT 2020
On 3/11/2020 9:30 PM, Simon Clubley wrote:
> On 2020-03-11, VAXman- @SendSpamHere.ORG <VAXman- at SendSpamHere.ORG> wrote:
>> In article <r4bfgn$1ec9$1 at gioia.aioe.org>, =?UTF-8?Q?Arne_Vajh=c3=b8j?= <arne at vajhoej.dk> writes:
>>> On 3/11/2020 9:33 AM, Simon Clubley wrote:
>>>> On 2020-03-10, Arne Vajhøj <arne at vajhoej.dk> wrote:
>>>>> It would look like VMS, but because of all the
>>>>> "improvements" then a lot of existing VMS stuff would
>>>>> not run as expected.
>>>>
>>>> That depends on how much existing VMS application code bypasses the
>>>> documented APIs and tries using the private/undocumented memory
>>>> locations and functions.
>>>
>>> They don't even need to use that any private/undocumented for
>>> your approach to break things.
>>>
>>> Trivial example:
>>> * COM file use F$GETJPI to retrieve PID and create a file with
>>> that in file name
>>> * COM file run EXE
>>> * EXE use LIB$GETJPI to retrieve PID and read the file
>>>
>>> Both F$GETJPI and LIB$GETJPI are public well documented,
>>> but if you change DCL from running EXE in same process to
>>> run in different process, then the above stop working.
>>
>> That's just short-sighted programming.
>
> Maybe, but I could see it being a problem to a few people.
>
> Two possible ways around this:
>
> 1) The returned PID is actually that of the parent shell PID and you
> use another value (such as REAL_PID or MY_PID) to get your own PID.
>
> 2) You add another option, called SPID or similar, to get the parent
> shell PID and change your command procedure to use that instead on
> the rare occasion you need something like this.
>
> I do not like option 1 as it is a hack and option 2 feels way cleaner.
> Option 2 is also the same as the $$ syntax in bash.
There are several great ways to make it work with code change.
My point was just that implementation changes can impact
even stuff that only use public API's.
Arne
More information about the Info-vax
mailing list