Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: OT: Seed7 on OS X - WAS: Re: Seeking computer-programming job (Sunnyvale, CA)

3 views
Skip to first unread message

Ben Pfaff

unread,
May 27, 2009, 5:47:39 PM5/27/09
to
Lew <no...@lewscanon.com> writes:

> Warnings are never harmless. If they were harmless, there wouldn't be
> any warnings.

Nonsense. If warnings always indicated a real problem, then
there would be no need for compiler options to enable and disable
them.
--
Ben Pfaff
http://benpfaff.org

John B. Matthews

unread,
May 28, 2009, 9:08:52 PM5/28/09
to
In article <87my8yb...@blp.benpfaff.org>,
Ben Pfaff <b...@cs.stanford.edu> wrote:

> Lew <no...@lewscanon.com> writes:
>
> > Warnings are never harmless. If they were harmless, there wouldn't
> > be any warnings.
>
> Nonsense. If warnings always indicated a real problem, then there
> would be no need for compiler options to enable and disable them.

I must demur. Warnings always indicate the potential for harm.
Additional analysis is required to determine if that potential applies
to a particular usage. In this case, control over warnings at the level
of the compilation unit is an artifact of the development language and
implementation. The author prudently enables most warnings, eliminating
them when possible. When an anomaly was recently observed, it was the
author's familiarity with the source that allowed him to dismiss the
remaining warnings as likely culprits and address the matter directly.
Another developer maintaining the code would surely prefer as few
warnings as possible, compiler options notwithstanding.

--
John B. Matthews
trashgod at gmail dot com
<http://sites.google.com/site/drjohnbmatthews>

Ben Pfaff

unread,
May 28, 2009, 9:37:42 PM5/28/09
to
"John B. Matthews" <nos...@nospam.invalid> writes:

> In article <87my8yb...@blp.benpfaff.org>,
> Ben Pfaff <b...@cs.stanford.edu> wrote:
>
>> Lew <no...@lewscanon.com> writes:
>>
>> > Warnings are never harmless. If they were harmless, there wouldn't
>> > be any warnings.
>>
>> Nonsense. If warnings always indicated a real problem, then there
>> would be no need for compiler options to enable and disable them.
>
> I must demur. Warnings always indicate the potential for harm.

Potential for harm, perhaps. Actual harm, no. I read Lew's
claim as the latter.

Richard Heathfield

unread,
May 29, 2009, 2:26:29 AM5/29/09
to
John B. Matthews said:

> In article <87my8yb...@blp.benpfaff.org>,
> Ben Pfaff <b...@cs.stanford.edu> wrote:
>
>> Lew <no...@lewscanon.com> writes:
>>
>> > Warnings are never harmless. If they were harmless, there
>> > wouldn't be any warnings.
>>
>> Nonsense. If warnings always indicated a real problem, then
>> there would be no need for compiler options to enable and disable
>> them.
>
> I must demur. Warnings always indicate the potential for harm.

Please explain the potential for harm in:

struct tm foo = {0};

that causes this message:

foo.c:6: warning: missing initializer
foo.c:6: warning: (near initialization for `foo.tm_min')

and which vanishes when the code is changed to:

struct tm foo = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

which has precisely the same meaning as the prior code *except
that*, if for some reason the definition of foo changes to add more
fields, the former code does not need to be changed, and is
therefore superior.

> Additional analysis is required to determine if that potential
> applies to a particular usage.

Please explain *any* circumstance in which struct structname = {0};
justifies the diagnostic message (above) that GCC generates for it.

Mostly I agree with your position, but some compilers, by generating
rather silly warnings in some circumstances, make it very difficult
to agree with you completely.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999

Stuart

unread,
May 29, 2009, 4:19:26 AM5/29/09
to
"Richard Heathfield" <r...@see.sig.invalid> wrote in message
news:NKidnST02qoo44LX...@bt.com...

> John B. Matthews said:
>
>> In article <87my8yb...@blp.benpfaff.org>,
>> Ben Pfaff <b...@cs.stanford.edu> wrote:
>>
>>> Lew <no...@lewscanon.com> writes:
>>>
>>> > Warnings are never harmless. If they were harmless, there
>>> > wouldn't be any warnings.
>>>
>>> Nonsense. If warnings always indicated a real problem, then
>>> there would be no need for compiler options to enable and disable
>>> them.
>>
>> I must demur. Warnings always indicate the potential for harm.
>
> Please explain the potential for harm in:
>
> struct tm foo = {0};
>
> that causes this message:
>
> foo.c:6: warning: missing initializer
> foo.c:6: warning: (near initialization for `foo.tm_min')
>
> and which vanishes when the code is changed to:
>
> struct tm foo = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
>
> which has precisely the same meaning as the prior code *except
> that*, if for some reason the definition of foo changes to add more
> fields, the former code does not need to be changed, and is
> therefore superior.
>
>> Additional analysis is required to determine if that potential
>> applies to a particular usage.
>
> Please explain *any* circumstance in which struct structname = {0};
> justifies the diagnostic message (above) that GCC generates for it.
>
> Mostly I agree with your position, but some compilers, by generating
> rather silly warnings in some circumstances, make it very difficult
> to agree with you completely.

Not all would agree that it is superior. If additional fields are added to
foo some [particularly those in the high-integrity domain] consider it
prudent to review assignments to a structure (particularly initializations).
Having the compiler nag you if you have overlooked some case buried deep
within your code is considered a 'superior' code design.

In the first type of initialization it is not clear whether the author's
understanding of foo matches the current definition of foo (i.e. whether any
additional fields have been added). [The warning might be better expressed
though].

In the second case it would be obvious whether there is a mismatch and the
compiler need only issue a message if the code is clearly wrong.


Where code does lead to nuisance warnings [for instance where the design
constraints of foo will _always_ require it to be initialized to 0, and
there is a high expectation that foo will continually change during the life
of the code, so the first form of initialiation is desirable], a method for
coping with this is to annotate the code (at the point the warning would be
raised) to explain the warning and justify why it is appropriate to
disregard it. Some developers even have tools to automatically filter such
warnings (comparing the warnings of a new build with those expected for any
build).


I expect this sounds like an awful lot of fuss for a great many
programmers - but for some it is a way of life!

Regards
Stuart


Richard Heathfield

unread,
May 29, 2009, 5:52:48 AM5/29/09
to
Stuart said:

<snip>

> Not all would agree that [ = {0} ] is superior [ to = { 0, 0, 0,
> 0, 0, ... } ]. If additional fields are


> added to foo some [particularly those in the high-integrity
> domain] consider it prudent to review assignments to a structure
> (particularly initializations). Having the compiler nag you if you
> have overlooked some case buried deep within your code is
> considered a 'superior' code design.

Well, you got me there. I don't agree with you, but I do agree that
you have a defensible position!

> In the first type of initialization it is not clear whether the
> author's understanding of foo matches the current definition of
> foo (i.e. whether any additional fields have been added). [The
> warning might be better expressed though].

Good modularisation makes it reasonably easy to ensure that one has
dealt with all the ramifications of adding a member to a struct.
(Irrelevant aside: I had the devil's own job stopping that sentence
from ending with a preposition; I eventually solved it by changing
from the passive voice to the active.)

> In the second case it would be obvious whether there is a mismatch
> and the compiler need only issue a message if the code is clearly
> wrong.

If zero-initialisation is required, = {0} does the trick elegantly
and well. The only reason this wouldn't Do The Right Thing is if
some fields were required to be initialised to non-zero values.
I favour blanket zero-initialisation followed by specific
assignments to members not because I like to make work for myself,
but because - as you say - new members might be added, and this can
introduce bugs. Consider:

struct foo { int height; int weight; int shoesize; int quux; int
quuux; int quuuux; };

struct foo bar = { 190, 81, 12, 0, 0, 0 };

(My imagination failed for the names of the last three fields, but
basically they represent any old fields that need starting values
of 0.)

Now we maintain the struct:

struct foo { int height; int weight; int iq; int shoesize; int quux;
int quuux; int quuuux; };

and we maintain the initialisation, with the intent of inserting 115
as the IQ (might be a teacher, or a police officer, or a council
official - how many readers have I just offended, I wonder?):

struct foo bar = { 190, 115, 81, 12, 0, 0, 0 };

We've put this in the wrong place, but the compiler won't tell us
that. Far better to do this:

struct foo bar = {0};
bar.height = 190;
bar.weight = 81;
bar.shoesize = 12;
bar.iq = 115; /* rjh, 29/5/2009, Change Request 2139707B */

That way, every value is associated directly with the name of the
member, making it easier to get things right.

(The blanket initialisation covers quux, quuux, and quuuux. If they
require non-zero values, those can be added to the list.)

C99 allows us to do something similar within the struct initialiser
itself:

struct foo bar = { .height = 190, .weight = 81, .iq = 115, .shoesize
= 12, 0, 0, 0 };

which is fine provided we remember that any undesignated
initialisers that follow a designated initialiser will not "jump
back" to fill in the gaps (any members in such gaps will be
zero-initialised in the absence of any other initialisation within
a part-initialisation), so it's still possible to screw this up:

struct foo bar = { .height = 190, 81, 12};
struct foo bar = { .height = 190, .iq = 115, 81, 12 };

which gives us a shoesize of 81 and a weight of 0. Here, it is
possible that full initialisation might save you by giving you a
diagnostic message:

struct foo bar = { .height = 190, .iq = 115, 81, 12, 0, 0, 0 };

It would surprise me if this code were not to generate a diagnostic
message for "too many initializers", but I can't immediately prove
from the Standard that it must (I'm not particularly familiar with
C99, and don't even have a C99 compiler).

And of course this technique does depend on your having a C99
compiler (or a compiler that includes some C99 features).

So, in the continuing absence of C99, my own preferred method is
blanket initialisation followed by explicit assignment to named
members. It would be silly to get religious about it, but as a
general guideline I find it helpful.

> Where code does lead to nuisance warnings [for instance where the
> design
> constraints of foo will _always_ require it to be initialized to
> 0, and there is a high expectation that foo will continually
> change during the life of the code, so the first form of
> initialiation is desirable], a method for coping with this is to
> annotate the code (at the point the warning would be raised) to
> explain the warning and justify why it is appropriate to
> disregard it.

Which is pretty much what I do (although the one about missing
initialisers is so common in my code that I don't even see those
warnings any more unless I'm really concentrating!).

> Some developers even have tools to automatically
> filter such warnings (comparing the warnings of a new build with
> those expected for any build).

I have worked in such environments, and found it a good way to do
things.

> I expect this sounds like an awful lot of fuss for a great many
> programmers - but for some it is a way of life!

In places where it's done, it's routine and nobody bats an eyelid.
In places where it isn't done, proposing its introduction will
normally earn you nothing more than a blank look from your PHB.

Stuart

unread,
May 29, 2009, 7:01:15 AM5/29/09
to
"Richard Heathfield" <r...@see.sig.invalid> wrote in message
news:p-GdndqgweKNMoLX...@bt.com...

> Stuart said:
>
> <snip>
>
>> Not all would agree that [ = {0} ] is superior [ to = { 0, 0, 0,
>> 0, 0, ... } ]. If additional fields are
>> added to foo some [particularly those in the high-integrity
>> domain] consider it prudent to review assignments to a structure
>> (particularly initializations). Having the compiler nag you if you
>> have overlooked some case buried deep within your code is
>> considered a 'superior' code design.
>
> Well, you got me there. I don't agree with you, but I do agree that
> you have a defensible position!
>
>> In the first type of initialization it is not clear whether the
>> author's understanding of foo matches the current definition of
>> foo (i.e. whether any additional fields have been added). [The
>> warning might be better expressed though].
>
> Good modularisation makes it reasonably easy to ensure that one has
> dealt with all the ramifications of adding a member to a struct.
<snip>

I agree with using good modularization as a primary way of managing
complexity and maintenance of programs. Even so, some choices over the way
in which some things are done (such as structure initialization) can
maximise the 'help' you get from a compiler in spotting mistakes in your
code at the expense of a 'little' extra effort in writing the code. If a
program was proving difficult to maintain because small changes were leading
to a lot of 'knock-on' effects, that may be an indication that the original
design is not properly modularized and abstracted.

>> In the second case it would be obvious whether there is a mismatch
>> and the compiler need only issue a message if the code is clearly
>> wrong.
>
> If zero-initialisation is required, = {0} does the trick elegantly
> and well. The only reason this wouldn't Do The Right Thing is if
> some fields were required to be initialised to non-zero values.
> I favour blanket zero-initialisation followed by specific
> assignments to members not because I like to make work for myself,
> but because - as you say - new members might be added, and this can
> introduce bugs.

The difficulty is whether you (or the compiler) can be certain that you have
performed all the necessary non-zero assignments. In the domain I work in
the general recommendation is to assign to complete structures (rather than
to individual fileds) where possible and avoid the use of default cases
(which might not be valid in an extension).

> Consider:
>
> struct foo { int height; int weight; int shoesize; int quux; int
> quuux; int quuuux; };
>
> struct foo bar = { 190, 81, 12, 0, 0, 0 };
>
> (My imagination failed for the names of the last three fields, but
> basically they represent any old fields that need starting values
> of 0.)
>
> Now we maintain the struct:
>
> struct foo { int height; int weight; int iq; int shoesize; int quux;
> int quuux; int quuuux; };
>
> and we maintain the initialisation, with the intent of inserting 115
> as the IQ (might be a teacher, or a police officer, or a council
> official - how many readers have I just offended, I wonder?):
>
> struct foo bar = { 190, 115, 81, 12, 0, 0, 0 };
>
> We've put this in the wrong place, but the compiler won't tell us
> that. Far better to do this:
>
> struct foo bar = {0};
> bar.height = 190;
> bar.weight = 81;
> bar.shoesize = 12;
> bar.iq = 115; /* rjh, 29/5/2009, Change Request 2139707B */
>
> That way, every value is associated directly with the name of the
> member, making it easier to get things right.

>


> C99 allows us to do something similar within the struct initialiser
> itself:
>
> struct foo bar = { .height = 190, .weight = 81, .iq = 115, .shoesize
> = 12, 0, 0, 0 };
>
> which is fine provided we remember that any undesignated
> initialisers that follow a designated initialiser will not "jump
> back" to fill in the gaps (any members in such gaps will be
> zero-initialised in the absence of any other initialisation within
> a part-initialisation), so it's still possible to screw this up:
>
> struct foo bar = { .height = 190, 81, 12};
> struct foo bar = { .height = 190, .iq = 115, 81, 12 };
>
> which gives us a shoesize of 81 and a weight of 0. Here, it is
> possible that full initialisation might save you by giving you a
> diagnostic message:
>
> struct foo bar = { .height = 190, .iq = 115, 81, 12, 0, 0, 0 };

Well that would be why I prefer Ada with its named association in aggregates
;-)

Bar : Foo := (height => 190, iq => 115, weight => 81, shoesize => 81,
...);

it does not matter about the order and it has strict rules about ambiguity
caused by mixing named and positional values (in array aggregates and
sub-program calls).

> It would surprise me if this code were not to generate a diagnostic
> message for "too many initializers", but I can't immediately prove
> from the Standard that it must (I'm not particularly familiar with
> C99, and don't even have a C99 compiler).

Perhaps someone else might chip in!

> And of course this technique does depend on your having a C99
> compiler (or a compiler that includes some C99 features).

Or avoiding C and using something much more robust like Ada ;-)

> So, in the continuing absence of C99, my own preferred method is
> blanket initialisation followed by explicit assignment to named
> members. It would be silly to get religious about it, but as a
> general guideline I find it helpful.

I agree that it is silly to get religious about it, I have had to fight
several battles where people have interpreted generally good advice
[applicable to general design] as an absolute rule. A classic in Ada is the
prohibition on Unchecked_Conversion - a language feature which has very
practical use in specific cases but is not something you want to see
peppered throughout the code (as it circumvents the strong typing of Ada).
Unfortunately it often gets a 'universal ban'.

My main purpose in raising the point was to present a different viewpoint.
People need to make informed decisions that best meet the needs of their
programme.

Regards
--
Stuart


Richard Heathfield

unread,
May 29, 2009, 7:23:47 AM5/29/09
to
Stuart said:

<snip>



> The difficulty is whether you (or the compiler) can be certain
> that you have performed all the necessary non-zero assignments.

I don't think it's possible for the compiler to tell, unless you've
installed the Telepathy plug-in.

<snip>

>> And of course this technique [designated initializers]


>> does depend on your having a C99
>> compiler (or a compiler that includes some C99 features).
>
> Or avoiding C and using something much more robust like Ada ;-)

Now now... language wars > /dev/null please!

<snip>

> My main purpose in raising the point was to present a different
> viewpoint. People need to make informed decisions that best meet
> the needs of their programme.

I think you've done that admirably well, and yes they do (but all
too often, no they don't!).

John B. Matthews

unread,
May 29, 2009, 7:55:44 AM5/29/09
to
In article <87r5y88...@blp.benpfaff.org>,
Ben Pfaff <b...@cs.stanford.edu> wrote:

> "John B. Matthews" <nos...@nospam.invalid> writes:
>
> > In article <87my8yb...@blp.benpfaff.org>,
> > Ben Pfaff <b...@cs.stanford.edu> wrote:
> >
> >> Lew <no...@lewscanon.com> writes:
> >>
> >> > Warnings are never harmless. If they were harmless, there wouldn't
> >> > be any warnings.
> >>
> >> Nonsense. If warnings always indicated a real problem, then there
> >> would be no need for compiler options to enable and disable them.
> >
> > I must demur. Warnings always indicate the potential for harm.
>
> Potential for harm, perhaps. Actual harm, no. I read Lew's
> claim as the latter.

Ah, I read the statement as a universal negative: No warning is
harmless; you inferred the equivalent obverse: all warnings are harmful.
Harm may be difficult to quantify, and I maintain that the measure of
harm requires some analysis. Whether a particular warning is ignored or
cured, the burden of documenting the decision falls to the programmer.
Stuart & Richard Heathfield informatively discuss a concrete example in
this thread.

Kaz Kylheku

unread,
May 29, 2009, 9:19:40 AM5/29/09
to
On 2009-05-29, Richard Heathfield <r...@see.sig.invalid> wrote:

> John B. Matthews said:
>> I must demur. Warnings always indicate the potential for harm.
>
> Please explain the potential for harm in:
>
> struct tm foo = {0};
>
> that causes this message:
>
> foo.c:6: warning: missing initializer
> foo.c:6: warning: (near initialization for `foo.tm_min')
>
> and which vanishes when the code is changed to:
>
> struct tm foo = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

... and then the DS9K compiler has a warning for this one:

foo.c:6: warning: silly initializer, use {0).

Richard Heathfield

unread,
May 29, 2009, 9:37:33 AM5/29/09
to
Kaz Kylheku said:

Um, quite so. Having played the game of "keep ALL compilers happy",
I decided that not only could I not win it, but I couldn't even
break even. Personally, I wish they would all introduce a
diagnostic mode, say -minimalist or -W0 or whatever, which showed
*all* required diagnostic messages and *no* others. I wouldn't
always use such a mode (personally, I find some of the
non-mandatory messages very useful indeed), but I would certainly
find use for it on many occasions.

Seamus MacRae

unread,
May 29, 2009, 11:49:36 AM5/29/09
to
Stuart wrote:
> Where code does lead to nuisance warnings [for instance where the design
> constraints of foo will _always_ require it to be initialized to 0, and
> there is a high expectation that foo will continually change during the life
> of the code, so the first form of initialiation is desirable], a method for
> coping with this is to annotate the code (at the point the warning would be
> raised) to explain the warning and justify why it is appropriate to
> disregard it.

Alternatively, one could avoid the issue entirely with struct tm *foo =
calloc(sizeof(struct tm)), albeit having to replace tm.bar with tm->bar
elsewhere in the code.

> Some developers even have tools to automatically filter such warnings
> (comparing the warnings of a new build with those expected for any build).
>
> I expect this sounds like an awful lot of fuss for a great many programmers
> - but for some it is a way of life!

How unfortunate.

Seamus MacRae

unread,
May 29, 2009, 11:50:17 AM5/29/09
to
Richard Heathfield wrote:
> Stuart said:
[missing attribution, to Richard I think]

>>> And of course this technique [designated initializers]
>>> does depend on your having a C99
>>> compiler (or a compiler that includes some C99 features).
>> Or avoiding C and using something much more robust like Ada ;-)
>
> Now now... language wars > /dev/null please!

It's far, far too late for that my friend.

Richard Heathfield

unread,
May 29, 2009, 1:00:53 PM5/29/09
to
Seamus MacRae said:

> Stuart wrote:
>> Where code does lead to nuisance warnings [for instance where the
>> design
>> constraints of foo will _always_ require it to be initialized to
>> 0, and there is a high expectation that foo will continually
>> change during the life of the code, so the first form of
>> initialiation is desirable], a method for coping with this is to
>> annotate the code (at the point the warning would be raised) to
>> explain the warning and justify why it is appropriate to
>> disregard it.
>
> Alternatively, one could avoid the issue entirely with struct tm
> *foo = calloc(sizeof(struct tm)), albeit having to replace tm.bar
> with tm->bar elsewhere in the code.

Firstly, the preferred idiom is:

struct tm *foo = calloc(sizeof *foo);

which (for all types other than void *, for which sizeof is a bit
pointless anyway) survives a foo type change without editing.

Secondly, although all-bits-zero does indeed represent 0.0 or NULL
on many platforms, it is not guaranteed by the C Standard so to do.
Those who must cater for unusual platforms cannot necessarily rely
on calloc to initialise all members to 0-of-the-correct-type for
them.

>> Some developers even have tools to automatically filter such
>> warnings (comparing the warnings of a new build with those
>> expected for any build).
>>
>> I expect this sounds like an awful lot of fuss for a great many
>> programmers - but for some it is a way of life!
>
> How unfortunate.

I've worked in environments like that, and found it quite workable.

Ben Bacarisse

unread,
May 29, 2009, 2:18:27 PM5/29/09
to
Richard Heathfield <r...@see.sig.invalid> writes:
<snip>

>> Alternatively, one could avoid the issue entirely with struct tm
>> *foo = calloc(sizeof(struct tm)), albeit having to replace tm.bar
>> with tm->bar elsewhere in the code.
>
> Firstly, the preferred idiom is:
>
> struct tm *foo = calloc(sizeof *foo);

Nit-pick: I think you mean

struct tm *foo = calloc(1, sizeof *foo);

--
Ben.

Richard Heathfield

unread,
May 29, 2009, 5:39:10 PM5/29/09
to
Ben Bacarisse said:

Thanks. I hardly ever call oc, so (as I'm sure you guessed) the
above is basically an accidental conflation with malloc. The
message, however, is the same - sizeof *foo beats
sizeof(typenamethatcouldchangeinfuture).

Moi

unread,
May 30, 2009, 8:46:52 AM5/30/09
to
On Fri, 29 May 2009 06:26:29 +0000, Richard Heathfield wrote:

> John B. Matthews said:
>
>> In article <87my8yb...@blp.benpfaff.org>,
>> Ben Pfaff <b...@cs.stanford.edu> wrote:
>>
>>> Lew <no...@lewscanon.com> writes:

>>
>> I must demur. Warnings always indicate the potential for harm.
>
> Please explain the potential for harm in:
>
> struct tm foo = {0};
>
> that causes this message:
>
> foo.c:6: warning: missing initializer foo.c:6: warning: (near
> initialization for `foo.tm_min')
>
> and which vanishes when the code is changed to:
>
> struct tm foo = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
>
> which has precisely the same meaning as the prior code *except that*, if
> for some reason the definition of foo changes to add more fields, the
> former code does not need to be changed, and is therefore superior.
>
>> Additional analysis is required to determine if that potential applies
>> to a particular usage.
>
> Please explain *any* circumstance in which struct structname = {0};
> justifies the diagnostic message (above) that GCC generates for it.
>
> Mostly I agree with your position, but some compilers, by generating
> rather silly warnings in some circumstances, make it very difficult to
> agree with you completely.

Some warnings, like the one above can be a nuisance.
Another one which is mostly harmless is:

for (cnt=0; cp = fgets(buff, sizeof buff, fp); cnt++) {}

-->> warning: suggest parentheses around assignment used as truth value

Well, there *could* be cases where this warning is wanted.
I don't like excessive parentheses either.


AvK

Seamus MacRae

unread,
May 30, 2009, 11:07:35 PM5/30/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>
>> Stuart wrote:
>>> Where code does lead to nuisance warnings [for instance where the
>>> design
>>> constraints of foo will _always_ require it to be initialized to
>>> 0, and there is a high expectation that foo will continually
>>> change during the life of the code, so the first form of
>>> initialiation is desirable], a method for coping with this is to
>>> annotate the code (at the point the warning would be raised) to
>>> explain the warning and justify why it is appropriate to
>>> disregard it.
>> Alternatively, one could avoid the issue entirely with struct tm
>> *foo = calloc(sizeof(struct tm)), albeit having to replace tm.bar
>> with tm->bar elsewhere in the code.
>
> Firstly, the preferred idiom is:
>
> struct tm *foo = calloc(sizeof *foo);

Surely not? That dereferences an uninitialized pointer, thereby invoking
undefined behavior. Even though it doesn't read or write through it.

> Secondly, although all-bits-zero does indeed represent 0.0 or NULL
> on many platforms, it is not guaranteed by the C Standard so to do.

Have you ever seen a reasonably modern system where it wasn't? Then
again, dereferencing a bad pointer without actually reading or writing
through it doesn't tend to cause h/w exceptions on modern machines either.

In the meantime, though, assigning it {0} causes warnings, as you noted.

>>> Some developers even have tools to automatically filter such
>>> warnings (comparing the warnings of a new build with those
>>> expected for any build).
>>>
>>> I expect this sounds like an awful lot of fuss for a great many
>>> programmers - but for some it is a way of life!
>> How unfortunate.
>
> I've worked in environments like that, and found it quite workable.

Now I know why so much C software is crash-prone and generally buggy.

Richard Heathfield

unread,
May 31, 2009, 4:04:58 AM5/31/09
to
Seamus MacRae said:

> Richard Heathfield wrote:

<snip>

>> Firstly, the preferred idiom is:
>>
>> struct tm *foo = calloc(sizeof *foo);

[calloc takes two args, of course - mea culpa]

> Surely not? That dereferences an uninitialized pointer, thereby
> invoking undefined behavior.

Surely not! The sizeof operator does not evaluate its operand, so
dereferencing does not and in fact cannot take place. Ref:

3.3.3.4 The sizeof operator

[...]
Semantics

The sizeof operator yields the size (in bytes) of its operand,
which may be an expression or the parenthesized name of a type. The
size is determined from the type of the operand, which is not
itself evaluated.

> Even though it doesn't read or write through it.

If you don't read the value itself (and sizeof does not), you can't
evaluate it, so you can't read through it or write through it.

>> Secondly, although all-bits-zero does indeed represent 0.0 or
>> NULL on many platforms, it is not guaranteed by the C Standard so
>> to do.
>
> Have you ever seen a reasonably modern system where it wasn't?

Have you ever seen a reasonably modern system that had precisely the
same architecture in all respects as the most common architecture
of the previous generation? There are real systems where NULL is
not all-bits-zero, and real systems where 0.0 is not all-bits-zero.
In the absence of a guarantee from Silicon Valley that this will
never, ever, ever happen again, I will continue to assume the worst
when writing code that I need to be maximally portable.

> Then again, dereferencing a bad pointer without actually reading
> or writing through it doesn't tend to cause h/w exceptions on
> modern machines either.

Strawman argument. Nobody in this discussion has dereferenced a bad
pointer.

> In the meantime, though, assigning it {0} causes warnings, as you
> noted.
>
>>>> Some developers even have tools to automatically filter such
>>>> warnings (comparing the warnings of a new build with those
>>>> expected for any build).
>>>>
>>>> I expect this sounds like an awful lot of fuss for a great many
>>>> programmers - but for some it is a way of life!
>>> How unfortunate.
>>
>> I've worked in environments like that, and found it quite
>> workable.
>
> Now I know why so much C software is crash-prone and generally
> buggy.

Yes, it's at least partly because there are people who don't know
the semantics of sizeof, but who still insist on writing in C.
Alternatively, we *could* play nice and back off the "in the
absence of evidence to the contrary I'll just assume you're a
moron" tone and discuss this like grown-ups. Your call.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@

Forged article? See
http://www.cpax.org.uk/prg/usenet/comp.lang.c/msgauth.php

Seamus MacRae

unread,
May 31, 2009, 1:43:17 PM5/31/09
to
Richard Heathfield wrote:
[snip]

Stop attacking me.

>>> Firstly, the preferred idiom is:
>>>
>>> struct tm *foo = calloc(sizeof *foo);

>> Surely not? That dereferences an uninitialized pointer, thereby
>> invoking undefined behavior.
>
> Surely not! The sizeof operator does not evaluate its operand

It must at least partly do so, in order to know what size of thing *foo
is referring to.

>>> Secondly, although all-bits-zero does indeed represent 0.0 or
>>> NULL on many platforms, it is not guaranteed by the C Standard so
>>> to do.
>> Have you ever seen a reasonably modern system where it wasn't?
>
> Have you ever seen a reasonably modern system that had precisely the
> same architecture in all respects as the most common architecture
> of the previous generation? There are real systems where NULL is
> not all-bits-zero

Yes, but are any of them in widespread use?

> and real systems where 0.0 is not all-bits-zero.

Not IEEE754-compatible ones.

> In the absence of a guarantee from Silicon Valley that this will
> never, ever, ever happen again, I will continue to assume the worst
> when writing code that I need to be maximally portable.

And I will continue to use Java when writing code that I need to be
maximally portable. C is for systems-level stuff now. :-)

>> Then again, dereferencing a bad pointer without actually reading
>> or writing through it doesn't tend to cause h/w exceptions on
>> modern machines either.
>
> Strawman argument.

Do not personally attack me or accuse me of intellectually dishonest
behavior again. You have been warned.

>>>>> Some developers even have tools to automatically filter such
>>>>> warnings (comparing the warnings of a new build with those
>>>>> expected for any build).
>>>>>
>>>>> I expect this sounds like an awful lot of fuss for a great many
>>>>> programmers - but for some it is a way of life!
>>>> How unfortunate.
>>> I've worked in environments like that, and found it quite
>>> workable.
>> Now I know why so much C software is crash-prone and generally
>> buggy.
>
> Yes, it's at least partly because there are people who don't know

> [rest of personal attacks deleted]

Stop attacking me.

You've said your piece and I've said mine. Move on.

Ben Pfaff

unread,
May 31, 2009, 2:12:29 PM5/31/09
to
Seamus MacRae <smacr...@live.ca.invalid> writes:

> Richard Heathfield wrote:
>>>> Firstly, the preferred idiom is:
>>>>
>>>> struct tm *foo = calloc(sizeof *foo);
>>> Surely not? That dereferences an uninitialized pointer, thereby
>>> invoking undefined behavior.
>>
>> Surely not! The sizeof operator does not evaluate its operand
>
> It must at least partly do so, in order to know what size of thing
> *foo is referring to.

No. The ANSI C89 standard says this:

The sizeof operator yields the size (in bytes) of its
operand, which may be an expression or the parenthesized name
of a type. The size is determined from the type of the

operand, which is not itself evaluated. The result is an
integer constant.

C99 has an exception for variable-length arrays.

Richard Heathfield

unread,
May 31, 2009, 2:17:40 PM5/31/09
to
Seamus MacRae said:

> Richard Heathfield wrote:
> [snip]
>
> Stop attacking me.

I invite you to review the discussion once more, to find out who
attacked whom. I am less concerned with attacking you than with
debunking the incorrect claim you made.

>>>> Firstly, the preferred idiom is:
>>>>
>>>> struct tm *foo = calloc(sizeof *foo);
>>> Surely not? That dereferences an uninitialized pointer, thereby
>>> invoking undefined behavior.
>>
>> Surely not! The sizeof operator does not evaluate its operand
>
> It must at least partly do so, in order to know what size of thing
> *foo is referring to.

It is *forbidden* to do so, by the language definition. An
implementation that evaluates the operand of a sizeof operator is
not a conforming C implementation.

