Re: [EGN] Variable hoisting

From: EMonk (emonk_at_slingshot.no.uce)
Date: 09/10/04


Date: Fri, 10 Sep 2004 13:42:31 +1200

Edward G. Nilges wrote:

> EMonk <emonk@slingshot.no.uce> wrote in message news:<1094688772.846867@ftpsrv1>...
>
>>Edward G. Nilges wrote:
>>
>>>EMonk <emonk@slingshot.no.uce> wrote in message news:<1094612499.646854@ftpsrv1>...
>>>
>>>>Edward G. Nilges wrote:
>>>>
>>>>>[Note: two months ago Arthur O'Dwyer asked people in this group to
>>>>>cease replying to me since my replies in turn were creating an
>>>>>annoying flame war. Two of the most "frequent fliers", Randy Howard
>>>>>and Corey Murtagh, failed to accede to O'Dwyer's request, so I was the
>>>>>one who ended the flame war by not replying to their trolling.
>>>>
>>>>Point of correction: our responses were largely corrections of your own
>>>>mistakes and outright lies, as well as to address your slanderous posts.
>>>>
>>>>Your constant assertions that you are not a troll does not make it true,
>>>
>>>I don't make that assertion. I have said instead that this ng is
>>>inappropriately dominated by a small working set of trolls, and this
>>>is based on my view that troll behavior is group behavior...herd
>>>behavior...mob behavior.
>>
>>So you've arbitrarily redefined a term that is in common usage, and has
>
> Please do a Google search of the Web for the exact phrase Variable
> Hoisting. As of today, this produces, apart from Randy Howard's
> idiotic misuse of the term and my corrections, two computer related
> references. One is an academic paper which discusses program
> invariants "modulo variable hoisting", which refers to the behavior of
> a compiler optimizer, and the second is a change log from a compamy
> vending an AUTOMATIC tool which does variable hoisting AUTOMATICALLY.

How about you learn to read for comprehension? The subject of my
statement was the phrase "troll behavior" not "variable hoisting."

<snip>
>>Not the first time you've done this, or simply 'invented' a word and
>>assigned an arbitrary - and often inconsistent - meaning to it.
>>
>>You have claimed in the past - and more than once - that you're not the
>>troll, that in fact those who are calling you on your bull*** are the
>>trolls.
>
> It's been shown in this case alone. You and your friend Randy won't
> admit you are wrong about his pretentious misuse of words.

That's so laughable. I suppose pretentious misuse of words is entirely
your domain then?

The fact is that you understand the usage, and yet you continue to argue
about hoisting loop invariants despite all evidence that your position
is, at best, wrong.

>>>>just as your many other assertions are not rendered truthful by
>>>>repetition. Your inability to understand this and many other things is
>>>>laughable.
>>>>
>>>>You present yourself as a childish, pretentious windbag with little or
>>>>no grasp on reality, then have the gall to project your own failings on
>>>>us. Not, I hasten to add, as conjectures but as /fact/. You have the
>>>>temerity to claim that we are morally and ethically inferior to
>>>>yourself, all the while splashing your own base nature far and wide.
>>>
>>>Your inferiority is proven both by this abuse and your failure to
>>>accede two months ago to a request made by O'Dwyer.
>>
>>Get it through your thick skull: I didn't 'fail' to accede to Arthur's
>>request, I chose not to.
>
> ...because, then, you knew that you wouldn't be able to exercise the
> self discipline.

Wrong again. You know nothing about my personality apart from what I've
displayed here. Since you've gotten nothing right so far I suggest you
quit guessing.

>>As for abuse... you have obviously edited out the start of our
>>interaction, when I was quite polite to you and you attacked me as a
>>mindless puppet of Richard Heathfield. I can only imagine the twisted
>
> Which is how you entered the scene. Richard Heathfield was
> wrong-about-the-newsgroup-charter. He is also a published author, an
> authority on C, and UNFAILINGLY professional in his dealings with
> others, if at times a bit affect-less.

I did not 'enter the scene' as a mindless puppet of anyone, much less
Richard. Nor was Richard wrong about the newsgroup charter.

> You have based your charges on a second-hand recount of what
> Heathfield claimed was my competence with C and due diligence
> performed, albeit from an inadequate base of general programming
> culture, by Chris Sonnack. You have added nothing to the discussion
> whatsoever, except abuse.

Do you have to work at being wrong so many times in a single post? Or
does it just come naturally to you?

I made my own investigation into the source you posted before I read
Chris' detailed critique. I added my voice to his because he had
already pointed out the salient points that my own analysis had brought
up. Even if I had posted my own points, you would most likely have
accused me of parroting Chris' work. The details were already there, so
there was no point in me posting them again.

>>mind that believes I have any reason whatsoever to treat you with
>>anything other than contempt as a result of that and other interactions.

I notice you failed to adress this point. I half expected that.

>>>>You lie, slander, twist and turn, and hasten to point out the smallest
>>>>faults you perceive in others... and when those same people point out
>>>>your errors and faults you attack them. What exactly is it that makes
>>>
>>>That's because their critique is based primarily on urban legends
>>>about programming such as inappropriate variable hoisting.
>>
>>Rubbish. Their critiques have often been based on quite solid grounds,
>>unlike your responses to same. Your response to almost every criticism
>>has been to attack, flame, denigrate and besmirch.
>
> Where's the "criticism" other than second-hand reports? You could buy
> my frigging book, which IF you are a qualified programmer isn't over
> your head and was designed NOT to require specialist training, and,
> you could tear it apart in detail. But you don't do so, preferring
> instead to repeat and repeat unfounded and second-hand stories like a
> complete ***.

You expect me to give you money? Uh... no. I don't think so.

How about you post some excerpts and we'll critique those.

>>>>you think that your actions are in any way justifiable, let alone
>>>>correct and proper?
>>>>
>>>>No, really, I want to know. How do you justify your own actions?
>>>
>>>Based on the fact that I know how to program and you don't.
>>
>>The code you have presented here demonstrates otherwise. And you have
>>no idea of my programming abilities, since I have never demonstrated
>>them to you.
>
> Nor can you, I am certain. And where is that code? The last time I
> bothered was in May 2002 and Chris S read into it "errors" primarily
> based on corporate and urban legends about "good style" that he
> doesn't properly and fully understand, and a grand total of one real
> bug that I fixed the same evening I posted the code...after not using
> C for about ten years.

Although Chris did point out a number of style issues, the main problems
with your code were 1) it didn't work reliably and 2) it was horribly slow.

