public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: C Howland <cc1964t@gmail.com>
Cc: newlib@sourceware.org
Subject: Re: FW: [PATCH] [RFC] newlib: libc: start manual appendix to hold various ABI constants
Date: Sat, 30 Dec 2023 00:03:53 -0500	[thread overview]
Message-ID: <ZY-kuVCUZhTeyNp-@vapier> (raw)
In-Reply-To: <CANk6obQbOxSq5P+tx0TvOJgSemHXF=Gv1p-62y+vr4MRTwu-Zg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4038 bytes --]

On 29 Dec 2023 20:17, C Howland wrote:
>      I won't comment on whether adding this is a good idea or not as I
> don't meet any of the stated use cases.  But here are a few thoughts on the
> details of it assuming others like the addition.

if you only use newlib, it could be helpful.  consider how common it is for
people to write error messages like:
	printf("error %i\n", errno);
so your log contains "error 13".  how do you find out what errno 13 is ?
even Linux's `man errno` doesn't list the raw numbers.  having online access
to the name<->number mappings for these is helpful in a pinch in my experience.

>      Given the stated purpose it sounds like mapping files might want to be
> made for some of the scenarios mentioned.  For something like that I'd
> think most people would want to start with the source code (as opposed to
> copying from the manual).  With this in mind, adding the Newlib source file
> path as supplementary information to the values in the manual might make
> sense as an additional aid.

the GNU sim script can already extract the code and turn it into structured
data (e.g. JSON).  it can also turn that into a C file for the generated table.
i would expect the export-to-JSON to be part of the script for merging into
newlib so that the people who need access to the ABI in source form can easily
get it and convert it to whatever format they need.  so the sim would switch to
running the newlib script to get the JSON, but it would keep the output-to-C
logic since that's sim-specific.

>      Thinking a step beyond the stated purpose of making the values
> available in the manual for mapping purposes, in a bigger-picture view (it
> is a manual) would it make sense to preserve the descriptive comments in
> the source, copying them to the manual, too?  (Without seeing the script
> mechanism being used I can't tell how easy or hard that might be to add.)

the script is written in Python and uses a preprocessor (e.g. gcc) to dump
the constants.  gcc has a -CC option to include line-level comments, so this
is a possibility.  it would require the source be structured in a way where
the comments are inline which it mostly already is.

>      It might be better to enhance the wording here a little.

i half-assed this content to show the general structure.  i'm sure the hand
written descriptions could use improvement.  i'll take your feedback in once
i get a signal from the newlib maintainers on this in general.

> Given today's reality of no printed (vs. electronic) manuals (maybe a rare
> person that might print a copy), is it worth bothering to present both name
> and number sorted lists?  (People will just electronically search, making
> the multiple presentation of essentially no added value.)  Just choose 1
> and do that only?  (The cost of doing it is low, and choosing numeric or
> name might be tricky to decide.  But dropping to 1 would reduce electronic
> search clutter of having the same thing found twice per subsection.
> Already will be a little bit distracting to have the common/cris/spu
> sections, twice as bad if each lists both values twice.)

*shrug* it was easy enough to generate.  i find sorted-by-name helpful when
i want to see if a specific name is available, perhaps under a slight name
variant (when i can't remember exactly how it's been abbreviated), and i find
sorted-by-number helpful when looking up an error number from log output.
if we only have sorted-by-name, searching for a single digit number is a bit
of a pita because it'll match numbers in the constant name, in the comment,
and in the multi-digit errno values.  it's not uncommon for the user agent
to support only case-insensitive substrings (e.g. Chrome), and needing regex
just to construct an exact match seems a bit too much for a general manual.

for example:
$ gcc -E -P -dD -CC - <<<'#include <errno.h>' | grep 2
<35 errno matches>

but it's not something i'm strongly tied to, so if the newlib maintainers
want to use one or the other, i don't care enough to fight.
-mike

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-12-30  5:03 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-27  7:25 Mike Frysinger
     [not found] ` <BN2P110MB15445C61D8D69733C10DA4D99A9CA@BN2P110MB1544.NAMP110.PROD.OUTLOOK.COM>
2023-12-30  1:17   ` FW: " C Howland
2023-12-30  5:03     ` Mike Frysinger [this message]
2024-01-23 21:05       ` brian.inglis
2024-01-24  4:37         ` Mike Frysinger
2024-01-23  9:15 ` Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZY-kuVCUZhTeyNp-@vapier \
    --to=vapier@gentoo.org \
    --cc=cc1964t@gmail.com \
    --cc=newlib@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).