>>>> Secondly, although all-bits-zero does indeed represent 0.0 or
>>>> NULL on many platforms, it is not guaranteed by the C Standard
>>>> so to do.
>>> Have you ever seen a reasonably modern system where it wasn't?
>>
>> Have you ever seen a reasonably modern system that had precisely
>> the same architecture in all respects as the most common
>> architecture of the previous generation? There are real systems
>> where NULL is not all-bits-zero
>
> Yes, but are any of them in widespread use?

You missed my point. See below.

>
>> and real systems where 0.0 is not all-bits-zero.
>
> Not IEEE754-compatible ones.

You missed my point. See below.

>> In the absence of a guarantee from Silicon Valley that this will
>> never, ever, ever happen again, I will continue to assume the
>> worst when writing code that I need to be maximally portable.
>
> And I will continue to use Java when writing code that I need to
> be maximally portable. C is for systems-level stuff now. :-)

Fine, you're entitled to think that, and to avoid C entirely if you
choose - but there are still people who need to write portable C
code, and it is well for them to write C properly and with an eye
to portability.

>
>>> Then again, dereferencing a bad pointer without actually reading
>>> or writing through it doesn't tend to cause h/w exceptions on
>>> modern machines either.
>>
>> Strawman argument.
>
> Do not personally attack me or accuse me of intellectually
> dishonest behavior again. You have been warned.

It wasn't a personal attack, and I don't give a stuff about your
warning. You are taking this far too personally. This is a
discussion, not a lawsuit.

I described your argument as a strawman argument because your flawed
understanding of sizeof led you to believe, mistakenly, that I had
written code dereferencing a bad pointer. I have already given you
chapter and verse that explains exactly why I wasn't dereferencing
a bad pointer.

<snip>

>>>> I've worked in environments like that, and found it quite
>>>> workable.
>>> Now I know why so much C software is crash-prone and generally
>>> buggy.

Spot the (groundless) personal attack, to which I reacted...

>> Yes, it's at least partly because there are people who don't know
>> [rest of personal attacks deleted]

...and you didn't like it.

> Stop attacking me.

For someone who doesn't like personal attacks, you sure like making
them. There's no point giving me orders, by the way. You're not my
boss.

> You've said your piece and I've said mine. Move on.

I'm already in the right place. If you seek the truth, it is you who
need to move. And the truth is that, despite your incredulity,
sizeof does not evaluate its operand. I have already provided the
relevant evidence to back me up. You have provided none to back you
up. That is not a personal attack, you buffoon (that one was,
though) - it's just a statement of the facts.

Okay, so I'll retract "buffoon" - but for heaven's sake, lighten up
a little - and before "correcting" people, take the trouble to find
out whether your "correction" is correct.

Richard Heathfield

unread,
May 31, 2009, 2:21:58 PM5/31/09
to
Ben Pfaff said:

> Seamus MacRae <smacr...@live.ca.invalid> writes:
>
>> Richard Heathfield wrote:
>>>>> Firstly, the preferred idiom is:
>>>>>
>>>>> struct tm *foo = calloc(sizeof *foo);
>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>> invoking undefined behavior.
>>>
>>> Surely not! The sizeof operator does not evaluate its operand
>>
>> It must at least partly do so, in order to know what size of
>> thing *foo is referring to.
>
> No. The ANSI C89 standard says this:
>
> The sizeof operator yields the size (in bytes) of its
> operand, which may be an expression or the parenthesized name
> of a type. The size is determined from the type of the
> operand, which is not itself evaluated. The result is an
> integer constant.

If you look at the grandparent article (my reply, to which Seamus
wrote a reply, to which you wrote a reply), you will find that very
text quoted. He has snipped it, giving no indication that he has
read or understood it, and now he's claiming that it's wrong.

> C99 has an exception for variable-length arrays.

Yes, but the context is calloc for allocating a single struct tm -
no VLAs involved.

MarkH

unread,
Jun 1, 2009, 12:23:57 AM6/1/09
to
On May 31, 12:43 pm, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> Richard Heathfield wrote:
>
> [snip]
>
> Stop attacking me.

....

> > Strawman argument.
>
> Do not personally attack me or accuse me of intellectually dishonest
> behavior again. You have been warned.

....


> > Yes, it's at least partly because there are people who don't know
> > [rest of personal attacks deleted]
>
> Stop attacking me.
>

You have a major malfunction "Seamus". Man the hell up, emo boy.

thomas...@gmx.at

unread,
Jun 1, 2009, 4:22:48 AM6/1/09
to
On 31 Mai, 20:17, Richard Heathfield <r...@see.sig.invalid> wrote:
> ... there are still people who need to write portable C

> code, and it is well for them to write C properly and with an eye
> to portability.

Portability is exactly the reason I decided to use C to implement
Seed7. When I began to implement the predecessor of Seed7 I used
Pascal but I had much more portability problems with it.

When C compilers use high warning levels it is almost impossible to
write code that never (with no C compiler) gets a warning:

- On some compilers you get warnings complaining about things in
standard include files. How do you get rid of such warnings?
- Historically C had the philosophy that actual float parameters
are automatically converted to double when a function is called.
On some compilers you get warnings when your prototyp requests
a formal float parameter and the actual parameter is a float
also. So you get a warning for something that is 100% OK and
I don't want to cast every float argument to float just to
avoid this warning.
- On some compilers you get warnings when 'unsigned char *' strings
are used for functions like 'strlen' or 'strcpy' (which request
a signed 'char *' pointer). Naturally you can assume that
'strlen' works independent of the sign of the character, but the
compiler warnings do not care about that.
- C has rules how to deal with operations when integers of
different sizes or signedness are involved. One operator argument
is implicitly casted to the type of the other. Naturally such
casts can involve loss of data or loss of the sign. This warnings
are helpful to find possible sources of errors. But to silence
such warnings it is necessary to use explicit casts. The problem
is that with and without explicit casts the same things are done.
The cast just tells the compiler: I know what I mean, just do it.
This way you will not get warnings when new typedefs or other
declarations cause the expression to become dangerous.
- Warnings about 'variablename' may be used uninitialized:
This can be false complaints. Interestingly gcc is not able to
recognize when the states of two variables are connected.
Such as a global fail_flag variable and a local condition
variable (cond). The connection is: As long as fail_flag is
FALSE the cond variable is initialised. When the fail_flag
is TRUE the cond variable is not used and therefore it could
be in an uninitialized state. At several places I use such
connected variable states which are not recognized by the
gcc optimizer and are therefore flagged with a warning. I
accept such warnings in performance critical paths. I am not
willing to do "unnecessary" initialisations in performance
critical paths of the program. At places that are not
performance critical I do some of this "unnecessary"
initialisations just to avoid such warnings.

I appreciate every help to reduce the number of warnings when
compiling Seed7. It would be nice to recive the warnings generated
by various C compilers.

Greetings Thomas Mertes

Seed7 Homepage: http://seed7.sourceforge.net
Seed7 - The extensible programming language: User defined statements
and operators, abstract data types, templates without special
syntax, OO with interfaces and multiple dispatch, statically typed,
interpreted or compiled, portable, runs under linux/unix/windows.

nick_keigh...@hotmail.com

unread,
Jun 1, 2009, 5:13:22 AM6/1/09
to
On 30 May, 13:46, Moi <r...@invalid.address.org> wrote:

<snip>

> Some warnings, like the one above can be a nuisance.
> Another one which is mostly harmless is:
>
> for (cnt=0; cp = fgets(buff, sizeof buff, fp); cnt++) {}
>
> -->> warning: suggest parentheses around assignment used as truth value
>
> Well, there *could* be cases where this warning is wanted.
> I don't like excessive parentheses either.

yes but most of us have made the mistake of using = for ==.
I even went though a later phase of using == for =!
I consider that C made a poor choice when selecting these
operators

assignment is :=
equality is =


--
Nick Keighley

"ALGOL 60 was a language so far ahead of its time that it
was not only an improvement on its predecessors but also
on nearly all its successors".
--C.A.R. Hoare

nick_keigh...@hotmail.com

unread,
Jun 1, 2009, 5:29:25 AM6/1/09
to
On 31 May, 09:04, Richard Heathfield <r...@see.sig.invalid> wrote:
> Seamus MacRae said:
>
> > Richard Heathfield wrote:

<snip>

> >>>> Some developers even have tools to automatically filter such


> >>>> warnings (comparing the warnings of a new build with those
> >>>> expected for any build).
>
> >>>> I expect this sounds like an awful lot of fuss for a great many
> >>>> programmers - but for some it is a way of life!
> >>> How unfortunate.
>
> >> I've worked in environments like that, and found it quite
> >> workable.
>
> > Now I know why so much C software is crash-prone and generally
> > buggy.

you'll have to explain that. I prefer warning free code. I'm willing
to
jump through some hoops to achieve it. But it remains a fact that not
all warnings indicate a potential error. If I had a compiler that
issued at lot of spurious warnings for my code I'd seriously
consider such a tool.

If you make comments like that about what seem like fairly sane
development methods then your tend to get remarks like those below:-

> Yes, it's at least partly because there are people who don't know
> the semantics of sizeof, but who still insist on writing in C.
> Alternatively, we *could* play nice and back off the "in the
> absence of evidence to the contrary I'll just assume you're a
> moron" tone and discuss this like grown-ups. Your call.


--
Nick Keighley

nick_keigh...@hotmail.com

unread,
Jun 1, 2009, 5:43:47 AM6/1/09
to
On 31 May, 18:43, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> Richard Heathfield wrote:

<snip>

> >>> Firstly, the preferred idiom is:


>
> >>> struct tm *foo = calloc(sizeof *foo);
>
> >> Surely not? That dereferences an uninitialized pointer, thereby
> >> invoking undefined behavior.
>
> > Surely not! The sizeof operator does not evaluate its operand
>
> It must at least partly do so, in order to know what size of thing *foo
> is referring to.

no. Think about it from the compiler's point of view. It actually
has enough information to calculate the value of "sizeof *foo"
without dereferencing foo. It doesn't need to know the value
of foo but only the type of foo. And since it's the compiler
it can simply look up the type of foo in an internal table
and substitute the size of type of foo. Which it also *must*
know since its the compiler (baring incomplete definitions
etc.).

calloc (sizeof *foo);

might well compile to

load R1 #sizeof(struct-tm)
call calloc

where #sizeof(struct-tm) is some sort of internal compiler
directive that in turn expands to something like

load R1 LIT 24

in in a more compact assembler

ld r1 #24


In fact not only is the compiler *able* to do this
but it is *required* to do this. sizeof is not
a function call but an operator

printf ("%ul\n", sizeof (* ((int*)0) ));

won't crash (assuming I got all me brackets right!)

<snip>

--
Nick Keighley

But ye have set at nought all my counsel, and would none of my
reproof:
I also will laugh at your calamity; I will mock when your fear
cometh;
[Proverbs 1:25]

thomas...@gmx.at

unread,
Jun 1, 2009, 6:06:32 AM6/1/09
to
On 1 Jun., 11:13, nick_keighley_nos...@hotmail.com wrote:
> On 30 May, 13:46, Moi <r...@invalid.address.org> wrote:
>
> <snip>
>
> > Some warnings, like the one above can be a nuisance.
> > Another one which is mostly harmless is:
>
> > for (cnt=0; cp = fgets(buff, sizeof buff, fp); cnt++) {}
>
> > -->> warning: suggest parentheses around assignment used as truth value
>
> > Well, there *could* be cases where this warning is wanted.
> > I don't like excessive parentheses either.
>
> yes but most of us have made the mistake of using = for ==.
> I even went though a later phase of using == for =!
> I consider that C made a poor choice when selecting these
> operators
>
> assignment is :=
> equality is =

This is one thing and the other thing is:

The habbit of silently ignoring values.

While it can have an advantage that assignments return
a value it can also have disadvantages. Sure when
assignments just return void some "elegant" code needs
to be written in a longer way, but at least some errors like
the one mentioned above do not happen.

Therefore I prefer assignments without result and no
implicit casts (like a cast to void which just ignores a
value).

Seamus MacRae

unread,
Jun 1, 2009, 6:31:37 AM6/1/09
to
Ben Pfaff wrote:
> Seamus MacRae <smacr...@live.ca.invalid> writes:
>
>> Richard Heathfield wrote:
>>>>> Firstly, the preferred idiom is:
>>>>>
>>>>> struct tm *foo = calloc(sizeof *foo);
>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>> invoking undefined behavior.
>>> Surely not! The sizeof operator does not evaluate its operand
>> It must at least partly do so, in order to know what size of thing
>> *foo is referring to.
>
> No.

Unevaluated, "*foo" is merely a pointer dereference operation. It is not
a value whose size may be measured.

Seamus MacRae

unread,
Jun 1, 2009, 6:32:41 AM6/1/09
to
Richard Heathfield wrote:
> Ben Pfaff said:
>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>> Richard Heathfield wrote:
>>>>>> Firstly, the preferred idiom is:
>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>>> invoking undefined behavior.
>>>> Surely not! The sizeof operator does not evaluate its operand
>>> It must at least partly do so, in order to know what size of
>>> thing *foo is referring to.
>> No.
>
> If you look at the grandparent article (my reply, to which Seamus
> wrote a reply, to which you wrote a reply), you will find

Very boring. Can we get back to discussing the original topic please?

Seamus MacRae

unread,
Jun 1, 2009, 6:43:56 AM6/1/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>
>> Richard Heathfield wrote:
>> [snip]
>>
>> Stop attacking me.
>
> I invite you to review the discussion once more, to find out who
> attacked whom.

It's quite fresh in my memory. I was ambling along, minding my own
business and then making a perfectly innocuous suggestion in a perfectly
civil post when you viciously assaulted me without provocation.

> I am less concerned with attacking you than with debunking

I do not need "debunking", thank you very much. Next time, do not
"debunk" unsolicited.

>>>>> Firstly, the preferred idiom is:
>>>>>
>>>>> struct tm *foo = calloc(sizeof *foo);
>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>> invoking undefined behavior.
>>> Surely not! The sizeof operator does not evaluate its operand
>> It must at least partly do so, in order to know what size of thing
>> *foo is referring to.
>
> It is *forbidden* to do so

Then how the heck is it supposed to know what size the thing is it's
pointing to?

Regardless, it's been drilled in repeatedly: if "*foo" is encountered
when foo is uninitialized, Bad Things may happen.

>>>>> Secondly, although all-bits-zero does indeed represent 0.0 or
>>>>> NULL on many platforms, it is not guaranteed by the C Standard
>>>>> so to do.
>>>> Have you ever seen a reasonably modern system where it wasn't?
>>> Have you ever seen a reasonably modern system that had precisely
>>> the same architecture in all respects as the most common
>>> architecture of the previous generation? There are real systems
>>> where NULL is not all-bits-zero
>> Yes, but are any of them in widespread use?
>
> You missed my point.

No, I did not. I repeat again: are any of them in widespread use?

>>> and real systems where 0.0 is not all-bits-zero.
>> Not IEEE754-compatible ones.
>
> You missed my point.

No, I did not. I repeat again: not IEEE754-compatible ones.

>>> In the absence of a guarantee from Silicon Valley that this will
>>> never, ever, ever happen again, I will continue to assume the
>>> worst when writing code that I need to be maximally portable.
>> And I will continue to use Java when writing code that I need to
>> be maximally portable. C is for systems-level stuff now. :-)
>
> Fine, you're entitled to think that

Don't patronize me. You appear to be somewhat of a jerk. Please go look
in a mirror and adjust that attitude you're wearing.

>>>> Then again, dereferencing a bad pointer without actually reading
>>>> or writing through it doesn't tend to cause h/w exceptions on
>>>> modern machines either.
>>> Strawman argument.
>> Do not personally attack me or accuse me of intellectually
>> dishonest behavior again. You have been warned.
>
> It wasn't a personal attack

Like hell it wasn't. You publicly berated me and implied in front of a
large audience that I was stupid and/or incompetent. What the hell is
the MATTER with you? And with several other people in these newsgroups?

> You are taking this far too personally.

That isn't for you to decide.

> This is a discussion, not a lawsuit.

It's not a polite discussion, and it hasn't been since you started
making things personal.

You made several nasty errors:
1. You nitpicked a post of mine. Bad move.
2. Then when I responded to smooth things over, you replied with
a more direct and serious attack instead of letting sleeping
dogs lie. Big mistake.
3. You continued to not back down when I continued to try to
reset things to the appropriate state so that the
discussion could move on in other directions.

Don't do that! If you nitpick at something someone said and they respond
in their own defense, leave it at that. You'll have said your opinion,
they'll have said theirs, and everyone can move on. If, instead, you
respond by restating your opinion more forcefully, it starts a fight
instead, and nobody benefits from that.

> I described your argument as a strawman argument because

you're an asshole. Yes, yes, I know.

> your flawed understanding
> led you to believe, mistakenly

Stop personally-attacking me at once. You will not again use the words
"flawed" or "mistaken" to describe me in public. Do I make myself clear?

Leave. Me. Alone.

These newsgroups are for discussing programming, not people. I am
off-topic here.

>>>>> I've worked in environments like that, and found it quite
>>>>> workable.
>>>> Now I know why so much C software is crash-prone and generally
>>>> buggy.
>
> Spot the (groundless) personal attack, to which I reacted.

There was no personal attack in my post. Saying that environments that
ignore a lot of compiler warnings generate buggy code is not an attack
on any particular person.

>>> Yes, it's at least partly because there are people who don't know
>>> [rest of personal attacks deleted]

>> Stop attacking me.
>
> For someone who doesn't like personal attacks, you sure like making
> them.

No, I do not. Stop publicly lying about me.

>> You've said your piece and I've said mine. Move on.
>
> I'm already in the right place.

NO. YOU ARE NOT.

You've said your piece. It does not bear repeating.

MOVE ON.

> If you seek the truth, it is you who need to move.

Calling me a liar will not make me friendlier.

> That is not a personal attack, you buffoon

Fuck you.

> Okay, so I'll retract "buffoon" - but for heaven's sake, lighten up
> a little

After you.

> and before "correcting" people, take the trouble

to send it as private email rather than a public news post? After you.

Seamus MacRae

unread,
Jun 1, 2009, 6:47:00 AM6/1/09
to
MarkH wrote:
> On May 31, 12:43 pm, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
>> Richard Heathfield wrote:
>>
>> [snip]
>>
>> Stop attacking me.
>>> Strawman argument.
>> Do not personally attack me or accuse me of intellectually dishonest
>> behavior again. You have been warned.
>>> Yes, it's at least partly because there are people who don't know
>>> [rest of personal attacks deleted]
>> Stop attacking me.
>
> You have a major malfunction "Seamus".

Who the fuck are you, and why is your debut into this thread a personal
attack aimed at a man that has not ever done or said anything to you,
personally, EVER???

Seamus MacRae

unread,
Jun 1, 2009, 6:48:18 AM6/1/09
to
nick_keigh...@hotmail.com attacked as well:

> On 31 May, 18:43, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
>> Richard Heathfield wrote:
>>>>> Firstly, the preferred idiom is:
>>>>> struct tm *foo = calloc(sizeof *foo);
>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>> invoking undefined behavior.
>>> Surely not! The sizeof operator does not evaluate its operand
>> It must at least partly do so, in order to know what size of thing *foo
>> is referring to.
>
> no.

Yes. See other posts.

> It doesn't need to know the value of foo but only the type
> of foo.

There are variable-length arrays in C99.

Seamus MacRae

unread,
Jun 1, 2009, 6:51:17 AM6/1/09
to
nick_keigh...@hotmail.com attacked:

> On 31 May, 09:04, Richard Heathfield <r...@see.sig.invalid> wrote:
>> Seamus MacRae said:
>>> Richard Heathfield wrote:
>>>>>> Some developers even have tools to automatically filter such
>>>>>> warnings (comparing the warnings of a new build with those
>>>>>> expected for any build).
>>>>>> I expect this sounds like an awful lot of fuss for a great many
>>>>>> programmers - but for some it is a way of life!
>>>>> How unfortunate.
>>>> I've worked in environments like that, and found it quite
>>>> workable.
>>> Now I know why so much C software is crash-prone and generally
>>> buggy.
>
> you'll have to explain that. I prefer warning free code. I'm willing
> to jump through some hoops to achieve it. But it remains a fact that
> not all warnings indicate a potential error. If I had a compiler that
> issued at lot of spurious warnings for my code I'd seriously
> consider such a tool.

Whereas I'd seriously consider using a different compiler.

> If you make comments like that about what seem like fairly sane
> development methods then your tend to get remarks like those below

Is that a threat?

Uh-uh. If I make civil, impersonal comments that do not impugn anyone,
directly or indirectly, then I fully expect all responses to be equally
civil. Instead people keep stooping to name-calling when they don't
agree with/don't like what I say. It's like half the people here are
grade-school kids or something. WTF??

> [personal attacks by Richard Heathfield deleted]

Ben Bacarisse

unread,
Jun 1, 2009, 6:56:52 AM6/1/09
to
Seamus MacRae <smacr...@live.ca.invalid> writes:

That's true: it is not a value at all. It is an expression whose
size _can_ be measured.

Since you have rejected the evidence of direct quotes from the C
language standard I don't expect you'll take my word for it. If you
want to go on arguing about what sizeof *foo means I'd like to know
what sources of information you _would_ believe. I.e. where do get your
information from, and what do you consider a definitive source for
resolving questions like this?

--
Ben.

nick_keigh...@hotmail.com

unread,
Jun 1, 2009, 7:49:21 AM6/1/09
to
On 1 June, 11:48, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> nick_keighley_nos...@hotmail.com attacked as well:

>
> > On 31 May, 18:43, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> >> Richard Heathfield wrote:
> >>>>> Firstly, the preferred idiom is:
> >>>>> struct tm *foo = calloc(sizeof *foo);
> >>>> Surely not? That dereferences an uninitialized pointer, thereby
> >>>> invoking undefined behavior.
> >>> Surely not! The sizeof operator does not evaluate its operand
> >> It must at least partly do so, in order to know what size of thing *foo
> >> is referring to.
>
> > no.
>
> Yes. See other posts.

Panto Time! Look out behind you!

Ah, well there is no point in arguing with the man who won't listen.
I merely adress the massed ranks of the Lurkers.


> > It doesn't need to know the value of foo but only the type
> > of foo.
>
> There are variable-length arrays in C99.

yes, you are correct. I tend only to think about C89.
I'm not convinced that variable-length arrays were
a good idea. And even less convinced that sizeof(vararr)
was a good idea.


--
Nick Keighley


Richard Heathfield

unread,
Jun 1, 2009, 11:57:25 AM6/1/09
to
Seamus MacRae said:

You consider authoritative information that proves you wrong to be
boring? When I find authoritative information that proves me wrong,
I consider it not only interesting but enlightening, as it allows
me to learn something new.

> Can we get back to discussing the original topic please?

You mean seeking a computer-programming job in Sunnyvale CA? Sure,
go for it; don't let me stop you.

Richard Heathfield

unread,
Jun 1, 2009, 12:34:01 PM6/1/09
to
Seamus MacRae said:

> Richard Heathfield wrote:
>> Seamus MacRae said:
>>
>>> Richard Heathfield wrote:
>>> [snip]
>>>
>>> Stop attacking me.
>>
>> I invite you to review the discussion once more, to find out who
>> attacked whom.
>
> It's quite fresh in my memory. I was ambling along, minding my own
> business and then making a perfectly innocuous suggestion in a
> perfectly civil post when you viciously assaulted me without
> provocation.
>
>> I am less concerned with attacking you than with debunking
>
> I do not need "debunking", thank you very much.

Right, but the claim you made was incorrect, and *did* need
debunking.

> Next time, do not "debunk" unsolicited.

If you don't wish for mistakes in your articles to be corrected, you
have two choices - (a) don't make mistakes, or (b) don't post them.

I make mistakes in my articles too - and they /do/ get corrected,
and I'm pleased by that, because it means I get to learn stuff,
which is good, right?

>
>>>>>> Firstly, the preferred idiom is:
>>>>>>
>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>> thereby invoking undefined behavior.
>>>> Surely not! The sizeof operator does not evaluate its operand
>>> It must at least partly do so, in order to know what size of
>>> thing *foo is referring to.
>>
>> It is *forbidden* to do so
>
> Then how the heck is it supposed to know what size the thing is
> it's pointing to?

I think you're confusing runtime with compile time. Pointer
dereferencing occurs at runtime. With one C99 exception that
doesn't apply here, all the information needed to calculate the
result of sizeof is available at compilation time. Thus, no matter
what object type p points to, the compiler is able to calculate
sizeof *p. Note: the *compiler*. So, by the time your executable
image is built, that size information is hard-coded into your
binary. It's as if the compiler replaced "sizeof *p" with "28" (or
whatever the exactly correct size is for the type) - so at runtime
it is (as if) a constant is passed to calloc. I say "as if" because
the Standard doesn't constrain implementations very much - it would
be quite legal, for example, for the compiler to insert an
inefficient call to a dopey size database thing. Daft, but legal.
But it is *not* legal for the *p of sizeof *p to be evaluated (i.e.
for its value to be calculated by the program). The dereference
*never happens*, because it's not allowed to happen.

> Regardless, it's been drilled in repeatedly: if "*foo" is
> encountered when foo is uninitialized, Bad Things may happen.

Sure - but this isn't *foo; it's sizeof *foo, which is a totally
different ball-game.


>
>>>>>> Secondly, although all-bits-zero does indeed represent 0.0 or
>>>>>> NULL on many platforms, it is not guaranteed by the C
>>>>>> Standard so to do.
>>>>> Have you ever seen a reasonably modern system where it wasn't?
>>>> Have you ever seen a reasonably modern system that had
>>>> precisely the same architecture in all respects as the most
>>>> common architecture of the previous generation? There are real
>>>> systems where NULL is not all-bits-zero
>>> Yes, but are any of them in widespread use?
>>
>> You missed my point.
>
> No, I did not. I repeat again: are any of them in widespread use?

Yes, you did. I repeat again - in the past, things often worked a
bit differently to the way they normally work now. Things changed,
so that they now work in what you probably think of as the only way
they're ever going to work. A more cautious attitude would be "if
they've changed before, they can change *again* - and if I program
according to the rules, I can to some extent protect my code
against such changes."

>
>>>> and real systems where 0.0 is not all-bits-zero.
>>> Not IEEE754-compatible ones.
>>
>> You missed my point.
>
> No, I did not. I repeat again: not IEEE754-compatible ones.

If you are prepared to limit yourself to systems that use
IEEE754-compatible floating point systems, that's your decision to
make.

>
>>>> In the absence of a guarantee from Silicon Valley that this
>>>> will never, ever, ever happen again, I will continue to assume
>>>> the worst when writing code that I need to be maximally
>>>> portable.
>>> And I will continue to use Java when writing code that I need to
>>> be maximally portable. C is for systems-level stuff now. :-)
>>
>> Fine, you're entitled to think that
>
> Don't patronize me.

Firstly, I told you before that giving me orders is a waste of time.
Secondly, I wasn't patronising you. You can try for patronising if
you like, but right now I'm still treating you like an intelligent
man who has simply got the wrong end of the stick, as we all do
from time to time. That opinion, however, is beginning to change.

> You appear to be somewhat of a jerk.

It's changing faster now.

> Please go
> look in a mirror and adjust that attitude you're wearing.

"Please" is a good start, but you have dug yourself a big hole, and
"please" is quite a short ladder.

>>>>> Then again, dereferencing a bad pointer without actually
>>>>> reading or writing through it doesn't tend to cause h/w
>>>>> exceptions on modern machines either.
>>>> Strawman argument.
>>> Do not personally attack me or accuse me of intellectually
>>> dishonest behavior again. You have been warned.
>>
>> It wasn't a personal attack
>
> Like hell it wasn't. You publicly berated me

Actually, I pointed out that you didn't understand sizeof. This
appears still to be the case, even though the nature of your
misunderstanding has been made crystal clear.

> and implied in front
> of a large audience that I was stupid and/or incompetent.

No, I think you're doing that yourself.

> What the hell is the MATTER with you?

Nothing, really. What is the matter with your ability to grasp the
semantics of sizeof?

> And with several other people in these newsgroups?

"It was a terrible parade. *Everybody* was out of step - except for
our Freddie, of course."

>> You are taking this far too personally.
>
> That isn't for you to decide.

True enough. I will rephrase. I *believe* you are taking this far
too personally. It appears I am not the only one to believe that.

>> This is a discussion, not a lawsuit.
>
> It's not a polite discussion, and it hasn't been since you started
> making things personal.

It could be polite. I am doing my best to remain polite, and I think
that mostly I'm succeeding.

> You made several nasty errors:
> 1. You nitpicked a post of mine. Bad move.

I corrected a mistake in your article. Good move, actually.

> 2. Then when I responded to smooth things over,

I don't recall your trying to smooth things over. Got a message ID
to support your claim?

> you replied with
> a more direct and serious attack instead of letting sleeping
> dogs lie. Big mistake.

Again, got a msg-ID? My own recollection is that you appeared to
continue to misunderstand sizeof.

> 3. You continued to not back down when I continued to try to
> reset things to the appropriate state so that the
> discussion could move on in other directions.

Why would I back down from a correct position?

> Don't do that!

You don't get to control my actions.

> If you nitpick at something someone said and they
> respond in their own defense, leave it at that.

You don't get to control my actions. If you screw up and I point it
out and you still deny it, it's my call whether I decide to point
out that you're still wrong.

> You'll have said
> your opinion, they'll have said theirs, and everyone can move on.

You can move on any time you like. Nobody forces you to respond.

> If, instead, you respond by restating your opinion more
> forcefully, it starts a fight instead, and nobody benefits from
> that.

