[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