Never mind that I was ignoring all her calls..you know how it is when you have all those girls calling and you just dont have the time for ALL of them....
Microsoft on the other hand has to round up dozens of vendors and get them all to apply fixes, and there will be stragglers. Then there is the question of how to get the patches onto customer's machines.
Don't forget that after the vendors fixed it,
the new drivers have to be re-certified and
signed by Microsoft or their Great OSes[tm]
will bark on everyone installing them - which
wouldn't shine a bright light on the vendor.
Last thing I remember was that having a
new driver certified by Microsoft takes
several weeks to months.
An interesting question aside: If so many
drivers (if you believe in the article's
wording) are affected, why did they pass the
Microsoft quality/security "certification"
in the first place?
Seems to me that their certification tests
aren't worth the bits they're written on -
probably they just check that the drivers
don't crash the system and so on. (well,
and sometimes, not even this.)
-fomit-frame-pointer will save a register on x86, and generate smaller code. This has been perfectly safe for me, but if you need debugging, it will break it.
You really got me there. Let me explain. I already started to write:
This is turned on for every optimization level
starting with -O3 by default.
when I decided to give it another go with gcc-3.2
because I wasn't able to find this in its docs again.
You're right: -fomit-frame-pointer
is (no longer?) standard with higher -Os.
I remember when it was (presumably with egcs, or
pgcc, or gcc on m68k), when -fomit-frame-pointer was automatically
activated by -O3 or higher.
if you bothered to read those favourite docs yourself, you would know that -O9 is no different from -O3.
Hello? Did I say anything else?
There's a difference in meaning. -O3
says: "Use that specific set of optimizations
no matter what you can do or if you are a newer
compiler", while -O9 says: "Use the
maximum set of safe optimizations possible."
Of course a programer has to make some asumptions about how the underlying OS work!
The fewer asumption, the better I agree, but this particular asumption [OS frees memory of dead programs] is quite natural.
No. Even in plain old C, memory management
(and tracking, and freeing) is done by the
runtime library if the programmer is not
capable of doing it, not by the OS.
If the OS provides a way to free memory
that slips the RTL's organization (memory lists
corrupted by badly programmed code), then that's
a nice safety net to have, but never something
to rely on from a programmer's point of view.
We don't even need to start talking about
portability here.
Many thanks; I had a look at the example (although
this site is ill; the page keeps reloading
all over and over again.. Turning JS off
instead forwards to a page to turn JS on... same in Moz and IE. well).
But I still not understand what's wrong with
my example. AFAIK one should make sure that every
exception possibly thrown should be catched because local objects' destructors won't be called
if no catch is installed somewhere "above".
I've never seen unknown() and'll go on looking
for it (maybe some newer feature).
Please note that I suggest that construct only
once for main(). There's lots of things you really
should not do using exceptions, but what's wrong
with having a safety net in the root?
You wouldn't happen to have a good online link
to documentation about how to use standard exceptions
correctly? I'm in templates ATM.
This is utter nonsense. Any decent OS releases all memory used by a program when that program exits.
This is utter nonsense. First, we're not only
talking about memory here, the problem is all about
freeing resources. Suppose your object acquired
some resource on a remote host - maybe using RPC/UDP. When your program exits, no OS will free
the object on the remote host and it will stay
allocated until it times out. Bad.
Second, if we're talking about freeing memory,
you want to free it as soon as possible and not
when the program ends.
Then:
it just shows the programmer ignorence of how memory handling in an OS works./
No, this is how a PROGRAMMER should work. He
shouldn't give a damn apple about how the underlying OS works.
OS memory handling is irrelevant to the programmer.
Since more x86 benchmarks have been posted,
people might have a look at some hints for
optimization. I will only list some options
important for Athlons ATM:
-march=athlon-xp Yes, gcc-3.2 not
only includes "athlon" but also "athlon-xp" and
even more finer-graded pentium architectures.
Use them! (implies -mcpu)
-O9 Always use it. I've yet to see
miscompiled code with gcc-3.2 and -O9.
-fno-rtti / -fno-exceptions Only
if you know the program isn't
using them.
-ffast-math "Simplifies" some assumptions
the compiler makes over your FPU code. Could
lead to slightly inaccurate results (down
the commata..), but usually works great, even
with xaos and co and gives a huge speed boost
-fno-math-errno If you don't use
errno after math operations at all
-funroll-loops / -funroll-all-loops Well.. unrolls some (1st) or all (2nd) of your loops. The first one
is more sane and already included by many -O
levels
-fprefetch-loop-arrays Important! On newer chips (Athlon/Pentium) this will generate
instructions to prefetch memory before / while
in a loop. This really works.
-malign-double Aligns doubles on
8 byte boundaries (instead of 4 byte boundaries).
It's a must on newer x86s but it breaks compatibility with many precompiled libraries.
Just try it. If it breaks, you have to recompile
all libraries used with this option (which is
a pain in the ass with Glib/GDK/GTK+ etc)
-mfpmath=sse Lets the compiler use
SSE fp math instead of i387 math. pros and cons...
it's worth a try for your application.
Last, but not least: -fssa This is
still experimental! in gcc-3.2, but after
applying all other options for almabench
it gave me another full 1% of speed increase.
Worth a look, but expect broken code to be
generated.
(heck, 90% of C++ programs I see will leak heap memory if you have exceptions)
In case any fellow beginning C++ programmer
was wondering: This is because objects are only
guaranteed to be destructed when an exception
is thrown if and only if this
exception is caught.
So no matter what you're doing in your program,
its main() should always look a bit
like this to make sure every exception is caught:
#include <stdexcept> #include <cstdlib>
int main (int argc, char** argv) { int ret = EXIT_FAILURE; try { ret = do_something_in_my_code (argc, argv); } catch (const std::exception& e) { std::cerr << "Caught exception '" << e.what() << "' in main().\n"; } catch (...) { std::cerr << "Caught unknown exception in main(). Sorry.\n"; } return ret; }
(Sorry, I can't seem to save indentation
with/. HTML here)
Please note that this way, you also always
assure to have a valid shell return code
(EXIT_SUCCESS from your function()
would be the OK code).
One of the people I met while MUD'ing suggested that since I live in the UK, I could act as an agent for programmers who wish to remain anonymous but still want to release their software.
I thought this would be a good idea and so this website came into existence...
IMHO this program originated in the US,
was exported to the UK, changed, and (re)published.
P.S.: Of what.ZIP on the web do you want to make
a backup copy today?;-)
I really wonder why they're so very,
very silent about what architecture they're
actually using for the CPU. "32bit RISC
CPU" - well, fine. But what is it?
Heck, you don't even find out about
this "RISC" part before you click through
several other pages of information. Why
do they obviously try to make it such a secret?
Just like this stuff with PalmOS, C64, SNES,
Amiga and whatever emulators where it's no
legal problem at all if you just copy the
neccessary files (there: ROMs, here: Icons
etc) from an original copy that you
legally own (note: This is different
from "bought").
It should also be possible to just
extract icons just from the WinXP,
Win9x or whatever CD. No need to
install (and register), then. Most probably
this won't include much of the drawing
engine but just the icons, but it should
be used if available.
From: [me]
To: webmaster@washingtonpost.com
Cc: webnews@washingtonpost.com
Subject: Sorry, you lost me as a reader
Dear Washington Post team,
today, for maybe the first time I followed a link to a story
on washingtonpost.com.
First, the site wouldn't let me read the article. It wanted
my birthyear, sex, ZIP and country. bah! I never give data
like this out just to be able to read some story. I don't
even give that out to REAL people I meet in chatrooms at
the first date, so please why should I tell a webserver?
So I just pressed "Go", thinking it would lead me to the
article.
Second mistake: Another browser window opened. Why the hell?
Why does your site have to open a NEW window just to display
a story?
And my third problem with your site: When this new window
had opened, it didn't even display the story but only
informed me that I won't be able to read the article
because I had Cookies turned off.
WTF?! Why does a website need COOKIES just to let a reader
view a simple, single article?
After all that, I had lost all my interest in reading
your article. It might be good, it might even be
a really outstanding piece of journalism, but
I'm afraid I will never find out (and I'm experiencing
a rather strange feeling that lots of other potential
readers already did - or did not - the same but didn't
feel the need to send you an email about it).
I think there'll be quite some time until I will follow
a link or visit washingtonpost.com again. I'm sorry,
but I'm interested in good information, not in playing
games with strange web designer ideas. Sorry, really.
my experience tells me that 99% of all nerds are really friendly and helpful, as opposed to many other "normal" people, and most of us would gladly help out a fellow nerd who was ripped off/cheated/decieved etc.
(SCNR, but there's always the Dark Side. I can't stand such assholes in online games, too and against all reason I felt better after reading
about this incident.)
Pre-dialing some numbers to use a different
provider just doesn't work with some local
city providers 'cause they've got trouble to
get the neccessary contracts with Deutsche
Telekom and other providers. So this might work, but for some,
it still doesn't.
Later that day, Hodges arrived in my lab with Maud the maid. Both were in a dreadful funk. Hodges exclaiming that a volcano was erupting in the south pasture, Maud maintaining that the devil himself had arrived. My first thought was that the pair of them had been at my Indian hemp plantation again, however this would not have accounted for Maud`s clothing, which appeared to have large monoclinic sulphur crystals attached to the posterior regions.
Using Deutsche Telekom, biggest phone company
over here (partly was and in some parts still is
monopolist), it's 12.3 cents per minute or
EUR 7.38 (!) per hour for a call to the US. (Would be about the
same amount in US$.)
If there is a 1-800 number, always make sure to call it.
I (like many others) can't. From outside the US,
calling a 1-800 either costs quite a lot of money
or is just impossible (Europe speaking here).
And by far the most spam
arriving here clearly advertises for US products.
(According to what kind of ads you get over
here, you have to think that all US Americans
are a bunch of low-earning people with little
dicks that would pay a fortune to watch
pre-recorded porn on the 'net and haven't
found out how to MAKE MONEY FAST yet. Blame the spammers.)
-v please. :-)
Don't forget that after the vendors fixed it, the new drivers have to be re-certified and signed by Microsoft or their Great OSes[tm] will bark on everyone installing them - which wouldn't shine a bright light on the vendor.
Last thing I remember was that having a new driver certified by Microsoft takes several weeks to months.
An interesting question aside: If so many drivers (if you believe in the article's wording) are affected, why did they pass the Microsoft quality/security "certification" in the first place?
Seems to me that their certification tests aren't worth the bits they're written on - probably they just check that the drivers don't crash the system and so on. (well, and sometimes, not even this.)
You really got me there. Let me explain. I already started to write:
This is turned on for every optimization level starting with -O3 by default.
when I decided to give it another go with gcc-3.2 because I wasn't able to find this in its docs again.
You're right: -fomit-frame-pointer is (no longer?) standard with higher -Os. I remember when it was (presumably with egcs, or pgcc, or gcc on m68k), when -fomit-frame-pointer was automatically activated by -O3 or higher.
Hello? Did I say anything else?
There's a difference in meaning. -O3 says: "Use that specific set of optimizations no matter what you can do or if you are a newer compiler", while -O9 says: "Use the maximum set of safe optimizations possible."
No. Even in plain old C, memory management (and tracking, and freeing) is done by the runtime library if the programmer is not capable of doing it, not by the OS.
If the OS provides a way to free memory that slips the RTL's organization (memory lists corrupted by badly programmed code), then that's a nice safety net to have, but never something to rely on from a programmer's point of view.
We don't even need to start talking about portability here.
Many thanks; I had a look at the example (although this site is ill; the page keeps reloading all over and over again.. Turning JS off instead forwards to a page to turn JS on... same in Moz and IE. well).
But I still not understand what's wrong with my example. AFAIK one should make sure that every exception possibly thrown should be catched because local objects' destructors won't be called if no catch is installed somewhere "above".
I've never seen unknown() and'll go on looking for it (maybe some newer feature).
Please note that I suggest that construct only once for main(). There's lots of things you really should not do using exceptions, but what's wrong with having a safety net in the root?
You wouldn't happen to have a good online link to documentation about how to use standard exceptions correctly? I'm in templates ATM.
This is utter nonsense. First, we're not only talking about memory here, the problem is all about freeing resources. Suppose your object acquired some resource on a remote host - maybe using RPC/UDP. When your program exits, no OS will free the object on the remote host and it will stay allocated until it times out. Bad.
Second, if we're talking about freeing memory, you want to free it as soon as possible and not when the program ends.
Then:
No, this is how a PROGRAMMER should work. He shouldn't give a damn apple about how the underlying OS works.
OS memory handling is irrelevant to the programmer.
Since more x86 benchmarks have been posted, people might have a look at some hints for optimization. I will only list some options important for Athlons ATM:
More in your favorite GCC docs.
In case any fellow beginning C++ programmer was wondering: This is because objects are only guaranteed to be destructed when an exception is thrown if and only if this exception is caught.
So no matter what you're doing in your program, its main() should always look a bit like this to make sure every exception is caught:
(Sorry, I can't seem to save indentation with /. HTML here)
Please note that this way, you also always assure to have a valid shell return code (EXIT_SUCCESS from your function() would be the OK code).
I'm not sure about that. Although he claims to have (re)written parts of the code,
IMHO this program originated in the US, was exported to the UK, changed, and (re)published.
P.S.: Of what .ZIP on the web do you want to make
a backup copy today? ;-)
"Join the Mobile Infantry and save the Galaxy.
Service guarantees citizenship.
Would you like to know more?"
Damn, for some reason, they seem to have something in common... People, always keep an open eye on what you get presented as your "freedom".
GCC's documentation is quite okay (as long as you stay away from this idiotic "info" format).
This is the GNU Compiler Collection. The compiler is documented. GCC is in no way a project to help you learn C!
I really wonder why they're so very, very silent about what architecture they're actually using for the CPU. "32bit RISC CPU" - well, fine. But what is it?
Heck, you don't even find out about this "RISC" part before you click through several other pages of information. Why do they obviously try to make it such a secret?
Definitely Interesting.
Just like this stuff with PalmOS, C64, SNES, Amiga and whatever emulators where it's no legal problem at all if you just copy the neccessary files (there: ROMs, here: Icons etc) from an original copy that you legally own (note: This is different from "bought").
It should also be possible to just extract icons just from the WinXP, Win9x or whatever CD. No need to install (and register), then. Most probably this won't include much of the drawing engine but just the icons, but it should be used if available.
Ahem.. Don't they always tell us that owning it doesn't make it our software?
That said, there can only be so much software that is Bill Gates' software.
FUD rules.
That's called "Hardware antialiasing" on CRTs. :-)
This is what I just sent:
"If you build it, they will come."
Yeah, Just like this.
(SCNR, but there's always the Dark Side. I can't stand such assholes in online games, too and against all reason I felt better after reading about this incident.)
Pre-dialing some numbers to use a different provider just doesn't work with some local city providers 'cause they've got trouble to get the neccessary contracts with Deutsche Telekom and other providers. So this might work, but for some, it still doesn't.
Yes, that's 2002. :-/
Slashdot.org: Al Gore accused as[*] patent infringement
[*] sic
btw: Yes, I already had that "It's funny, laugh!" part. :-)
He writes:
Indian hemp? Become a scientist NOW! :-)
Using Deutsche Telekom, biggest phone company over here (partly was and in some parts still is monopolist), it's 12.3 cents per minute or EUR 7.38 (!) per hour for a call to the US. (Would be about the same amount in US$.)
I (like many others) can't. From outside the US, calling a 1-800 either costs quite a lot of money or is just impossible (Europe speaking here).
And by far the most spam arriving here clearly advertises for US products.
(According to what kind of ads you get over here, you have to think that all US Americans are a bunch of low-earning people with little dicks that would pay a fortune to watch pre-recorded porn on the 'net and haven't found out how to MAKE MONEY FAST yet. Blame the spammers.)