Yes gmake, thats EXACTLY what i meant
-
Just a minor case of sarcastic error code...
Makefile.mak:85 ××× missing separator (did you mean TAB instead of 8 spaces? ). Stop.Rewriting makefile from nmake to gnu
-
I was going to post something about 4/8 Spaces = 1 Tab. Then I remembered where / when 8 Spaces did === 1 Tab
-
Languages where tabs and spaces have different meanings are TRWTF.
Also you for using them.
-
Languages where tabs and spaces have different meanings are TRWTF.
agreed
Also you for using them.
and more power too you for creating a sane replacement for makefiles.i've seen many replacements, and precious little sanity
-
-
People who use spaces instead of tabs are TRWTF.
How is it supposed to know if it's one 8-space tab or two 4-space tabs or two 3-space tabs followed by two spaces?
-
In this special case its always one tab - no matter how many spaces. Recipes in gnumake must be indented with tab, in microsoft nmake - any whitespace is ok. Im ok with these rules (replace all "^([ ]+)" with tab afair) but think its funny that gnu people make effort to detect this kind of "error" and display sarcastic, 100% accurate comment just to annoy microsoft crowd.
-
People who use spaces instead of tabs are TRWTF.
Oh, this is a bridge too far. May you suffer another 5 years of MilwaukeePC dialup speeds!
"My opinion is that the best way to solve the technical issues is to mandate that the ASCII #9 TAB character never appear in disk files: program your editor to expand TABs to an appropriate number of spaces before writing the lines to disk. "
-
t gnu people make effort to detect this kind of "error" and display sarcastic, 100% accurate comment just to annoy microsoft crowd.
Man, it's like they don't even care to have computers help people! 20 years ago I was reading in compiler design class about being able to recover from certain classes of error (the compiler usually can figure out if you forgot a statement-terminating ;, for example) but nobody really does it.
(JS ASE is hereby acknowledged as the exception).
-
(the compiler usually can figure out if you forgot a statement-terminating ;, for example)
Which is a great reason not to do it.
-
20 years ago I was reading in compiler design class about being able to recover from certain classes of error (the compiler usually can figure out if you forgot a statement-terminating ;, for example) but nobody really does it.
Because if you get it wrong, it makes the code much harder to debug (as you usually end up with complaints about syntax in code that you didn't write). If the language is sufficiently strict, you can get away with it as it is relatively simple to resynchronise the parser with the token stream, but most languages aren't that strict. Confusion is the worst outcome; it's actually better to produce clear error messages that allow the programmer to quickly find the problem and fix it.
-
Which is a great reason not to do it.
Frankly, I would love a compiler that had an option to infer a colon and provisionally recompile the program with it if it detects an error, and then asks me if I meant one to be there, and if I said yes, inserted it into the source for me.
There are whole classes of simple errors that can be almost guaranteed to be caught by the parser/lexer in any LALR(1) language.
Admittedly, modern computers are so fast and precompiled headers improve that even more that it's less of a bear, but still.
-
Because if you get it wrong, it makes the code much harder to debug
Obviously. See my reply to @boomzilla, though. Let it be an option that you can turn on, and proposes a fix and asks you if you want to apply it. Maybe in another 30 years we'll trust the compiler enough to do it for us at that point.
-
Frankly, I would love a compiler that had an option to infer a colon and provisionally recompile the program with it if it detects an error, and then asks me if I meant one to be there, and if I said yes, inserted it into the source for me.
That sounds awful to me. Just give me the error and I'll fix it.
-
That sounds awful to me. Just give me the error and I'll fix it.
HEAVEN FORFEND THIS COMPUTER DO SOMETHING THAT WOULD SAVE ME SOME EFFORT.
-
Let it be an option that you can turn on
If you want that in your IDE, no problem. In the compiler? Hell, no!
-
If you want that in your IDE, no problem. In the compiler? Hell, no!
I am not particularly concerned where it is. In fact, it probably would be better in the IDE; it seems a natural fit for IntelliSense or whatever Eclipse' equivalent is.
-
HEAVEN FORFEND THIS COMPUTER DO SOMETHING THAT WOULD SAVE ME SOME EFFORT.
I'm all for saving effort. But doing stuff behind my back like that going to cause confusion.
I am not particularly concerned where it is. In fact, it probably would be better in the IDE; it seems a natural fit for IntelliSense or whatever Eclipse' equivalent is.
Yes, I use that feature of Eclipse sometimes where it suggests fixing something, like putting in exception handling. The IDE is a perfectly cromulent place for this feature.
-
Well, some time ago someone had bright idea that it will be relly nice if version control could automagically change end of line charcters depending of user operating system. If you develop such system (especially if its MKS or Integrity) be so kind and give me option to disable this "feature". Please, do it before i loose my mind and disable it with a crowbar....
Sometimes automated help shold be left out where "mr. Paperclip" lies
-
But doing stuff behind my back like that going to cause confusion.
I believed I described it as not behaving in a way that could be reasonably called "behind your back".
-
If a compiler gives me an error message, it might have the wrong solution provided. I wouldn't trust a computer to figure out what I'm asking it to do if it didn't know for sure.
-
I believed I described it as not behaving in a way that could be reasonably called "behind your back".
Maybe off to the side. By which I mean, it asked you about it, sure, but out of context, which is to say, not as part of the editor (which would imply IDE). I think it would turn into a mindless acceptance, since you wouldn't necessarily understand where / what exactly you were changing, but hey, the compiler says so, so let's go for it!
But we all have a different level of COD to deal with when it comes to this stuff.
-
since you wouldn't necessarily understand where / what exactly you were changing
" Looks like you forgot a semicolon after line 23: "CallMyObject()". Would you like me to add it in to your source and recompile?"
-
Why not just write in JavaScript, then?
-
@boomzilla said:
since you wouldn't necessarily understand where / what exactly you were changing
" Looks like you forgot a semicolon after line 23: "CallMyObject()". Would you like me to add it in to your source and recompile?"
No.
-
Why not just write in JavaScript, then?
As I said before, many categories of single-token errors can be fixed, not just a missing semicolon. Modern compilers could probably figure out that you tried to invoke a method on the wrong object or something. Ever seen the C# "you cannot implicitly convert x to y, but there is an explicit cast available" error? I wouldn't mind if it put that cast in for me because the few times I've gotten the error, adding it was the correct thing.
-
-
-
That's not actually a syntax error.
-
What would you call it?
-
The technical issues of the indentation not taking eight times as many bytes and people being able to set their own tab widths and work on the same project?
-
What would you call it?
An empty set of braces? I'd call it legal behavior:
#include <iostream> void frob() { } void main(void) { frob(); }
-
Really? Because a C++ class needs a semicolon after it. And there are clearly two
}
in that screenshot.
-
The technical issues of the indentation not taking eight times as many bytes and people being able to set their own tab widths and work on the same project?
If you work with others on a project, then arrive at an indent width everyone can live with and insist that everyone DO live with. Then configure your IDE to convert tab characters to spaces. It's not the goddamn 70s and we're not using punch cards. Even MS Word's in on the action: you can set paragraph indentation from the ruler without actually using tab (or space!) characters.
If you[1] cannot do that, then you are TRWTF.
[1] the generic you, not you Ben.
-
all: a c ; @echo "done" a: ; @echo "You do know you don't even need to use tabs in makefiles?" b: d ; @echo "I swear, 80% of the let's-pointlessly-hate-make crowd" c: b ; @echo "haven't even read the manual..." d: ; @echo "It's 2015, people."
-
An empty set of braces? I'd call it legal behavior:
If wasn't empty. But the tooltip covered the offending line, which was actually something like:
String bean = "Brillant"
Sorry, I thought that would have been obvious by context.
-
So the IDE already tells you, and presumably you think that's not a bad thing. Imagine, the, if there were an option (say, control-. or something like I think VS uses) to let the editor fix the problem, like it can already do in a bunch of ways. Are you the kind of onion-wearing neo-Luddite who gets upset when Eclipse asks you if you want to insert using statements for standard packages you reference?
-
Are you the kind of person who doesn't read what other people write? Like when I already said that I like and use IDE features like that?
-
Are you the kind of person who doesn't read what other people write? Like when I already said that I like and use IDE features like that?
Are you the kind of microaggressing pendant who insists on nailing down the specifics if whether this hypothetical extension of an existing feature belongs in the IDE or the compiler? Because I wasn't concerned too much with which it was when I brought the idea up, and I do agree that the IDE is a better place for this.
-
Are you the kind of microaggressing pendant who insists on nailing down the specifics if whether this hypothetical extension of an existing feature belongs in the IDE or the compiler?
No, I'm the sort of macroaggressive asshole who thinks it's pretty fucking vital that it's in the IDE instead of the compiler. Also, it's not hypothetical.
-
I'm the sort of macroaggressive asshole who thinks it's pretty fucking vital that it's in the IDE instead of the compiler.
Precisely. The key is that compilers are not just used by the person developing the code. If someone is just trying to use it, or build it for redistribution, they do not want to have the compiler trying to second-guess what they're up to. Put the second-guessing smarts in the hands of the original developer (via their IDE) so that everyone else gets to deal with stuff that's binary: working or broken.