[Info-vax] Listeners in VMS Basic, was: Re: Integrity iLO Configuration?

Arne Vajhøj arne at vajhoej.dk
Fri Jul 9 21:45:42 EDT 2021


On 7/9/2021 9:06 PM, Dave Froble wrote:
> On 7/9/2021 8:20 PM, Arne Vajhøj wrote:
>> On 7/9/2021 7:45 PM, Dave Froble wrote:
>>> On 7/9/2021 2:28 PM, Arne Vajhøj wrote:
>>>> On 7/1/2021 6:29 PM, Craig A. Berry wrote:
>>>>> On 7/1/21 3:24 PM, Dave Froble wrote:
>>>>>> To be such, there is no such thing as too many comments.
>>>>>
>>>>> Too many comments is just as bad a code smell as too few. Comments can
>>>>> easily get out of date and people make mistakes by reading and
>>>>> believing
>>>>> comments that no longer reflect what actually happens.  Comments 
>>>>> should
>>>>> provide some brief indication of what and why without getting too far
>>>>> into the how.
>>>>
>>>> Yes.
>>>>
>>>> And other agree:
>>>>
>>>> https://stackoverflow.blog/2021/07/05/best-practices-for-writing-code-comments/ 
>>>>
>>>
>>>
>>> Just because some agree, doesn't make them right.
>>>
>>> But, Ok, a practical example, tell me, too many comments, not enough
>>> comments, what?
>>>
>>> ;+
>>> ;       Base block must be > 0
>>> ;       # of blocks must be > 0 & < 128
>>> ;       End block must be <= EOF block
>>> ;       Grant lock if caller has exclusive access to the file
>>> ;-
>>>
>>>          MOVZWL  #SS$_ABORT,R0           ; Assume failure
>>>          TSTL    R3                      ; Base block zero?
>>>          BNEQU   020$                    ; No, continue
>>> 010$:   BRW     RETURN                  ; Yes, return
>>> 020$:   TSTL    R4                      ; Block count zero?
>>>          BEQLU   010$                    ; Yes, return
>>>          CMPL    #127,R4                 ; Block count <= 127
>>>          BLSSU   010$                    ; No, return
>>>          MOVAB   -1(R3)[R4],R5           ; Last block to lock
>>>          CMPL    CIB_L_FILSIZ(R7),R5     ; LE filesize?
>>>          BGEQU   030$                    ; Yes, continue
>>>          MOVL    CIB_L_FILSIZ(R7),R5     ; Else lock only to EOF
>>
>> A comment for each line may be appropriate here.
> 
> May be?  How about absolutely critical?
> 
>> Macro-32 code has a bigger need for comments than a HLL.
> 
> Yeah, that's why I used this example.
> 
>> The comment on:
>>
>> TSTL    R3                      ; Base block zero?
>>
>> makes sense because it is not self documentary what R3 contains.
>>
>> But if that had been in a HLL, let me show in Pascal:
>>
>> if baseblock = 0 then
>>
>> then I do not think a comment would provide additional value:
>>
>> if baseblock = 0 then (* Base block zero? *)

> You assume the variable name would be "baseblock".

But it should.

If the code said:

if r0 = 0 then

the problem would be choice of variable name not the
missing comment.

> Actually, I think perhaps the most important comment is "assume 
> failure", otherwise I could see someone wondering just why SS$_ABORT was 
> being moved to R0.

Moving a status code to R0 should be a familiar thing
for anybody familiar with VMS and somebody using Macro-32
should be familiar with VMS.

But I wonder why MOVZWL and not just MOVL!

> You can argue this all you want.  When code must be maintained by 
> multiple people, who don't all think alike, documentation is essential. 

Documentation is essential.

But quality over quantity please.

Arne





More information about the Info-vax mailing list