[Info-vax] LLVM, volatile and async VMS I/O and system calls
Lawrence D’Oliveiro
lawrencedo99 at gmail.com
Mon Oct 4 03:04:37 EDT 2021
On Monday, October 4, 2021 at 2:45:46 PM UTC+13, Dave Froble wrote:
> On 10/3/2021 7:15 PM, Lawrence D’Oliveiro wrote:
>> On Monday, October 4, 2021 at 7:20:00 AM UTC+13, Dave Froble wrote:
>>> As an example, back in the day, the RSTS Basic+ interpreter had an
>>> interesting quirk. For example:
>>>
>>> A = "abc"
>>> B = A
>>>
>>> One would expect the value in A to be placed in the location where the
>>> pointer to B points. However, Basic+ would change the pointer to B to
>>> the value of the pointer to A, thus losing the old location of B. I
>>> think this happened with strings, don't really remember, it has been a
>>> very long time.
>>>
>>> Now consider that the pointer to B was in an I/O buffer. After the
>>> operation, B would no longer be pointing into the I/O buffer. Perhaps
>>> not such a good thing. (Actually a horrible thing!)
>>
>> Isn’t that what LSET and RSET were for?
>>
> Yes. Not much used anymore.
But it is the correct solution, within the BASIC-PLUS family at least, to the problem of updating a string within an existing buffer, is it not? Rather than resorting to non-obvious hacky magic tricks like concatenating a null string.
More information about the Info-vax
mailing list