Is this a bug? +goto
Michelle Long
HappyDance321 at gmail.com
Fri Nov 9 06:07:21 UTC 2018
On Thursday, 8 November 2018 at 10:31:31 UTC, Jonathan M Davis
wrote:
> On Thursday, November 8, 2018 2:34:34 AM MST Michelle Long via
> Digitalmars- d-learn wrote:
>> Obviously, but that is not the case I mentioned. You can
>> assume that I know how scopes work. No need to assume everyone
>> that shows two cases that you have to bring up an unrelated
>> case as a potential cause unless it is relevant.
>>
>> Remember, I'm showing the starting case that has the bug and
>> the final case that doesn't... it is simply "mental dustmite"
>> on the code I have.
>>
>> You shouldn't assume everyone can't comprehend such
>> trivialities.
>>
>> If a person cannot understand scope then I doubt they
>> understand goto's... and definitely not that adding braces
>> should not change the compiler behavior.
>>
>> What happens when you do that you just create noise that makes
>> it more difficult to have a proper discussion that gets at the
>> whole point of the conversation.
>>
>> You seem to default to assuming that the person you are
>> talking to has no clue about the problem at hand. You might
>> not do it intentionally but it is wrong to assume that because
>> it almost never helps.
>
> If you fully understood the situation, you wouldn't be asking
> whether your case was a compiler bug or not, and I don't know
> which parts you do and don't understand. So, I tried to be
> thorough in explaining the situation. And yes, by being
> thorough, I'm more likely to cover information that you already
> know and understand, but I'm also more likely to cover the
> information that you actually need. In order to avoid repeating
> anything you already understand and only tell you exactly what
> you need to know, I would have to somehow understand exactly
> which piece of the puzzle it is you're missing, and I don't.
>
Nope, you are simply wrong here. You have a need to try to show
that you know these trivial difference rather than, as you claim,
to show that they exist because the other party doesn't know them.
To say that anyone posting a problem doesn't fully understand the
situation simply because they don't know it is a compiler bug is
either a very arrogant and blatant egotism at work in your
mind(if you really believe what you said is true) or you are just
ignorant of the facts.
I mean, obviously I don't fully understand the situation, but
neither do you... so for you to claim that the poser must not
fully understand you are implying that you do, which you don't.
See, you will say the person asking must be ignorant(not fully
understand) of some facts about the problem.
Obviously! Everyone is, Even Walter does not have all the D code
memorized. So, in a theoretical sense... but in that same sense
neither do you. But you are asserting that you actually do know
since you then make the claim that you can solve this "ignorance"
problem because you do fully know everything.
You are conflating theoretical and factual.
You actually have no idea how much I know. You make the very
arrogant(even if you don't see it that way) assumption that you
know more about it...
And guess what? We haven't even defined what "it" is completely.
So you simply choose to consistently make decisions based on your
ego rather than what is factual and provable.
Everything is probabilistic and you mind and it's bias towards
stroking your own ego adjusts the probabilities to do this rather
than just taking them as very week approximations(that will
become more accurate over time by asking questions).
The fact is, it is kinda pointless, you will continue to approach
"helping" people with the same method. I'm trying to tell you
that is the wrong approach(maybe it is better than nothing, but
you basically make a shit load of assumptions about things and
generally are wrong and the most important ones) I've noticed
from the past that you tend to ignore all suggestions that you do
this rather than realizing you do and try to be aware and correct
them. This means you do not care about growing or are just
ignorant of reality.
I'm not saying you are evil or stupid but that you can learn to
be a better "helper" by actually trying to help people rather
than be "Mr. KnowItAll"(not, again, saying you are blatant about
it but you seem to go down the path of having to bring up trivial
and basically irrelevant things to point them out. It could be
that you have a little bit of the Captain Obvious DNA or
whatever).
I'm only ranting about this so that maybe you can learn how to
have a fully productive communication with someone when providing
them help rather than waste time. See, even if you were a perfect
programmer and knew everything about D it doesn't mean you have
any idea how to communicate with other human beings in solving
problems with D.
Sometimes the answer is a simple "yes" or "no"(0) and sometimes
it is a "thesis"(1). Knowing how much to spin it is what is key,
and you seem to not be good at that.
All I can say is stop making so many assumption... If you don't
think you are, well, you are, learn to recognize it.
> Honestly, that rarely seems to be easy to do, and for whatever
> reason, it seems to be even harder to do than normal when
> discussing this issue with you. It seems like most of the
> discussion of this issue between you and various folks has been
> people talking passed each other without really coming to an
> understanding, which always makes for a frustrating discussion.
The problem has to do with communication and assumptions.
> I'd like to help, but I don't know what else I can say. I've
> tried to explain how braces interact with goto and why,
You don't need to explain to me. What makes you think that you
know more about it than I do? This is the problem. You think you
are teaching me something when I have 20+ years of programming
experience.
You don't realize you are just getting in my way. I want real
fucking help. I don't want to be taught programming 101. What I
want is someone to read what I say and interpret it the best they
possibly can with their knowledge and simply say "Yes, that looks
like a bug", or "No, that definitely is not a bug" or "It's not
clear, can you expand on it".
To clutter up my quest for help by making me wade through junk
help(something offered as helped but isn't actually helpful even
though the helper thinks it is because, after all, they are
"helping") just slows down me actually getting help. I don't like
to waste my time. I have many things I like to do, I'm sorry if
that causes a problem with your method but I am the one asking
for help, am I not?
Again, I'm not saying you are bad person, it may come off that
way. I'm glad you want to help, but I know how it is, I've been
where you are. I can see the way you help in the way I used to
help before I learned that it wasn't as helpful as I thought it
was.
See, you think you have to point out every little detail(ok, not
every one but the ones you think are important) because you don't
want anyone not to know them and hit them. So you have to say
"Don't step in that shit right there, you see it? It's right
there, I think your going to step in it! Be careful!"... You
assume the other person doesn't see the shit.
You want to be helpful and prevent problems. That is not a bad
thing... but if you don't balance that with allowing the person
to step in shit then it becomes destructive help, which isn't
help.
Sometimes you have to say "There some shit there" and leave it
be. If the person steps in it, then let them step in it. They
will learn to pay attention more next time.
That is "balance".
Sometimes you don't even need to say anything. You have to learn
to judge the context rather than just being a back seat driver.
If you have a kid and you are teaching them to drive then you can
point out things you think are important more often. If it's your
father who has been driving for you and is in good health, maybe
you should just shut up and let him drive? Even if you disagree
with some things. That is "balance".
A balanced conversation in any context is always best because
balance is always the right way(not 0 and not 1, somewhere in
between... e.g., spin, a linear combo of 0 and 1 somewhere in
between usually). In fact, there is a balance to everything in
life, and learning those balances is important. I think you have
an in balanced way to help people. I'm simply trying to make you
aware of that so you can do a better job which will benefit
everyone.
Maybe one of the problems is that many people approach "helping"
the same way you do... and so it seems normal... just like eating
a bucket of ice cream seems normal at a summer fat camp... but
it's not normal.
> so you should be able to figure out whether you're dealing with
> a compiler bug or not. And if you are, unless you're dealing
> with one that someone else already has found independently and
> reported with a test case, somehow, you're going to need to
> reduce it enough to be able to create a bug report with an
> example if you want it fixed. A small example would be nice,
> but even a large example would be better than nothing. Either
> way, ultimately, without a reproducible test case, compiler
> bugs almost never get fixed. It just isn't practical for the
> compiler devs to track down bugs based on vague bug reports,
> even if they'd like to be helpful.
See, the problem is you have certain ways you interpret words.
What you think `compiler bug` means is different to me.
For you it might be some specific array of code in the source
code for some specific compiler... or whatever. I have no idea
what it means to you.
On the same token, you have no idea what compiler bug means to
me! You think everyone uses the same definition, but everyone
uses different definitions because definitions are experiences.
This is actually a bigger problem and a problem of epic
proportions that causes most problems in the humanity. It's
pretty obvious once you understand it.
For me, I am not so literal as you, so when I say something it is
being written in generalities(sorta like templates or meta
code... it has a deeper meaning or application than specific
code). You are literal. It's like your brain thinks in terms of C
or pascal while mine thinks in terms of D templates(it is an
analogy, I wouldn't have to point this out of you actually
thought in generalities, but since you think literally(or more
so) I have to point it out... Sorta like how you have to point
out trivial cases. Maybe you fully understand it though).
Since you program in D I know you do have the ability to think
general. You are not as bad as some people who cannot think in
abstraction. In fact, you are probably better than most people...
but you still are far more literal than I.
For me, the literal is trivial... and trivialities have no need
to be discussed except when they are necessary.
The point with all this is you, just as much as anyone else; me
included, have to learn to read in between the lines in
things(that is an abstraction... think D templates where one has
to fill in the specifies themselves. E.g., T = int or T =
double(general = specific)).
But you seem to fail to have this ability to do this when helping
people.
I'll explain it like this:
When I want directions, I do not want every turn, the distances,
the angles of rotation, elevation, speed, every tree and blade of
grass described. Ok?
Does that make sense?
All I want to know is "Point me in the right direction and tell
me about how long/far away/time(they all will work about the same
for me). If there is any major shit I need to know to avoid
causing me major problems then I'd like to know that." But if you
just tell me a lot of needed shit that has nothing relevant to my
life after the trip, it is pointless for me. (One could say that
it's not pointless and they are right, but again, there is a
balance. Just like you seem to err to much on the literal I err
too much on the general. In a sense I have the exact opposite
problem you have, which is why when I communicate with you it is
a lot bigger of a problem)
[This is also, BTW, why most people either communicate well or
badly. I can communicate with some people well and have no
issues... it's because they think more like I do... then there
are people that think like you and I tend to have problems
with(it's nothing personal at all). I'm saying this precisely for
the same reasons you have to point out thinks like the brace
semantics. But in my case I have reason to believe you actually
don't realize the complexity of communication. (You might think
you do but you could learn a lot more than you know)]
Now, as you know some point want to be told as much as possible
with directions.
A good direction giver is someone who can determine quickly how
to give exactly the type of directions that the other person
needs and give them so the other person can save time and energy.
This is no different than compiler design(the same class of
problems, after all, grammars are languages). Note how "literal"
computer languages of the past were and have more "general" they
have become. I speak in generalities because I believe it is
better. This is why I like D, because it allows me to be general.
You too must think somewhat like this because you like D and I'm
sure you like templates. So, we are not that far off of thinking
as some in this world.
But, because I'm in a D forum I kinda have a higher level of
expectation, just like if I was at a AMA meting I'd have certain
expectations and if those expectations are not met then yes,
there will be "frustration"(the frustration for me is just having
my time wasted since time is important... and the reason why so
many damn programmers spend their whole lives trying to optimize
algorithms. Time should be important... everyone who reads this
definitely has a finite amount that cannot be regained... why
waste it because one is ignorant of how important it is?
One could argue that I have wasted a shit load of time typing
this. I have wasted literal time. My hope is that you will
understand, assuming you read it, and ultimately you would waste
my time if you didn't unless someone else got something out of
it, is that after you read it your "algorithm" becomes faster.
This then pays it's dues exponentially because all our future
conversations will then be faster and so will your communications
with other people.
One of your problems seems to be that you haven't realized that
programming is life, it's not just some made up thing by humans.
There is an innate thing in existence that has to do with
optimization... programmers just do it with code. But even DNA
has optimized itself in a code like fashion, and if you are not
ignorant of those things you will understand the gravity of the
problem and why I have put so much time in simply trying to get
you to realize the depth... precisely for the same reasons you
do, because I want to help(most humans do, but everyone is
ignorant, more or less, of what that actually means)).
So, you can do what you will with it. I hope you just spend some
time pondering what is really going on and try to realize things
are not so literal even if you r mind sees it that way. It seems
I'm making an ant hill out of a molehill and I am, but I know the
benefits to your own existence and everyone around you will
benefit and keep the ants away.
To simply:
When I first posted my original post:
`
This should not be an error when the goto jumps outside the
current block!
{
goto Y;
int x;
}
Y:
There is no chance of any local variable being used. This makes
it impossible to use goto statements in any reasonable way
without littering the code with brackets.`
The answer to that is *not* some long shit about other cases or
possibilities or "we need a working example" or "what compiler
version are you using" or whatever junk that almost never
helps(it's sort of like the help you see in many computer forums
or SE that are just shit answers from idiots that actually think
they understand because they have been using a computer for 3
years have *have the solution* which they read from another forum
because they are geniuses and can read... e.g., go clear your
internet explorer cache and that will stop the beeping noises
when your computer starts!)
The response should have been:
"No, that should not be an error"
or possibly
"No, that should not be an error. Did you clean your internet
explorer cache?"
But it would be better if something additional must be said
"No, that should not be an error. There is no issues with it in a
minimal example. Compiles fine with version x.y.z"
Or, another possible answer could have been
"Could you refine your answer, works fine here, but if it were
giving you an error then seems wrong".
If you take those code examples to literally then it's like
programming in BASIC. I'm not going to go program in BASIC, ok?
It's really simple as that. Anyone that tries to pull me in to
those types of conversations is going to have to deal with my
long winded explanations why BASIC sucks and why I like to
program in D. It's simply better, you agree with the literal
translation... but why not the general(do you even understand
what that means now?)?
More information about the Digitalmars-d-learn
mailing list