>>So here we have yet another statement of opinion from eddie, presented
>>as fact.
>
> ALL statements of opinion are implicitly presented as fact, but people
> with authoritarian personalities make this distinction when they
> perceive the speaker as unsanctioned by an authority who will punish
> them for being wrong.

Wrong again, and horribly wrong at that. People who aren't completely
full of their own importance often post their opinions /as/ opinions.
Tags like IMO and ISTM as well as phrasing cues such as "I believe",
"This appears...", etc. appear in many posts.

<snip>
>>>Furthermore, post-structured-programming, the corporate notion of
>>>programming competence has itself been corrupted by the strange notion
>>>that "understandability" MEANS a sort of anti-intellectualism,
>>>combined with subservience to authority.
>>
>>Once again, rubbish. Irrelevant rubbish at that. This is not a
>>'corporate' environment, nor are all - or even most - of the programmers
>>here concerned with 'corporate notions' in the slightest.
>>Anti-intellectualism? Subservience to authority? Programmers were the
>>rebel intellectuals of the late 20th century, and remain so in large in
>>the early 21st.
>
> That is complete nonsense. "Programmers" are by and large
> authoritarian creeps who pose as rebels until it's time to get paid.
> Very few have any revolutionary credentials, and nearly all rely on
> organizations for survival.

