bug#42012: Reference Manual and Docstring on number->string

2020-06-22 Thread Sebastian Miele
Guile 3.0.3. The reference manual and the docstring of number->string
say: "If N is inexact, a radix of 10 will be used." But that is not what
happens, e.g.,

  (let ((x 4.0)) (and (inexact? x) (number->string x 3)))

evaluates to "11.0" instead of #f or "4.0". Probably "if RADIX is not
supplied, a radix of 10 will be used" is meant.





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

2020-06-22 Thread Sebastian Miele
dsm...@roadrunner.com writes:
> Is is documented in the docstring:
>
> scheme@(guile-user)> ,d make-struct-layout

In the reference manual, a description of make-struct-layout directly
precedes the '(define* (make-vtable ..) ..)' example that cannot be
understood without somehow grasping what is documented about "h" in the
docstring of make-struct-layout. However, the description of
make-struct-layout in the reference manual says: "FIELDS is as described
under ‘make-vtable’ (*note Vtables::)". But that description lacks the
information on "h".

It may be a matter of opinion. But my opinion stronly is that
descriptions about the behavior around permission "h" do should appear
in the reference manual in two places: The description of make-vtable
and the description of make-struct/no-tail.

After glancing at libguile/struct.c, "w", "h", and the depreciated "r"
seem in fact to be all possible permissions. I will prepare a patch after
I finish getting a good overview of Guile.





bug#42003: Describe Command in meta/guile Does Not Work

2020-06-22 Thread Sebastian Miele
I am on the current master branch (3.0.3.4-a5243). With meta/guile I
get the following:

  scheme@(guile-user)> ,d make-struct/no-tail
  #f

Expected: A description of make-struct/no-tail instead of #f.

When I run 'make install' followed by meta/guile, then it does yield the
expected result.





bug#41983: Reference Manual: Open Question About Magic Metaness of Vtables

2020-06-21 Thread Sebastian Miele
I am on the current master branch. After reading section 6.6.18.4
(Meta-Vtables) of the reference manual there remains an open question.

A structure X made from a meta-vtable becomes a meta-vtable if
standard-vtable-fields is a prefix of the layout in X's field 0. And if
X is a meta-vtable, every structure with X as a vtable must have a valid
layout in field 0.

Suppose the following: standard-vtable-fields accidentally is a prefix
of some valid layout string l. Then

  (define v (make-vtable l))
  (make-struct/no-tail v 'a)

raises an exception, because 'a is not a valid layout. But v may not be
intended to be a meta-vtable, just a vtable. The reference manual does
mention why that can not happen, or why is it accepted that it may
happen.





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

2020-06-21 Thread Sebastian Miele
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 
  (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.





bug#41979: Reference Manual About New Meta-Vtables

2020-06-21 Thread Sebastian Miele
doc/ref/api-data.texi from the current master branch contains:

  Additionally, if these checks see that
  the layout of the child vtable contains all the required fields of a
  vtable, in the correct order, then the child vtable will also be a
  meta-table, inheriting a magical bit from the parent.

As far as I understand, the following changes would be correct: Replace
the second occurrence of "vtable" by "meta-vtable". (And maybe replace
"meta-table" by "meta-vtable".)





bug#41938: Contradictory Information about Encoding in the Reference Manual

2020-06-18 Thread Sebastian Miele
Section 4.3.1 (The Top of a Script File) of The Guile Reference Manual
generated from the current master branch (3.0.2.152-1ab210) says:

  If this source code file is not ASCII or ISO-8859-1 encoded, a coding
  declaration such as ‘coding: utf-8’ should appear in a comment
  somewhere in the first five lines of the file: see *note Character
  Encoding of Source Files::.

But section 6.18.8 (Character Encoding of Source Files) says:

  In the absence of any hints, UTF-8 is assumed.

Probably the former information (ASCII or ISO-8859-1) is outdated.