If someone (anyone, not just you) disagrees with a point I've made
in an article, either they are right (in which case I'm wrong and
I'd like to know about it), or they are not right (in which case it
may be worth trying to put things in a way that is easier to
grasp), or perhaps we are both right ("violently agreeing with each
other") in which case it will usually come out in the wash, or
we're both wrong, in which case someone will probably point out why
in compelling terms. In this case, you were wrong, and I knew it
and could prove it (and *did* prove it), but you didn't seem to see
why you were wrong, so I tried to make the point clearer. It seems
I have even now not made it clear enough (although the middle part
of this reply is another attempt).

>> I described your argument as a strawman argument because
>
> you're an asshole. Yes, yes, I know.

Selective quotation is a poor debating trick, and loses all force
when pointed out.

>> your flawed understanding
>> led you to believe, mistakenly
>
> Stop personally-attacking me at once.

Firstly, I'm not personally attacking you. I am having a discussion
on Usenet. Secondly, I am sure you would agree that you are wholly
entitled to make your own choice about whether to take part in, or
to withdraw from, this discussion. That is *your* choice. I, too,
am entitled to take part, or to withdraw, and that is *my* choice,
not yours.

> You will not again use the
> words "flawed" or "mistaken" to describe me in public. Do I make
> myself clear?

You make yourself perfectly clear, but your understanding of sizeof
*is* flawed, and you *are* mistaken, whether or not you realise it,
and attempting to censor the discussion will not change that. Nor
will such an attempt succeed. You don't get to decide what I write.

> Leave. Me. Alone.

If you don't wish to communicate with me, you can stop doing so at
any time.

> These newsgroups are for discussing programming, not people. I am
> off-topic here.

I agree (and I have made the same point myself in the past, on this
group [comp.programming]) - but a correct understanding of sizeof
*is* topical, and that's what I'm discussing. All this extraneous
guff is just a side issue.

>
>>>>>> I've worked in environments like that, and found it quite
>>>>>> workable.
>>>>> Now I know why so much C software is crash-prone and generally
>>>>> buggy.
>>
>> Spot the (groundless) personal attack, to which I reacted.
>
> There was no personal attack in my post.

That's called "special pleading". You are claiming that your
personal attacks are merely technical observations, whereas my
merely technical observations are personal attacks. It won't wash.

> Saying that environments
> that ignore a lot of compiler warnings generate buggy code is not
> an attack on any particular person.

Who said anything about ignoring compiler warnings? That is a
complete misunderstanding of the environment in question. The
system works like this:

(a) it's impossible to satisfy every compiler, and code that is
required for eliminating a warning on one compiler may itself cause
a warning on another; therefore, a clean build is not actually
possible in the general case for non-trivial code that must build
on multiple compilers;
(b) rather than strive for the impossible, build the code and look
at the first lot of warnings; resolve the ones that need resolving,
which leaves you with the warnings about code that you know is
correct because you have NOT ignored the warning but used it to
check the code and satisfied yourself that the code is correct;
(c) add the warning to a database of such warnings;
(d) use the database to filter out such warnings on subsequent
compilations.

It's a perfectly reasonable system. It's open to abuse, of course,
by people who add new warnings to the database when what they
should be doing is fixing the code, so the database needs to be
version-controlled and all changes should be peer-reviewed.


>>>> Yes, it's at least partly because there are people who don't
>>>> know
>>>> [rest of personal attacks deleted]
>>> Stop attacking me.
>>
>> For someone who doesn't like personal attacks, you sure like
>> making them.
>
> No, I do not. Stop publicly lying about me.

Well, it wasn't a lie, but it's possible that I was mistaken to
claim that you enjoyed making personal attacks. Nevertheless, you
have clearly made them.

>>> You've said your piece and I've said mine. Move on.
>>
>> I'm already in the right place.
>
> NO. YOU ARE NOT.

I respectfully disagree.

> You've said your piece. It does not bear repeating.

Am I right to interpret this as "Seamus is not interested in
learning the proper semantics of sizeof"?

> MOVE ON.

I'm already in the right place. I /do/ understand the semantics of
sizeof.

>> If you seek the truth, it is you who need to move.
>
> Calling me a liar will not make me friendlier.

I don't believe I've called you a liar. I do believe you do not
understand the truth about sizeof, and this belief is based on what
you have written about it in this thread.

>> That is not a personal attack, you buffoon
>
> Fuck you.

Irony is always dangerous.

>> Okay, so I'll retract "buffoon" - but for heaven's sake, lighten
>> up a little
>
> After you.

I'm not the one who introduced expletives into the discussion. Nor
will I sink to your level by using them myself.

>
>> and before "correcting" people, take the trouble
>
> to send it as private email rather than a public news post? After
> you.

It's more cost-effective to explain the semantics of sizeof in a
public article than to send emails to every single subscriber.

Richard Heathfield

unread,
Jun 1, 2009, 12:36:22 PM6/1/09
to
nick_keigh...@hotmail.com said:

> On 1 June, 11:48, Seamus MacRae <smacrae...@live.ca.invalid>
> wrote:
>> nick_keighley_nos...@hotmail.com attacked as well:
>>

<snip>



>> > It doesn't need to know the value of foo but only the type
>> > of foo.
>>
>> There are variable-length arrays in C99.
>
> yes, you are correct. I tend only to think about C89.

More to the point, the sizeof in question was taking the size of a
struct tm, not a VLA.

> I'm not convinced that variable-length arrays were
> a good idea. And even less convinced that sizeof(vararr)
> was a good idea.

I share your lack of conviction wrt VLAs. Nevertheless, they /are/
part of C99, so when C99 eventually becomes widespread (perhaps in
only a few more decades) it will become important to understand
VLAs.

Seamus MacRae

unread,
Jun 2, 2009, 4:03:52 PM6/2/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>
>> Richard Heathfield wrote:
>>> Ben Pfaff said:
>>>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>>>> Richard Heathfield wrote:
>>>>>>>> Firstly, the preferred idiom is:
>>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>>> thereby invoking undefined behavior.
>>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>>> It must at least partly do so, in order to know what size of
>>>>> thing *foo is referring to.
>>>> No.
>>> If you look at the grandparent article (my reply, to which Seamus
>>> wrote a reply, to which you wrote a reply), you will find
>> Very boring.
>
> You consider [yet another personal attack] to be boring?

Yes, I consider personal attacks to be boring. I thought we were here to
discuss Lisp and Java, not to flame one another. I'm only interested in
the former. Please discuss the former or please go away. Either way
please stop publicly badmouthing me!

Seamus MacRae

unread,
Jun 2, 2009, 4:11:05 PM6/2/09
to
Ben Bacarisse wrote:
> Seamus MacRae <smacr...@live.ca.invalid> writes:
>> Ben Pfaff wrote:
>>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>>> Richard Heathfield wrote:
>>>>>>> Firstly, the preferred idiom is:
>>>>>>>
>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>>>> invoking undefined behavior.
>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>> It must at least partly do so, in order to know what size of thing
>>>> *foo is referring to.
>>> No.
>> Unevaluated, "*foo" is merely a pointer dereference operation. It is
>> not a value whose size may be measured.
>
> That's true: it is not a value at all. It is an expression whose
> size _can_ be measured.

How can you measure the size of something you don't actually have? Don't
forget C99 added variable-length arrays.

> Since you have rejected

I reject any claim that implies that I'm some sort of doofus, especially
if that claim was made publicly.

> I'd like to know what sources of information you _would_ believe.

When the discussion has become a platform for launching personal
attacks, I *won't* believe any information whatsoever that says
something hostile about me. So you can get that idea right out of your
head, right now. I've no interest in "discussing" myself at all -- I
will ignore the subject unless someone else brings it up, and then I
will defend myself to the maximum extent possible, without any
negotiation or compromise. Whether I am, or am not, whatever nasty thing
you may be thinking is not up for debate: I am not, and that is final,
and I will not budge on that score.

Unfortunately, I know that some people seem to consider such an attitude
a challenge or even an affront and will try ever-more-strenuously to
assert forcefully in public their own, negative opinion of me. Be
warned: any who do so become the subjects of complaints to their
internet providers for posting large volumes of off-topic posts, since
that's what they inevitably do if they get a bee in their bonnet about
publicly badmouthing me.

I suggest you just Let. The matter. Drop. instead of pursuing it.

> I.e. where do get your information from, and what do you consider a
> definitive source for resolving questions like this?

There is no question in my mind whatsoever that whatever hostile things
you're thinking about me, and probably plotting to say about me, are not
true in the slightest. You will not convince me otherwise. If you try to
back me into some sort of corner pushing for a public negative
evaluation of me I will shove right back and harder. Perhaps you'd like
a taste of being on the receiving end of the kind of flak you seem to be
contemplating letting loose? Perhaps you'll find out.

Ben Pfaff

unread,
Jun 2, 2009, 4:21:57 PM6/2/09
to
Seamus MacRae <smacr...@live.ca.invalid> writes:

> How can you measure the size of something you don't actually have?

You can know the size of an int without knowing the value of that
int.
--
A bicycle is one of the world's beautiful machines, beautiful machines
are art, and art is civilisation, good living, and balm to the soul.
--Elisa Francesca Roselli

Seamus MacRae

unread,
Jun 2, 2009, 5:09:55 PM6/2/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>> Richard Heathfield wrote:
>>> I am less concerned with attacking you than with debunking
>> I do not need "debunking", thank you very much.
>
> Right

Then please drop this.

NOW!!!

>> Next time, do not "debunk" unsolicited.
>
> If you don't wish for mistakes in your articles to be corrected, you
> have two choices - (a) don't make mistakes, or (b) don't post them.

I go for option (a), always.

> I make mistakes in my articles - and they /do/ get corrected,

> and I'm pleased by that, because it means I get to learn stuff,
> which is good, right?

Are you unconcerned with how you are perceived? I'd think you'd rather
not be publicly humiliated and made to look like an idiot. If that's not
the case, though, it might explain your boorish behavior here, where you
seem unconcerned for the risk that your actions will have that sort of
effect on someone else. If, for some strange reason, you wouldn't mind
it yourself, then perhaps it just didn't occur to you that someone else
*would* mind.

Well, now that you're aware of the possibility, you should know to just
quietly move on now.

>>>>>>> Firstly, the preferred idiom is:
>>>>>>>
>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>> thereby invoking undefined behavior.
>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>> It must at least partly do so, in order to know what size of
>>>> thing *foo is referring to.
>>> It is *forbidden* to do so
>> Then how the heck is it supposed to know what size the thing is
>> it's pointing to?
>
> I think you're confusing

I am not.

I am also not interested in entertaining any more public speculation
about my mental functioning.

Drop it.

Now.

>> Regardless, it's been drilled in repeatedly: if "*foo" is


>> encountered when foo is uninitialized, Bad Things may happen.
>
> Sure - but this isn't *foo; it's sizeof *foo

Which contains *foo as an argument, for heaven's sake.

>>>>>>> Secondly, although all-bits-zero does indeed represent 0.0 or
>>>>>>> NULL on many platforms, it is not guaranteed by the C
>>>>>>> Standard so to do.
>>>>>> Have you ever seen a reasonably modern system where it wasn't?
>>>>> Have you ever seen a reasonably modern system that had
>>>>> precisely the same architecture in all respects as the most
>>>>> common architecture of the previous generation? There are real
>>>>> systems where NULL is not all-bits-zero
>>>> Yes, but are any of them in widespread use?
>>> You missed my point.
>> No, I did not.
>

> Yes

No, and this is not negotiable. I do not miss points. Now move along.

>>>>> and real systems where 0.0 is not all-bits-zero.
>>>> Not IEEE754-compatible ones.
>>> You missed my point.
>> No, I did not. I repeat again: not IEEE754-compatible ones.
>
> If you are prepared to limit yourself to systems that use
> IEEE754-compatible floating point systems, that's your decision to
> make.

Since that's the vast majority of systems in present-day use, it doesn't
seem to be a biggie.

>>>>> In the absence of a guarantee from Silicon Valley that this
>>>>> will never, ever, ever happen again, I will continue to assume
>>>>> the worst when writing code that I need to be maximally
>>>>> portable.
>>>> And I will continue to use Java when writing code that I need to
>>>> be maximally portable. C is for systems-level stuff now. :-)
>>> Fine, you're entitled to think that
>> Don't patronize me.
>
> Firstly, I told you before

I said, don't patronize me. And what's the next thing you do? Patronize me!

Fuck off. You are clearly a complete waste of bandwidth and congenitally
incapable of remaining polite or civil.

> I'm still treating you like an intelligent man

Ordinarily, one does not treat intelligent men as shoddily as you've
treated me. In particular, when an intelligent man requests that you
drop a condescending tone, or drop an entire line of questioning, then
unless you are a police interrogator and he is a murder suspect, you do
so! Any other behavior is extremely impolite.

> That opinion, however, is beginning to change.

Is that a threat?

Actually, I frankly don't care about your opinion of me, just so long as
you don't broadcast it loudly but keep it to yourself as a polite person
would.

If you have a negative opinion of me, please keep it to yourself and
ignore me. If you have a positive opinion of me, then feel free to not
insult me in public.

>> Please go look in a mirror and adjust that attitude you're wearing.
>

> "Please" is a good start [rest of patronizing crap deleted]

Either discuss the original subject matter or remain silent please.

>>>> Do not personally attack me or accuse me of intellectually
>>>> dishonest behavior again. You have been warned.
>>> It wasn't a personal attack
>> Like hell it wasn't. You publicly berated me
>
> Actually, I

Actually, I'm not interested in your explanations or excuses. I'm
interested in two things:

1. Shutting down this unwelcome and off-topic inquiry into the status
of my mental functioning, and
2. Getting an apology, if one might be forthcoming, though I will
settle for complete silence instead.

> the nature of your misunderstanding has been made crystal clear.

Shall I repeat what I just said? About the unwelcome nature of any
further public inquiry into my mental functioning?

I understand perfectly. I do not, however, agree with your stated
opinions of me, and I will not ever agree with them.

You cannot gain anything by continuing this. If you drop the subject
now, we both walk away and get on with our lives. If you continue to
publicly insinuate various unpleasant things about my mental
functioning, you will be in for a world of shit. You'll get at least as
good as you give and will likely lose your usenet access in the bargain.

It's your choice.

>> and implied in front of a large audience that I was stupid and/or
>> incompetent.
>
> No

Yes. Publicly insulting me was bad enough. Now you have the gall to lie
about it?

>> What the hell is the MATTER with you?
>
> Nothing, really. What is the matter with you

Nothing. And that is final.

I am not interested in discussing or negotiating or anything like that.
My stance regarding my own mental functioning is firm, and you will not
budge it. You will only let yourself in for a nasty and pointless
flamewar if you insist on continuing to poke into a subject matter where
you have been warned repeatedly now that you're not welcome.

>> And with several other people in these newsgroups?
>

> "It was a terrible parade. [rest deleted]

Parades are not on topic here.

>>> You are taking this far too personally.
>> That isn't for you to decide.
>
> True enough. I will rephrase. I *believe* you are taking this far
> too personally.

Irrelevant. If I say I don't welcome a continued discussion of me in
public, then the subject is closed, whether or not you would mind if our
positions were reversed.

When it's your mental competence that's being discussed in public, then
it's your turn to decide the same things.

Fair's fair.

>>> This is a discussion, not a lawsuit.
>> It's not a polite discussion, and it hasn't been since you started
>> making things personal.
>
> It could be polite. I am doing my best to remain polite, and I think
> that mostly I'm succeeding.

You're not succeeding.

To remain fully polite, you will need to avoid mentioning or implying
anything at all negative about me. This could be accomplished by
remaining silent, by being full of praise for me, or by discussing
something other than me and avoiding saying or implying anything about
me while doing so.

>> You made several nasty errors:
>> 1. You nitpicked a post of mine. Bad move.
>
> I corrected

You nitpicked where no nitpicking was welcome. Don't do it again.

>> 2. Then when I responded to smooth things over,
>
> I don't recall your trying to smooth things over.

Yes. In <MYWdnboGP7QDyb3X...@bt.com> you nitpicked me,
apparently unaware that the correct response to my post was to either
leave it alone or agree.

In <gvss9q$nff$1...@news.eternal-september.org> I responded in such a way
that you could have just left that post to stand unmolested and
everything would have been fine. Instead, you attacked and here we are now.

Given that you had several opportunities to leave me alone and chose
instead to blast me with increasingly-stronger shots each time, I have
to conclude that you want a fight.

Now I am warning you that a fight with me will end very badly for you.

>> you replied with
>> a more direct and serious attack instead of letting sleeping
>> dogs lie. Big mistake.
>
> Again, got a msg-ID?

Yes: <LqCdnVrkBr9Qpb_X...@bt.com>

This you should definitely never have posted.

> My own recollection is that you appeared to continue to
> misunderstand

I HAVE NO INTEREST IN CONTINUING TO DISCUSS YOUR OPINION OF MY MENTAL
FUNCTIONING. HAVE I MADE MYSELF CLEAR?

Why are you so unwilling to respect multiple boundaries?

1. The topic bounds. These newsgroups are for discussing programming,
not people.
2. The personal boundaries around one another. You do not publicly
speculate about another person's mental functioning without
permission! Jeezus.
3. The relevance bounds. The arguments about Lisp vs. Java,
emacs vs. Eclipse, and Seed7 warnings, and the original
job-search topics, all have relevance bounds. My mental
functioning is irrelevant to all of those topics. The only
person whose mental functioning might be relevant to any of them
is Robert Maas, the original job-seeker.

>> 3. You continued to not back down when I continued to try to
>> reset things to the appropriate state so that the
>> discussion could move on in other directions.
>
> Why would I back down from a correct position?

I refer to your arguments about my mental functioning. You hold certain
*opinions* there. They are not "correct" in my opinion, and they are not
matters of fact regardless. Those opinions are what you should back down
from. Instead you seem determined both to air them far and wide and to
defend them aggressively.

This might be okay if those opinions were on a neutral subject matter,
say, abortion or gun control. But those opinions are about a particular
other person, which means that he ought to have at least some say in
whether and how you blather about him in public.

And I say you are to stop discussing me in public altogether. Killfile
me if you must, but henceforth, please pretend that I do not exist. That
means if you see a post by me, it does not exist so you will not post a
followup. If you hold an opinion about me, it does not exist so you will
not post mentioning it or implying it.

I hope I've made myself clear enough this time.

>> Don't do that!
>
> You don't get to control my actions.

Ordinarily, no, but when your actions include making public statements
about me, my rights of privacy and publicity enter into it, and I say I
don't want you discussing me in public.

Really, I am none of your business anyway so you have no good reason to
be doing so; and I am off-topic in all three of these newsgroups so you
certainly have some very good reasons not to be doing so in this thread,
regardless.

>> If you nitpick at something someone said and they
>> respond in their own defense, leave it at that.
>
> You don't get to control my actions.

You're missing the point. I am attempting to explain rules of polite
society to you that apparently you don't get. You don't keep pressing
someone that clearly doesn't want a fight. You leave them alone.

> If you screw up

That never happens.

If it ever did, then you should certainly not keep aggressively poking
at someone who is trying to save face. That's how big, nasty fights
start, when someone disrespects someone else's right to be left alone.

>> You'll have said
>> your opinion, they'll have said theirs, and everyone can move on.
>
> You can move on any time you like. Nobody forces you to respond.

Oh, is that what this is about? You keep posting because you have a
childish insistence on having the last word? How disappointing.

>> If, instead, you respond by restating your opinion more
>> forcefully, it starts a fight instead, and nobody benefits from
>> that.
>
> If someone (anyone, not just you) disagrees with a point I've made
> in an article, either they are right (in which case I'm wrong and
> I'd like to know about it), or they are not right (in which case it
> may be worth trying to put things in a way that is easier to
> grasp)

Insulting. I think you should be thinking "worth trying to put things in
a way that preserves both sides' dignity", don't you? Or does the
dignity of other people not concern you?

I'm getting a very disturbing picture here: that you are not willing to
agree to disagree on any subject, nor do you care about preserving the
dignity of others.

> In this case, you [insult deleted]

I repeat: I am not interested in your opinion of me. Neither is anyone
else. Don't. Post it. Again.

> you didn't seem to see why

I see exactly why you hold your opinion of me. I also don't give a shit.
My concern is with your *posting that opinion in public*, and posting
things apparently designed to induce *other people to develop the same,
negative opinion*. You can surely understand why I don't want that
happening, particularly the latter part.

What I don't understand is why you seem to be insistent that that
happen, and that I not be permitted to speak up in my own defense?

Really, I just want to be left alone.

If, after this post, you continue to harass me, I will have to conclude
that your purpose is in fact to start a fight. There is no other
explanation for someone posting an attack post in response to "I just
want to be left alone", after all.

> I have even now not made it clear enough (although the middle part
> of this reply is another attempt).

Your opinion is crystal clear. I hope by now so is mine: I do not want
you to make yours even clearer. I want you to drop the subject and leave
me in peace.

>>> I described your argument as a strawman argument because
>> you're an asshole. Yes, yes, I know.
>
> Selective quotation

Please do not change the subject.

>>> your flawed understanding
>>> led you to believe, mistakenly
>> Stop personally-attacking me at once.
>
> Firstly, I'm not personally attacking you.

Yes, you are. You are publicly calling my intelligence into question.
That is an insult. It's the same as if you posted "Seamus MacRae is an
idiot" on the billboard at Times Square.

How would you like it if someone put "Richard Heathfield is an idiot" on
there?

I'm guessing you wouldn't.

Please let this entire matter just drop, for both of our sakes.

> I am having a discussion on Usenet.

You are discussing a person in public without that person's consent.
That is a no-no.

> Secondly, I am sure you would agree that you are wholly
> entitled to make your own choice about whether to take part in, or
> to withdraw from, this discussion.

Then I choose to withdraw from it, by which is meant my name will not
appear any further in it, which in turn means you do not talk about me
and you do not follow up to one of my posts.

Is that clear?

Otherwise, I am "taking part" by being mentioned or quoted in it,
against my will and in violation of that very entitlement that you just
admitted I possess.

>> You will not again use the
>> words "flawed" or "mistaken" to describe me in public. Do I make
>> myself clear?
>

> You make yourself perfectly clear, but [insults deleted]


> You don't get to decide what I write.

Fuck you.

Obviously, you understand me perfectly and are explicitly refusing to
leave me alone.

Fine. If you want a fight, let's fight.

Your mother is so fat, she is required by law to wear a "wide load" sign
and beep when she backs up.

Your turn.

>> Leave. Me. Alone.
>
> If you don't wish to communicate with me, you can stop doing so at
> any time.

I don't wish to be communicated ABOUT in public by you.

>> These newsgroups are for discussing programming, not people. I am
>> off-topic here.
>
> I agree

Then stop talking about me!

> sizeof *is* topical, and that's what I'm discussing.

Get real. This stopped being about "sizeof" several posts ago when you
decided to make things personal.

> All this extraneous guff is just a side issue.

All this "extraneous guff" is what actually matters to me. If you
consider it a mere "side issue" then that's another reason for you to
drop this thread and move on -- topic drift has taken it outside of your
area of interest.

>>>>>>> I've worked in environments like that, and found it quite
>>>>>>> workable.
>>>>>> Now I know why so much C software is crash-prone and generally
>>>>>> buggy.
>>> Spot the (groundless) personal attack, to which I reacted.
>> There was no personal attack in my post.
>
> That's called "special pleading".

No, it's called pointing out that insulting software is not insulting a
human being, and therefore is not a personal attack. For it to have been
a *personal* attack it would have had to imply something negative about
some specific *person*.

>> Saying that environments
>> that ignore a lot of compiler warnings generate buggy code is not
>> an attack on any particular person.
>
> Who said anything about ignoring compiler warnings?

You did. That's what "environments like that" was in reference to,
remember? Workplaces that actually do diffs on the compiler warnings and
only pay attention to new ones, thus ignoring lots of other warnings,
rather than attempting to get a clean build.

> That is a complete misunderstanding

And there you go again, making things personal and publicly accusing me
of idiocy!

Fuck you.

I've had it with you. You pretend to some kind of civilized character
but your real objective is simply to go around badmouthing anyone you
disagree with, have the last word in any discussion, and generally shove
your weight around. How old are you, about three?

> (a) it's impossible to satisfy every compiler, and code that is
> required for eliminating a warning on one compiler may itself cause
> a warning on another; therefore, a clean build is not actually
> possible in the general case for non-trivial code that must build
> on multiple compilers;

Doesn't follow. Ever heard of #ifdef and its friends? Conditional
compilation means being able to satisfy multiple compilers, and produce
more portable code.

>>>>> Yes, it's at least partly because there are people who don't
>>>>> know
>>>>> [rest of personal attacks deleted]
>>>> Stop attacking me.
>>> For someone who doesn't like personal attacks, you sure like
>>> making them.
>> No, I do not. Stop publicly lying about me.
>
> Well, it wasn't a lie, but it's possible that I was mistaken to
> claim that you enjoyed making personal attacks.

That you were.

> Nevertheless, you have clearly made them.

I have *now*, when you continued to publicly badmouth me. You asked for
it, you got it. Now, are you ready to quit, or are you thirsty for more?

>>>> You've said your piece and I've said mine. Move on.
>>> I'm already in the right place.
>> NO. YOU ARE NOT.
>
> I respectfully disagree.

Respect? That's a joke. You've shown no respect for my wishes, for my
boundaries, or for any of the three newsgroups' topic boundaries, at
least thus far.

>> You've said your piece. It does not bear repeating.
>
> Am I right to interpret this as "Seamus is not interested in

You are right to interpret this as "Seamus is not interested in
continuing this discussion, or in being the subject of any discussion in
which you participate".

>> MOVE ON.
>
> I'm already in the right place.

No. See above.

>> Calling me a liar will not make me friendlier.
>
> I don't believe I've called you a liar.

Implied it, at any rate.

> I do believe you do not understand the truth [snip]

Your opinion has been noted and logged. Now here's a quarter. (%)

Go call someone who gives a damn.

> this belief is based on what you have written

I don't care what your beliefs are based on, because I don't care about
your beliefs, except insofar as your publicly broadcasting them might
help or harm me.

>>> That is not a personal attack, you buffoon
>> Fuck you.
>
> Irony is always dangerous.

So is a complaint to your internet provider for flooding three
newsgroups with offtopic drivel.

>>> Okay, so I'll retract "buffoon" - but for heaven's sake, lighten
>>> up a little
>> After you.
>
> I'm not the one who introduced expletives into the discussion.

You are, however, the one who introduced rudeness, personal innuendos,
and an unwillingness to leave things alone.

> Nor will I sink to your level

My God, are you really trying to claim the moral high ground now? How
utterly ridiculous. It's never available at any price to the guy that
shot first, so you can give up on that idea right quick.

>>> and before "correcting" people, take the trouble
>> to send it as private email rather than a public news post? After
>> you.
>

> It's more cost-effective to xxx in a public article than to send


> emails to every single subscriber.

I was, of course, suggesting that you send your insults *privately*, to
me only, instead of airing them in public *at all*, but apparently you
have once again missed the point. Probably, this time, deliberately.

Your implied threat of emailing a large number of random people with
letters badmouthing me by name is, of course, a very bad idea. If you
actually do that you will lose your internet account so fast your head
will spin. Unsolicited bulk mail is frowned upon by most service
providers nowadays, and at the first sign that you did anything like
that I'd report you as a spammer.

Anyway, I guess it's now your move. Will you decide to leave things be,
and consider this match a draw, or are you determined to win (or maybe
just to get the last word) even though you risk losing by pressing
things? We shall see.

Seamus MacRae

unread,
Jun 2, 2009, 5:12:15 PM6/2/09
to
nick_keigh...@hotmail.com wrote:
> On 1 June, 11:48, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
>> nick_keighley_nos...@hotmail.com attacked as well:
>>> On 31 May, 18:43, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
>>>> Richard Heathfield wrote:
>>>>>>> Firstly, the preferred idiom is:
>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>> Surely not? That dereferences an uninitialized pointer, thereby
>>>>>> invoking undefined behavior.
>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>> It must at least partly do so, in order to know what size of thing *foo
>>>> is referring to.
>>> no.
>> Yes. See other posts.
>
> Panto Time! Look out behind you!

Non-sequitur.

> Ah, well there is no point in arguing with the man who won't listen.

Then please don't.

> I merely adress the massed ranks of the Lurkers.

Not about me, you don't, not if you know what's good for you.

Seamus MacRae

unread,
Jun 2, 2009, 5:13:55 PM6/2/09
to
Richard Heathfield wrote:
> nick_keigh...@hotmail.com said:
>> On 1 June, 11:48, Seamus MacRae <smacrae...@live.ca.invalid>
>> wrote:
>>> nick_keighley_nos...@hotmail.com attacked as well:
>>>> It doesn't need to know the value of foo but only the type
>>>> of foo.
>>> There are variable-length arrays in C99.
>> yes, you are correct. I tend only to think about C89.
>
> More to the point
[snip]

No points here. Move on.

Richard Heathfield

unread,
Jun 2, 2009, 5:54:50 PM6/2/09
to
Seamus MacRae said:

> Richard Heathfield wrote:
>> Seamus MacRae said:
>>
>>> Richard Heathfield wrote:
>>>> Ben Pfaff said:
>>>>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>>>>> Richard Heathfield wrote:
>>>>>>>>> Firstly, the preferred idiom is:
>>>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>>>> thereby invoking undefined behavior.
>>>>>>> Surely not! The sizeof operator does not evaluate its
>>>>>>> operand
>>>>>> It must at least partly do so, in order to know what size of
>>>>>> thing *foo is referring to.
>>>>> No.
>>>> If you look at the grandparent article (my reply, to which
>>>> Seamus wrote a reply, to which you wrote a reply), you will
>>>> find
>>> Very boring.
>>
>> You consider [yet another personal attack] to be boring?

Incorrect elision.

> Yes, I consider personal attacks to be boring.

It wasn't intended as a personal attack. Nevertheless, you seem to
be taking it that way. If you consider what you think to be
personal attacks to be boring, why do you discuss them so much?

> I thought we were here to discuss Lisp and Java,

I thought we were here to discuss programming. (Hint: this is
cross-posted to comp.programming.)

> not to flame one another.

I haven't flamed you. I haven't even /begun/ to turn up the heat.
(You have, by introducing expletives.) I have done only two things
in this subthread: (a) tried to explain the semantics of sizeof to
you, and (b) played a straight bat against your histrionics.

> I'm only interested in the former. Please discuss the former or
> please go away. Either way please stop publicly badmouthing me!

I /am/ discussing programming - specifically, sizeof. What I am not
doing is badmouthing you. You're doing that yourself.

Richard Heathfield

unread,
Jun 2, 2009, 5:58:04 PM6/2/09
to
Seamus MacRae said:

> Ben Bacarisse wrote:
>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>> Ben Pfaff wrote:
>>>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>>>> Richard Heathfield wrote:
>>>>>>>> Firstly, the preferred idiom is:
>>>>>>>>
>>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>>> thereby invoking undefined behavior.
>>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>>> It must at least partly do so, in order to know what size of
>>>>> thing *foo is referring to.
>>>> No.
>>> Unevaluated, "*foo" is merely a pointer dereference operation.
>>> It is not a value whose size may be measured.
>>
>> That's true: it is not a value at all. It is an expression whose
>> size _can_ be measured.
>
> How can you measure the size of something you don't actually have?

By knowing its type.

> Don't forget C99 added variable-length arrays.

Right, but that's irrelevant to the case in point.

>> Since you have rejected
>
> I reject any claim that implies that I'm some sort of doofus,
> especially if that claim was made publicly.

The C Standard doesn't even mention you, let alone call you a
doofus.

>
>> I'd like to know what sources of information you _would_ believe.
>
> When the discussion has become a platform for launching personal
> attacks, I *won't* believe any information whatsoever that says
> something hostile about me.

As far as I'm aware, the C Standard says nothing whatsoever about
you in any way, shape or form, let alone anything hostile.

> So you can get that idea right out of
> your head, right now. I've no interest in "discussing" myself at
> all -- I will ignore the subject unless someone else brings it up,

Great! So we can talk about sizeof without reference to
personalities. That works for me.

> and then I will defend myself to the maximum extent possible,
> without any negotiation or compromise. Whether I am, or am not,
> whatever nasty thing you may be thinking is not up for debate: I
> am not, and that is final, and I will not budge on that score.

I am delighted to hear it, and would not contradict you for the
world. Nevertheless, this discussion is *not* about you. It's about
sizeof.

<big ol' snip>

Kaz Kylheku

unread,
Jun 2, 2009, 6:39:10 PM6/2/09
to
On 2009-06-02, Richard Heathfield <r...@see.sig.invalid> wrote:
> The C Standard doesn't even mention you, let alone call you a
> doofus.

You're arguing with a mentally ill individual who believes that all expression
of disagreement constitutes a personal attack.

There is no way you can word a paragraph which disagrees with a statement he
made in such a way that it will not be construed as a personal attack,
and used as an opportunity to start another subthread about this favorite
subject of his.

His recommendation (as he explicitly stated in another article) is that when
you disagree with something, you should just let it be. One person has said his
piece, the other has said his, and leave it at that. That is how you avoid
making an attack.

And yet he insists that he wants to be part of a debate (whatever that
means, without the possibility of proper disagreement).

I.e. he expects to be granted a waiver from all of Usenet, allowing him the
privilege of having the last word, regardless of what B.S. he posts.

Good luck.

Richard Heathfield

unread,
Jun 2, 2009, 6:51:02 PM6/2/09
to
Kaz Kylheku said:

> On 2009-06-02, Richard Heathfield <r...@see.sig.invalid> wrote:
>> The C Standard doesn't even mention you, let alone call you a
>> doofus.
>
> You're arguing with a mentally ill individual who believes that
> all expression of disagreement constitutes a personal attack.
>

<snip>

> I.e. he expects to be granted a waiver from all of Usenet,
> allowing him the privilege of having the last word, regardless of
> what B.S. he posts.
>
> Good luck.

The last word is "zymotic", according to my dictionary. Since I'm
not into homebrew, I rarely have need for it, so it's really just
cluttering up the place. If he wants it, he can have it.

MarkH

unread,
Jun 2, 2009, 9:34:53 PM6/2/09
to
Your ISP has been notified of your mental disturbance. Now stop the
personal attacks Seamus!, and admit that Common Lisp is better than
Java. You've been warned! Don't allow your mental malfunctions to
further hurt you.

> Yes. In <MYWdnboGP7QDyb3XnZ2dnUVZ8uGdn...@bt.com> you nitpicked me,


> apparently unaware that the correct response to my post was to either
> leave it alone or agree.
>

> In <gvss9q$nf...@news.eternal-september.org> I responded in such a way