Even if we ignore the open-source community - something you have
attacked and dismissed on more than one occasion - your sweeping
description is still highly inaccurate. It applies to very few of the
programmers I've had interaction with, both personal and online.

>>>>and your constant harping about "80% of enterprise system failure"
>>>>without substantive evidence - which you consistantly refuse to prove -
>>>>demonstrates only your boorishness.
>>>
>>>I have repeatedly given references concerning this number. It is in
>>>the bibliography of my article "On the Culture of Data Base" published
>>>in Labyrinths, and recently I posted separate confirmation of the
>>>failure of the FBI's enterprise system meant to address the
>>>deficiencies Colleen Rowley pointed out. You are lying.
>>
>>You keep adding to the list of problems without substantiation. You
>>bring up a new point and claim it is responsible, not in part but in
>>toto for the mythical '80% failure' thing. These are verifiable FACTS,
>>easily checked by scanning your history of posts, not lies perpetrated
>>by myself.
>
> I have provided references on the 80% failure rate, and Colleen
> Rowley's testimony is part of the Congressional Record.

I may have missed it then. Care to provide those references again?

Can anyone else substatiate eddies claim to have provided said references?

<snip>
>>This is a normal and expected part of systems development. I forget who
>>said it, but: "You can have it right, on time or on budget. Pick two."
>> Sad though it may be, it's a very apt statement. And when a project
>>is required to come in on time and on budget by the bean counters, you
>>have to drop some functionality - generally the things that aren't
>>considered important at the time - in order to come even close to 'right'.
>
> This is the usual story. But note that Ms. Rowley wasn't asking for a
> single "feature" when she needed the Boolean capability to enter
> queries such as terroristAssociations And attendsFlightSchool.

Sounds like a single feature request to me. Might not be a simple one
to implement, and may require other features be implemented, but "search
on multiple terms with boolean operators" is a simple enough feature.
I've implemented it in a number of systems I've worked on.

> Programmers and their managers in organizations instinctively and for
> their personal convenience and status alone continually try to reify
> (objectify: falsely make a "thing" out-of) user needs into a list of
> things when the user needs is not comprised of distinct "things" at
> all.
>
> Instead, the user need is a text or a narrative first and foremost.

This narrative is then broken down by project planners or programmers
into "things" which can then be implemented.

> It was clear to Colleen Rowley that the narrative of what she needed
> from the FBI data base included not one more item that some clown at
> Langley could tick off on his "list of accomplishments for the week"
> but a tool, consisting of the ability to recognize simple Boolean
> expressions.
>
> Such a tool could have been bolted on simply by simple "maintenance"
> programming and straightforward code at any time from the inception of
> the FBI data base in question. It would have in all probability
> satisfied a much larger set of "needs", so the question arises, not
> only why it was not done but also why such things are never done
> inside such organizations.

I can't speak for the FBI, but I've made such alterations in existing
systems. Therefore "never done" is, quite obviously, false.

> The answer is usually the absurdity that "it would reinvent the
> wheel", an absurdity because Ms. Rowley didn't have her "wheel" as
> late as August 2001.
>
> The reality is that internal MIS organizations often flourish by means
> of the creation of artificial scarcity where the programmers are
> thought to be in need of "tools", but not the end users, especially
> women FBI agents in a sexist organization...in which tool use is
> thought to be male.

Oh, so if some male agent had made the same complaint it would have been
actioned immediately, huh? Riiight. Whatever.

