• Re: Trolling the standard thumpers

    From Kaz Kylheku@3:633/10 to All on Thu Sep 10 20:06:24 2026
    On 2026-08-14, Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote:
    Dear comp.lang.c,

    Because I believe the standard thumpers have trolled us quite well
    for way too long, I'm asking quite casually, if this is a conformant implementation of printf()?

    int printf( const char *format, ... ) {
    errno = ENOTTY ;
    return -1 ;
    }

    The proper question is, could an implementation be conforming if that
    were its implementation of printf?

    Right of the bat, the implementation could be a conforming freestanding implementation, due to freestanding implementations not being required
    to implement stdio.

    Could it be a conforming hosted implementation? I'm afraid the answer
    is yes, due to the way conformance is defined.

    Or, we can look at this another way. Suppose you have a conforming C implementation on some kind of Unix and make a program that uses printf.
    The program is deployed in such a way that its output is redirected to a
    device where output operations fail. Surely, that environmental
    circumstance does not make the C implementation nonconforming.

    The printf function is doing something that is permitted; returning
    -1 and setting errno. That cannot be called a nonconforming behavior.

    In the standard we have wording like "A conforming hosted
    implementation shall accept any strictly conforming program", but
    the above definition of printf doesn't hinder acceptance of a program.
    E.g. the familiar "hello world" program is not prevented from
    being translated or even executed.

    Conformance isn't a very useful concept except in the negative: a nonconformance can cause a problem to a user, requiring a workaround.
    It's something that can usually be reported as a bug. But assurances
    of conformance have limited value.

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

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lane W@3:633/10 to All on Thu Sep 10 14:14:45 2026
    Kaz Kylheku wrote:

    Conformance isn't a very useful concept except in the negative: a nonconformance can cause a problem to a user, requiring a workaround.
    It's something that can usually be reported as a bug. But assurances
    of conformance have limited value.

    Conformance is not of much use, at least in comp.lang.c. Even if the
    'code' conforms, there will be hundreds of naysayers based on a
    religious morality system. The 'code' will only be correct if you have dutifully hacked each of the naysayers companies to recover their
    Protocols and Standards for goodness and wholesomeness. For example, I
    heard there were some people who were doing gotos and some other guys
    setting negative pointers. Your code is only correct so far as each and
    every one of your competitors has no rule, including ones they make up
    on the spot, that contradict what your program is 'trying' to do.

    Basically, try to code and God says no.

    If you write something such as

    const int CAT_MEDIUM = 12,

    the guy Keith will tell you that the cat is SMALL, and 6.

    If on the other hand, you had written,

    const int CAT_SMALL = 6,

    the guy Keith will tell you that the cat is LARGE, and 18.

    Try to code, and God says no.


    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From fir@3:633/10 to All on Thu Sep 10 22:33:22 2026
    Lane W pisze:
    Kaz Kylheku wrote:

    Conformance isn't a very useful concept except in the negative: a
    nonconformance can cause a problem to a user, requiring a workaround.
    It's something that can usually be reported as a bug. But assurances
    of conformance have limited value.

    Conformance is not of much use, at least in comp.lang.c. Even if the
    'code' conforms, there will be hundreds of naysayers based on a
    religious morality system. The 'code' will only be correct if you have dutifully hacked each of the naysayers companies to recover their
    Protocols and Standards for goodness and wholesomeness. For example, I
    heard there were some people who were doing gotos and some other guys setting negative pointers. Your code is only correct so far as each and every one of your competitors has no rule, including ones they make up
    on the spot, that contradict what your program is 'trying' to do.

    Basically, try to code and God says no.

    If you write something such as

    const int CAT_MEDIUM = 12,

    the guy Keith will tell you that the cat is SMALL, and 6.

    If on the other hand, you had written,

    const int CAT_SMALL = 6,

    the guy Keith will tell you that the cat is LARGE, and 18.

    Try to code, and God says no.


    which god? *Crom* always says *Yes* ;c

    (well maybe i simplify, Crom i see as a god of fighting in
    finding language solutions, but im not sure if i can say he always says
    yes.. i could say hovever that hee sees when you (me) doin good
    and see when im doin bad.. i just wanted to mention him

    (fir)

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From BGB@3:633/10 to All on Thu Sep 10 15:56:25 2026
    On 8/14/2026 4:05 PM, Johann 'Myrkraverk' Oskarsson wrote:
    Dear comp.lang.c,

    Because I believe the standard thumpers have trolled us quite well
    for way too long, I'm asking quite casually, if this is a conformant implementation of printf()?

    ÿ int printf( const char *format, ... ) {
    ÿÿÿ errno = ENOTTY ;
    ÿÿÿ return -1 ;
    ÿ }


    Happy ENOTTY!


    Sort of reminds me of something:
    Various C libraries like to essentially implement "vfprintf()" as the
    core version of the function and then implement "vsprintf()" and
    "vsnprintf()" and similar by wrapping the string as a virtual "FILE"
    whose output goes into a string.

    I had usually preferred it to be the other way:
    "vsnprintf()" is the core, and calls like "printf()" and "fprintf()" are essentially wrappers that print to a temporary string and then "fputs()"
    it to the appropriate output.

    This generally allowing for higher performance and being easier to debug (assuming one doesn't just duplicate all the logic for these functions).


    Though, yes, this does imply a limit on how big of a string one can
    print using "printf()" and similar; but they are not required to be able
    to handle arbitrary large strings, so...

    Could almost make sense to define some equivalent of PATH_MAX though for "printf()" and friends, maybe also applied implicitly to "sprintf()",
    though the latter is maybe moot as most typical buffers are likely to be smaller than a sensible value for such a 'PRINTF_MAX' (say, if this is
    in kB territory; would not make sense to go much bigger as by then it is
    just needless overkill; but it is not entirely unreasonable to expect
    that someone might want to be able to "printf()" a whole screen of text
    in one go, even if typical use does not exceed one or two lines at a
    time...).



    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lane W@3:633/10 to All on Thu Sep 10 15:03:23 2026
    fir wrote:
    Lane W pisze:
    Kaz Kylheku wrote:

    Conformance isn't a very useful concept except in the negative: a
    nonconformance can cause a problem to a user, requiring a workaround.
    It's something that can usually be reported as a bug. But assurances
    of conformance have limited value.

    Conformance is not of much use, at least in comp.lang.c. Even if the
    'code' conforms, there will be hundreds of naysayers based on a
    religious morality system. The 'code' will only be correct if you have
    dutifully hacked each of the naysayers companies to recover their
    Protocols and Standards for goodness and wholesomeness. For example, I
    heard there were some people who were doing gotos and some other guys
    setting negative pointers. Your code is only correct so far as each
    and every one of your competitors has no rule, including ones they
    make up on the spot, that contradict what your program is 'trying' to do.

    Basically, try to code and God says no.

    If you write something such as

    const int CAT_MEDIUM = 12,

    the guy Keith will tell you that the cat is SMALL, and 6.

    If on the other hand, you had written,

    const int CAT_SMALL = 6,

    the guy Keith will tell you that the cat is LARGE, and 18.

    Try to code, and God says no.


    which god? *Crom* always says *Yes* ;c

    (well maybe i simplify, Crom i see as a god of fighting in
    finding language solutions, but im not sure if i can say he always says yes.. i could say hovever that hee sees when you (me) doin good
    and see when im doin bad.. i just wanted to mention him

    (fir)

    I can see you are trying to get under Janis' skin. He hates Crom because
    Crom is also the god of barbarians, yet Janis typically cosplays a
    Valkyrie or female Knight, both of whom worship entirely different gods/goddesses.


    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Keith Thompson@3:633/10 to All on Thu Sep 10 14:25:46 2026
    Lane W <cactus_DAC@yahoo.com> writes:
    [...]
    If you write something such as
    const int CAT_MEDIUM = 12,
    the guy Keith will tell you that the cat is SMALL, and 6.
    If on the other hand, you had written,
    const int CAT_SMALL = 6,
    the guy Keith will tell you that the cat is LARGE, and 18.
    Try to code, and God says no.

    Bullshit.

    I'll ask you one last time to stop mentioning my name in your posts.
    I expect you'll continue to be an arrogant jerk and ignore my
    request.

    *PLONK*

    --
    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.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lane W@3:633/10 to All on Thu Sep 10 15:33:22 2026
    Keith Thompson wrote:
    Lane W <cactus_DAC@yahoo.com> writes:
    [...]
    If you write something such as
    const int CAT_MEDIUM = 12,
    the guy Keith will tell you that the cat is SMALL, and 6.
    If on the other hand, you had written,
    const int CAT_SMALL = 6,
    the guy Keith will tell you that the cat is LARGE, and 18.
    Try to code, and God says no.

    Bullshit.

    I'll ask you one last time to stop mentioning my name in your posts.
    I expect you'll continue to be an arrogant jerk and ignore my
    request.

    *PLONK*

    As the great Greek philosophers say, people get angry when the insult
    rings true. When it is false, unlike here, they can laugh it off and
    continue their methodology. I noted Keith making about 3 different
    errors, never once saying he regretted them or that they bothered him,
    while he was inspecting my good C work. Guy just keeps trucking after
    he's shown a simping liar.


    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From David Brown@3:633/10 to All on Fri Sep 11 09:37:02 2026
    On 10/09/2026 22:14, Lane W wrote:
    <snip paranoid semi-religious drivel>

    I don't know what your problem is, but you are not going to find an
    answer in comp.lang.c. Please remember that the people posting here
    are, at least for the most part, /real/ people. I hope you would not
    talk to others in person in the way you have been doing in this group.

    Imagine that we are all old neighbours, chatting in the street. You
    recently moved in to the neighbourhood. You have cut a bush in your
    garden in a weird shape, and asked what we think of it. Some people
    have given their honest, purely technical and impersonal opinions and suggestions for improvement - which you are entirely free to follow or
    reject. Would you react as you have done in this group?



    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From fir@3:633/10 to All on Fri Sep 11 13:49:36 2026
    Lane W pisze:
    fir wrote:
    Lane W pisze:
    Kaz Kylheku wrote:

    Conformance isn't a very useful concept except in the negative: a
    nonconformance can cause a problem to a user, requiring a workaround.
    It's something that can usually be reported as a bug. But assurances
    of conformance have limited value.

    Conformance is not of much use, at least in comp.lang.c. Even if the
    'code' conforms, there will be hundreds of naysayers based on a
    religious morality system. The 'code' will only be correct if you
    have dutifully hacked each of the naysayers companies to recover
    their Protocols and Standards for goodness and wholesomeness. For
    example, I heard there were some people who were doing gotos and some
    other guys setting negative pointers. Your code is only correct so
    far as each and every one of your competitors has no rule, including
    ones they make up on the spot, that contradict what your program is
    'trying' to do.

    Basically, try to code and God says no.

    If you write something such as

    const int CAT_MEDIUM = 12,

    the guy Keith will tell you that the cat is SMALL, and 6.

    If on the other hand, you had written,

    const int CAT_SMALL = 6,

    the guy Keith will tell you that the cat is LARGE, and 18.

    Try to code, and God says no.


    which god? *Crom* always says *Yes* ;c

    (well maybe i simplify, Crom i see as a god of fighting in
    finding language solutions, but im not sure if i can say he always
    says yes.. i could say hovever that hee sees when you (me) doin good
    and see when im doin bad.. i just wanted to mention him

    (fir)

    I can see you are trying to get under Janis' skin. He hates Crom because Crom is also the god of barbarians, yet Janis typically cosplays a
    Valkyrie or female Knight, both of whom worship entirely different gods/goddesses.


    back then (even neing 22 years old) i was identyfing myselv as a
    barbarian (becouse in adom i liked to play troll barbarian)

    its related to C as s may be find 'archaic' 'ancient' or even 'pre civilisation' or 'old civilisation' - so it leads to barbarians
    stright (i even wanted to take Slaine as a symbol of my new c
    language (presently considered as B of new b)

    when i get almost 50 (in next january 24'th) maybe i have additional
    reason to think so becouse not only c is ancient but parts of my life is
    also ancient (and im bit seing this this way)

    so 'Crom help me!' is maybe the more fitting/ quite appropriate

    barbarians being like not quite present in modern time, seing only
    heavens and rock and sand maybe sea and maybe wind remembering them
    their old realm..


    (got doubts as to last world in this post, as im not sure what barbarian
    is looking thru the wind and sky into? his old world maybe)

    Crom is important entity so to say (though vague) i also sometimes
    think of Cthulhu, maybe yet more vague)

    not sad the places like c.l.c are not much alive in a world today,
    this old internet tehnology replaced by nonsense trash like fb/instagram/twitter.. i still here feel this place like entry or a
    tample of Crom
    (in some way) and this is much unusual in those times

    (not much and you would need to be indiana jones to explore such ancient places)

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From fir@3:633/10 to All on Fri Sep 11 13:55:31 2026
    fir pisze:
    Lane W pisze:
    fir wrote:
    Lane W pisze:
    Kaz Kylheku wrote:

    Conformance isn't a very useful concept except in the negative: a
    nonconformance can cause a problem to a user, requiring a workaround. >>>>> It's something that can usually be reported as a bug. But assurances >>>>> of conformance have limited value.

    Conformance is not of much use, at least in comp.lang.c. Even if the
    'code' conforms, there will be hundreds of naysayers based on a
    religious morality system. The 'code' will only be correct if you
    have dutifully hacked each of the naysayers companies to recover
    their Protocols and Standards for goodness and wholesomeness. For
    example, I heard there were some people who were doing gotos and
    some other guys setting negative pointers. Your code is only correct
    so far as each and every one of your competitors has no rule,
    including ones they make up on the spot, that contradict what your
    program is 'trying' to do.

    Basically, try to code and God says no.

    If you write something such as

    const int CAT_MEDIUM = 12,

    the guy Keith will tell you that the cat is SMALL, and 6.

    If on the other hand, you had written,

    const int CAT_SMALL = 6,

    the guy Keith will tell you that the cat is LARGE, and 18.

    Try to code, and God says no.


    which god? *Crom* always says *Yes* ;c

    (well maybe i simplify, Crom i see as a god of fighting in
    finding language solutions, but im not sure if i can say he always
    says yes.. i could say hovever that hee sees when you (me) doin good
    and see when im doin bad.. i just wanted to mention him

    (fir)

    I can see you are trying to get under Janis' skin. He hates Crom
    because Crom is also the god of barbarians, yet Janis typically
    cosplays a Valkyrie or female Knight, both of whom worship entirely
    different gods/goddesses.


    back then (even neing 22 years old) i was identyfing myselv as a
    barbarian (becouse in adom i liked to play troll barbarian)

    its related to C as s may be find 'archaic' 'ancient' or even 'pre civilisation' or 'old civilisation' - so it leads to barbarians
    stright (i even wanted to take Slaine as a symbol of my new c
    language (presently considered as B of new b)

    when i get almost 50 (in next january 24'th) maybe i have additional
    reason to think so becouse not only c is ancient but parts of my life is also ancient (and im bit seing this this way)

    so 'Crom help me!' is maybe the more fitting/ quite appropriate

    barbarians being like not quite present in modern time, seing only
    heavens and rock and sand maybe sea and maybe wind remembering them
    their old realm..


    (got doubts as to last world in this post, as im not sure what barbarian
    is looking thru the wind and sky into? his old world maybe)

    Crom is important entity so to say (though vague) i also sometimes
    think of Cthulhu, maybe yet more vague)

    not sad the places like c.l.c are not much alive in a world today,
    this old internet tehnology replaced by nonsense trash like fb/instagram/twitter.. i still here feel this place like entry or a
    tample of Crom
    (in some way) and this is much unusual in those times

    (not much and you would need to be indiana jones to explore such ancient places)

    sorri i meant "look thru the shy" not thru heaven, i guess
    (also i not mean last world but last world (thsi one is kinda funny
    becouse in fac 'word' in english is much closer to 'world' meaning and
    'world' is much more close to 'word' meaning - its quite opposite,
    world is more linguistic and word s more like old irish/ so world should
    mean word and word could mean world)

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From fir@3:633/10 to All on Fri Sep 11 14:00:57 2026
    David Brown pisze:
    On 10/09/2026 22:14, Lane W wrote:
    <snip paranoid semi-religious drivel>

    I don't know what your problem is, but you are not going to find an
    answer in comp.lang.c.ÿ Please remember that the people posting here
    are, at least for the most part, /real/ people.ÿ I hope you would not
    talk to others in person in the way you have been doing in this group.

    Imagine that we are all old neighbours, chatting in the street.ÿ You recently moved in to the neighbourhood.ÿ You have cut a bush in your
    garden in a weird shape, and asked what we think of it.ÿ Some people
    have given their honest, purely technical and impersonal opinions and suggestions for improvement - which you are entirely free to follow or reject.ÿ Would you react as you have done in this group?


    nah, this lane has his mind open.. whch is good...but its hard to say
    open on what
    (i mean it is good generally but may be also bad specifically - but imo
    its generally worth to be open)

    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Lane W@3:633/10 to All on Fri Sep 11 07:18:19 2026
    David Brown wrote:
    On 10/09/2026 22:14, Lane W wrote:
    <snip paranoid semi-religious drivel>

    I don't know what your problem is, but you are not going to find an
    answer in comp.lang.c.ÿ Please remember that the people posting here
    are, at least for the most part, /real/ people.ÿ I hope you would not
    talk to others in person in the way you have been doing in this group.

    Imagine that we are all old neighbours, chatting in the street.ÿ You recently moved in to the neighbourhood.ÿ You have cut a bush in your
    garden in a weird shape, and asked what we think of it.ÿ Some people
    have given their honest, purely technical and impersonal opinions and suggestions for improvement - which you are entirely free to follow or reject.ÿ Would you react as you have done in this group?


    I basically imagine you as a snake oil salesman. Many of you say, "We
    are not singling you out and are not hating on you in particular," as if
    your words make it true.

    Really?

    I didn't fall off a turnip truck yesterday, mister.


    --- PyGate Linux v1.5.19
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)
  • From Tim Rentsch@3:633/10 to All on Fri Sep 18 08:22:45 2026
    Kaz Kylheku <046-301-5902@kylheku.com> writes:

    On 2026-08-14,
    Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote:

    Dear comp.lang.c,

    Because I believe the standard thumpers have trolled us quite well
    for way too long, I'm asking quite casually, if this is a conformant
    implementation of printf()?

    int printf( const char *format, ... ) {
    errno = ENOTTY ;
    return -1 ;
    }

    The proper question is, could an implementation be conforming if that
    were its implementation of printf?

    Right of the bat, the implementation could be a conforming freestanding implementation, due to freestanding implementations not being required
    to implement stdio.

    Could it be a conforming hosted implementation? I'm afraid the answer
    is yes, due to the way conformance is defined.

    Such things have been known for more than 30 years. The bar for
    being a conforming implementation is intentionally very low. Any
    questions like this one are seen a quality-of-implementation
    matters rather than one of conformance. The original C standard
    group made this choice knowingly and deliberately, and in my view
    correctly.

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