> that you could have just left that post to stand unmolested and
> everything would have been fine. Instead, you attacked and here we are now.
>
> Given that you had several opportunities to leave me alone and chose
> instead to blast me with increasingly-stronger shots each time, I have
> to conclude that you want a fight.
>
> Now I am warning you that a fight with me will end very badly for you.
>
> >> you replied with
> >>     a more direct and serious attack instead of letting sleeping
> >>     dogs lie. Big mistake.
>
> > Again, got a msg-ID?
>

> Yes: <LqCdnVrkBr9Qpb_XnZ2dnUVZ8redn...@bt.com>

thomas...@gmx.at

unread,
Jun 3, 2009, 5:17:33 AM6/3/09
to
On 2 Jun., 23:09, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> Richard Heathfield wrote:
> > Seamus MacRae said:
> >> Richard Heathfield wrote:
> >>>>>>> Firstly, the preferred idiom is:
>
> >>>>>>> struct tm *foo = calloc(sizeof *foo);
> >>>>>> Surely not? That dereferences an uninitialized pointer,
> >>>>>> thereby invoking undefined behavior.
> >>>>> Surely not! The sizeof operator does not evaluate its operand
> >>>> It must at least partly do so, in order to know what size of
> >>>> thing *foo is referring to.
> >>> It is *forbidden* to do so
> >> Then how the heck is it supposed to know what size the thing is
> >> it's pointing to?
> > I think you're confusing
> I am not.

The compile time operator 'sizeof' determines the size of a
given variable, constant or type at compile time. This is done
by using the type of the variable or constant or by using the
given type. The compiler knows the sizes of most data
structures. When the size cannot be determined at compile
time the sizeof operator cannot do something reasonable.
E.g.: When using void * pointers the size of the destination
of a void pointer cannot be reasonable determined at compile
time since the compiler cannot know where the void pointer
points to. I am not sure what you get for 'sizeof(void)' but
this will probably not be something you want to use. Since
'sizeof' is executed at compile time there is nothing that can
be executed at runtime. The compiler replaces the sizeof
expression by an unsigned integer of type size_t.

E.g.: When the structure ' tm' is defined as:

struct tm {
char ch[8];
};

The expression

struct tm *foo = malloc(sizeof *foo);

is probably equivalent to something like

struct tm *foo = malloc(8);

Note that I used 'malloc' instead of 'calloc', since 'calloc'
usually has two parameters.

The explanation above refers to K&R C and to C89.

Richard Heathfield

unread,
Jun 3, 2009, 6:07:35 AM6/3/09
to
Seamus MacRae said:

> Richard Heathfield wrote:
>> Seamus MacRae said:
>>> Richard Heathfield wrote:
>>>> I am less concerned with attacking you than with debunking
>>> I do not need "debunking", thank you very much.
>>
>> Right
>
> Then please drop this.
>
> NOW!!!

You are good at removing context. Note that what I actually said
was: "Right, but the claim you made was incorrect, and *did* need
debunking."

>>> Next time, do not "debunk" unsolicited.


>>
>> If you don't wish for mistakes in your articles to be corrected,
>> you have two choices - (a) don't make mistakes, or (b) don't post
>> them.
>
> I go for option (a), always.

This sub-thread contains a counter-example, in which you made a
mistake with regard to sizeof.

>> I make mistakes in my articles - and they /do/ get corrected,
>> and I'm pleased by that, because it means I get to learn stuff,
>> which is good, right?
>
> Are you unconcerned with how you are perceived? I'd think you'd
> rather not be publicly humiliated and made to look like an idiot.

You think getting sizeof right makes me look like an idiot? Well,
okay, but in that case what does getting it wrong make you look
like?

> If that's not the case, though, it might explain your boorish
> behavior here, where you seem unconcerned for the risk that your
> actions will have that sort of effect on someone else. If, for
> some strange reason, you wouldn't mind it yourself, then perhaps
> it just didn't occur to you that someone else *would* mind.

It didn't occur to me that anyone would object to learning something
relevant to their profession that they didn't know before. And yet
here you are.

> Well, now that you're aware of the possibility, you should know to
> just quietly move on now.

This is Usenet. I don't have to move anywhere. I can just sit right
here. What do /you/ mean by the metaphor "move on"? Do you mean
"quietly forget that Seamus MacRae doesn't understand sizeof and
has his fingers in his ears on the subject"? If so, well, I'm
prepared to do that. What I'm not prepared to do is accede to what
I consider (rightly or wrongly) to be attempts at threatening
language (do this, do that, don't do this, don't do that, capital
letters, "you have been warned", etc). I don't respond well to
threats, so if you write in a way that I perceive to be threatening
it is very unlikely to have the desired effect.

>>>>>>>> Firstly, the preferred idiom is:
>>>>>>>>
>>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>>> thereby invoking undefined behavior.
>>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>>> It must at least partly do so, in order to know what size of
>>>>> thing *foo is referring to.
>>>> It is *forbidden* to do so
>>> Then how the heck is it supposed to know what size the thing is
>>> it's pointing to?
>>
>> I think you're confusing
>
> I am not.

Then you must be confused.

>
> I am also not interested in entertaining any more public
> speculation about my mental functioning.

Fine, but I used the word in passing (in what I consider to be a
legitimate way); it was you who pointed it out for special mention.
So it seems to me that you are interested in precisely that
subject. I'm not. I'm interested in sizeof.

> Drop it.

You don't get to control my actions, remember?

> Now.

I get to decide what I do and when I do it, remember?

>
>>> Regardless, it's been drilled in repeatedly: if "*foo" is
>>> encountered when foo is uninitialized, Bad Things may happen.
>>
>> Sure - but this isn't *foo; it's sizeof *foo
>
> Which contains *foo as an argument, for heaven's sake.

No, it doesn't. In sizeof *foo, *foo is the /operand/ of sizeof, not
its argument. Arguments are, by definition, evaluated. Operands
need not be.

I know from experience that you don't take a lot of notice of proof,
but here it is anyway. It proves you wrong by definition, so even
if it doesn't convince you it may convince other readers of this
subthread:

Firstly, we have the C Standard's definition of operators (C89
numbering, but I can easily find all this in C99 if required):

3.1.5 Operators

Syntax

operator: one of
[ ] ( ) . ->
++ -- & * + - ~ ! sizeof
/ % << >> < > <= >= == != ^ | && ||
? :
= *= /= %= += -= <<= >>= &= ^= |=
, # ##


Note the presence of sizeof in the list. So sizeof is an operator.
(Then there are some constraints which needn't concern us because
they're about paired operators and macro directives, so I've left
them out.) Next we have:

Semantics

An operator specifies an operation to be performed (an evaluation )
that yields a value, or yields a designator, or produces a side
effect, or a combination thereof. An operand is an entity on which
an operator acts.

Since sizeof operates on *foo, *foo is the operand of sizeof.

The word "argument" is defined by the Standard separately. It means:
"an expression in the comma-separated list bounded by the
parentheses in a function call expression, or a sequence of
preprocessing tokens in the comma-separated list bounded by the
parentheses in a function-like macro invocation. Also known as
``actual argument'' or ``actual parameter.''


Since sizeof *foo isn't a macro invocation or a function call
expression, *foo can't be an argument to sizeof. QED.

>>>>>>>> Secondly, although all-bits-zero does indeed represent 0.0
>>>>>>>> or NULL on many platforms, it is not guaranteed by the C
>>>>>>>> Standard so to do.
>>>>>>> Have you ever seen a reasonably modern system where it
>>>>>>> wasn't?
>>>>>> Have you ever seen a reasonably modern system that had
>>>>>> precisely the same architecture in all respects as the most
>>>>>> common architecture of the previous generation? There are
>>>>>> real systems where NULL is not all-bits-zero
>>>>> Yes, but are any of them in widespread use?
>>>> You missed my point.
>>> No, I did not.
>>
>> Yes
>
> No, and this is not negotiable. I do not miss points. Now move
> along.

You don't get to control my actions. You have snipped the
explanation I gave of why I considered you to have missed my point.

>>>>>> and real systems where 0.0 is not all-bits-zero.
>>>>> Not IEEE754-compatible ones.
>>>> You missed my point.
>>> No, I did not. I repeat again: not IEEE754-compatible ones.
>>
>> If you are prepared to limit yourself to systems that use
>> IEEE754-compatible floating point systems, that's your decision
>> to make.
>
> Since that's the vast majority of systems in present-day use, it
> doesn't seem to be a biggie.

Things change. What seems ubiquitous today can become niche market
tomorrow. Anyone remember DEC VAX?

>
>>>>>> In the absence of a guarantee from Silicon Valley that this
>>>>>> will never, ever, ever happen again, I will continue to
>>>>>> assume the worst when writing code that I need to be
>>>>>> maximally portable.
>>>>> And I will continue to use Java when writing code that I need
>>>>> to be maximally portable. C is for systems-level stuff now.
>>>>> :-)
>>>> Fine, you're entitled to think that
>>> Don't patronize me.
>>
>> Firstly, I told you before
>
> I said, don't patronize me. And what's the next thing you do?
> Patronize me!

Firstly, no, I wasn't patronising you; I was explaining to you. It's
not immediately clear what I was explaining to you because you
snipped it and I can't be bothered to check back. Secondly, just
because you tell me to do something (or refrain from doing
something), that doesn't put me under any obligation to obey you.

> Fuck off. You are clearly a complete waste of bandwidth and
> congenitally incapable of remaining polite or civil.

You are the one who's swearing, not me.

>
>> I'm still treating you like an intelligent man
>
> Ordinarily, one does not treat intelligent men as shoddily as
> you've treated me.

Intelligent men do not react in the way you react. I have therefore
changed my opinion of you.

> In particular, when an intelligent man requests
> that you drop a condescending tone,

I haven't even reached for my condescending tone during this whole
conversation so far. Nevertheless, you tempt me to reach for it.

> or drop an entire line of questioning,

I haven't /had/ a line of questioning. I've pointed out a mistake in
your understanding of sizeof. You are the one who is prolonging
this discussion by continuing to insist that you were not mistaken.
Each time you post anything that amounts to such a claim, it's a
mistake, and mistakes that are posted to Usenet do tend to get
corrected. If you don't want me to correct your mistakes, the best
way to achieve that would be either to stop making them or at least
stop posting them. Your call, however - you do what you like. And
so do I.


> then unless you are a police interrogator and he is a
> murder suspect, you do so! Any other behavior is extremely
> impolite.

Do you consider swearing to be extremely impolite? I do. And you are
losing 2-0 on expletives, let alone on strident demands (I've lost
count of the number of those you've made in this subthread).

>
>> That opinion, however, is beginning to change.
>
> Is that a threat?

It doesn't look like one to me. It just says that I was revising my
opinion of your intelligence (downwards). Intelligent people are
capable of learning, but you have shown little sign of this with
regard to the subject of this discussion, i.e. sizeof, so it's not
unnatural for me to reconsider, say, my use of polysyllables.
Having said that, it's hard to say "operator" in one syllable,
isn't it? So I'm kinda stuck as to how to explain sizeof in a way
you have a reasonable chance of understanding.


> Actually, I frankly don't care about your opinion of me,

Neither do I. But I /do/ care about the public understanding of
sizeof, which is what I'm trying to discuss in this thread and
which you appear to me to be making every effort to avoid
discussing. You are devoting far more typing to your reaction to
what you perceive to be my opinion of you than you are to the
actual subject at hand.

> just so
> long as you don't broadcast it loudly but keep it to yourself as a
> polite person would.

By prolonging the discussion of your behaviour, you are making its
continuation more likely. If that's what you want (despite what you
say), fine. If it's not what you want, you might want to consider
what effective action /you/ can take to stop it.

> If you have a negative opinion of me, please keep it to yourself
> and ignore me. If you have a positive opinion of me, then feel
> free to not insult me in public.
>
>>> Please go look in a mirror and adjust that attitude you're
>>> wearing.
>>
>> "Please" is a good start [rest of patronizing crap deleted]

3-0, if that's considered an expletive (as it is by many). But what
I said was not patronising. It was a carefully measured point -
that you've dug a big hole and "please" is a short ladder. If you
want a civil discussion, you are going to have to work at it by
being civil. Unmarked snippage and selective quotation are not
civil behaviour. Nor is the use of expletive.

> Either discuss the original subject matter or remain silent
> please.

I'm trying to discuss the original subject matter that spawned this
subthread - sizeof - but you seem remarkably reluctant to
contribute, which is why that part of the conversation is all but
dead, despite my attempts to keep it going. You seem determined to
prolong all this extraneous discussion about *you*, which I find
terribly tedious and which I'd be as happy to drop if only you
would stop making all these ridiculous claims.

>
>>>>> Do not personally attack me or accuse me of intellectually
>>>>> dishonest behavior again. You have been warned.
>>>> It wasn't a personal attack
>>> Like hell it wasn't. You publicly berated me
>>
>> Actually, I
>
> Actually, I'm not interested in your explanations or excuses.

That reaction leads me to suspect that you're not interested in
truth or reasoning. Am I wrong? If so, it's easy to prove it, but
you haven't yet done so.

> I'm interested in two things:
>
> 1. Shutting down this unwelcome and off-topic inquiry into the
> status of my mental functioning, and

But I have made no such enquiry. It is not I who turned this
discussion of sizeof into a slanging match.

> 2. Getting an apology, if one might be forthcoming, though I will
> settle for complete silence instead.

You certainly won't get an apology, because I don't make a habit of
apologising for being right about sizeof. As for complete silence,
continuing to make a noise is not the right way to achieve complete
silence, so why do you continue to post?

>
>> the nature of your misunderstanding has been made crystal clear.
>
> Shall I repeat what I just said? About the unwelcome nature of any
> further public inquiry into my mental functioning?

You can if you like, but it won't make any difference to your
misunderstanding of sizeof. Duh.

> I understand perfectly.

And yet you think that, in sizeof *foo, *foo is an argument of
sizeof, and which is evaluated. That is badly wrong in two major
respects, both of which have been pointed out to you with reference
to the International Standard that defines the language.

> I do not, however, agree with your stated
> opinions of me, and I will not ever agree with them.

I can live with that. I'm not asking you to agree with what you
consider to be my stated opinions of you. Nor am I even asking you
to agree with my actual opinions of you.

> You cannot gain anything by continuing this.

All I am continuing is a discussion of sizeof in a programming
forum. If you wish to partake in that discussion, you are free to
do so. If you don't, why do you still post? Again, that's your
decision, but it does seem to be rather an odd decision.

> If you drop the subject now, we both walk away and get on with our
> lives.

The subject is sizeof. I don't know why you continue to introduce
extraneous material, but I would prefer it if you didn't do that.
And I have no intention of dropping the sizeof subject at this time
(although of course I will drop it eventually - all Usenet threads
die eventually).

> If you
> continue to publicly insinuate various unpleasant things about my
> mental functioning, you will be in for a world of shit.

Firstly, what you infer is your responsibility, not mine. I have
actually said very little about you in this thread, and I'd far
rather talk about sizeof. Secondly, as I believe I told you before,
I don't respond well to threats.

> You'll get
> at least as good as you give

When, for pity's sake? So far, I've been giving great stuff on
sizeof and all I've had back is this personal stuff, which I don't
want and don't care about. What I'd like is to find out your
technical justification for believing what you do believe about
sizeof - that is, I'd like to discuss the actual issue please. If
you can confine your discussion to that, I'll be getting as good as
I give. Up to now, however, I have been sorely disappointed on that
score.

> and will likely lose your usenet access in the bargain.

That isn't going to happen, for at least two reasons:

1) I haven't done anything wrong, as the record will show;
2) Nowadays, ISPs mostly don't care anyway, not even about spam -
they should, but they don't.

> It's your choice.

I choose to discuss sizeof, which does not evaluate its operand.

>>> and implied in front of a large audience that I was stupid
>>> and/or incompetent.
>>
>> No
>
> Yes. Publicly insulting me was bad enough. Now you have the gall
> to lie about it?

Pointing out that you are mistaken is not the same as saying you are
stupid or incompetent. Nor do you get to decide what I imply. You
have control only over what you infer. If you wish to infer in
front of a large audience that you are stupid and/or incompetent,
that is properly your decision to make.

>
>>> What the hell is the MATTER with you?
>>
>> Nothing, really. What is the matter with you
>
> Nothing. And that is final.

Except that you still don't understand sizeof.

> I am not interested in discussing or negotiating or anything like
> that. My stance regarding my own mental functioning is firm, and
> you will not budge it. You will only let yourself in for a nasty
> and pointless flamewar if you insist on continuing to poke into a
> subject matter where you have been warned repeatedly now that
> you're not welcome.

I'm not *interested*. I don't know why you think I am. It seems you
are far more interested than I am. Why don't we just get back to
sizeof?

>
>>> And with several other people in these newsgroups?
>>
>> "It was a terrible parade. [rest deleted]
>
> Parades are not on topic here.

The comment was relevant to the discussion. Either you realise this
or you don't. If you realise it and snipped it because you saw the
implication and didn't like it, you are being disingenuous. If you
didn't realise it and snipped it because you thought it irrelevant,
that says something different about you. Which of those it is, of
course I don't know and I don't care.

>
>>>> You are taking this far too personally.
>>> That isn't for you to decide.
>>
>> True enough. I will rephrase. I *believe* you are taking this far
>> too personally.
>
> Irrelevant. If I say I don't welcome a continued discussion of me
> in public, then the subject is closed, whether or not you would
> mind if our positions were reversed.

If you think the discussion is closed, why are you still
contributing to it?

> When it's your mental competence that's being discussed in public,
> then it's your turn to decide the same things.

I'm not interested in your mental competence. I am fully prepared to
believe that you have some, and I can leave it at that if you will.
I'm interested in sizeof. Shall we get back to sizeof?

> Fair's fair.

It doesn't say fair on the box. You get to decide what you post. I
get to decide what I post. That's the closest Usenet gets to fair.
If you're looking for some kind of resolution, there probably won't
be one, except perhaps in the minds of your readership.

>
>>>> This is a discussion, not a lawsuit.
>>> It's not a polite discussion, and it hasn't been since you
>>> started making things personal.
>>
>> It could be polite. I am doing my best to remain polite, and I
>> think that mostly I'm succeeding.
>
> You're not succeeding.

You are the one who has been making demands, not me, and depending
on how you define "expletive", you're losing either 2-0 or 3-0. So
I'm not overly concerned about your definition of "polite".

<snip>

>>> You made several nasty errors:
>>> 1. You nitpicked a post of mine. Bad move.
>>
>> I corrected
>
> You nitpicked where no nitpicking was welcome. Don't do it again.
>
>>> 2. Then when I responded to smooth things over,
>>
>> I don't recall your trying to smooth things over.
>
> Yes. In <MYWdnboGP7QDyb3X...@bt.com> you nitpicked
> me,

Wrong. In that article, I did not nitpick you. I *thanked* Ben
Bacarisse for nitpicking me.

> apparently unaware that the correct response to my post was to
> either leave it alone or agree.

Wrong, partly because that article was not a response to your post
but a response to Ben's post, and partly because I don't give a
stuff what you consider the correct response to be.


>
> In <gvss9q$nff$1...@news.eternal-september.org> I responded in such a
> way that you could have just left that post to stand unmolested
> and everything would have been fine. Instead, you attacked and
> here we are now.

In that article, you screwed up: "That dereferences an uninitialized
pointer, thereby invoking undefined behavior. Even though it
doesn't read or write through it." That was simply wrong.

I did not "molest" that post as you claim. I responded to it, in
message ID <LqCdnVrkBr9Qpb_X...@bt.com>, which is a
separate article. Your original remains, utterly unmolested, on
servers around the world, up until they expire it.

My response pointed out why your claim about dereferencing was
wrong, and I cited the relevant part of the relevant technical
standard. You have still not provided any convincing technical
explanation of your issue with that response.

>
> Given that you had several opportunities to leave me alone and
> chose instead to blast me with increasingly-stronger shots each
> time, I have to conclude that you want a fight.

No, I want to talk about sizeof.

> Now I am warning you that a fight with me will end very badly for
> you.
>
>>> you replied with
>>> a more direct and serious attack instead of letting sleeping
>>> dogs lie. Big mistake.
>>
>> Again, got a msg-ID?
>
> Yes: <LqCdnVrkBr9Qpb_X...@bt.com>

That's not a serious attack. That's not even a love-tap. That's just
a technical rebuttal of a technical point. If you think that's a
serious attack, you haven't been around Usenet very long.

> This you should definitely never have posted.

Why not? Are you trying to suppress the truth about sizeof?

>> My own recollection is that you appeared to continue to
>> misunderstand
>
> I HAVE NO INTEREST IN CONTINUING TO DISCUSS YOUR OPINION OF MY
> MENTAL FUNCTIONING. HAVE I MADE MYSELF CLEAR?

Yes, you have. I have no interest in it either. Have /I/ made
/my/self clear? I want to talk about sizeof.

> Why are you so unwilling to respect multiple boundaries?
>
> 1. The topic bounds. These newsgroups are for discussing
> programming,
> not people.

sizeof qualifies.


> 2. The personal boundaries around one another. You do not publicly
> speculate about another person's mental functioning without
> permission! Jeezus.

I am not interested in speculating about your mental functioning. I
am interested in discussing sizeof.


> 3. The relevance bounds. The arguments about Lisp vs. Java,
> emacs vs. Eclipse, and Seed7 warnings, and the original
> job-search topics, all have relevance bounds. My mental
> functioning is irrelevant to all of those topics. The only
> person whose mental functioning might be relevant to any of
> them is Robert Maas, the original job-seeker.

In this thread, I'm not interested in any of these things. I'm
interested in the technical details of sizeof, which arose in this
discussion due to topic drift, a natural process which happens all
over Usenet all the time.

>>> 3. You continued to not back down when I continued to try to
>>> reset things to the appropriate state so that the
>>> discussion could move on in other directions.
>>
>> Why would I back down from a correct position?
>
> I refer to your arguments about my mental functioning.

I'm not *interested* in your mental functioning. Please can we drop
the stupid discussion about your mental functioning? I'm interested
in sizeof. What is it with you and your mental functioning? Sheesh.
It's like you're proud to have some. Fine, but you don't have to
spread it all over the Net. Obviously you can if you like, but it
makes quite a mess.


> You hold
> certain *opinions* there. They are not "correct" in my opinion,

So what? Your understanding of sizeof is not correct *by
definition*. It isn't a matter of opinion.

<snip>

> And I say you are to stop discussing me in public altogether.

I'm not trying to discuss you. I'm trying to discuss sizeof. But let
me tell you something about *my* mental functioning for a change -
if there's one thing that's likely to make me want to continue to
discuss a subject, it's a demand for me to stop. Is that what you
are trying to achieve? I ask merely for information, and I'm not
overly fussed about the answer anyway, so don't feel obliged.

> Killfile me if you must, but henceforth, please pretend that I do
> not exist.

I'm okay with pretending you don't exist. So - we have this
invisible man who doesn't exist (if I shut my eyes), but this
invisible man who doesn't exist is posting disinformation about
sizeof. How can we solve this problem?

> That means if you see a post by me, it does not exist
> so you will not post a followup. If you hold an opinion about me,
> it does not exist so you will not post mentioning it or implying
> it.

You don't get to control my actions.

> I hope I've made myself clear enough this time.

You don't get to control my actions. I hope I've made myself clear
enough this time.


>>> Don't do that!
>>
>> You don't get to control my actions.
>
> Ordinarily, no, but when your actions include making public
> statements about me, my rights of privacy and publicity enter into
> it, and I say I don't want you discussing me in public.

I'm not interested in discussing you in public. I'm interested in
discussing sizeof. It is you who continually drag the discussion
back to you. I would prefer for you to return to the sizeof
discussion, but it's your call.

> Really, I am none of your business anyway so you have no good
> reason to be doing so;

It is you, not me, who prolong this discussion.

<snip>

>> You don't get to control my actions.
>
> You're missing the point. I am attempting to explain rules of
> polite society to you that apparently you don't get.

When you can learn to stop including expletives in Usenet articles,
I might be open to what you have to say about rules of polite
society. Until then, I don't consider you qualified to speak on the
subject.

> You don't
> keep pressing someone that clearly doesn't want a fight. You leave
> them alone.

I don't want a fight. I want to talk about sizeof.

>> If you screw up
>
> That never happens.

It happened. You got sizeof wrong. That's fine - lots of people do -
but then you screwed up some more by continuing to get it wrong in
the face of authoritative information (relevant quotes from the
relevant technical standard).

>
> If it ever did, then you should certainly not keep aggressively
> poking at someone who is trying to save face.

If you want to save face, contradicting ISO/IEC 9899 is not the way
to go about it.


> That's how big,
> nasty fights start, when someone disrespects someone else's right
> to be left alone.

If you don't want people to respond to your articles, in my
experience the best way to achieve that is not to post them.
Anything you do post is very likely to get discussed, even if the
thing you post is "please don't discuss this". That's human nature
for you.

>
>>> You'll have said
>>> your opinion, they'll have said theirs, and everyone can move
>>> on.
>>
>> You can move on any time you like. Nobody forces you to respond.
>
> Oh, is that what this is about? You keep posting because you have
> a childish insistence on having the last word? How disappointing.

I've already explained elsethread that you can have the last word.
It's "zymotic". I don't need it.

If you want to suppress discussion of a subject you find
uncomfortable, telling people not to discuss it is simply the wrong
strategy.

>
>>> If, instead, you respond by restating your opinion more
>>> forcefully, it starts a fight instead, and nobody benefits from
>>> that.
>>
>> If someone (anyone, not just you) disagrees with a point I've
>> made in an article, either they are right (in which case I'm
>> wrong and I'd like to know about it), or they are not right (in
>> which case it may be worth trying to put things in a way that is
>> easier to grasp)
>
> Insulting. I think you should be thinking "worth trying to put
> things in a way that preserves both sides' dignity", don't you? Or
> does the dignity of other people not concern you?

It was you, not me, who tossed away your dignity.

>
> I'm getting a very disturbing picture here: that you are not
> willing to agree to disagree on any subject, nor do you care about
> preserving the dignity of others.

I think your picture is not so much disturbing as distorted. I am
perfectly willing to agree to disagree on a great many subjects,
but the nature of sizeof is not one of those subjects.

>
>> In this case, you [insult deleted]
>
> I repeat: I am not interested in your opinion of me. Neither is
> anyone else. Don't. Post it. Again.

I repeat: you don't get to control my actions.

>> you didn't seem to see why
>
> I see exactly why you hold your opinion of me.

You don't know what my opinion of you is, because I haven't posted
it. All you are doing is guessing, and mostly you are guessing
wrongly. Rather like your guessing about how sizeof works, instead
of finding out.

> I also don't give a
> shit. My concern is with your *posting that opinion in public*,
> and posting things apparently designed to induce *other people to
> develop the same, negative opinion*. You can surely understand why
> I don't want that happening, particularly the latter part.

What I don't understand is why you get sizeof wrong. Could you
explain your justification for thinking sizeof evaluates its
operand (when the operand is not a VLA)? Note how I continually try
to turn the discussion back to sizeof. Note how you continually try
to turn it back to what it seems to please you to call your mental
functioning.

> What I don't understand is why you seem to be insistent that that
> happen, and that I not be permitted to speak up in my own defense?

Of course you are permitted to speak up in your own defence. That's
precisely what you're doing, and nobody is stopping you, are they?
But you are not being attacked. Your opinion of sizeof /is/ being
attacked. Would you care to defend it, on technical grounds? Note
how I try to steer the discussion back to technical matters. Please
help me out here.

> Really, I just want to be left alone.

Would you prefer it if nobody responded to your articles? Do you
think Usenet is your personal blog? Well, it isn't. If you post
stuff, people will very often respond, and you don't get to choose
the way in which they respond. Now can we get back to talking about
sizeof?

> If, after this post, you continue to harass me,

I'm not trying to harass you. I'm trying to discuss sizeof.

> I will have to
> conclude that your purpose is in fact to start a fight. There is
> no other explanation for someone posting an attack post in
> response to "I just want to be left alone", after all.

I am *not* attacking you. I am discussing sizeof. All this
discussion about *you* is a side issue that I would prefer to drop,
but not at the expense of giving in to what I perceive to be
attempts at coercion.

>
>> I have even now not made it clear enough (although the middle
>> part of this reply is another attempt).
>
> Your opinion is crystal clear. I hope by now so is mine: I do not
> want you to make yours even clearer. I want you to drop the
> subject and leave me in peace.

The subject is sizeof, and your misunderstanding of it. I can hardly
pursue the subject if you won't tell me your justification for your
interpretation of sizeof's behaviour.

>>>> I described your argument as a strawman argument because
>>> you're an asshole. Yes, yes, I know.
>>
>> Selective quotation
>
> Please do not change the subject.

Firstly, pointing out debating tricks is a valid part of debate.
Secondly, it was you who changed the subject. You changed it from
sizeof (which is topical) to you (who are not topical). Let's get
back to sizeof.

>
>>>> your flawed understanding
>>>> led you to believe, mistakenly
>>> Stop personally-attacking me at once.
>>
>> Firstly, I'm not personally attacking you.
>
> Yes, you are.

No, I'm not.

> You are publicly calling my intelligence into question. That is
> an insult.

No, it isn't. Intelligent is as intelligent does. You are not
behaving in a way that I associate with high intelligence, and that
is bound to colour the way I react to you. But if I say that I am
revising my opinion of your intelligence downwards, I am not
insulting you, merely describing my opinion of you. (And if I were
to say that I believed you to be highly intelligent, again that
would be merely a description of my opinion of you; it would not be
praise.)

> It's the same as if you posted
> "Seamus MacRae is an idiot" on the billboard at Times Square.

No, it isn't. Firstly, this is a forum in which it is easy to
respond. If I did as you described, it would be impractical and
possibly even counter-productive to put up another poster saying
"no he isn't". But on Usenet, it is quite common to see point and
counter-point being discussed. In any case, on balance I suspect
that you are probably not an idiot in the medical sense of the
word, so the analogy is wrong even in that respect.

> How would you like it if someone put "Richard Heathfield is an
> idiot" on there?

If you posted such a comment on Usenet, you would not be the first.
And I would not react by trying to stop you from posting. Instead,
I'd try to find out why you thought I was an idiot, and then I'd
explain why it wasn't the case. What I would not do is lose my
temper or get hysterical.

> I'm guessing you wouldn't.

I wouldn't particularly revel in it, no, but on the other hand I'm a
grown-up and able to take care of myself in a discussion without
having to resort to trying to shut the other guy up (which never,
ever works).

> Please let this entire matter just drop, for both of our sakes.

If you mean the matter of sizeof's operand, I would just like to
point out at this stage that (VLAs aside) it is not evaluated.

>> I am having a discussion on Usenet.
>
> You are discussing a person in public without that person's
> consent. That is a no-no.

Very little is a no-no on Usenet, but it is you who are discussing
you in public. I'd like to discuss sizeof, please.

>> Secondly, I am sure you would agree that you are wholly
>> entitled to make your own choice about whether to take part in,
>> or to withdraw from, this discussion.
>
> Then I choose to withdraw from it, by which is meant my name will
> not appear any further in it, which in turn means you do not talk
> about me and you do not follow up to one of my posts.

You don't get to control my actions. You get to control *your*
actions.

> Is that clear?

Your opinion is clear enough. What isn't clear is how this relates
to sizeof.

> Otherwise, I am "taking part" by being mentioned or quoted in it,
> against my will and in violation of that very entitlement that you
> just admitted I possess.

You get to choose what you do. Other people get to choose what they
do. That's how it works.

>>> You will not again use the
>>> words "flawed" or "mistaken" to describe me in public. Do I make
>>> myself clear?
>>
>> You make yourself perfectly clear, but [insults deleted]
>> You don't get to decide what I write.
>
> Fuck you.

Big talk, huh? That's either 3-0 or 4-0 now. Why not talk about
sizeof instead?

> Obviously, you understand me perfectly and are explicitly refusing
> to leave me alone.

No, I'm exercising my right to post to Usenet because I want to
discuss the semantics of sizeof.

> Fine. If you want a fight, let's fight.
>
> Your mother is so fat, she is required by law to wear a "wide
> load" sign and beep when she backs up.

