• Re: New and improved version of cdecl

    From Paul J. Lucas@3:633/10 to All on Tue Dec 9 07:31:56 2025
    On 10/26/25 3:36 PM, Keith Thompson wrote:
    (I'm not entirely pleased that the newer version expands "char" to "character" and, worse, "int" to "integer", but I can live with it.)

    Hence the --no-english-types or -T command line option or the
    "set noenglish" command (from within cdecl or a config file).

    The thought was that those newer to C and less familiar with its
    types might benefit from more elaborate output.

    - Paul


    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Kaz Kylheku@3:633/10 to All on Tue Dec 9 20:38:58 2025
    On 2025-12-09, Paul J. Lucas <paul@lucasmail.org> wrote:
    On 10/26/25 3:36 PM, Keith Thompson wrote:
    (I'm not entirely pleased that the newer version expands "char" to
    "character" and, worse, "int" to "integer", but I can live with it.)

    Hence the --no-english-types or -T command line option or the
    "set noenglish" command (from within cdecl or a config file).

    The problem is that the English words chosen already have a meaning.

    "Integer" is a type category in C; uint32_t is one of the "integer
    types".

    "Character" is a representational concept for units of text,
    manifesting itself via different types and sometimes even aggregates
    (e.g multi-byte character).

    The thought was that those newer to C and less familiar with its
    types might benefit from more elaborate output.

    This kind of thing just ensures that newbies go sideways from being
    less familiar to being incorrectly familiar.

    They should know from their first contact with the char type that it's
    just an integer type with a small range. (Arrays of which are used for
    text storage in classic text processing, where if a legacy character
    set is used such as ASCII, there is a 1:1 correspondence between each
    char element and a character, otherwise not.)

    --
    TXR Programming Language: http://nongnu.org/txr
    Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
    Mastodon: @Kazinator@mstdn.ca

    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Paul J. Lucas@3:633/10 to All on Tue Dec 9 16:46:14 2025
    On 12/9/25 12:38 PM, Kaz Kylheku wrote:
    On 2025-12-09, Paul J. Lucas <paul@lucasmail.org> wrote:
    On 10/26/25 3:36 PM, Keith Thompson wrote:
    (I'm not entirely pleased that the newer version expands "char" to
    "character" and, worse, "int" to "integer", but I can live with it.)

    Hence the --no-english-types or -T command line option or the
    "set noenglish" command (from within cdecl or a config file).

    The problem is that the English words chosen already have a meaning.

    "Integer" is a type category in C;

    It's not a keyword, so that's irrelevant. Likewise, "Character."

    The thought was that those newer to C and less familiar with its
    types might benefit from more elaborate output.

    This kind of thing just ensures that newbies go sideways from being
    less familiar to being incorrectly familiar.

    Opinion noted. I disagree.

    - Paul

    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Tue Dec 9 17:51:05 2025
    "Paul J. Lucas" <paul@lucasmail.org> writes:
    On 12/9/25 12:38 PM, Kaz Kylheku wrote:
    On 2025-12-09, Paul J. Lucas <paul@lucasmail.org> wrote:
    On 10/26/25 3:36 PM, Keith Thompson wrote:
    (I'm not entirely pleased that the newer version expands
    "char" to "character" and, worse, "int" to "integer", but I
    can live with it.)

    Hence the --no-english-types or -T command line option or the
    "set noenglish" command (from within cdecl or a config file).
    The problem is that the English words chosen already have a
    meaning. "Integer" is a type category in C;

    It's not a keyword, so that's irrelevant. Likewise,
    "Character."

    The thought was that those newer to C and less familiar with
    its types might benefit from more elaborate output.
    This kind of thing just ensures that newbies go sideways from
    being less familiar to being incorrectly familiar.

    Opinion noted. I disagree.

    If you prefer the C-like syntax rather than pseudo-English (as I
    do), you can change the default by creating a ".cdeclrc" file.

    $ cdecl explain "int n;" declare n as integer $ echo "set
    noenglish-types" > $HOME/.cdeclrc $ cdecl explain "int n;" declare
    n as int $

    --
    Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
    void Void(void) { Void(); } /* The recursive call of the void */

    --- PyGate Linux v1.5.2
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)