<snip>
>>>My name isn't "eddie". In a personal encounter, you'd do me the
>>>courtesy of desisting from this childishness. As poster "name" has
>>>pointed out, there is ONE standard of courtesy to which you don't
>>>conform, and I'd therefore advise any prospective employer of your
>>>services to ponder your conduct here as an indicator of what you'd do
>>>under stress.
>>
>>You've said that in the past, and it's still not true. If you acted in
>>person the way you do here, I'd treat you just the same. Actually, I'd
>>probably treat you worse, since our interaction here isn't in real-time
>>so I don't have the opportunity to interrupt your pompous rants.
>
> This means I need to file a restraining order against you.

Really? On what grounds? I have made no threats of violence against
you, have never perpetrated an act of violence against you or your property.

Like other threats of legal action you've made in the past, this seems
to be yet another case of posturing and attempted intimidation. Go blow
smoke at someone who'll buy it.

>>If you're ever in New Zealand, look me up and we'll prove the point once
>>and for all. Until such time, quit trying to tell me what a coward I am
>>or would be if I was in the presence of your magnificence... you don't
>>know me.
>
> Is this a physical threat?

If by that you mean a threat to do you physical damage, then no. Your
intimation that I would be intimidated enough to deal pleasantly with
you when in your physical presence is much more of a threat than my
offer to settle the question in the real world.

>>And it's funny, but I'd give the same advice to any prospective employer
>>of yours. I certainly would never hire someone who presents himself in
>>a global forum the way you do.
>
> It all comes down to that, in this middle class hell. Getting hired.

If you find you have problems getting hired, I can't say I feel sorry
for you... or surprised for that matter. If you're as much of a
pretentious, arrogant, overbearing windbag in person as you are here, I
admit to being surprised that anyone /would/ hire you.

And if you glance back through this thread you'll find that it was /you/
who brought up the subject of employment. I have no such fixation.

<snip>
>>>They obviously do. But their use of the term "variable hoisting"
>>>confirmed my thesis, that the term refers not to good manual
>>>programming praxis but to what a good compiler does to code,
>>>preserving its effect, so that the code may be written not for
>>>microefficiency but so as to be understood. Are you dumb or are you
>>>stupid?
>>
>>A 'good' compiler? Really? Find me a compiler that's good enough to
>>produce optimal output from your code. Prove to me that no gain is to
>>be made by manually hoisting loop invariants. Go read Randy's response
>>to you - it should be right next to this message if you use a threaded
>>reader - and tell us all why two common compilers showed such dismal
>>results when left to automatically hoist a loop invariant.
>
> I am not going to waste my time, since Randy's misuse of the term
> means he has, in all probabilities, no insights worth my time.

He has posted both results and code used to derive those results, not
for one compiler but two, both quite popular. But of course you
wouldn't have any interest in that, since in all likelyhood it would
require you to invent yet more bull*** to support your ridiculous
assertion.

How delightfully arrogant.

<snip>
>>>NOT if you have the brains to turn on optimization, it won't. If you
>>>were as you seem to claim to be a competent programmer, you'd program
>>>for understandability not to show you have the intelligence of an
>>>optimizing compiler, which is approximately the intelligence of a
>>>smart jellyfish.
>>
>>Read Randy's reply and study his results. We use optimisation quite
>>regularly, thanks.
>>
>>You apparently believe that readability and efficiency are mutually
>>exclusive. I'd be surprised if I was the only one who disagreed with
>
> No, inversely correlated in common instances.

Considering that the hoisting of loop invariants is quite common
programming practice, and that readability suffers little if at all from
doing so, then I doubt that the inverse correlation holds in this case,
and this in turn brings doubt on its application in other common instances.

<snip>
>>>main { }
>>>
>>>Got it? Get it.
>>
>>Get what? A program that does nothing is not efficient.
>
> If you "lexically order" efficiency over correctness, then it is
> indeed. Think about it until you figure it out, and stop wasting my
> fucking time.

Who is wasting time here?

I've stated several times that correctness is not the issue here.
Hoisting loop invariants impacts correctness not one whit, as you well
know. It can however have a large effect on efficiency, especially for
expensive operations that commonly used compilers fail to identify and
optimise away. And the effects on readability that you harp on and on
about are /trivial/ in the vast majority of cases!

