• Re: New and improved version of cdecl

    From Paul J. Lucas@paul@lucasmail.org to comp.lang.c,comp.lang.c++ on Tue Dec 9 07:31:56 2025
    From Newsgroup: comp.lang.c

    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Kaz Kylheku@046-301-5902@kylheku.com to comp.lang.c,comp.lang.c++ on Tue Dec 9 20:38:58 2025
    From Newsgroup: comp.lang.c

    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
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Paul J. Lucas@paul@lucasmail.org to comp.lang.c,comp.lang.c++ on Tue Dec 9 16:46:14 2025
    From Newsgroup: comp.lang.c

    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
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Keith Thompson@Keith.S.Thompson+u@gmail.com to comp.lang.c,comp.lang.c++ on Tue Dec 9 17:51:05 2025
    From Newsgroup: comp.lang.c

    "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 */
    --- Synchronet 3.21a-Linux NewsLink 1.2