Actually, my mother (who was, if anything, too thin rather than too
fat) died last year in a house fire.

Note that my response to your attempt at humour is to point out why
it's wrong. In theory I could prove the above statement (the
inquest was held last week - there is no point in asking me why it
took so long to come around, because I don't know the answer - and
I will shortly be getting a copy of the Coroner's report), but in
practice I would demur on the grounds of taste and just trust that
those of an independent mind are prepared to believe my statement
in the absence of a reason not to.

> Your turn.

Let's get back to sizeof, shall we?

>
>>> Leave. Me. Alone.
>>
>> If you don't wish to communicate with me, you can stop doing so
>> at any time.
>
> I don't wish to be communicated ABOUT in public by you.

Fine. I don't wish to pay tax. But we don't always get what we want.
As it happens, however, I'm not overly excited about the prospect
of communicating about you either. Let's get back to sizeof, shall
we?

>
>>> These newsgroups are for discussing programming, not people. I
>>> am off-topic here.
>>
>> I agree
>
> Then stop talking about me!

You don't get to control my actions.

>> sizeof *is* topical, and that's what I'm discussing.


>
> Get real. This stopped being about "sizeof" several posts ago when
> you decided to make things personal.

So you claim. But I disagree. I think it's about sizeof.

>> All this extraneous guff is just a side issue.
>
> All this "extraneous guff" is what actually matters to me. If you
> consider it a mere "side issue" then that's another reason for you
> to drop this thread and move on -- topic drift has taken it
> outside of your area of interest.

I'm very ready to drop all the personal stuff and get back to
sizeof. Are you?

>
>>>>>>>> I've worked in environments like that, and found it quite
>>>>>>>> workable.
>>>>>>> Now I know why so much C software is crash-prone and
>>>>>>> generally buggy.
>>>> Spot the (groundless) personal attack, to which I reacted.
>>> There was no personal attack in my post.
>>
>> That's called "special pleading".
>
> No, it's called pointing out that insulting software is not
> insulting a human being, and therefore is not a personal attack.

No, it's called "special pleading". Your claim is that your personal
attacks are technical arguments (or "insulting software" if you
prefer), but that my technical arguments are personal attacks. In
other words, you're being asked to be treated specially because
it's you. That's special pleading, and it's a shabby debating
trick.

> For it to have been a *personal* attack it would have had to imply
> something negative about some specific *person*.

Even granting for the sake of argument (and without prejudice to
future dispute) that this definition is correct, how is my
explanation of sizeof a "personal attack"?

>>> Saying that environments
>>> that ignore a lot of compiler warnings generate buggy code is
>>> not an attack on any particular person.
>>
>> Who said anything about ignoring compiler warnings?
>
> You did.

No, I didn't. Learn to read for comprehension.

<snip>
>
> Fuck you.

Is that five?

> I've had it with you. You pretend to some kind of civilized
> character but your real objective is simply to go around
> badmouthing anyone you disagree with,

No, my objective in this subthread is to discuss the semantics of
sizeof.

> have the last word in any
> discussion, and generally shove your weight around. How old are
> you, about three?

Even older than three. In fact, I'm all gwowed-up now, and I have
learned all about not swearing in public forums and stuff like
that. I didn't used to be able to spell "adult", and now I are one.
How about you?

>> (a) it's impossible to satisfy every compiler, and code that is
>> required for eliminating a warning on one compiler may itself
>> cause a warning on another; therefore, a clean build is not
>> actually possible in the general case for non-trivial code that
>> must build on multiple compilers;
>
> Doesn't follow. Ever heard of #ifdef and its friends? Conditional
> compilation means being able to satisfy multiple compilers, and
> produce more portable code.

The cure is worse than the disease, because you now have multiple
branches to maintain. Stupid stupid stupid. I cannot believe you
are seriously proposing that.

<snip>

>>>> For someone who doesn't like personal attacks, you sure like
>>>> making them.
>>> No, I do not. Stop publicly lying about me.
>>
>> Well, it wasn't a lie, but it's possible that I was mistaken to
>> claim that you enjoyed making personal attacks.
>
> That you were.

I am prepared to accept that.

>> Nevertheless, you have clearly made them.
>
> I have *now*,

You started way back.

> when you continued to publicly badmouth me. You
> asked for it, you got it. Now, are you ready to quit, or are you
> thirsty for more?

I'm ready, as ever, to discuss sizeof. Are you? Or are you
determined to follow your self-destructive path?

>>>>> You've said your piece and I've said mine. Move on.
>>>> I'm already in the right place.
>>> NO. YOU ARE NOT.
>>
>> I respectfully disagree.
>
> Respect? That's a joke. You've shown no respect for my wishes, for
> my boundaries, or for any of the three newsgroups' topic
> boundaries, at least thus far.

I have tried to show restraint and respect, and I think I have
succeeded far more than you. As for the topic, as far as I'm
concerned the subject of this discussion is sizeof, which you
continually try to avoid in favour of extraneous waffle about
personalities.

>>> You've said your piece. It does not bear repeating.
>>
>> Am I right to interpret this as "Seamus is not interested in
>
> You are right to interpret this as "Seamus is not interested in
> continuing this discussion, or in being the subject of any
> discussion in which you participate".

Then the solution is easy - you can simply killfile me, in which
case I suppose we'll never learn why you misunderstand sizeof.

>
>>> MOVE ON.
>>
>> I'm already in the right place.
>
> No. See above.

Your failure to understand my statement does not make my statement
incorrect.

>>> Calling me a liar will not make me friendlier.
>>
>> I don't believe I've called you a liar.
>
> Implied it, at any rate.

No. You may have inferred it, but I have not implied it. I am happy
to accept that like everyone else I am sometimes a little careless
with words, but I am *very* *very* *very* careful not to call
people liars unless I can prove it beyond a shadow of a doubt.
Therefore, I have not called you a liar, and will not call you a
liar unless I can prove it 100%, by which I mean that unless I can
demonstrate that you have given false information while *knowing*
it to be false I will not call you a liar.

The fact that you infer that I've called you a liar is mildly
interesting, but not interesting enough to talk much about. I'd
rather talk about sizeof.

<snip>



>> Irony is always dangerous.
>
> So is a complaint to your internet provider for flooding three
> newsgroups with offtopic drivel.

I am trying to discuss sizeof, not offtopic drivel. By your
reasoning, I should be complaining to /your/ Usenet provider. But I
won't. I reserve complaints for spammers and flooders (major
abuses, which ISPs normally ignore no matter how many complaints
they get).

>>>> Okay, so I'll retract "buffoon" - but for heaven's sake,
>>>> lighten up a little
>>> After you.
>>
>> I'm not the one who introduced expletives into the discussion.
>
> You are, however, the one who introduced rudeness, personal
> innuendos,

I don't think so.

> and an unwillingness to leave things alone.

Like sizeof, you mean?

>
>> Nor will I sink to your level
>
> My God, are you really trying to claim the moral high ground now?

Why would I need to do that? I'm already standing on it. And it's
called ISO/IEC 9899. And you haven't even begun to construct a
sound technical assault yet.

But I know what you mean. When you can learn to stop swearing in
public, then we'll talk about moral high ground if you like.

> How utterly ridiculous. It's never available at any price to the
> guy that shot first, so you can give up on that idea right quick.

My first "shot" as you call it was a technical correction to a
mistake you made about sizeof. So was my second. And my third. If
you think that people who correct mistakes always lose the moral
high ground by so doing, then your idea of "moral high ground" is
just bizarre.

>
>>>> and before "correcting" people, take the trouble
>>> to send it as private email rather than a public news post?
>>> After you.

(At this point, it is necessary to point out that, at the beginning
of his article to which this is a response, Seamus MacRae wrote (or
more likely his news software wrote, but he left it unaltered in
his reply) the words "Richard Heathfield wrote:". He (or, again,
more likely his newsreader) marked off all that quoted material
with a single chevron. In cases where he was quoting quoted
material, that material would appear with multiple chevrons, the
number of which indicate the depth of the quote. I have done the
same, so my material in this article appears either without
chevrons or set off by two chevrons, and Seamus MacRae's material
is set off by one chevron. So it is clear that, by writing or
allowing his software to write "Richard Heathfield wrote" and then
following it with this material (one extra chevron because I'm
quoting the quote, but in his original article it appeared with one
chevron), he is ascribing that material to me.

>>
>> It's more cost-effective to xxx in a public article than to send
>> emails to every single subscriber.

That is a lie. I wrote no such thing, and you know that I wrote no
such thing. What I wrote was "It's more cost-effective to explain
the semantics of sizeof in a public article than to send emails to
every single subscriber."

Remember I just said I would never call you a liar without being
able to prove it? Well, I just proved it. The original text is
available in <gKWdnfKdPPwCnLnX...@bt.com> but you have
edited "explain the semantics of sizeof" to "xxx". That's unmarked
editing, so that what you claim I said is not what I actually said,
and it's clearly not accidental, and therefore it's deliberate, and
that makes it a lie, and that makes you a liar. I will not initiate
legal action over this (because I'm not that sad), BUT if you sue
me for libel for calling you a liar, I am quite confident of
victory and I *will* counter-sue.

<snip>

> Anyway, I guess it's now your move. Will you decide to leave
> things be, and consider this match a draw,

It's not a match. It's about the reality of sizeof's semantics. This
isn't a competition. It's a flaw in your understanding of sizeof.

<snip>

Richard Heathfield

unread,
Jun 3, 2009, 6:11:16 AM6/3/09
to
thomas...@gmx.at said:

<good explanation snipped>

> I am not sure what you get for 'sizeof(void)' but
> this will probably not be something you want to use.

You get a constraint violation, because void is an incomplete type:

The sizeof operator
Constraints
1 The sizeof operator shall not be applied to an expression that has
function type or an incomplete type, to the parenthesized name of
such a type, or to an expression that designates a bit-field
member."

<snip>

nick_keigh...@hotmail.com

unread,
Jun 3, 2009, 7:07:26 AM6/3/09
to
On 1 June, 17:36, Richard Heathfield <r...@see.sig.invalid> wrote:

> nick_keighley_nos...@hotmail.com said:
> > On 1 June, 11:48, Seamus MacRae <smacrae...@live.ca.invalid>
> > wrote:
> >> nick_keighley_nos...@hotmail.com attacked as well:

> >> > It doesn't need to know the value of foo but only the type


> >> > of foo.
>
> >> There are variable-length arrays in C99.
>
> > yes, you are correct. I tend only to think about C89.
>
> More to the point, the sizeof in question was taking the size of a
> struct tm, not a VLA.

yes, I missed that

> > I'm not convinced that variable-length arrays were
> > a good idea. And even less convinced that sizeof(vararr)
> > was a good idea.
>
> I share your lack of conviction wrt VLAs. Nevertheless, they /are/
> part of C99, so when C99 eventually becomes widespread (perhaps in
> only a few more decades) it will become important to understand
> VLAs.

when that time comes I'll learn about VLAs. I operate a YAGNI policy.

--
Nick Keighley

"Remember, the TAB key is your friend!"
Computer Training at <large insurance company>

nick_keigh...@hotmail.com

unread,
Jun 3, 2009, 7:47:01 AM6/3/09
to
On 2 June, 22:12, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> nick_keighley_nos...@hotmail.com wrote:

<snip>

> > I merely adress the massed ranks of the Lurkers.
>
> Not about me, you don't, not if you know what's good for you.

are you threatening me!? With what? What will happen if I discuss
your idocy on the internet? Will you cry? Come round to my house?
I'm genuinely interested.

It obviously doesn't pay to be reasonable with some people...

--
Nick Keighley

The world you perceive is drastically simplified model of the real
world
(Herbert Simon)

Richard Heathfield

unread,
Jun 3, 2009, 8:55:34 AM6/3/09
to
nick_keigh...@hotmail.com said:

> On 1 June, 17:36, Richard Heathfield <r...@see.sig.invalid> wrote:

<snip>

>> I share your lack of conviction wrt VLAs. Nevertheless, they
>> /are/ part of C99, so when C99 eventually becomes widespread
>> (perhaps in only a few more decades) it will become important to
>> understand VLAs.
>
> when that time comes I'll learn about VLAs. I operate a YAGNI
> policy.

Okay, I'll bite - YAGNI?

Alf P. Steinbach

unread,
Jun 3, 2009, 8:52:05 AM6/3/09
to
* Richard Heathfield:

> nick_keigh...@hotmail.com said:
>
>> On 1 June, 17:36, Richard Heathfield <r...@see.sig.invalid> wrote:
>
> <snip>
>
>>> I share your lack of conviction wrt VLAs. Nevertheless, they
>>> /are/ part of C99, so when C99 eventually becomes widespread
>>> (perhaps in only a few more decades) it will become important to
>>> understand VLAs.
>> when that time comes I'll learn about VLAs. I operate a YAGNI
>> policy.
>
> Okay, I'll bite - YAGNI?

http://acronyms.tfd.com/YAGNI

I have a Thunderbird extension where you just have to right-click on things and
select "search dictionary", it's very practical. :-)


Cheers & hth.,

- Alf

--
Due to hosting requirements I need visits to <url: http://alfps.izfree.com/>.
No ads, and there is some C++ stuff! :-) Just going there is good. Linking
to it is even better! Thanks in advance!

Richard Heathfield

unread,
Jun 3, 2009, 9:02:54 AM6/3/09
to
Alf P. Steinbach said:

> * Richard Heathfield:
>> nick_keigh...@hotmail.com said:
>>

<snip>


>>> when that time comes I'll learn about VLAs. I operate a YAGNI
>>> policy.
>>
>> Okay, I'll bite - YAGNI?
>
> http://acronyms.tfd.com/YAGNI

Ah, I was thinking along the lines of "Yet Another *".

One lives and learns.

<snip>

Seamus MacRae

unread,
Jun 3, 2009, 11:51:52 AM6/3/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>> Richard Heathfield wrote:
>>> Seamus MacRae said:
>>>> Richard Heathfield wrote:
>>>>> Ben Pfaff said:
>>>>>> Seamus MacRae <smacr...@live.ca.invalid> writes:
>>>>>>> Richard Heathfield wrote:
>>>>>>>>>> Firstly, the preferred idiom is:
>>>>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>>>>> thereby invoking undefined behavior.
>>>>>>>> Surely not! The sizeof operator does not evaluate its
>>>>>>>> operand
>>>>>>> It must at least partly do so, in order to know what size of
>>>>>>> thing *foo is referring to.
>>>>>> No.
>>>>> If you look at the grandparent article (my reply, to which
>>>>> Seamus wrote a reply, to which you wrote a reply), you will
>>>>> find
>>>> Very boring.
>>> You consider [yet another personal attack] to be boring?
>
> Incorrect

No. The incorrect person here is you. You were supposed to respond to my
post by shutting up. Instead, you attacked me again.

Now you are going to hell.

>> Yes, I consider personal attacks to be boring.
>
> It wasn't intended as a personal attack.

The hell it wasn't.

Your dislike for me is quite evident. Your posts drip with it. Take this
to private email or I will make your internet provider shut you up.

> Nevertheless, you seem to
> be taking it that way. If you consider what you think to be
> personal attacks to be boring, why do you discuss them so much?

I am not discussing them. I have no interest now in discussing anything
with you. The problem is you keep interpreting my rebuttals as
discussion. They are not. You keep making statements about me in public
that are in error. I therefore post a correction. The intended audience
of that correction does NOT include you, it includes everybody else that
might be misled about me by the bad things you said. I would prefer it
in fact if you DID NOT read my posts -- then you wouldn't reply to
"discuss" my perceived-by-you shortcomings some more, and I wouldn't
have to post yet another correction.

>> I thought we were here to discuss Lisp and Java,
>
> I thought we were here to discuss programming.

If you want to discuss programming, go right ahead, but leave my name
out of it and don't insinuate anything about me indirectly, either.

>> not to flame one another.
>
> I haven't flamed you.

A blatant lie.

> I haven't even /begun/ to turn up the heat.

Is that a threat?

It better not be.

> (You have, by introducing expletives.) I have done only two things

> in this subthread: (a) [implied insult deleted], and (b) [insult
> deleted]

Yes, that's right, you've done only two things: insult me and insult me
some more. Needless to say, insults are off-topic in all three
newsgroups you're spewing them into.

>> I'm only interested in the former. Please discuss the former or
>> please go away. Either way please stop publicly badmouthing me!
>

> I /am/ discussing programming.

No.

> What I am not doing is badmouthing you.

A lie.

> You're doing that yourself.

Another lie. Where have I posted any negative statement about myself? I
haven't. In fact, the opposite -- I've posted *denials* that various
such statements apply.

Seamus MacRae

unread,
Jun 3, 2009, 11:52:27 AM6/3/09
to
Ben Pfaff wrote:
> Seamus MacRae <smacr...@live.ca.invalid> writes:
>
>> How can you measure the size of something you don't actually have?
>
> You can know the size of an int without knowing the value of that
> int.

You cannot know the size of a variable-length array without knowing the
value of that array.

Seamus MacRae

unread,
Jun 3, 2009, 11:54:55 AM6/3/09
to
Richard Heathfield forgot to stop attacking me:

> Seamus MacRae said:
>> How can you measure the size of something you don't actually have?
>
> By knowing its type.

That doesn't work for variable-length arrays.

>> Don't forget C99 added variable-length arrays.
>
> Right

Well, there you go then.

>>> Since you have rejected
>> I reject any claim that implies that I'm some sort of doofus,
>> especially if that claim was made publicly.
>
> The C Standard doesn't even mention you, let alone call you a
> doofus.

No, you do. It is you that I am objecting to.

>>> I'd like to know what sources of information you _would_ believe.
>> When the discussion has become a platform for launching personal
>> attacks, I *won't* believe any information whatsoever that says
>> something hostile about me.
>
> As far as I'm aware, the C Standard says nothing whatsoever about
> you in any way, shape or form, let alone anything hostile.

No, you do. It is you that I am objecting to.

Stop trying to change the subject to the C standard, which, as you say,
is irrelevant to the matter of your insulting me repeatedly.

>> So you can get that idea right out of your head, right now. I've
>> no interest in "discussing" myself at all -- I will ignore the
>> subject unless someone else brings it up,
>
> Great!

Then will you shut up about me now?

>> and then I will defend myself to the maximum extent possible,
>> without any negotiation or compromise. Whether I am, or am not,
>> whatever nasty thing you may be thinking is not up for debate: I
>> am not, and that is final, and I will not budge on that score.
>
> I am delighted to hear it, and would not contradict you for the
> world.

Fine. Then you'll go away now and leave me in peace?

Seamus MacRae

unread,
Jun 3, 2009, 11:59:01 AM6/3/09
to
Kaz Kylheku wrote:
> On 2009-06-02, Richard Heathfield <r...@see.sig.invalid> wrote:
>> The C Standard doesn't even mention you, let alone call you a
>> doofus.
>
> You're arguing with a mentally ill individual

No, he is not. Stop lying about me.

> There is no way you can word a paragraph which disagrees with a statement he
> made in such a way that it will not be construed as a personal attack,

Not if there's no charitable-to-me interpretation of that paragraph, no.
It must allow the possibility that the poster of the paragraph is wrong,
or that reasonable men may disagree about its subject matter, to not be
implying some kind of stupidity or incompetence on my part, obviously.

> and used as an opportunity to start another subthread about this favorite
> subject of his.

This is not my favorite subject. I'd much rather this sort of nonsense
didn't come up. The problem is that people like Richard occasionally
crop up that a) insist on loudly publicly broadcasting their opinions
regarding other people and b) insist on having the last word.

Such people are called "children" and should really not have
unsupervised internet access, but c'est la vie.

> His recommendation (as he explicitly stated in another article) is that when
> you disagree with something, you should just let it be. One person has said his
> piece, the other has said his, and leave it at that. That is how you avoid
> making an attack.

Yes, that's right -- if two people don't agree about something, agreeing
to disagree instead of trying to forcibly convert each other (or
evangelize to everyone else) is the mature, civilized thing to do.

Not that you'd know anything about mature, to judge by the juvenile
namecalling you've just engaged in, above.

> And yet he insists that he wants to be part of a debate

I did not.

> I.e. he expects to be granted a waiver from all of Usenet, allowing him the
> privilege of having the last word, regardless of what B.S. he posts.

I do not post B.S. and it is Richard who has all but admitted to
insisting upon having the last word.

Now butt out.

Seamus MacRae

unread,
Jun 3, 2009, 12:00:11 PM6/3/09
to
Richard Heathfield wrote:
> Kaz Kylheku said:
>
>> On 2009-06-02, Richard Heathfield <r...@see.sig.invalid> wrote:
>>> The C Standard doesn't even mention you, let alone call you a
>>> doofus.
>> You're arguing with a mentally ill individual

Kaz is lying about me. My health, in every respect, is excellent for my age.

>> I.e. he expects to be granted a waiver from all of Usenet,
>> allowing him the privilege of having the last word, regardless of
>> what B.S. he posts.

I do not post B.S. and it is Richard who has all but admitted he insists

on having the last word.

> If he wants it, he can have it.

I'll believe that when I see it. You shutting up about me, that is.

Seamus MacRae

unread,
Jun 3, 2009, 12:04:19 PM6/3/09
to
MarkH wrote:
> Your ISP has been notified of your mental disturbance.

Who the hell are you, and what is your problem? Why pop up at random and
flame someone?

I have no "mental disturbance". Do not lie about me in public again.

> Now stop the personal attacks Seamus!

I would if I could, by pulling Richard's plug.

> and admit that Common Lisp is better than Java.

It is not.

> You've been warned! Don't allow your mental malfunctions to
> further hurt you.

I have no mental malfunctions. I suspect that you do, since you:

a) butted into an OT discussion to flame someone essentially at random;
b) top-posted;
c) via Google Groups;
d) without trimming the quoted material -- all fifteen KB of it; and
e) told a whole bunch of easily-detected lies.

Seamus MacRae

unread,
Jun 3, 2009, 12:05:38 PM6/3/09
to
thomas...@gmx.at wrote:
> On 2 Jun., 23:09, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
>> Richard Heathfield wrote:
>>> Seamus MacRae said:
>>>> Richard Heathfield wrote:
>>>>>>>>> Firstly, the preferred idiom is:
>>>>>>>>> struct tm *foo = calloc(sizeof *foo);
>>>>>>>> Surely not? That dereferences an uninitialized pointer,
>>>>>>>> thereby invoking undefined behavior.
>>>>>>> Surely not! The sizeof operator does not evaluate its operand
>>>>>> It must at least partly do so, in order to know what size of
>>>>>> thing *foo is referring to.
>>>>> It is *forbidden* to do so
>>>> Then how the heck is it supposed to know what size the thing is
>>>> it's pointing to?
>>> I think you're confusing
>> I am not.
>
> The compile time operator 'sizeof' determines the size of a
> given variable, constant or type at compile time.

Impossible, since variable-length arrays were added.

[rest of post deleted unread since it clearly depended upon the above
false premise]

Seamus MacRae

unread,
Jun 3, 2009, 12:07:14 PM6/3/09
to
Richard Heathfield wrote:
> thomas...@gmx.at said:
>
> <good explanation snipped>

What "good explanation"? There was a basic error in the first line of
his attempt to "explain", indirectly, why he thinks I'm an idiot.

Of course, there had to be; since I am not an idiot, any purported proof
otherwise necessarily contains some flaw, and in this instance it did
not take me very long to find it.

Lars Enderin

unread,
Jun 3, 2009, 12:11:16 PM6/3/09
to
Seamus MacRae wrote:
> Richard Heathfield forgot to stop attacking me:
>> Seamus MacRae said:
>>> How can you measure the size of something you don't actually have?
>>
>> By knowing its type.
>
> That doesn't work for variable-length arrays.
>
>>> Don't forget C99 added variable-length arrays.
>>
>> Right
>
> Well, there you go then.
>
Except that Richard's statement was

>> Right, but that's irrelevant to the case in point.

Your fraudulent quoting does not prove your point, quite the opposite.


Lars Enderin

unread,
Jun 3, 2009, 12:21:35 PM6/3/09
to

You missed the joke. Figures.

Ben Pfaff

unread,
Jun 3, 2009, 12:24:51 PM6/3/09
to
Seamus MacRae <smacr...@live.ca.invalid> writes:

Variable-length arrays are a special case; in fact, they are the
only special case. Otherwise, in C, sizeof needs only the type
of an object to determine its size.

By the way, the "value" of an array is not very meaningful in C.
Possibly, you mean the elements or the contents of an array, but
that's not true: it doesn't matter what the contents of the array
are. In the end, all you need to know the size of a
variable-length array is the number of elements in it and the
type of those elements.
--
"The fact is, technical people are better off not looking at patents. If
you don't know what they cover and where they are, you won't be knowingly
infringing on them. If somebody sues you, you change the algorithm or you
just hire a hit-man to whack the stupid git." --Linus Torvalds

Ben Pfaff

unread,
Jun 3, 2009, 12:27:04 PM6/3/09
to
Seamus MacRae <smacr...@live.ca.invalid> writes:

> thomas...@gmx.at wrote:
>> The compile time operator 'sizeof' determines the size of a
>> given variable, constant or type at compile time.
>
> Impossible, since variable-length arrays were added.

The addition of variable-length arrays in C99 only affects the
case where the operand of sizeof is in fact a variable-length
array. It has no effect on other cases.

Here is what the text in C99 says. Please note the final
sentence in particular:

The sizeof operator yields the size (in bytes) of its
operand, which may be an expression or the parenthesized
name of a type. The size is determined from the type of the
operand. The result is an integer. If the type of the
operand is a variable length array type, the operand is
evaluated; otherwise, the operand is not evaluated and the
result is an integer constant.
--
RMS on DRM: "This ought to be a crime. And, if we had governments of the
people, by the people, for the people, then the executives of those companies
would be in prison. But they're not in prison, and the reason is that we have
government of the people, by the sell-outs, for the corporations."

Lars Enderin

unread,
Jun 3, 2009, 12:35:43 PM6/3/09
to
Ben Pfaff wrote:
> Seamus MacRae <smacr...@live.ca.invalid> writes:
>
>> thomas...@gmx.at wrote:
>>> The compile time operator 'sizeof' determines the size of a
>>> given variable, constant or type at compile time.
>> Impossible, since variable-length arrays were added.
>
> The addition of variable-length arrays in C99 only affects the
> case where the operand of sizeof is in fact a variable-length
> array. It has no effect on other cases.
>
> Here is what the text in C99 says. Please note the final
> sentence in particular:
>
> The sizeof operator yields the size (in bytes) of its
> operand, which may be an expression or the parenthesized
> name of a type. The size is determined from the type of the
> operand. The result is an integer. If the type of the
> operand is a variable length array type, the operand is
> evaluated; otherwise, the operand is not evaluated and the
> result is an integer constant.

Seamus has been told the facts about this repeatedly, but you must
realize that when facts disagree with Seamus, the facts must be wrong,
since Seamus is *never* wrong. At least that is what he claims. He has
serious problems with reality.

Richard Heathfield

unread,
Jun 3, 2009, 1:10:05 PM6/3/09
to
Seamus MacRae said:

> Richard Heathfield wrote:

<snip>



>> Incorrect
>
> No. The incorrect person here is you. You were supposed to respond
> to my post by shutting up.

Perhaps you think that's what's supposed to happen, but I'm entitled
to hold, and do hold, a different viewpoint.

> Instead, you attacked me again.

Well, if you count a correction as an attack, I'm surprised you're
not used to being "attacked" by now.

> Now you are going to hell.

I don't think so.

>>> Yes, I consider personal attacks to be boring.


>>
>> It wasn't intended as a personal attack.
>
> The hell it wasn't.

It isn't up to you to decide what my intentions are.

> Your dislike for me is quite evident.

I have no personal animosity towards you whatsoever. I'm beginning
to pity you, but I don't dislike you. I do dislike the way you
"argue", but that's different from disliking you.

> Your posts drip with it.

No, they don't.

> Take this to private email or I will make your internet provider
> shut you up.

If you feel so strongly that this is an appropriate matter for
private email, why have I not received any emails from you? Oh, and
good luck getting an ISP to inconvenience a customer for /not/
breaking any rules.

>> Nevertheless, you seem to
>> be taking it that way. If you consider what you think to be
>> personal attacks to be boring, why do you discuss them so much?
>
> I am not discussing them.

Yes, you are. It's patently evident that you are. Hence this long,
long, long long long long subthread.

> I have no interest now in discussing
> anything with you.

You can stop any time you like.

> The problem is you keep interpreting my
> rebuttals as discussion. They are not.

Er, actually rebuttals *are* part of discussion. But according to my
dictionary, to make a rebuttal normally includes offering some kind
of opposing evidence. I haven't seen much evidence from your side,
and what there has been has been easily refuted.

> You keep making statements
> about me in public that are in error.

I've only made two statements about you in public that I consider to
be particularly important. One is that you clearly don't understand
sizeof, and the other is that you have demonstrably lied.

> I therefore post a correction. The intended audience of that
> correction does NOT include you,

Then why post it where I can read it? Why not email all the people
you intend to read it? (If you answer as I expect you to answer,
you will know why I too, eschew email for this purpose.)

> it includes everybody else that might be misled about
> me by the bad things you said. I would prefer it in fact if you
> DID NOT read my posts

Then you're sure picking a funny group to post them in.

<snip>

>>> I thought we were here to discuss Lisp and Java,
>>
>> I thought we were here to discuss programming.
>
> If you want to discuss programming, go right ahead, but leave my
> name out of it and don't insinuate anything about me indirectly,
> either.

Okay, let's do that. The sizeof operator does not evaluate its
operand. The operand of sizeof is an operand to sizeof, not an
argument to sizeof. Proofs have already been posted.

>>> not to flame one another.
>>
>> I haven't flamed you.
>
> A blatant lie.

No, sir, that is not so.

>> I haven't even /begun/ to turn up the heat.
>
> Is that a threat?

No, it's a rebuttal.

> It better not be.

It isn't. Turning up the heat would be counter-productive, as you
have amply demonstrated.

>
>> (You have, by introducing expletives.) I have done only two
>> things in this subthread: (a) [implied insult deleted], and (b)
>> [insult deleted]
>
> Yes, that's right, you've done only two things: insult me and
> insult me some more.

No, I've done only two *important* things, and one of those was to
demonstrate that you don't understand sizeof. The other was to
demonstrate that you have lied. I don't believe I've insulted you
at all, except in jest (yes, the "buffoon" thing was an attempt at
irony, which appears to have passed you by).

> Needless to say, insults are off-topic in all
> three newsgroups you're spewing them into.

Yes, but then I'm not in the habit of insulting people, so that's
all right then.

>
>>> I'm only interested in the former. Please discuss the former or
>>> please go away. Either way please stop publicly badmouthing me!
>>
>> I /am/ discussing programming.
>
> No.

It's sizeof, remember?

>
>> What I am not doing is badmouthing you.
>
> A lie.

No, sir.

>
>> You're doing that yourself.
>
> Another lie. Where have I posted any negative statement about
> myself?

Everything you write about yourself comes across to me as being
negative. I doubt whether I'm the only one who interprets it in
that way.

> I haven't. In fact, the opposite -- I've posted *denials*
> that various such statements apply.

So? What has that to do with anything? It's not what you say or even
what you deny. It's how you say it.

Richard Heathfield

unread,
Jun 3, 2009, 1:12:03 PM6/3/09
to
Seamus MacRae said:

I have read Ben's reply, and agree with it, and will not duplicate
it here. This reply is just to point out that the original context
was sizeof *foo, where foo was a pointer to a struct tm. It was not
a VLA, or a pointer to a VLA. The objection is therefore irrelevant
to the current discussion.

Richard Heathfield

unread,
Jun 3, 2009, 1:15:50 PM6/3/09
to
Seamus MacRae said:

> Richard Heathfield forgot to stop attacking me:

No, Richard Heathfield doesn't attack you. If you think he's
attacking you, you're mistaken. He has consistently tried to bring
this discussion back to the semantics of sizeof, and you have
consistently tried to focus on personalities instead.