You're the one who keeps arguing that point. Why don't you just admit
that you were wrong?

<snip>
>>>You say this but you've never proven it. If you are serious, buy my
>>>book and download the code. Then post your critique. I haven't
>>>troubled to "post code" here since May 2002 when I realized that this
>>>ng is dominated by incompetent trolls and posting code is pearls
>>>before swine.
>>
>>Sorry, not interested in paying you anything just for the priviledge of
>>critiquing your code. How about you provide some REAL examples and
>>we'll see how great a programmer you are. Or not.
>
> I am not interested in scraps of crap for the very good reason that I
> am interested in "large" solutions such as a compiler. Being able to
> demonstrate apelike tricks in the small is part of the problem.

Part of which problem exactly?

Being able to demonstrate proficiency, in small or in large, is hardly
ape-like.

>>>Microefficient wrong answers is a bad thing. Microefficiency that
>>>creates unnecessary variables and separates a single calculation into
>>>several parts is often also a bad thing.
>>
>>Who was talking about 'wrong answers'?? We're talking about common
>>programming techniques that are more efficient and scarcely if at all
>>less readable, not about right or wrong code. Looks like you're
>>resorting to smoke and mirrors again.
>
> I am talking about "wrong answers" as seen here and elsewhere
> INCLUDING bugs (unlike my bug of May 2002) never fixed by the OP and
> unreadable regular expressions found to have bugs. I am talking about
> enterprise systems that fail at a DOCUMENTED rate of 80% including
> ATMs that claim that 100 isn't divisible by 20.

Like the bug in your code that you refused to even acknowledge for
almost two years that produced wrong results in certain cases?

<snip>
>>Invariants can be fully determined, huh? Gee, that's nice. Tell that
>>to the guys writing the compilers, I'm sure they're just dying to hear
>>you tell them that they're a bunch of failures because they haven't
>>managed to produce optimizers that can fully determine loop invariants.
>
> They cannot be fully determined in C because of the ability of C to
> alias-in-general, which is now recognized as a bug in C. However, in
> more disciplined languages invariants can be found, or, what comes to
> the same thing, the invariant determination can be determined from the
> syntax of the code.

And yet the code you posted which started off this whole discussion of
hoisting and so forth was written - badly, to the eyes of any reasonably
proficient C or C++ programmer - in C. You got called on a matter of
efficiency and have, as usual, turned it into a major flame fest.
Bravo, your trollish abilities are well developed.

> Since you have no experience in this area, you are at the beginner's
> level of inferring from the in-general inability to determine the
> boundary of a computation to a broader thesis, which is that
> "invariants can't be determined under ANY circumstances, and it is not
> safe to try to formally define WHERE they can be determined".

I'd be intereseted in just how it is that you /know/ that I have no
experience.

Regardless, you're putting words in my mouth, and they don't fit either
what I've been saying here, or what I believe in general. I made no
such assertion, and indeed never consciously hinted of it. You may have
interpreted my posts that way, but then you often twist your
interpretations to fit your own bias so I shouldn't be surprised.

<snip>
>>>I am well aware that the name of the game in the work place is that
>>>unpleasant, nasty form of anti-intellectualism which encodes agency
>>>unsanctified by the local "experienced" misfits and head-cases as
>>>trouble-making, and I have concluded that it is part of the problem
>>>set.
>>
>>Since your conclusions are almost universally wrong, feel free to
>>conclude away. Some of us actually enjoy laughing at you.
>
> Your an adolescent, and you don't belong here.

On the contrary, I'm an adult and a programmer. One qualifies me to be
here, the other is irrelevant. I'll let you figure which is which.

But since we're back to mud slinging: you are a boor and a fool.

-- 
Corey Murtagh
The Electric Monk
"Quidquid latine dictum sit, altum viditur!"