Subject: bug#41981: Reference Manual on Vtables: Missing Information on Permission "h"

From: Sebastian Miele <[email-masked]>
Date: Sun, 21 Jun 2020 15:51:42 +0200

I am on the current master branch. The standard-vtable-fields is
"pwuhuhpwphuhuhuh" on my system and something similar in the Reference
Manual. In particular, it contains the permission letter "h", but I find
no explanation in the manual what that means.

Section 6.6.18.1 (Vtables) just mentions: "It used to be that the second
letter for each field was a permission code, such as ‘w’ for writable or
‘r’ for read-only." And that read-only has become depriciated.

At the end of section 6.6.18.4 (Meta-Vtables) is an example:

  (define* (make-vtable fields #:optional printer)
    (make-struct/no-tail <standard-vtable>
      (make-struct-layout fields)
      printer))

Without information on "h", I was not able to make sense of the fact,
that fields with permission "h" somehow seem to be skipped by
make-struct/no-tail when processing the two init values. In particular,
for some reason, the value of printer is put into field 3 of the new
structure and not in field 1, almost certainly somehow because fields 1
and 2 have "h".

"h" should be documented.