>> Seamus MacRae said:
>>> How can you measure the size of something you don't actually
>>> have?
>>
>> By knowing its type.
>
> That doesn't work for variable-length arrays.
>
>>> Don't forget C99 added variable-length arrays.
>>
>> Right
>
> Well, there you go then.

Selective quotation again. What I actually said was: "Right, but

that's irrelevant to the case in point."

>>>> Since you have rejected


>>> I reject any claim that implies that I'm some sort of doofus,
>>> especially if that claim was made publicly.
>>
>> The C Standard doesn't even mention you, let alone call you a
>> doofus.
>
> No, you do. It is you that I am objecting to.

But why focus on personalities when there's a technical discussion
to be had?

>
>>>> I'd like to know what sources of information you _would_
>>>> believe.
>>> When the discussion has become a platform for launching personal
>>> attacks, I *won't* believe any information whatsoever that says
>>> something hostile about me.
>>
>> As far as I'm aware, the C Standard says nothing whatsoever about
>> you in any way, shape or form, let alone anything hostile.
>
> No, you do. It is you that I am objecting to.

But why focus on personalities when there's a technical discussion
to be had?

> Stop trying to change the subject to the C standard, which, as you
> say, is irrelevant to the matter of your insulting me repeatedly.

I'm not trying to change the subject. I'm trying to revert it back
to what it was - i.e. a discussion of the semantics of sizeof -
despite your efforts to the contrary.

>
>>> So you can get that idea right out of your head, right now. I've
>>> no interest in "discussing" myself at all -- I will ignore the
>>> subject unless someone else brings it up,
>>
>> Great!
>
> Then will you shut up about me now?

I'm interested in discussing the semantics of sizeof.

>
>>> and then I will defend myself to the maximum extent possible,
>>> without any negotiation or compromise. Whether I am, or am not,
>>> whatever nasty thing you may be thinking is not up for debate: I
>>> am not, and that is final, and I will not budge on that score.
>>
>> I am delighted to hear it, and would not contradict you for the
>> world.
>
> Fine. Then you'll go away now and leave me in peace?

Nobody is forcing you to read my articles.

Richard Heathfield

unread,
Jun 3, 2009, 1:17:15 PM6/3/09
to
Seamus MacRae said:

> Richard Heathfield wrote:
>> Kaz Kylheku said:
>>
>>> On 2009-06-02, Richard Heathfield <r...@see.sig.invalid> wrote:
>>>> The C Standard doesn't even mention you, let alone call you a
>>>> doofus.
>>> You're arguing with a mentally ill individual
>
> Kaz is lying about me. My health, in every respect, is excellent
> for my age.

This has not been demonstrated beyond contradiction. The possibility
remains that Kaz is not lying.

<snip>

du...@franz.com

unread,
Jun 3, 2009, 1:39:02 PM6/3/09
to
On Jun 3, 10:15 am, Richard Heathfield <r...@see.sig.invalid> wrote:
> Seamus MacRae said:
>
> > Richard Heathfield forgot to stop attacking me:
>
> No, Richard Heathfield doesn't attack you. If you think he's
> attacking you, you're mistaken. He has consistently tried to bring
> this discussion back to the semantics of sizeof, and you have
> consistently tried to focus on personalities instead.

Richard,

The emphasis in this paragraph is pertinent; the word "consistently"
stands out. A saying which is attributed to Einstein is "The
definition of insanity is doing the same thing over and over again and
expecting different results". By that definition, Seamus MacRae is
clearly demonstrating insanity. He may not in fact be insane, but his
behavior is that of an insane person; he consistently tries to answer
every perceived slight as if not doing so would harm his reputation,
even though the results are always the same.

Now the question is: are you going to continue this insanity? It only
takes one to drop a conversation, and all you need to do is to stop.
It is clear that Seamus can't stop himself. The question is: can you?

Duane

Seamus MacRae

unread,
Jun 3, 2009, 1:58:18 PM6/3/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>> Richard Heathfield wrote:
>>> Seamus MacRae said:
>>>> Richard Heathfield wrote:
>>>>> I am less concerned with attacking you than with debunking
>>>> I do not need "debunking", thank you very much.
>>> Right
>> Then please drop this.
>>
>> NOW!!!

You forgot to drop it. Sorry, please hang up and try again.

> [numerous insults deleted]

You are in error about me.

>>>> Next time, do not "debunk" unsolicited.
>>> If you don't wish for mistakes in your articles to be corrected,
>>> you have two choices - (a) don't make mistakes, or (b) don't post
>>> them.
>> I go for option (a), always.
>

> [calls me a liar]

You are in error about me.

>>> I make mistakes in my articles - and they /do/ get corrected,
>>> and I'm pleased by that, because it means I get to learn stuff,
>>> which is good, right?
>> Are you unconcerned with how you are perceived? I'd think you'd
>> rather not be publicly humiliated and made to look like an idiot.
>

> [insult deleted]

You are in error about me.

>> If that's not the case, though, it might explain your boorish
>> behavior here, where you seem unconcerned for the risk that your
>> actions will have that sort of effect on someone else. If, for
>> some strange reason, you wouldn't mind it yourself, then perhaps
>> it just didn't occur to you that someone else *would* mind.
>
> It didn't occur to me that anyone would object to learning something

The problem is the thing you apparently want to teach to the world:
"Seamus MacRae is an idiot". It is, of course, incorrect, and
furthermore I clearly have a vested interest in opposing your so-called
"education campaign".

>> Well, now that you're aware of the possibility, you should know to
>> just quietly move on now.
>
> This is Usenet. I don't have to move anywhere.

Yes, you do. Have you forgotten that whether or not Seamus MacRae is an
idiot is irrelevant to all three newsgroups you're spewing your crap
into? And your occasional asides about C are irrelevant to two of them.

> What do /you/ mean by the metaphor "move on"? Do you mean "quietly

> forget that Seamus MacRae [insults deleted]"

I mean stop posting about Seamus MacRae. Period. Do not mention me
again, in public, indirectly or directly, ever again. You have made your
opinion quite clear and stated it for the record. I have made mine clear
and stated it for the record. Clearly neither of us will budge from our
respective opinions. Therefore the only question left to decide is how
many times we'll each repeat ourselves before you eventually give up on
your ambition of having the last word. One more? Two more? A hundred more?

Come on. Give it up. It's not worth it.

> I'm prepared to do that.

Then by all means, do it already!

> I don't respond well to threats

I am only responding in kind after your own implied threats to continue
loudly broadcasting your unwelcome opinion of me in public.

>>> I think you're confusing
>> I am not.
> Then you must be confused.

I just told you: I am not.

>> I am also not interested in entertaining any more public
>> speculation about my mental functioning.
>
> Fine

Then by all means, please do shut up about me now.

> I used the word in passing (in what I consider to be a legitimate
> way

There is no "legitimate way" to call a stranger an idiot loudly in a
print medium.

> So it seems to me that you are interested in precisely that
> subject.

To the extent that I'm interested in publicly correcting the erroneous
and hostile statements that have been made about me, for the obvious
reasons, yes. I'd much rather not have to though.

> I'm not. I'm interested in sizeof.

I'm not.

>> Drop it.
>
> You don't get to control my actions, remember?

Are you threatening to publicly badmouth me some more? Do I need to get
a lawyer involved in this?

>> Now.
>
> I get to decide what I do and when I do it, remember?

Are you threatening to publicly badmouth me some more? Do I need to get
a lawyer involved in this?

>>>> Regardless, it's been drilled in repeatedly: if "*foo" is
>>>> encountered when foo is uninitialized, Bad Things may happen.
>>> Sure - but this isn't *foo; it's sizeof *foo
>> Which contains *foo as an argument, for heaven's sake.
>
> No, it doesn't.

Yes, it does. We have an occurrence of the structure "operator
argument". This is clear to anyone that isn't blind.

> I know from experience that you don't take a lot of notice of proof

I don't take a lot of notice of flawed arguments purporting to prove me
an idiot, you mean. Because I know for a fact that I am not an idiot.

> but here it is anyway. It proves you [insults deleted]

Fuck you, liar. I am not an idiot and no amount of "proof" otherwise
posted by you will change that fact. The only thing you're proving is
that you're an asshole.

>>>>> You missed my point.
>>>> No, I did not.
>>> Yes
>> No, and this is not negotiable. I do not miss points.
>

> You don't get to control my actions.

You are now arrogantly claiming to have the power to MAKE me have missed
a point by FIAT? How ridiculous.

> You have snipped the explanation I gave of why I considered you
> to have missed my point.

Because I was not interested in it. Your conclusion was a negative
statement about me and therefore could not possibly be correct. It
follows that the reasoning that led you to that conclusion was flawed. I
have little interest in the details of your flawed reasoning, because at
this point I doubt that analyzing it and pointing out the error would
lead you to reverse your opinion of me, or convince you to stop
broadcasting it. Only the danger of your own reputation being dragged
through the mud now seems likely to deter you from doing so.

>>> If you are prepared to limit yourself to systems that use
>>> IEEE754-compatible floating point systems, that's your decision
>>> to make.
>> Since that's the vast majority of systems in present-day use, it
>> doesn't seem to be a biggie.
>
> Things change.

The more things change, the more they stay the same.

>>>>> Fine, you're entitled to think that
>>>> Don't patronize me.
>>> Firstly, I told you before
>> I said, don't patronize me. And what's the next thing you do?
>> Patronize me!
>
> Firstly, no, I wasn't patronising you

Yes you were. Twice. "Fine, you're entitled to think that" is
patronizing, holier-than-thou, know-it-all bullshit. "I told you before"
is equally rude.

> I was explaining to you.

I do not need, or desire, any "explaining to" by you. It is patronizing
and rude, not to mention incorrectly implies negative things about my
intellect.

> Secondly, just because you tell me to do something (or refrain from
> doing something), that doesn't put me under any obligation to obey
> you.

No, the rules of polite society, the terms of service of your ISP, and
the charters of these three newsgroups put you under the obligation to
stop posting these off-topic character assassinations to these three
newsgroups.

>> Fuck off. You are clearly a complete waste of bandwidth and
>> congenitally incapable of remaining polite or civil.
>
> You are the one

No, you are the one who first resorted to namecalling and personal
attacks in what had up till then been a technical discussion.

>>> I'm still treating you like an intelligent man
>> Ordinarily, one does not treat intelligent men as shoddily as
>> you've treated me.
>

> [calls me an idiot]

No, I am not. You, however, are a liar.

>> In particular, when an intelligent man requests
>> that you drop a condescending tone,
>
> I haven't even reached for my condescending tone during this whole
> conversation so far.

Another lie, and calling me a liar to boot.

>> or drop an entire line of questioning,
>
> I haven't /had/ a line of questioning.

You have been questioning my intelligence, in public, practically from
day one. I posted a harmless little aside and then you, who had never
even met me before and had no prior involvement in this thread, jumped
in and called me an idiot. Something is obviously the matter with you,
but I'm damned if I know what, exactly, it is.

> I've pointed out a mistake

You've attacked me, viciously and without provocation.

I. Do. Not. Make. Mistakes.

Stop lying about me in public.

> You are the one who is prolonging this discussion

No, you are. If you stop posting, this discussion ends after only a few
more rebuttals by me.

I on the other hand don't have that choice because I must correct all
erroneous public statements made about me, for obvious reasons.

> Each time you post anything that amounts to such a claim, it's a
> mistake

No, it is not. The mistake being made here is to continue picking on me,
and that mistake is being made by YOU.

> [insults deleted]

The mistake being made here is you continuing to pick on me. I just want
to be left alone. AFTER rebutting all outstanding insults posted about me.

You are demanding the last word, pretty clearly insisting that the final
post in this thread must be by you, insulting me. But that is something
that I cannot allow, and it is something that it's entirely within my
power to prevent, so you can just give up on that goal right now.

>> then unless you are a police interrogator and he is a
>> murder suspect, you do so! Any other behavior is extremely
>> impolite.
>
> Do you consider swearing to be extremely impolite?

I consider you to be extremely impolite, and politeness to be wasted on
you. I tried politeness on you, setting an example and all that, and all
I got in return was more public beratings from you. Obviously, then,
time to try a different tack.

> And you are losing 2-0

I am not losing anything. What are you hopped up on, anyway?

>>> That opinion, however, is beginning to change.
>> Is that a threat?
>

> [numerous vicious insults deleted]

All lies, of course.

I am quite intelligent. Intelligent enough not to waste my time with a
point by point rebuttal of your latest outpouring of vitriol, or to give
it any extra air time by quoting it all verbatim for that matter.

I have tried already to explain to you why a) you are wrong about me and
b) I am not interested in "learning" your insulting "curriculum" but you
are apparently unwilling to listen to my explanations.

>> Actually, I frankly don't care about your opinion of me,
>
> Neither do I.

Then please do shut up about me.

> But I /do/ care about the public understanding of sizeof, which is
> what I'm trying to discuss in this thread and which you appear to me
> to be making every effort to avoid discussing.

I am not interested in discussing it, or anything else, with you. I am
interested in one thing and one thing only: setting the record straight
about my intelligence, which you have, incorrectly, publicly slurred.

Your behavior indicates that you object to my setting the record
straight. That immediately brands you a liar and a muckraker, or
something like it, and puts the lie to your claimed motives, above.

If you really want to discuss sizeof, why not find a willing partner and
go discuss sizeof with him? Leaving my name out of it, of course.

That you insist instead on following up to my posts and casting
aspersions about me proves that your claimed motive is a lie.

> You are devoting far more typing to your reaction to ... my opinion


> of you than you are to the actual subject at hand.

Because the "actual subject at hand" clearly IS your opinion of me, and
also because the various opinions about me are the only part of this
that continues to interest me. Clearly, I cannot just sit idly by and
watch you tell the whole world what an idiot I supposedly am, hence my
replies, which are not actually meant for your consumption at all, since
your opinion is clearly entrenched, but are meant instead for the
benefit of everyone else, who might otherwise be misled by your
erroneous statements about me.

>> just so long as you don't broadcast it loudly but keep it to
>> yourself as a polite person would.
>
> By prolonging the discussion of your behaviour, you are making its
> continuation more likely.

This discussion is not about my behavior, it is about your opinion of me
and why you should keep it to yourself.

And I don't care for your threatening tone. What you just wrote amounts
to: "If you post defending yourself again, I will post attacking you again".

I have every right to defend myself when publicly slandered, and you
have no right to threaten me for doing so. Do I make myself clear?

> If that's what you want (despite what you
> say), fine. If it's not what you want, you might want to consider
> what effective action /you/ can take to stop it.

Well, let's see. If I remain silent, you will be free to go on
blathering your nasty lies about me unopposed, eventually convincing the
world that Seamus MacRae is an idiot, and who knows what other nasty
things, so that none will have anything to do with me.

Clearly, that is a bad move on my part. It hands you victory on a
platter. So I must post something.

What, then? Obviously I should rebut the erroneous claims you make about
me, for starters. The problem is, when I do that, it seems you insist on
posting another bunch of erroneous claims, so I'll be at it till
doomsday. Which means I also have to shut you up somehow.

That can proceed by one of two ways: I convince you to shut up, or I
force you to shut up. Apparently I can't convince you to shut up. So I
guess I'm going to have to have a little chit-chat with the abuse
department at your ISP. What about? Well, there seem to be quite a lot
of off-topic posts in several comp.* newsgroups lately, and Richard
Heathfield seems to be the author of dozens of them ...

Failing that, I guess I'll have to get lawyers involved.

>>>> Please go look in a mirror and adjust that attitude you're
>>>> wearing.
>>> "Please" is a good start [rest of patronizing crap deleted]
>

> 3-0.

What's that, the PONG score in your game with your imaginary playmate?

> But what I said was not patronising. It was a carefully measured point

It was a vehicle for more lies and personal attacks.

> If you want a civil discussion

I'll settle for silence.

> you are going to have to work at it by being civil.

After you.

> [calls me a liar]

You're the liar here.

>> Either discuss the original subject matter or remain silent
>> please.
>
> I'm trying to discuss the original subject matter

You are not. Otherwise you would have no objections to discussing the
original subject matter WHILE LEAVING MY NAME, and your opinion of me,
OUT OF IT.

If you really have no such objections, then please start doing so
immediately.

> you seem remarkably reluctant to contribute

I lost all interest in it when it turned into a vehicle for personal
attacks instead of a neutral, impersonal technical subject.

> which is why that part of the conversation is all but dead,
> despite my attempts to keep it going.

If you want to revive it, revive it *without* my name being involved, or
any implications about my intelligence (or any other traits of mine)
being made.

> You seem determined to prolong all this extraneous discussion about
> *you*

Not really. You seem to think that my posts are replies to yours.
They're not. They're public bulletins pointing out the errors you have
made about me, in the interests of sparing the public (and myself) any
bad consequences of the misinformation you have spread about me. I'd be
quite happy if you didn't even see my posts now.

> which I find terribly tedious

Then please drop the subject.

> and which I'd be as happy to drop if only you would stop making all
> these ridiculous claims.

These "ridiculous claims" are me defending myself when publicly
slandered. And no, I will not stop defending myself. You have made a
very childish demand above, basically "stop blocking me and let me hit
you! Then I'll go away."

Yeah, right. If I stop defending myself, you'll think "sitting duck" and
go for the throat, more likely.

Regardless, basically insisting that you'll keep pulling my hair unless
I say "uncle" proves your juvenile temperament, and probable
single-digit age. And it likely destroys your credibility pretty
thoroughly as well, which, given the nasty and false statements you've
been publicly making about me, suits me just fine.

>>>>>> Do not personally attack me or accuse me of intellectually
>>>>>> dishonest behavior again. You have been warned.
>>>>> It wasn't a personal attack
>>>> Like hell it wasn't. You publicly berated me
>>> Actually, I
>> Actually, I'm not interested in your explanations or excuses.
>
> That reaction leads me to suspect that you're not interested

I'm not interested in debating my intelligence, or alleged lack thereof,
no. I'm only interested in asserting that my intelligence is (at least)
normal. There is no room for compromise here, except perhaps in the
upwards direction.

>> I'm interested in two things:
>>
>> 1. Shutting down this unwelcome and off-topic inquiry into the
>> status of my mental functioning, and
>
> But I have made no such enquiry.

You have too, liar.

> It is not I who turned this discussion of sizeof into a slanging match.

A ridiculous claim, when your very first post in response to any post of
mine was a slap right across the face. You do know that Google Groups
archives your posts, right, and that it's easy for anyone to verify that
your first post was a slap? I have to ask, because you seem to think
that maybe you can somehow fool people into actually believing you
didn't start the slapping match.

>> 2. Getting an apology, if one might be forthcoming, though I will
>> settle for complete silence instead.
>
> You certainly won't get an apology, because I don't make a habit of
> apologising for being right

But you were entirely, 100% wrong about me.

> continuing to make a noise is not the right way to achieve complete
> silence, so why do you continue to post?

To correct, for the public record, the erroneous statements that have
been made about me. As I already told you several bloody times.

>> Shall I repeat what I just said? About the unwelcome nature of any
>> further public inquiry into my mental functioning?
>
> You can if you like, but it won't make any difference to your
> misunderstanding

I understand you perfectly. I just don't agree with your opinions about
me, nor will I let you broadcast them loudly and publicly without
opposition.

>> I understand perfectly.
>
> And yet you [numerous insults deleted]

As I was saying before I was so rudely interrupted, I understand you
perfectly. I just don't agree with your opinions about me, nor will I
let you broadcast them loudly and publicly without opposition.

>> I do not, however, agree with your stated
>> opinions of me, and I will not ever agree with them.
>
> I can live with that.

Then why do you insist on rebroadcasting those opinions every time I
publicly challenge them?

> [implies something stupid]

No, I'm not wrong about your opinion of me, either. Your attempts to
publicly impugn my intelligence are futile. For every attack post, there
is an equal and opposite rebuttal post. You're on a treadmill going
nowhere fast. Ready to stop yet?

>> You cannot gain anything by continuing this.
>
> All I am continuing is a discussion of sizeof in a programming
> forum.

Nonsense. I've already explained, above, why that cannot actually be
your motive, despite your claims.

> If you wish to partake in that discussion, you are free to do so.

I do not.

> If you don't, why do you still post?

To correct the errors in the public record regarding my intelligence.

> Again, that's your decision, but it does seem to be rather an odd
> decision.

Not really. If someone suddenly started telling half the world that you
were a moron, wouldn't you take some sort of corrective action rather
than let such propaganda circulate unopposed? People told one thing
repeatedly will tend to eventually start believing it unless they also
come across conflicting messages.

>> If you drop the subject now, we both walk away and get on with our
>> lives.
>
> The subject is sizeof.

The subject is your opinions of me. I couldn't care less about sizeof at
this point.

> I don't know why you continue to introduce extraneous material

I don't. You do, by constantly attacking me personally instead of making
nothing but sober, my-name-left-out-of-it,
nothing-implied-about-me-indirectly-either statements of a technical
nature about sizeof.

> but I would prefer it if you didn't do that.

That's my line.

> And I have no intention of dropping the sizeof subject at this time

I'm not asking you to. I'm asking you to drop the Seamus MacRae subject
at this time. That is, to stop mentioning me, quoting me, or saying or
implying anything about me.

>> If you continue to publicly insinuate various unpleasant things
>> about my mental functioning, you will be in for a world of shit.
>
> Firstly, what you infer is your responsibility, not mine. I have
> actually said very little about you in this thread,

but implied a great deal.

>> You'll get at least as good as you give
>
> When, for pity's sake? So far, I've been giving great stuff on
> sizeof

You have not.

> and all I've had back is this personal stuff, which I don't
> want and don't care about.

If that were true, you'd stop casting aspersions about me and stick to
the original topic, wouldn't you?

> What I'd like is to find out your technical justification

No. I no longer have any interest in discussing the subject with you,
because I expect it will only encourage you to cast even more aspersions
in reply.

>> and will likely lose your usenet access in the bargain.
>
> That isn't going to happen, for at least two reasons:
>
> 1) I haven't done anything wrong, as the record will show;

You have posted a large number of off-topic posts to at least three
Usenet newsgroups.

> 2) Nowadays, ISPs mostly don't care anyway, not even about spam -
> they should, but they don't.

Well, let me enlighten you:

INTRODUCTION - ACCEPTABLE USE POLICY (AUP)

INTRODUCTION

For the Internet to operate in a manner that satisfies the majority of
its users, all users need to observe some rules and behaviours governing
their use of it. These requirements are usually contained or referred to
in the relevant terms and conditions governing the particular Internet
service as well as the law.

To enable its customers to have a better understanding of what is and is
not acceptable when using the Internet, and to help you get the best out
of the Internet, BT has developed a number of Acceptable Usage Policies.
These policies should help you benefit from safer surfing and minimise
the risk of suffering "online abuse".

We have also included some general advice on how to protect you and your
computer to each of these policies which we encourage you to follow.

Illegal and inappropriate activities

As an Internet user, whilst connected to the Internet via BT you must
comply with the relevant laws that apply in the UK. You should also be
mindful of the fact that the Internet is a global medium and is
regulated by the laws of many different countries. Material which is
legal in this country may be illegal in another and vice versa.

These are some of the things that you must not do whilst connected to
the Internet:

You must not, by using the service, download, possess or transmit in any
way, illegal material (for example indecent images of children).

You must not send, publish, distribute, circulate or otherwise propagate
any material that may be deemed to be grossly offensive or of an
indecent, obscene nature or menacing in character.

[So far you haven't posted anything that rises to the level of
"menacing", though you have sometimes been childishly threatening in a
definitely non-menacing way.]

You must not send, with the intention of causing annoyance,
inconvenience or needless anxiety a message that you know to be false,
or to cause such a message to be sent

[Bright-line violation here.]

or to persistently make use of our service for that purpose.

[And here.]

You must not gain or attempt to gain unauthorised access to any computer
systems for any purpose, including accessing the Internet.

You must not, without authorisation intentionally impair or attempt to
impair the operation of any computer, prevent or hinder access to any
program or data held in any computer or to impair the operation of any
such program or the reliability of any such data (this could include
deleting files, changing the desktop settings introducing viruses etc.).

You must not infringe the rights of others, including the right of
privacy and copyright (an example would be sharing without permission of
the copyright owner protected material such as a music or video file).

[Arguably, posting about me publicly after repeated requests to stop
violates my right of privacy.]

Many of these activities could result in legal action, a fine or a term
of imprisonment or both.

If you are in any doubt as to the legality of anything, take independent
legal advice before proceeding.

BT�s obligations

BT is obliged under the Regulation of Investigatory Powers Act to
disclose information to Law Enforcement Agencies and Public Authorities
that are legally entitled to obtain such information. Similarly BT must
comply with court orders to disclose information. In serious instances
of abuse we may also notify the police or relevant law enforcement agency.

BT cannot and does not monitor content of its� customers webspace or
content of chat rooms, instant messaging, email, newsgroup or indeed of
any communications and therefore BT cannot and does not guarantee that
all of these are free of illegal material or other content considered
unacceptable by others including the Internet community.

Changes to the Acceptable Use Policies

We may change the Acceptable Usage Policies� from time to time and will
inform you on this website when we do so. To make the most of the
guidance contained in the AUPs, please keep up to date with changes and
look at them on a regular basis. We hope you will find them useful and
informative.
Please note that our AUP's were last updated in [December 2006].

Breaches of Acceptable Use Policies

Reports of breaches of these acceptable use policies by BT customers can
be sent to ab...@btbroadband.com

[On its way already.]

BT may operate systems to ensure compliance with these acceptable use
policies, including without limitation network scanning and testing of
open servers and mail relays.

>> It's your choice.
>
> I choose to discuss sizeof

Yet you did not.

>>>> and implied in front of a large audience that I was stupid
>>>> and/or incompetent.
>>> No
>> Yes. Publicly insulting me was bad enough. Now you have the gall
>> to lie about it?
>

> Pointing out that you are [insult deleted]

I am not.

> is not the same as saying you are stupid or incompetent.

Sure it is. It implies that one or the other must be the case.

> Nor do you get to decide what I imply.

I'm not deciding what you implied. I'm just making an observation about
what you implied.

> If you wish to infer in front of a large audience that you are stupid

I have done nothing of the sort, and the mere insinuation otherwise is a
lie. In fact, I have strenuously *denied* being stupid.

>>>> What the hell is the MATTER with you?
>>> Nothing, really. What is the matter with you
>> Nothing. And that is final.
>

> Except that [insult deleted]

No.

>> I am not interested in discussing or negotiating or anything like
>> that. My stance regarding my own mental functioning is firm, and
>> you will not budge it. You will only let yourself in for a nasty
>> and pointless flamewar if you insist on continuing to poke into a
>> subject matter where you have been warned repeatedly now that
>> you're not welcome.
>
> I'm not *interested*.

Then *stop*.

> I don't know why you think I am.

Because the vast bulk of each of your ridiculously-long posts consists
of casting aspersions about me in public, that's why!

>>>> And with several other people in these newsgroups?
>>> "It was a terrible parade. [rest deleted]
>> Parades are not on topic here.
>
> The comment was relevant to the discussion.

It was not. Parades have not been the topic of this discussion at all.
Indeed, I believe yours was the first mention of parades in this entire,
thousand-post-plus mess of a thread.

> [calls me a liar]

No, I'm not one of those, either. You are.

>>>>> You are taking this far too personally.
>>>> That isn't for you to decide.
>>> True enough. I will rephrase. I *believe* you are taking this far
>>> too personally.
>> Irrelevant. If I say I don't welcome a continued discussion of me
>> in public, then the subject is closed, whether or not you would
>> mind if our positions were reversed.
>
> If you think the discussion is closed, why are you still
> contributing to it?

Because you forgot to shut up about me, and your latest erroneous
statements about me require public correction.

>> When it's your mental competence that's being discussed in public,
>> then it's your turn to decide the same things.
>
> I'm not interested in your mental competence.

Then let the topic drop already!

>> Fair's fair.
>
> It doesn't say fair on the box.

This, too, is childishness. You are basically saying you will do
whatever you please, fair or not, simply because you believe you can get
away with it. That is not the behavior of a civilized, mature adult. It
is the behavior of a child, or a sociopath.

> If you're looking for some kind of resolution, there probably won't
> be one

Is that a threat? Or just you childishly insisting on having the last
word yet again.

>>>>> This is a discussion, not a lawsuit.
>>>> It's not a polite discussion, and it hasn't been since you
>>>> started making things personal.
>>> It could be polite. I am doing my best to remain polite, and I
>>> think that mostly I'm succeeding.
>> You're not succeeding.
>

> [lies deleted]

You were impolite from the moment you butted into this thread and called
me an idiot to my face.

>>>> You made several nasty errors:

>>>> 2. Then when I responded to smooth things over,
>>> I don't recall your trying to smooth things over.
>> Yes. In <MYWdnboGP7QDyb3X...@bt.com> you nitpicked
>> me,
>

> [calls me a liar]

No, you're the liar.

>> apparently unaware that the correct response to my post was to
>> either leave it alone or agree.
>

> [calls me a liar]

No, you're the liar.

>> In <gvss9q$nff$1...@news.eternal-september.org> I responded in such a
>> way that you could have just left that post to stand unmolested
>> and everything would have been fine. Instead, you attacked and
>> here we are now.
>
> In that article, you screwed up

I DID NOT.

> [rest of insults deleted]

No. You're the stupid one here, as has been repeatedly demonstrated.

>> Given that you had several opportunities to leave me alone and
>> chose instead to blast me with increasingly-stronger shots each
>> time, I have to conclude that you want a fight.
>
> No

Yet here you are, fighting some more, viciously insulting me again and
again and again.

I think you don't even know your own mind very well.

>>>> you replied with
>>>> a more direct and serious attack instead of letting sleeping
>>>> dogs lie. Big mistake.
>>> Again, got a msg-ID?
>> Yes: <LqCdnVrkBr9Qpb_X...@bt.com>
>
> That's not a serious attack.

I'll be the judge of that.

> [calls me a liar]

Says the liar.

>> This you should definitely never have posted.
>
> Why not?

Because it implied vicious lies about me, doofus. Why else?

>>> My own recollection is that you appeared to continue to
>>> misunderstand
>> I HAVE NO INTEREST IN CONTINUING TO DISCUSS YOUR OPINION OF MY
>> MENTAL FUNCTIONING. HAVE I MADE MYSELF CLEAR?
>
> Yes, you have. I have no interest in it either.

Then stop doing so! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

>> Why are you so unwilling to respect multiple boundaries?
>>
>> 1. The topic bounds. These newsgroups are for discussing
>> programming, not people.
>
> sizeof qualifies.

Seamus MacRae's intellect does not, and comprises the bulk of the
subject matter in your excessively-long posts.

>> 2. The personal boundaries around one another. You do not publicly
>> speculate about another person's mental functioning without
>> permission! Jeezus.
>
> I am not interested in speculating about your mental functioning.

Then stop doing so! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

>> 3. The relevance bounds. The arguments about Lisp vs. Java,
>> emacs vs. Eclipse, and Seed7 warnings, and the original
>> job-search topics, all have relevance bounds. My mental
>> functioning is irrelevant to all of those topics. The only
>> person whose mental functioning might be relevant to any of
>> them is Robert Maas, the original job-seeker.
>
> In this thread, I'm not interested in any of these things.

Then this is the wrong thread for you. It's that simple.

>>>> 3. You continued to not back down when I continued to try to
>>>> reset things to the appropriate state so that the
>>>> discussion could move on in other directions.
>>> Why would I back down from a correct position?
>> I refer to your arguments about my mental functioning.
>
> I'm not *interested* in your mental functioning. Please can we drop

Then do so! Or, by continuing to discuss it, prove beyond any remaining
sliver of a doubt that you are, indeed, a liar.

> [implied insults]

Wrong again, fatso.

>> You hold certain *opinions* there. They are not "correct" in my
>> opinion,
>

> So what? [further insults deleted]

So you seem to treat your *opinions* regarding my intelligence as if
they were matters of *fact*.

Which is especially odd, because if they're just *opinions*, then you
simply have an opinion like anyone might, but if they are matters of
*fact*, then you are *wrong*. Wouldn't you rather be opinionated than be
wrong?

>> And I say you are to stop discussing me in public altogether.
>
> I'm not trying to discuss you.

Then stop doing so! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

> if there's one thing that's likely to make me want to continue to
> discuss a subject, it's a demand for me to stop.

That's because you're perverse and childish and probably have
Oppositional Defiant Disorder. Basically means you habitually disrespect
your elders, such as me.

>> Killfile me if you must, but henceforth, please pretend that I do
>> not exist.
>
> I'm okay with pretending you don't exist.

Then do so! Or, by failing to do so, prove beyond any remaining sliver
of a doubt that you are, indeed, a liar.

> So - we have this invisible man who doesn't exist (if I shut my

> eyes), but this invisible man who doesn't exist is [calls me a
> liar]. How can we solve this problem?

Get you off the drugs. You're clearly hallucinating, or, perhaps, just
plain delusional.

>> That means if you see a post by me, it does not exist
>> so you will not post a followup. If you hold an opinion about me,
>> it does not exist so you will not post mentioning it or implying
>> it.
>

> [But I demand the last word! I DEMAND IT! WAAAAAH!]


>
>> I hope I've made myself clear enough this time.
>

> [But I demand the last word! I DEMAND IT! WAAAAAH!] I hope I've


> made myself clear enough this time.

All too clear, crybaby.

>>>> Don't do that!
>>> You don't get to control my actions.
>> Ordinarily, no, but when your actions include making public
>> statements about me, my rights of privacy and publicity enter into
>> it, and I say I don't want you discussing me in public.
>
> I'm not interested in discussing you in public.

Then stop doing so! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

>> Really, I am none of your business anyway so you have no good
>> reason to be doing so;
>
> It is you, not me, who prolong this discussion.

You're the one who keeps insisting upon having to have the last word,
remember?

>>> You don't get to control my actions.
>> You're missing the point. I am attempting to explain rules of
>> polite society to you that apparently you don't get.
>

> [insult deleted]

No, you're the rude one.

>> You don't keep pressing someone that clearly doesn't want a
>> fight. You leave them alone.
>
> I don't want a fight.

Then stop fighting! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

>>> If you screw up
>> That never happens.
>

> It happened. [rest of insulting lies deleted]

It did not.

>> If it ever did, then you should certainly not keep aggressively
>> poking at someone who is trying to save face.
>

> [calls me a liar]

No, you're the liar, remember?

>> That's how big, nasty fights start, when someone disrespects
>> someone else's right to be left alone.
>
> If you don't want people to respond to your articles, in my
> experience the best way to achieve that is not to post them.

But I have to post rebuttals to each of your erroneous posts attacking
me, lest somebody read your post, see that it was allowed to pass
unchallenged, and think that what you said about me was actually true.

You, on the other hand, don't have to reply to those.

> Anything you do post is very likely to get discussed, even if the
> thing you post is "please don't discuss this". That's human nature
> for you.

No, that's childish crybaby nature for you. You might notice that nobody
else is discussing those posts of mine except you.

>>>> You'll have said
>>>> your opinion, they'll have said theirs, and everyone can move
>>>> on.
>>> You can move on any time you like. Nobody forces you to respond.
>> Oh, is that what this is about? You keep posting because you have
>> a childish insistence on having the last word? How disappointing.
>
> I've already explained elsethread that you can have the last word.

Then shut up! Or, by failing to do so, prove beyond any remaining sliver
of a doubt that you are, indeed, a liar.

> If you want to suppress discussion of a subject you find
> uncomfortable, telling people not to discuss it is simply the wrong
> strategy.

Oh? Then what, in your *opinion*, WOULD be the right strategy?
Postcondition: after the strategy is executed, the "discussion" has
stopped and no negative claim about me stands unchallenged -- all have
at least one followup, in all of the same newsgroups, asserting that the
insults targeted at me are 100% erroneous and I'm really a great guy
despite what some schmuck said.

>>>> If, instead, you respond by restating your opinion more
>>>> forcefully, it starts a fight instead, and nobody benefits from
>>>> that.
>>> If someone (anyone, not just you) disagrees with a point I've
>>> made in an article, either they are right (in which case I'm
>>> wrong and I'd like to know about it), or they are not right (in
>>> which case it may be worth trying to put things in a way that is
>>> easier to grasp)
>> Insulting. I think you should be thinking "worth trying to put
>> things in a way that preserves both sides' dignity", don't you? Or
>> does the dignity of other people not concern you?
>

> [lies deleted]

I think you should be thinking "worth trying to put things in a way that
preserves both sides' dignity", don't you? Or does the dignity of other
people not concern you?

>> I'm getting a very disturbing picture here: that you are not


>> willing to agree to disagree on any subject, nor do you care about
>> preserving the dignity of others.
>
> I think your picture is not so much disturbing as distorted.

> [rest deleted]

No, you're the one that hallucinates, remember?

>>> In this case, you [insult deleted]
>> I repeat: I am not interested in your opinion of me. Neither is
>> anyone else. Don't. Post it. Again.
>
> I repeat: you don't get to control my actions.

That's a definite threat to badmouth me in public.

I don't respond well to threats.

>>> you didn't seem to see why


>> I see exactly why you hold your opinion of me.
>
> You don't know what my opinion of you is

Sure I do. It is very easy to infer from the opinion of me that your
posts are designed to induce in readers.

> [more namecalling, etc.]

Up yours, liar.

>> I also don't give a shit. My concern is with your *posting that
>> opinion in public*, and posting things apparently designed to
>> induce *other people to develop the same, negative opinion*.
>> You can surely understand why I don't want that happening,
>> particularly the latter part.
>

> What I don't understand is why you [insults deleted]

I don't. You lie, as usual, about me.

>> What I don't understand is why you seem to be insistent that that
>> happen, and that I not be permitted to speak up in my own defense?
>
> Of course you are permitted to speak up in your own defence.

Yet you keep telling me not to do so, threatening me with dire
consequences (such as more insults by you) if I do do so, and insulting
me whenever I do do so.

You certainly don't *seem* to want me to do so, at least not and have my
defense stand unchallenged.

(You could prove that wrong, of course, by simply not replying to this
post.)

> But you are not being attacked.

A lie.

> [calls me a liar]

But we've already established which one of us is the liar, and it wasn't
me, remember?

>> Really, I just want to be left alone.
>
> Would you prefer it if nobody responded to your articles?

I would certainly prefer it if you did not.

> [threats deleted]

I don't respond well to threats.

>> If, after this post, you continue to harass me,


>
> I'm not trying to harass you.

Then stop doing so! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

>> I will have to
>> conclude that your purpose is in fact to start a fight. There is
>> no other explanation for someone posting an attack post in
>> response to "I just want to be left alone", after all.
>
> I am *not* attacking you.

Liar.

> but not at the expense of giving in to what I perceive to be
> attempts at coercion.

You're one to talk. Shut up or else. I WILL have the last word. Do not
defend yourself dammit! And so forth.

>>> I have even now not made it clear enough (although the middle
>>> part of this reply is another attempt).
>> Your opinion is crystal clear. I hope by now so is mine: I do not
>> want you to make yours even clearer. I want you to drop the
>> subject and leave me in peace.
>

> The subject is [calls me names yet again]

The subject is moot. The discussion is over. I am not, and never have
been, stupid, and that is final. Non-negotiable. Do you understand the
meaning of the phrase "non-negotiable"?

>>>>> I described your argument as a strawman argument because
>>>> you're an asshole. Yes, yes, I know.
>>> Selective quotation
>> Please do not change the subject.
>

> [calls me a liar]

You changed the subject from your being an asshole to quotations. I can
see why you might find the former subject uncomfortable in a public
discussion, but hey, turnabout is fair play. Changing the subject as a
dodge, on the other hand, is cheating.

>>>>> your flawed understanding
>>>>> led you to believe, mistakenly
>>>> Stop personally-attacking me at once.
>>> Firstly, I'm not personally attacking you.
>> Yes, you are.
> No, I'm not.

Yes, you are. This latest magnum opus of yours is just oozing with
contempt and dripping with personal attacks.

>> You are publicly calling my intelligence into question. That is
>> an insult.
>
> No, it isn't.

Yes, it is.

> [more silly namecalling from Richard]

Give it a rest.

>> It's the same as if you posted "Seamus MacRae is an idiot" on
>> the billboard at Times Square.
>
> No, it isn't.

Yes, it is.

> If I did as you described, it would be impractical and
> possibly even counter-productive to put up another poster saying
> "no he isn't". But on Usenet

On Usenet, it's easy for me to say no I'm not, but then it's just as
easy for you to keep reiterating yes, you are, and then we get stuck in
an endless loop that is equally impractical.

> I suspect that you are probably not an idiot

So, at last you admit the truth!

>> How would you like it if someone put "Richard Heathfield is an
>> idiot" on there?
>
> If you posted such a comment on Usenet, you would not be the first.
> And I would not react by trying to stop you from posting.

What if I didn't do it just once, but again and again and again, and
explicitly expressed an intention to do so again every single time you
posted to protest that you were not one?

Then what would you do?

> Instead, I'd try to find out why you thought I was an idiot, and
> then I'd explain why it wasn't the case.

Been there, done that, didn't work. What next?

>> I'm guessing you wouldn't.
>
> I wouldn't particularly revel in it, no, but on the other hand I'm a
> grown-up and able to take care of myself in a discussion without
> having to resort to trying to shut the other guy up (which never,
> ever works).

Ooh -- more namecalling and more threats. I'm so scared!

Not.

Meanwhile, you neglect to consider the question of what you would do if
the other guy keeps going on and on and on, in public, about what a
horrible person and doofus you are. Surely you'd have to do *something*,
and given the impracticality of spending hours every day posting
rebuttal after rebuttal, you'd figure out the obvious shortcut!

>> Please let this entire matter just drop, for both of our sakes.
>
> If you mean the matter of sizeof

NO, I MEAN THE MATTER OF ME.

>>> I am having a discussion on Usenet.
>> You are discussing a person in public without that person's
>> consent. That is a no-no.
>
> Very little is a no-no on Usenet

Are you forgetting your internet provider's terms of service, which I
posted above? I marked out the sections you were clearly violating, for
your benefit. Perhaps you'd like to review it now, before continuing
with this clearly-erroneous line of debate.

>>> Secondly, I am sure you would agree that you are wholly
>>> entitled to make your own choice about whether to take part in,
>>> or to withdraw from, this discussion.
>> Then I choose to withdraw from it, by which is meant my name will
>> not appear any further in it, which in turn means you do not talk
>> about me and you do not follow up to one of my posts.
>
> You don't get to control my actions.

Another threat! My oh my!

>> Is that clear?
>
> Your opinion is clear enough.

Good.

>> Otherwise, I am "taking part" by being mentioned or quoted in it,
>> against my will and in violation of that very entitlement that you
>> just admitted I possess.
>
> You get to choose what you do.

And I choose not to have my name mentioned in this any more. Simple, right?

>>>> You will not again use the
>>>> words "flawed" or "mistaken" to describe me in public. Do I make
>>>> myself clear?
>>> You make yourself perfectly clear, but [insults deleted]
>>> You don't get to decide what I write.
>> Fuck you.
>

> [puerile babblings deleted]

I said, "fuck you". What part of "fuck you" don't you understand?

>> Obviously, you understand me perfectly and are explicitly refusing
>> to leave me alone.
>
> No, I'm exercising my right to post to Usenet

Go ahead and post. Just leave me the fuck out of it, OK?

>> Fine. If you want a fight, let's fight.
>>
>> Your mother is so fat, she is required by law to wear a "wide
>> load" sign and beep when she backs up.
>

> [calls me a liar]

Nope, sorry, no can do. We've been over that already, see?

> [insults deleted]

How boring. The same old insults to the intelligence thing. Not even a
poke regarding my mental health, let alone my mother or my sexual
preferences. You keep picking fights but you're just *terrible* at flaming!

>> Your turn.
>
> Let's get back to sizeof, shall we?

Nah. Your girlfriend's so loose you'd rather fuck a goat.

>>>> Leave. Me. Alone.
>>> If you don't wish to communicate with me, you can stop doing so
>>> at any time.
>> I don't wish to be communicated ABOUT in public by you.
>
> Fine. I don't wish to pay tax. But we don't always get what we want.

I don't respond well to threats.

> As it happens, however, I'm not overly excited about the prospect

> of communicating about you either.

Then stop doing so! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

>>>> These newsgroups are for discussing programming, not people. I
>>>> am off-topic here.
>>> I agree
>> Then stop talking about me!
>
> You don't get to control my actions.

I don't respond well to threats.

>>> sizeof *is* topical, and that's what I'm discussing.


>> Get real. This stopped being about "sizeof" several posts ago when
>> you decided to make things personal.
>
> So you claim. But I disagree.

Then you're a nut.

>>> All this extraneous guff is just a side issue.
>> All this "extraneous guff" is what actually matters to me. If you
>> consider it a mere "side issue" then that's another reason for you
>> to drop this thread and move on -- topic drift has taken it
>> outside of your area of interest.
>
> I'm very ready to drop all the personal stuff

Then do so! Or, by failing to do so, prove beyond any remaining sliver
of a doubt that you are, indeed, a liar.

>>>>>>>>> I've worked in environments like that, and found it quite
>>>>>>>>> workable.
>>>>>>>> Now I know why so much C software is crash-prone and
>>>>>>>> generally buggy.
>>>>> Spot the (groundless) personal attack, to which I reacted.
>>>> There was no personal attack in my post.
>>> That's called "special pleading".
>> No, it's called pointing out that insulting software is not
>> insulting a human being, and therefore is not a personal attack.
>
> No, it's called "special pleading".

No, it's called pointing out that insulting software is not insulting a

human being, and therefore is not a personal attack. For an attack to be
personal it has to be directed AT A PERSON! Get it?

> [calls me a liar]

No, you're the liar.

>> For it to have been a *personal* attack it would have had to imply
>> something negative about some specific *person*.
>
> Even granting for the sake of argument (and without prejudice to
> future dispute) that this definition is correct, how is my

> [implication that Seamus MacRae is an idiot] a "personal attack"?

That you even asked the question speaks volumes about YOUR intelligence.

>>>> Saying that environments
>>>> that ignore a lot of compiler warnings generate buggy code is
>>>> not an attack on any particular person.
>>> Who said anything about ignoring compiler warnings?
>> You did.
>
> No

Yes, you did.

> [calls me an idiot again]

No, you're the idiot, remember?

>> Fuck you.
>
> Is that five?

Yeah, with the middle one upraised and the others closed into a fist.

>> I've had it with you. You pretend to some kind of civilized
>> character but your real objective is simply to go around
>> badmouthing anyone you disagree with,
>
> No

Yes. You've proven it by your actions.

>> have the last word in any discussion, and generally shove your
>> weight around. How old are you, about three?
>
> Even older than three. In fact, I'm all gwowed-up now

That's a laugh. I'm guessing no more than about seven. Though you
probably did think of seven as "all gwowed up" four years ago when you
were three.

>>> (a) it's impossible to satisfy every compiler, and code that is
>>> required for eliminating a warning on one compiler may itself
>>> cause a warning on another; therefore, a clean build is not
>>> actually possible in the general case for non-trivial code that
>>> must build on multiple compilers;
>> Doesn't follow. Ever heard of #ifdef and its friends? Conditional
>> compilation means being able to satisfy multiple compilers, and
>> produce more portable code.
>
> The cure is worse than the disease

In your humble opinion.

> Stupid stupid stupid.

Yes, you most certainly are.

>>> Nevertheless, you have clearly made them.
>> I have *now*,
>
> You started way back.

I started after you did.

>> when you continued to publicly badmouth me. You asked for it,
>> you got it. Now, are you ready to quit, or are you thirsty
>> for more?

I guess that question has now been answered in the affirmative.

> Or are you determined to follow your self-destructive path?

Another threat! My my! Perhaps I should be calling the police now, and
nevermind my lawyer or your ISP's abuse department. Your implication now
is that you intend to drive me to suicide! That's murder in at least
some jurisdictions, and sure reads as a death threat to me no matter what.

>>>>>> You've said your piece and I've said mine. Move on.
>>>>> I'm already in the right place.
>>>> NO. YOU ARE NOT.
>>> I respectfully disagree.
>> Respect? That's a joke. You've shown no respect for my wishes, for
>> my boundaries, or for any of the three newsgroups' topic
>> boundaries, at least thus far.
>
> I have tried to show restraint and respect

If so, you've done an astonishingly lousy job of it.

> continually try to avoid in favour of extraneous waffle about
> personalities.

You were the one to drag personalities into this, way back when you
first posted and, by doing so, erroneously implied that I was an idiot.

>>>> You've said your piece. It does not bear repeating.
>>> Am I right to interpret this as "Seamus is not interested in
>> You are right to interpret this as "Seamus is not interested in
>> continuing this discussion, or in being the subject of any
>> discussion in which you participate".
>
> Then the solution is easy - you can simply killfile me

That won't work, because it will leave you to continue badmouthing me
unopposed. In other words, I'd be handing you victory on a platter.

Nice try, but I'm far too intelligent to fall for such a lame trick.
Methinks you've swallowed too much of your own propaganda and started
actually believing that I'm stupid and things like that. Well, let me
enlighten you ...

>>>> MOVE ON.
>>> I'm already in the right place.
>> No. See above.
>
> Your failure

I have no failures. You do, remember?

>>>> Calling me a liar will not make me friendlier.
>>> I don't believe I've called you a liar.
>> Implied it, at any rate.
>
> No.

Yes.

> [calls me a liar again]

See?

>>> Irony is always dangerous.
>> So is a complaint to your internet provider for flooding three
>> newsgroups with offtopic drivel.
>
> I am trying to discuss sizeof, not offtopic drivel.

You're failing. Spectacularly.

>>>>> Okay, so I'll retract "buffoon" - but for heaven's sake,
>>>>> lighten up a little
>>>> After you.
>>> I'm not the one who introduced expletives into the discussion.
>> You are, however, the one who introduced rudeness, personal
>> innuendos,
>
> I don't think so.

Do I need to post the msgids again?

>>> Nor will I sink to your level
>> My God, are you really trying to claim the moral high ground now?
>
> Why would I need to do that?

Because you're hip-deep in quicksand and sinking fast?

>> How utterly ridiculous. It's never available at any price to the
>> guy that shot first, so you can give up on that idea right quick.
>

> My first "shot" as you call it was [calls me an idiot]

Yes, I know. You don't seem to think calling people idiots in a public
place is a biggie. Well, I happen to disagree, so fuck you.

[large irrelevant aside deleted]

>>> It's more cost-effective to xxx in a public article than to send
>>> emails to every single subscriber.
>
> That is a lie.

No, you are the liar, remember?

>> Anyway, I guess it's now your move. Will you decide to leave
>> things be, and consider this match a draw,
>
> It's not a match.

Then stop fighting! Or, by continuing to do so, prove beyond any
remaining sliver of a doubt that you are, indeed, a liar.

> This isn't a competition. It's [calls me an idiot]

Oh, it's idiocy alright, but the idiocy is all coming from some guy who
calls himself Richard Heathfield.

Seamus MacRae

unread,
Jun 3, 2009, 1:59:14 PM6/3/09
to
nick_keigh...@hotmail.com wrote:
> On 1 June, 17:36, Richard Heathfield <r...@see.sig.invalid> wrote:
>> nick_keighley_nos...@hotmail.com said:
>>> On 1 June, 11:48, Seamus MacRae <smacrae...@live.ca.invalid>
>>> wrote:
>>>> nick_keighley_nos...@hotmail.com attacked as well:
>
>>>>> It doesn't need to know the value of foo but only the type
>>>>> of foo.
>>>> There are variable-length arrays in C99.
>>> yes, you are correct. I tend only to think about C89.
>> More to the point

More to the point, it torpedoes the entire argument about why I'm
supposedly a moron.

I am not a moron.

Seamus MacRae

unread,
Jun 3, 2009, 2:01:13 PM6/3/09
to
nick_keigh...@hotmail.com wrote:
> On 2 June, 22:12, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
>> nick_keighley_nos...@hotmail.com wrote:
>>> I merely adress the massed ranks of the Lurkers.
>> Not about me, you don't, not if you know what's good for you.
>
> are you threatening me!? With what? What will happen if I discuss
> your idocy on the internet?

If you continue to slander me publicly, I may initiate legal
proceedings. Before that, I'm likely to have a little chitchat with your
internet provider's abuse department regarding your off-topic and
inflammatory posts.

And I am not an idiot.

> It obviously doesn't pay to be reasonable with some people...

Evidently. I tried being reasonable with both you and Heathfield, but to
no avail.

thomas...@gmx.at

unread,
Jun 3, 2009, 3:42:39 PM6/3/09
to
On 3 Jun., 18:05, Seamus MacRae <smacrae...@live.ca.invalid> wrote:

struct tm * is NOT a variable-length array. Additionally I said:
"The explanation above refers to K&R C and to C89."
AFAIK C99 is used by a minority while C89 is still the
standard used by most C compilers and programmers.

Greetings Thomas Mertes

Seed7 Homepage: http://seed7.sourceforge.net
Seed7 - The extensible programming language: User defined statements
and operators, abstract data types, templates without special
syntax, OO with interfaces and multiple dispatch, statically typed,
interpreted or compiled, portable, runs under linux/unix/windows.

Willem

unread,
Jun 3, 2009, 3:46:06 PM6/3/09
to
Seamus MacRae wrote:
) <snip>
) I. Do. Not. Make. Mistakes.
) <snip>

You claimed that sizeof always evaluates its operand,
but sizeof only evaluates its operand when it's a VLA.


SaSW, Willem
--
Disclaimer: I am in no way responsible for any of the statements
made in the above text. For all I know I might be
drugged or something..
No I'm not paranoid. You all think I'm paranoid, don't you !
#EOT

Willem

unread,
Jun 3, 2009, 3:47:00 PM6/3/09
to
Seamus MacRae wrote:
) Evidently. I tried being reasonable with both you and Heathfield, but to
) no avail.

When ?

thomas...@gmx.at

unread,
Jun 3, 2009, 4:09:26 PM6/3/09
to
On 3 Jun., 18:07, Seamus MacRae <smacrae...@live.ca.invalid> wrote:
> Richard Heathfield wrote:
> > thomas.mer...@gmx.at said:
>
> > <good explanation snipped>
>
> What "good explanation"?

Sorry that I tried to explain how the 'sizeof' operator works in
K&R C and C89. Since you obviously already know everything
it is pointless to explain something to you. I apologize that I did
not recognize your genius. Everybody should start to praise your
wisdom and your infallibility. Reality will change such that you
are always right.

Message for everybody else:
Draw you own conclusions how the C89 'sizeof' operator and
reality works.

Kaz Kylheku

unread,
Jun 3, 2009, 4:28:57 PM6/3/09
to
On 2009-06-03, Lars Enderin <lars.e...@telia.com> wrote:
> Seamus has been told the facts about this repeatedly, but you must
> realize that when facts disagree with Seamus, the facts must be wrong,
> since Seamus is *never* wrong. At least that is what he claims. He has
> serious problems with reality.

There is copious evidence that Shameful Macro /knows/ that he is wrong.

Yes, he is desperately trying to uphold a self-image of competence and
infallible correctness. But that self-image is fragile, because it is the
result of an imperfect self-deception. (Self-deceptions rarely are perfect,
but even imperfect ones are insane).

If his self-image wasn't fragile, he wouldn't fly off the handle any
time he is confronted with evidence which contradicts the self-deception.

He knows that he looks like an idiot, but he wants to project that problem onto
whoever is calling him an idiot at the moment. Hence, ``Stop attacking me and
making me look like an idiot!''.

Not only does he believe that he is infallibly right, he believes that people
somehow have the magic power to make others look like idiots. I.e. the
manifestation of idiocy does not stem from the words and actions of the idiot,
but rather it is an image impressed onto him by words uttered by others! If
those others simply refrain from those words, then he won't look like an idiot.

In-freaking-sane. And stupid. What a combo.

Insane and smart, I can't work with either, but can at least respect.

:)

Kaz Kylheku

unread,
Jun 3, 2009, 4:32:03 PM6/3/09
to
On 2009-06-03, Richard Heathfield <r...@see.sig.invalid> wrote:
> I have no personal animosity towards you whatsoever. I'm beginning
> to pity you, but I don't dislike you. I do dislike the way you
> "argue", but that's different from disliking you.

On the other hand, not me. I tend to despise what others pity. (With
clear exceptions---like, for instance, bear cubs who lost their mother to a
poacher's rifle, that sort of thing---but not in this case).

:)

Richard Heathfield

unread,
Jun 3, 2009, 5:07:03 PM6/3/09
to
Seamus MacRae said:

> Richard Heathfield wrote:
>> thomas...@gmx.at said:
>>
>> <good explanation snipped>
>
> What "good explanation"?

"The compile time operator 'sizeof' determines the size of a
given variable, constant or type at compile time. This is done
by using the type of the variable or constant or by using the
given type. The compiler knows the sizes of most data
structures. When the size cannot be determined at compile
time the sizeof operator cannot do something reasonable.
E.g.: When using void * pointers the size of the destination
of a void pointer cannot be reasonable determined at compile
time since the compiler cannot know where the void pointer
points to. I am not sure what you get for 'sizeof(void)' but
this will probably not be something you want to use. Since
'sizeof' is executed at compile time there is nothing that can
be executed at runtime. The compiler replaces the sizeof
expression by an unsigned integer of type size_t."

See
<5393aa34-7232-4925...@21g2000vbk.googlegroups.com>
for the full article.

His explanation doesn't take VLAs into account, but that's not a
huge deal since VLAs are a C99 feature, and the number of
conforming C99 installations (expressed as a percentage of the
total number of C installations) is vanishingly small - and in any
case the point under discussion is not to do with VLAs, as has
already been pointed out on a number of occasions.

> There was a basic error in the first line
> of his attempt to "explain", indirectly, why he thinks I'm an
> idiot.

I don't see any basic error in his explanation (unless you mean
omitting the special case of VLAs, which is no big deal), and it
was an explanation of sizeof, not an explanation of why he thinks
you're an idiot. Whether he does think you are an idiot is not
clear, because he hasn't expressed an opinion on the matter. What
he expressed was a technical view of sizeof, and a reasonably good
one at that.

> Of course, there had to be; since I am not an idiot, any purported
> proof otherwise necessarily contains some flaw, and in this
> instance it did not take me very long to find it.

I don't think anyone is trying to prove you an idiot. It is entirely
possible that people may be coming to that conclusion anyway,
however, but this is based on your own statements, not those of
others.

Paul Donnelly

unread,
Jun 3, 2009, 5:00:54 PM6/3/09
to
du...@franz.com writes:

> The emphasis in this paragraph is pertinent; the word "consistently"
> stands out. A saying which is attributed to Einstein is "The
> definition of insanity is doing the same thing over and over again and
> expecting different results". By that definition, Seamus MacRae is
> clearly demonstrating insanity. He may not in fact be insane, but his
> behavior is that of an insane person; he consistently tries to answer
> every perceived slight as if not doing so would harm his reputation,
> even though the results are always the same.

I think everybody should stop to consider that rather than a
garden-variety troll, this person you're arguing with may actually be
mentally ill. It might be better to hedge on the side of caution and
quit disturbing the disturbed.

MarkH

unread,
Jun 3, 2009, 6:33:05 PM6/3/09
to
On Jun 3, 12:58 pm, Seamus MacRae <smacrae...@live.ca.invalid> wrote:

> That can proceed by one of two ways: I convince you to shut up, or I
> force you to shut up. Apparently I can't convince you to shut up. So I
> guess I'm going to have to have a little chit-chat with the abuse
> department at your ISP.

> Failing that, I guess I'll have to get lawyers involved.

Seamus, because of your nazi-like threats bordering on crimes against
humanity your ISP has decided that you're very close to being banned.

Now because of your mental disease, we can get you a job at McDonalds
in Sunnyvale.

Now stop your nazi-like threats and personal attacks Seamus.

Richard Heathfield

unread,
Jun 3, 2009, 7:00:30 PM6/3/09
to
[Two introductory points. Firstly, as Seamus MacRae rightly points
out, the semantics of sizeof are off-topic in comp.lang.lisp and
comp.lang.java.programmer. I have therefore set followups to
comp.programming, no doubt to the relief of cll and cljp. I should
have done this some time ago, so I apologise to subscribers to
those groups for the noise. Secondly, the sizeof this subthread is
getting a little ludicrous. Radical snippage undertaken (and marked
as such). Refer to ancestor articles if required. As a result of
this radical snippage, this article is a little over half the size
of the article to which it is a response. I am beginning to think
that Seamus MacRae is trolling. In fact, I hope he is, because if
he's serious I am rather worried about him.]

Seamus MacRae said:
> Richard Heathfield wrote:

[alternately; no other contributors are quoted in chevrons in this
article, so count chevrons to establish ID - even = me, odd = SMR.
We lead off with SMR.]

<snip>

>>> Then please drop this.
>>>
>>> NOW!!!
>
> You forgot to drop it. Sorry, please hang up and try again.

You forgot that you don't get to control my actions. I am not
optimistic that you will remember this time, either.

<snip>

> You are in error about me.

I don't think so, but then I haven't actually said very much about
you. Most of what has been said about you has been said by you.

>>>>> Next time, do not "debunk" unsolicited.
>>>> If you don't wish for mistakes in your articles to be
>>>> corrected, you have two choices - (a) don't make mistakes, or
>>>> (b) don't post them.
>>> I go for option (a), always.
>>
>> [calls me a liar]
>
> You are in error about me.

You are in error to think that I called you a liar at that point in
my article. There is a difference between saying "you are a liar"
and "you have said something that is clearly not true". People can
say untrue things by mistake. I surmised that this was what had
happened here. (Later on in my previous article, however, I did
identify an actual lie of yours, which I pointed out.)

<snip>

> You are in error about me.

Assertion is not argument. Can you *demonstrate* that I'm in error
about you? What is it that you think I think about you that you
think I'm in error about? It is far from clear.

<snip>



> The problem is the thing you apparently want to teach to the
> world: "Seamus MacRae is an idiot".

That seems to be apparent only to you. It certainly isn't apparent
to me. I am far more concerned with discussing the semantics of
sizeof, which you appear to be determined to avoid. If you're so
convinced you're right about sizeof, it should be easy to
demonstrate that you're right. Why not give it a try? (Your
attempts so far have not addressed the issue at hand.)

> It is, of course, incorrect,

Can you demonstrate this? One way to do so would be to revert to a
technical discussion.

<snip>

>>> Well, now that you're aware of the possibility, you should know
>>> to just quietly move on now.
>>
>> This is Usenet. I don't have to move anywhere.
>
> Yes, you do.

Why?

> Have you forgotten that whether or not Seamus MacRae
> is an idiot is irrelevant to all three newsgroups you're spewing
> your crap into?

I'm not actually *interested* in whether you're an idiot. I don't
give tuppence for whether you're an idiot. Neither does anyone else
as far as I know - apart from you.

> And your occasional asides about C are irrelevant
> to two of them.

That is actually quite true. I have set followups accordingly.

>> What do /you/ mean by the metaphor "move on"? Do you mean
>> "quietly forget that Seamus MacRae [insults deleted]"
>
> I mean stop posting about Seamus MacRae. Period. Do not mention me
> again, in public, indirectly or directly, ever again.

You don't get to control my actions, remember?

<snip>



>>>> I think you're confusing
>>> I am not.
>> Then you must be confused.
>
> I just told you: I am not.

As we have already seen, just because you say something, that
doesn't necessarily make it true. You can be mistaken (as you were
about sizeof), and you can lie (as you did by deliberately
misquoting me). So just because you say you're not confused, that
doesn't mean you're not confused. Can you /demonstrate/ that you
are not confused about the semantics of sizeof?

<snip>

>
>> I used the word in passing (in what I consider to be a legitimate
>> way
>
> There is no "legitimate way" to call a stranger an idiot loudly in
> a print medium.

To say "I think you're confusing X with Y" is perfectly legitimate,
and is a far cry from calling you an idiot.

<snip>

>> [...elided...] I'm interested in sizeof.
>
> I'm not.

Then why express an opinion on it? (And an erroneous one at that.)

>>> Drop it.
>>
>> You don't get to control my actions, remember?
>
> Are you threatening to publicly badmouth me some more?

Mu.

> Do I need
> to get a lawyer involved in this?

A good lawyer would advise you not to be so daft as to involve the
courts in this. If you do, however, I will defend, I will win, and
I will counter-sue.

<snip>

>>>>> Regardless, it's been drilled in repeatedly: if "*foo" is
>>>>> encountered when foo is uninitialized, Bad Things may happen.
>>>> Sure - but this isn't *foo; it's sizeof *foo
>>> Which contains *foo as an argument, for heaven's sake.
>>
>> No, it doesn't.
>
> Yes, it does. We have an occurrence of the structure "operator
> argument". This is clear to anyone that isn't blind.

Ah, an attempt at a technical argument. Well, pretend I'm blind, and
explain why your theory overrides ISO/IEC 9899's position on the
matter, which is that an argument occurs only in a function call or
a function-like macro invocation.

>> I know from experience that you don't take a lot of notice of
>> proof
>
> I don't take a lot of notice of flawed arguments purporting to
> prove me an idiot, you mean. Because I know for a fact that I am
> not an idiot.

But I haven't attempted to prove you an idiot. To do so with any
authority, I would need to be a psychiatrist, which I'm not. What I
have attempted (successfully) to prove is that, in

struct tm *foo = calloc(1, sizeof *foo);

sizeof does not evaluate its operand (see one of my earlier articles
for the proof), and that sizeof's operand is not an argument
(again, see one of my earlier articles for the proof).

>> but here it is anyway. It proves you [insults deleted]
>
> Fuck you, liar.

Temper temper. If you think I'm lying about what the C Standard
says, check it yourself. I also invite anyone else to check it and
report back to see whether I've quoted it correctly. (My quote is
from the C89 draft. The C99 PDF may vary in slight detail, but it
says essentially the same thing.)

> I am not an idiot and no amount of "proof"
> otherwise posted by you will change that fact.

Fine, but that's not what I'm trying to prove.

> The only thing you're proving is that you're an asshole.

No, I'm proving that sizeof doesn't evaluate a struct tm operand,
and that sizeof's operand is not an argument.

<snip>



>> You have snipped the explanation I gave of why I considered you
>> to have missed my point.
>
> Because I was not interested in it.

It seems to me (and this is just my impression - I don't claim it as
an objective fact) that you aren't interested in anything that
might conceivably expose you to new information and new
perspectives and new way of thinking about things.

> Your conclusion was a negative
> statement about me and therefore could not possibly be correct.

Not true. Here's the explanation:

++++++ quote from previous article of mine ++++++
I repeat again - in the past, things often worked a
bit differently to the way they normally work now. Things changed,
so that they now work in what you probably think of as the only way
they're ever going to work. A more cautious attitude would be "if
they've changed before, they can change *again* - and if I program
according to the rules, I can to some extent protect my code
against such changes."
+++++++++++++++++++++++++++++++++++++++++++++++++

As everyone can see who reads this, the conclusion is that a
cautious attitude can help to protect code against changes in
architecture that were not envisioned at the time the code was
written.

<snip>

>>>>>> Fine, you're entitled to think that
>>>>> Don't patronize me.
>>>> Firstly, I told you before
>>> I said, don't patronize me. And what's the next thing you do?
>>> Patronize me!
>>
>> Firstly, no, I wasn't patronising you
>
> Yes you were. Twice. "Fine, you're entitled to think that" is
> patronizing, holier-than-thou, know-it-all bullshit.

No, it isn't. It's an acknowledgement, that's all. It is meant to be
an attempt to express recognition of your right to think that C is
for "systems-level stuff", whilst pointing out at the same time
that it is not a universally held opinion. If you see that as
patronising, well, that's your problem, not mine.

> "I told you before" is equally rude.

With your record of expletives and histrionics you are in no
position to be taken seriously on the subject of rudeness.

>> I was explaining to you.
>
> I do not need, or desire, any "explaining to" by you. It is
> patronizing and rude, not to mention incorrectly implies negative
> things about my intellect.

That's just bizarre. I cannot imagine any able programmer holding
such an attitude to explanations.

<snip>

>>>> I'm still treating you like an intelligent man
>>> Ordinarily, one does not treat intelligent men as shoddily as
>>> you've treated me.
>>
>> [calls me an idiot]

Poor editing. What I actually said was "Intelligent men do not react
in the way you react. I have therefore changed my opinion of you."
That is not the same as calling you an idiot.

> No, I am not. You, however, are a liar.

I have demonstrated, to a high standard of proof and in an objective
way, that you have lied at least once. Can you demonstrate
objectively that I have lied? (I know I haven't, so I know you
can't, but I'm interested in finding out whether you think you
can.)

>>> In particular, when an intelligent man requests
>>> that you drop a condescending tone,
>>
>> I haven't even reached for my condescending tone during this
>> whole conversation so far.
>
> Another lie, and calling me a liar to boot.

You don't seem to know what "lie" means. And yes, I've called you a
liar, but then I took the trouble to be sure of my ground before
doing so.

>
>>> or drop an entire line of questioning,
>>
>> I haven't /had/ a line of questioning.
>
> You have been questioning my intelligence, in public, practically
> from day one.

Wrong.

> I posted a harmless little aside and then you, who
> had never even met me before and had no prior involvement in this
> thread, jumped in and called me an idiot.

Wrong. I said you'd made a mistake about sizeof. Making a mistake is
not the same as being an idiot.

> Something is obviously
> the matter with you, but I'm damned if I know what, exactly, it
> is.

It's called "getting it right". It's a disease you should try some
time.

>
>> I've pointed out a mistake
>
> You've attacked me, viciously and without provocation.

Nonsense.

> I. Do. Not. Make. Mistakes.

Yeah, right. And I'm Elvis.

<wow, already line 346 as I write - let's do a BIG ol' snip for as
long as it's just same ol' same ol'>

<snip>

> I have every right to defend myself when publicly slandered,

Written defamation is libel, not slander - and I haven't either
libelled you or slandered you.

> and
> you have no right to threaten me for doing so. Do I make myself
> clear?

Nor have I threatened you. No, you don't make yourself clear,
because you don't stick to the facts.

> That can proceed by one of two ways: I convince you to shut up, or
> I force you to shut up. Apparently I can't convince you to shut
> up. So I guess I'm going to have to have a little chit-chat with
> the abuse department at your ISP.

Feel free. There are two possible outcomes: (a) they think you're
being a twit, in which case they'll ignore you, or (b) they'll take
your side, in which case I'll move ISP (which I was thinking about
doing in any case, and this would certainly tip the balance).

> What about? Well, there seem to
> be quite a lot of off-topic posts in several comp.* newsgroups
> lately, and Richard Heathfield seems to be the author of dozens of
> them ...

I am also the author of many thousands of highly topical articles.
How do your percentages look?

> Failing that, I guess I'll have to get lawyers involved.

A bright, honest lawyer will advise you not to be so daft. I can
demonstrate that you lied. That won't look good to a jury.

<snip>

>> I'm trying to discuss the original subject matter
>
> You are not. Otherwise you would have no objections to discussing
> the original subject matter WHILE LEAVING MY NAME, and your
> opinion of me, OUT OF IT.

I've hardly mentioned your name. In the attribs, sure, but that's
because I'm /supposed/ to attribute material that I quote. Apart
from that, I don't think I've mentioned it to excess. As for my
opinion of you, I have spared you that, at least.

<snip>

>>> I'm interested in two things:
>>>
>>> 1. Shutting down this unwelcome and off-topic inquiry into the
>>> status of my mental functioning, and
>>
>> But I have made no such enquiry.
>
> You have too, liar.

No, I haven't. Really I haven't. I'm not *interested* in the
"status", as you call it, of your mental functioning.

>> It is not I who turned this discussion of sizeof into a slanging
>> match.
>
> A ridiculous claim, when your very first post in response to any
> post of mine was a slap right across the face.

No, it was a technical correction.

> You do know that
> Google Groups archives your posts, right, and that it's easy for
> anyone to verify that your first post was a slap?

I know that Google Groups archives articles, yes. So it's easy for
anyone to verify that my first response to you was a technical
correction. Here it is again:

"Firstly, the preferred idiom is:

struct tm *foo = calloc(sizeof *foo);

which (for all types other than void *, for which sizeof is a bit
pointless anyway) survives a foo type change without editing.

Secondly, although all-bits-zero does indeed represent 0.0 or NULL
on many platforms, it is not guaranteed by the C Standard so to do.
Those who must cater for unusual platforms cannot necessarily rely
on calloc to initialise all members to 0-of-the-correct-type for
them."

And, further down:

"I've worked in environments like that, and found it quite
workable."

I see no slap here.

> I have to ask,
> because you seem to think that maybe you can somehow fool people
> into actually believing you didn't start the slapping match.

See above.

>>> 2. Getting an apology, if one might be forthcoming, though I
>>> will
>>> settle for complete silence instead.
>>
>> You certainly won't get an apology, because I don't make a habit
>> of apologising for being right
>
> But you were entirely, 100% wrong about me.

In your opinion, perhaps. In my opinion, I was 100% right about
sizeof, which is what I've been discussing. All this extraneous
guff is of no consequence to me whatsoever.

<snip>

>> The subject is sizeof.
>
> The subject is your opinions of me.

So you appear to think. But I'm not really fussed about you. I am,
however, fussed about sizeof.

> I couldn't care less about
> sizeof at this point.

Perhaps you should. It would be a lot more interesting.

<snip>

>>> If you continue to publicly insinuate various unpleasant things
>>> about my mental functioning, you will be in for a world of shit.
>>
>> Firstly, what you infer is your responsibility, not mine. I have
>> actually said very little about you in this thread,
>
> but implied a great deal.

Look up "imply". Where my statements are concerned, I get to choose
what I imply. Where my statements are concerned, you only get to
choose what you infer. You can imply what you like when you make
statements, but I cannot justifiably claim that you have implied
something in those statements. I can reasonably infer something
from them, but that's as far as I can go. Same applies to you.
Writer chooses what he implies, reader chooses what he infers.

<snip>

>>> and will likely lose your usenet access in the bargain.
>>
>> That isn't going to happen, for at least two reasons:
>>
>> 1) I haven't done anything wrong, as the record will show;
>
> You have posted a large number of off-topic posts to at least
> three Usenet newsgroups.

I have posted a HUGE number of *topical* articles to several
newsgroups.

>> 2) Nowadays, ISPs mostly don't care anyway, not even about spam -
>> they should, but they don't.
>
> Well, let me enlighten you:
>
> INTRODUCTION - ACCEPTABLE USE POLICY (AUP)
>

<snip>



> You must not send, with the intention of causing annoyance,
> inconvenience or needless anxiety a message that you know to be
> false, or to cause such a message to be sent
>
> [Bright-line violation here.]

Wrong. I have sent no such message, nor have I caused such a message
to be sent.

> or to persistently make use of our service for that purpose.
>
> [And here.]

Wrong again.

<snip>

> You must not infringe the rights of others, including the right of
> privacy and copyright (an example would be sharing without
> permission of the copyright owner protected material such as a
> music or video file).
>
> [Arguably, posting about me publicly after repeated requests to
> [stop violates my right of privacy.]

Wrong. Posting in a public forum noted for discussions is
effectively an invitation to have a discussion.

<snip>



> Reports of breaches of these acceptable use policies by BT
> customers can be sent to ab...@btbroadband.com
>
> [On its way already.]

If anything comes of it, I shall lodge a complaint with BT. If that
is not resolved satisfactorily, I will change my ISP, and take such
other steps as I feel are appropriate. But I doubt very much
whether anything will come of it.

<snip>

>>> It's your choice.
>>
>> I choose to discuss sizeof
>
> Yet you did not.

Sheesh, can't you read?

<snip>



>> Pointing out that you are [insult deleted]

(the "insult" was the word "mistaken")

> I am not.

You are certainly mistaken about sizeof.

>> is not the same as saying you are stupid or incompetent.
>
> Sure it is. It implies that one or the other must be the case.

No, sir, it does not. Firstly, look up "imply", since I have no
desire to explain it to you again. Secondly, people make mistakes
all the time without it meaning they are stupid or incompetent. I
make lots of mistakes, but I'm not so stupid as to pretend I didn't
make them or that they are someone else's fault. Nor am I so stupid
as to try to cover them up and blame other people for pointing them
out.

>> Nor do you get to decide what I imply.
>
> I'm not deciding what you implied. I'm just making an observation
> about what you implied.

But the implication you claim simply isn't there.

>> If you wish to infer in front of a large audience that you are
>> stupid
>
> I have done nothing of the sort,

While you're looking up "imply", look up "if". If your dictionary is
small enough, it might even be on the same page, which will save
some time.

> and the mere insinuation otherwise is a lie.

Just look up "if". You might want to look up "insinuate" while
you're at it. It doesn't apply here.

> In fact, I have strenuously *denied* being stupid.

Just denying it doesn't make it false. It doesn't make it true
either.

>
>>>>> What the hell is the MATTER with you?
>>>> Nothing, really. What is the matter with you
>>> Nothing. And that is final.
>>
>> Except that [insult deleted]

Context: the "insult", in full, was "Except that you still don't
understand sizeof". That's not an insult. It's just a statement of
fact.

> No.

If that means you agree, no, you don't understand sizeof, then okay.
If it means you disagree, i.e. no, you /do/ understand sizeof, then
all I can say is that you have not demonstrated such understanding
in this thread.

<snip>

>> If you're looking for some kind of resolution, there probably
>> won't be one
>
> Is that a threat?

No, it's just an observation based on a decade or so of Usenet
experience.

<snip>

>>>>> You made several nasty errors:
>>>>> 2. Then when I responded to smooth things over,
>>>> I don't recall your trying to smooth things over.
>>> Yes. In <MYWdnboGP7QDyb3X...@bt.com> you nitpicked
>>> me,
>>
>> [calls me a liar]
>
> No, you're the liar.

This is unbelievable. I didn't call you a liar (at this point in the
discussion); I merely demonstrated you to be wrong. Calling me a
liar is pointless, because what I said is evidently true. See the
above message ID (which you quote above), and it will be evident to
anyone who reads it that the article is a note of thanks to Ben
Bacarisse for nitpicking me.

>
>>> apparently unaware that the correct response to my post was to
>>> either leave it alone or agree.
>>
>> [calls me a liar]

You might want to look up "liar", too, since it's pretty obvious
that you don't know what it means.

> No, you're the liar.

See above.

>
>>> In <gvss9q$nff$1...@news.eternal-september.org> I responded in such
>>> a way that you could have just left that post to stand
>>> unmolested and everything would have been fine. Instead, you
>>> attacked and here we are now.
>>
>> In that article, you screwed up
>
> I DID NOT.

Did too. Sheesh, man, I've /proved/ it, and so have one or two other
people.

<snip>

> I think you don't even know your own mind very well.
>
>>>>> you replied with
>>>>> a more direct and serious attack instead of letting
>>>>> sleeping dogs lie. Big mistake.
>>>> Again, got a msg-ID?
>>> Yes: <LqCdnVrkBr9Qpb_X...@bt.com>
>>
>> That's not a serious attack.
>
> I'll be the judge of that.

Obviously you can decide for yourself whether you consider it a
serious attack. But you can't decide on other people's behalf.

>
>> [calls me a liar]
>
> Says the liar.

Look up "liar" again.

[The next statement refers to
<LqCdnVrkBr9Qpb_X...@bt.com> which is a technical
rebuttal of a mistaken claim about sizeof]



>>> This you should definitely never have posted.
>>
>> Why not?
>
> Because it implied vicious lies about me, doofus. Why else?

But it doesn't. It's just a technical rebuttal.

<snip>

>> If you want to suppress discussion of a subject you find
>> uncomfortable, telling people not to discuss it is simply the
>> wrong strategy.
>
> Oh? Then what, in your *opinion*, WOULD be the right strategy?

Not taking technical corrections as a personal affront would be a
great start. If I did that, I'd have been mortally offended a
thousand times over by now. Sheesh.

<snip>

> I think you should be thinking "worth trying to put things in a
> way that preserves both sides' dignity", don't you? Or does the
> dignity of other people not concern you?

It is up to you to preserve your dignity, and it is up to me to
preserve mine. I am quite happy with mine, thank you.

<snip>

>>> I repeat: I am not interested in your opinion of me. Neither is
>>> anyone else. Don't. Post it. Again.
>>
>> I repeat: you don't get to control my actions.
>
> That's a definite threat to badmouth me in public.

No, it's a statement that I'm not about to kowtow to your demands.
You are not my boss, my wife, or my monarch. Like any reasonable
man, I am amenable to persuasion. You're not trying to persuade me,
however; you're trying to force me. That doesn't work.

> I don't respond well to threats.

I haven't threatened you. Nor will I. I don't do threats.

<snip>



> Shut up or else. I WILL have the last word. Do not defend yourself
> dammit!

That was selective quotation on my part. I admit it freely. I did it
for a reason - to attempt to demonstrate to you why it is
considered an unfair debating trick. It is a trick you use a lot.

<snip>

>> I suspect that you are probably not an idiot
>
> So, at last you admit the truth!

I have yet to be completely convinced, however.

>
>>> How would you like it if someone put "Richard Heathfield is an
>>> idiot" on there?
>>
>> If you posted such a comment on Usenet, you would not be the
>> first. And I would not react by trying to stop you from posting.
>
> What if I didn't do it just once, but again and again and again,
> and explicitly expressed an intention to do so again every single
> time you posted to protest that you were not one?

What if you did? It would say more about you than it did about me.
If you did that, after a while I would probably just killfile you.

> Then what would you do?

Like I said, probably killfile you.

>> Instead, I'd try to find out why you thought I was an idiot, and
>> then I'd explain why it wasn't the case.
>
> Been there, done that, didn't work.

As far as I can recall at present, I haven't actually called you an
idiot even once. (It's possible that I am mistaken about that.) But
I certainly haven't done it over and over. What I *have* done is
pointed out that you have demonstrated at least two separate
misunderstandings about the nature of sizeof. You seem to equate
this with calling you an idiot, which is rather a bizarre way to
interpret it.

<snip>

>> You get to choose what you do.
>
> And I choose not to have my name mentioned in this any more.

If you wish to refrain from mentioning your name, that's fine. You
don't get to choose what other people do, however. Usenet
convention requires me to attribute quotations, and I choose to do
so by using the originator's name. That's my choice, not yours.

> You keep picking fights but you're just
> *terrible* at flaming!

I haven't started flaming. Nor will I. Losing one's temper (e.g.
resorting to expletives) is normally a sign that one has no
rational arguments.

>>> For it to have been a *personal* attack it would have had to
>>> imply something negative about some specific *person*.
>>
>> Even granting for the sake of argument (and without prejudice to
>> future dispute) that this definition is correct, how is my
>> [implication that Seamus MacRae is an idiot] a "personal attack"?

Original text: "how is my explanation of sizeof a "personal
attack"?"

>
> That you even asked the question speaks volumes about YOUR
> intelligence.

Well, no - it's an obvious question with no obvious answer other
than "hey, look, it isn't a personal attack after all".

>>>>> Saying that environments
>>>>> that ignore a lot of compiler warnings generate buggy code is
>>>>> not an attack on any particular person.
>>>> Who said anything about ignoring compiler warnings?
>>> You did.
>>
>> No
>
> Yes, you did.

I explained in crystal clear detail why filtering selected warnings
is not the same as ignoring them.

<snip>

>>> have the last word in any discussion, and generally shove your
>>> weight around. How old are you, about three?
>>
>> Even older than three. In fact, I'm all gwowed-up now
>
> That's a laugh. I'm guessing no more than about seven.

And I started posting to Usenet three or four years before I was
born. Right.

<snip>

>> Or are you determined to follow your self-destructive path?
>
> Another threat!

While you've got the dictionary out, look up "self".

> My my! Perhaps I should be calling the police now,
> and nevermind my lawyer or your ISP's abuse department. Your
> implication now is that you intend to drive me to suicide!

At this point I can only conclude that you're laughing your socks
off because you're actually trolling. The alternative - that you
are certifiably insane - does not bear thinking about.

<snip>

Richard Heathfield

unread,
Jun 3, 2009, 7:02:22 PM6/3/09
to
Paul Donnelly said:

<snip>


>
> I think everybody should stop to consider that rather than a
> garden-variety troll, this person you're arguing with may actually
> be mentally ill. It might be better to hedge on the side of
> caution and quit disturbing the disturbed.

I'm beginning to think you might be right.

nick_keigh...@hotmail.com

unread,
Jun 4, 2009, 7:07:27 AM6/4/09
to
On 4 June, 00:02, Richard Heathfield <r...@see.sig.invalid> wrote:
> Paul Donnelly said:

> > I think everybody should stop to consider that rather than a
> > garden-variety troll, this person you're arguing with may actually
> > be mentally ill. It might be better to hedge on the side of
> > caution and quit disturbing the disturbed.
>
> I'm beginning to think you might be right.


trouble with that is it reinforces his idea than he
can get his own way by being badly behaved. But I can't
see you getting anywhere with this.

Hopefully he gets some sort of check in the real world.


--
Nick Keighley

Richard Heathfield

unread,
Jun 4, 2009, 7:47:15 AM6/4/09
to
nick_keigh...@hotmail.com said:

> On 4 June, 00:02, Richard Heathfield <r...@see.sig.invalid> wrote:
>> Paul Donnelly said:
>
>> > I think everybody should stop to consider that rather than a
>> > garden-variety troll, this person you're arguing with may
>> > actually be mentally ill. It might be better to hedge on the
>> > side of caution and quit disturbing the disturbed.
>>
>> I'm beginning to think you might be right.
>
>
> trouble with that is it reinforces his idea than he
> can get his own way by being badly behaved.

His objective appears to be that of convincing people that he isn't
an idiot. I'm not convinced that his behaviour achieves this
objective.

> But I can't see you getting anywhere with this.

Well, he's not going to be persuaded about sizeof, obviously - but
that's his problem, not mine.

> Hopefully he gets some sort of check in the real world.

A dole check, perhaps?

Adam White

unread,
Jun 4, 2009, 8:23:41 AM6/4/09
to
Paul Donnelly wrote:

> I think everybody should stop to consider that rather than a
> garden-variety troll, this person you're arguing with may actually be
> mentally ill. It might be better to hedge on the side of caution and
> quit disturbing the disturbed.

D00dz, have you really not ever come across Seamus MacRae / Neo /
Twisted / etc / etc / etc before? He's pretty famous on the
rec.games.roguelike.* hierarchy - insisting that when he lost a game of
Angband, it was a deliberate attempt by all and sundry to subvert his
life by *not* telling him that it was possible to lose...

I'm not sure that he's trolled rec.games.frp.* yet - Terry Austin would
tear him a new one.

Seriously, the only way to win is not to play at all. I think that's a
quote from somewhere.

Adam

Thomas A. Russ

unread,
Jun 4, 2009, 12:38:15 PM6/4/09
to
Adam White <spu...@iinet.net.au> writes:

> Seriously, the only way to win is not to play at all. I think that's a
> quote from somewhere.

"WarGames" (1983)


[after playing out all possible outcomes for Global Thermonuclear War]

Joshua: Greetings, Professor Falken.
Stephen Falken: Hello, Joshua.
Joshua: A strange game. The only winning move is not to play. How
about a nice game of chess?

--
Thomas A. Russ, USC/Information Sciences Institute

ChrisF

unread,
Jun 5, 2009, 1:39:43 AM6/5/09
to
Seamus, we in the community have been subjugated to your eternal
crimes against humanity.

Will you forgvie, and repent, and say that CL is a superior language?

Marco Antoniotti

unread,
Jun 5, 2009, 5:52:04 AM6/5/09
to

Bring in the comfy chair!


Adam White

unread,
Jun 5, 2009, 7:48:30 AM6/5/09
to
Thomas A. Russ wrote:
> Adam White <spu...@iinet.net.au> writes:
>
>> Seriously, the only way to win is not to play at all. I think that's a
>> quote from somewhere.
>
> "WarGames" (1983)
>
>
> [after playing out all possible outcomes for Global Thermonuclear War]
>
> Joshua: Greetings, Professor Falken.
> Stephen Falken: Hello, Joshua.
> Joshua: A strange game. The only winning move is not to play. How
> about a nice game of chess?
>

Swish! Thanks, I thought that that might be the movie!

[cue troll-boy claiming that Joshua and Stephen Falken were telling lies
about him and must now stop].

Adam "now waiting for troll-boy to claim that Joshua and Stephen
Falken are telling lies about him and must stop" White

Seamus MacRae

unread,
Jun 10, 2009, 2:59:51 PM6/10/09
to
Richard Heathfield wrote:
> Seamus MacRae said:
>> Richard Heathfield wrote:
>>> Incorrect
>> No. The incorrect person here is you. You were supposed to respond
>> to my post by shutting up.
>
> Perhaps

There's no "perhaps" about it.

>> Instead, you attacked me again.
>
> Well, if you count a correction as an attack

I count a "correction" as an attack. A correction, no, but a
"correction", yes. I am aware that the distinction is subtle.

>> Now you are going to hell.


>
> I don't think so.

That isn't for you to decide. (Or are you now claiming to be Saint
Peter, too?)

>>>> Yes, I consider personal attacks to be boring.
>>> It wasn't intended as a personal attack.
>> The hell it wasn't.
>
> It isn't up to you to decide

I wasn't deciding; I was merely observing.

>> Your dislike for me is quite evident.


>
> I have no personal animosity towards you whatsoever.

This, of course, is a blatant lie. Your behavior speaks volumes about
your opinions and emotions, and it is a more trustworthy indicator of
those things than your explicit claims about same.

> I do dislike the way you "argue"

That is normal. It's a deterrent. You are not supposed to argue with me;
consequently, I have made it such that doing so results in an unpleasant
wading-through-tar sort of frustrating feeling in the arguer, to
discourage them from continuing and from picking a second fight with me
at any later date.

>> Your posts drip with it.
>
> No, they don't.

This, of course, is another lie.

>> Take this to private email or I will make your internet provider
>> shut you up.
>
> If you feel so strongly that this is an appropriate matter for
> private email, why have I not received any emails from you?

You first. I'm not going to respond privately to rebut a public
accusation/insult made against me, for the obvious reason that the
rebuttal has to be part of the public record to be effective. If you
want me to rebut in private, you have to insult me in private. (Of
course, then I also get the option of just ignoring you instead.)

> Oh, and good luck getting an ISP to inconvenience a customer for
> /not/ breaking any rules.

Did you forget the bit where I quoted chapter and verse from your
provider's AUP and pointed out the parts you might be seen as violating?

>>> Nevertheless, you seem to
>>> be taking it that way. If you consider what you think to be
>>> personal attacks to be boring, why do you discuss them so much?
>> I am not discussing them.
>
> Yes, you are.

No, I am not. I am publicly rebutting them.

>> I have no interest now in discussing
>> anything with you.
>
> You can stop any time you like.

I have stopped. This is not a discussion; it is a public rebuttal of
public statements that you made. Its audience is not you; its audience
is everyone else, the people that you might otherwise successfully
mislead about me.

>> The problem is you keep interpreting my
>> rebuttals as discussion. They are not.
>
> Er, actually rebuttals *are* part of discussion.

These ones are not. My position on the topic of my own mental
functioning is not amenable to negotiation or compromise. Nor,
apparently, is yours. Therefore discussing is futile. Rebuttal, on the
other hand, is not.

> I haven't seen much evidence from your side

The evidence is in the self-evident fact of my intelligence. You may
have noticed my erudition and correct spelling and grammar, which
already puts me in the top percentile of usenet users as near as I can
tell. I have also used forms of logic and demonstrated knowledge that
would not generally be available to the man you wish to publicly portray
me as, but which clearly ARE available to the man I actually am.

>> You keep making statements
>> about me in public that are in error.
>
> I've only made two statements about you in public that I consider to
> be particularly important. [insults deleted]

You have lied about me repeatedly, including by calling me a liar. I
don't care that you have limited your repertoire of vicious lies to only
a handful. Even just one would have been one too many.

>> I therefore post a correction. The intended audience of that
>> correction does NOT include you,
>
> Then why post it where I can read it?

Unfortunately, there does not seem to be a "post message for everyone
else in specified newsgroups but hide it from the author of the post I'm
quoting" function in Thunderbird.

>> it includes everybody else that might be misled about
>> me by the bad things you said. I would prefer it in fact if you
>> DID NOT read my posts
>
> Then you're sure picking a funny group to post them in.

I have no choice as to what groups to post them in; to be read by the
same people that you're trying to mislead about me, they must be posted
as replies to your attack posts, in the same sets of newsgroups.

>>>> I thought we were here to discuss Lisp and Java,
>>> I thought we were here to discuss programming.
>> If you want to discuss programming, go right ahead, but leave my
>> name out of it and don't insinuate anything about me indirectly,
>> either.
>
> Okay, let's do that.

Okay.

> [calls me a liar]

Failed. You just insinuated something about me.

>>>> not to flame one another.
>>> I haven't flamed you.
>> A blatant lie.
>
> [calls me a liar]

No, you're the liar, remember?

>>> I haven't even /begun/ to turn up the heat.
>> Is that a threat?
>
> No

Liar.

>> It better not be.
>
> It isn't. [insult deleted]

Liar.

>>> (You have, by introducing expletives.) I have done only two
>>> things in this subthread: (a) [implied insult deleted], and (b)
>>> [insult deleted]
>> Yes, that's right, you've done only two things: insult me and
>> insult me some more.
>
> No, I've done only two *important* things, and one of those was to
> [insult me]. The other was to [insult me].

But insulting me is NOT important.

> I don't believe I've insulted you at all

You just did. Twice. AGAIN.

> except in jest

Oh. So this whole thread is just a JOKE to you? Well, having my
professional skills publicly tarnished by baseless accusations does not
amuse me, and this whole flamewar probably has utterly failed to amuse
anyone else. So if you intended this as a joke, it looks like you've
failed at that, too.

>> Needless to say, insults are off-topic in all
>> three newsgroups you're spewing them into.
>
> Yes, but then I'm not in the habit of insulting people, so that's
> all right then.

Okay, so to you, spewing off-topic insults into three newsgroups is
perfectly acceptable behavior so long as you only do it occasionally and
do not make a habit of it?

People say that about smoking, too. Then whine when they get diagnosed
with cancer.

>>>> I'm only interested in the former. Please discuss the former or
>>>> please go away. Either way please stop publicly badmouthing me!
>>> I /am/ discussing programming.
>> No.
>
> It's sizeof, remember?

I'm talking about your obsession with publicly "correcting" me, publicly
calling me names, and more generally trying to publicly humiliate me for
the heinous crime of failing to agree with all of your opinions.

>>> What I am not doing is badmouthing you.
>> A lie.
>
> [calls me a liar]

No, you're the liar, remember?

>>> You're doing that yourself.
>> Another lie. Where have I posted any negative statement about
>> myself?
>
> Everything you write about yourself comes across to me as being
> negative.

That's because you're wacko, so everything you read seems to you to mean
the opposite of what it actually means.

>> I haven't. In fact, the opposite -- I've posted *denials*
>> that various such statements apply.
>
> So? What has that to do with anything?

It disproves one of your lies. That's what.

Seamus MacRae

unread,
Jun 10, 2009, 3:02:43 PM6/10/09
to
Kaz Kylheku wrote:
> On 2009-06-03, Richard Heathfield <r...@see.sig.invalid> wrote:
>> I have no personal animosity towards you whatsoever. I'm beginning
>> to pity you, but I don't dislike you.

There is nothing pitiable about me.

>> I do dislike the way you "argue", but that's different from disliking you.

As explained previously, you're discovering an intentional deterrence.
He's supposed to react to it by knowing better than to argue with me in
the future. Unfortunately, the deterrence only works on people that are
intelligent enough to be capable of pattern recognition and learning
from the results of their actions.

> On the other hand, not me. I tend to despise what others pity. (With
> clear exceptions---like, for instance, bear cubs who lost their mother to a
> poacher's rifle, that sort of thing---but not in this case).

Since there is nothing pitiable about me, this fails to be relevant.

P.S. Please desist from trying to misdirect rebuttals of your insults so
that they'd fail to reach 2/3 of the audience of your insults. That's
playing dirty.

It is loading more messages.
0 new messages