I tried Google and got the Eiffel Tower Wikipedia article first, and Google then thought the Eiffel language Wikipedia page was a sub-page and listed it indented second.
Most of the rest of the links were for the tower.
However there was only one link to Gustave Eiffel...
Microsoft wanted their drivers included in the main source code of Linux, which means they had to be GPL for this to be accepted. It has NOTHING to do with whether or not the GPL actually can cover some drivers and not all of them, which I agree is questionable.
Much more important is that releasing something GPL did not force Microsoft to GPL every single piece of source code they ever wrote. This is in direct contradiction to what they claimed earlier, and proves they lied.
You seem to think "pointer arithmetic" means being able to cast between integers and pointers. That is NOT what it means. What it means is that you can ADD an integer to a pointer to get another pointer, and you can subtract two pointers to get an integer.
This is VASTLY different and does indeed make garbage collection possible, just the way the above poster suggested. There are some rules in that you cannot use the arithemetic between pointers to different objects, but you can certainly use a pointer to the interior of an object as an indication that is in use.
You also seem to have confused "non-conservative GC" with "relocating GC" where you can alter pointers. That is also wrong. "conservative" means it may not delete everything possible. This is completley orthogonal to whether or not the pointers are writable by the GC, I certainly see no reason why there could not be conservative but relocating GCs.
I certainly was planning to and am pretty bummed that the program will probably end before I choose a new car.
I feel however that they could have offered a lot less money, like $1500. That would make the program go 3 times as far and I don't see it really changing things. Most of the clunkers are worth far less than $1500 and I certainly saw it as "I can get rid of this thing for more than I could sell it, it is easier to get rid of it, I will get a *new* car (not a used one), and I will be helping the economy". Actual monetary arguments don't count, obviously I am losing more than $4500 buying a new car vs a used one, the choice is entirely emotional so I feel it would work just as well with a lower price. I believe it would work for me, for instance.
Also you can't force your modified version of the app to be included by RedHat on their distribution CD! The original poster seems to think this is a requirement of the GPL, apparently.
There have been about 1000 posts now pointing out he is wrong, but more can't hurt.
You can combine GPL code with BSD code no problem. You can still release all the rest of the code BSD. So nothing legal prevents Apple from doing this, unlike the CDDL situation.
However the btrfs code would remain GPL and in effect a Darwin source with it included is GPL. They could probably make it a loaded module so that it is trivial to separate, but if it is the main file system and you assume the main file system is an important part of the kernel, then yes the kernel would be GPL.
I don't see any problem with requiring certain drivers to work under a VM. The VM is in fact a piece of hardware. You don't expect a random piece of hardware to work without a driver, it would only work if it emulates a common piece of hardware that there already is a driver for, and considering the requirements of a VM are probably vastly different than an actual piece of hardware that is not using the CPU and underlying operating system to do it's work, I would certainly not be suprised at all that the driver is required.
You really, really, really made "threaten them with being unable to sell in some stores" and think it is better to word it as "allow them to sell in those stores?"
WOW!
This place is a dump. Shills are so prevalent that they are not even trying anymore...
You really did not understand at all what the above poster is saying, huh?
The above poster was saying Microsoft could threaten a OEM with FEWER stores. That is assuming the Microsoft stores take some non-zero percentage of the market. Removing the ability to sell in the Microsoft stores makes FEWER stores, not more.
Now you can maybe argue that it is unrealistic or false or whatever, but please try to at least form some comprehension of what was being said, rather than posting a sentence that proves you are a complete moron.
Really the level of intelligence of the shills here is going down really fast.
I'm not sure about that, mostly because there could be an alternative non-GPL version of the library, and if your program called that it certainly would not be bound by the GPL. Non-GPL replacements for GPL libraries certainly have been made by some people who dislike the GPL, and you could claim you are working on it right now, but here is a program and instructions on legally compiling it...
I think this is a real loophole in the GPL. However exploiting it may be either pointless or impossible for these reasons:
1. You would have to include the entire source code of your non-GPL program if you want to distribute to somebody and have them get a usable program. A.o file would not be allowed, as compiling certainly sucks in plenty of information from header files and library api's and thus a compilied.o file is a derived work. Since you have to reveal the source code anyway, this defeats the main reason to not use the GPL.
2. If the GPL code was not really designed as a callable library, it may be quite impossible to call it without copying parts of it. A header file you create would have to copy structure definitions. If the source has static functions or other reasons you cannot link to it, you would have to modify it. A patch file is a derived work, I think even instructions to the user on how to edit is a derived work. Maybe you could get away with instructing the end user to compile with -Dstatic=.
3. If the GPL code came with any samples of how to use it of any substantial size that was GPL and not public-domain, you would have to avoid using these samples and somehow create your code by referring only to the documentation and header files. Often though the sample code is far better documentation than anything the user wrote.
My complaint is with you saying that everything is ok with a delayed settlement, something your wording seems to skip over a bit. I don't think Microsoft will say in a press release "thanks for paying us for those 500 copies! Let's keep this going for everyone's benefit!".
Yet in your "positive reinforcement" you say exactly that!
Furthermore you imply that the alternative is "we will sue you anyway". That is really a huge piece of spin.
Instead the wording is "thanks for complying, now we won't sue you. But please don't think this means you can do this repeatedly".
Much as Microsoft would say to that company "thanks for the delayed payment, now we won't sue you. But please don't think this means you can do this repeatedly".
You are right, code that calls a GPL library is not covered by the GPL. I can write some source code that shows how to call a GPL function and distribute it under any copyright I want. If you force the end user to compile the code themselves I do believe there is a big loophole in the GPL, and you could distribute code this way. They would have to get all the copyrighted pieces, including header files, themselves. I cannot believe that using "include Name" or putting the names of some functions into your code can be considered a copyright violation.
But it seems impractical for anybody to really do this for any serious piece of code, as binary distribution is expected by many people. In the case of the driver, Microsoft certainly wants it included in the kernel source tree, so that a stock kernel can run on their VM. Thus even if there was no other reason, they wanted it GPLv2 so that the code could be included.
If "paying the original price" was how you could get out of a copyright infringement or any other infraction, then nobody would pay anything. Because the net result is always positive, either you are caught and pay what you would have anyway, or you are not caught and you get it for free!
In fact Microsoft could legally sue for far more than the incremental price of those 500 extra copies. However if the company paid they might not as the public relations disaster would be much worse than any possible income from encouraging enforcement of their license, since most people see the company as admitting their mistake and paying the fair price.
And Microsoft did violate copyright by releasing the code without following the GPL. The fact that they later released the code makes no difference, the copyright is still violated. If releasing the source code "later" made you not violate the GPL then the GPL would serve no purpose, since "later" can be arbitrarily in the future. The reason nobody sues is because of a similar public relations disaster since they did admit the mistake and did what most people think is the fair price of releasing their source code.
Because the copyright holder can say "I will ignore your copyright violation if you do this..." and they agreed. "this" is typically "release the source code" in GPL cases, but it does not have to be. It could instead be "pay me $10000" or .
The fact that the typical settlement in GPL cases is equivalent to what the infringer could have done earlier to avoid breaking the copyright is confusing people here. The settlement could be anything that the copyright holder demanded and the infringer agreed to.
I think a copyright holder could still sue for money if they wanted to. But it has to be somebody who actually contributed code that was used by this module, not just a random Slashdot poster. The case would be pretty hard because it is now clearly established that a whole lot of other copyright holders agreed to accept the source code release as settlement.
This is a binary module for Linux, it is impossible to write it without using GPL code. Microsoft was well aware of this.
I'm fairly certain that the people writing it intended to release the code as GPL, they knew it was necessary, and they certainly wanted it added to the main kernel source tree (as otherwise generic copies of Linux would not run under their VM). The explanation that they were working on releasing it as GPL is probably true. They probably "forgot" at some upper level, I would not be suprised if there was more pressure to do the right thing from the lower engineers who did this work than from the FSF or other outside groups.
The huge news is that Microsoft was not forced to release every single bit of source code to Windows despite the fact that they used GPL code. This directly refutes all their claims of "cancer" and shows that they directly lied in their earlier statements.
What I meant is that the shareholders should sue because Microsoft is blowing a lot of money on these stores which will not make any difference to their sales, not one bit.
The other shenanigans you are talking about, if real, are at least obviously intended to improve Microsoft's income, so the shareholders should have no complaint.
Some things such as the IE 8 are better explained by incompetence than malice. However the "browserless" stuff certainly is them being assholes and trying to make it look like the regulators are to blame. And they sure flooded this site with shills trying to bury any intelligent discussion under reams of "browserless" claims of how hard that will be for the users, trying to hide the fact that all that was wanted was to allow OEM's to install multiple browsers (they still have this silly "browser selection" stuff. what is wanted is to just allow the machine to be bought with both the IE and Firefox icon on the desktop, but they will refuse and cry like babies and throw their shills on this site and everywhere, trying to bury any mention of the actual solution). Pretty shocking, but makes me feel more sorry for them than anything, if I worked there I think I would be embarrassed and ashamed by this behavior, as it is insulting to my own talents that they think they need to do such things to sell their product, rather than try to sell on quality.
Microsoft is not stupid. They have absolutely no reason to make "stores". You can find Microsoft stuff at every single computer store in the world. Apple had to make stores to compete. Microsoft is PAID to get their produce put into those stores, they have no overhead or staff salarlies to expense.
Also if it does not sell computers then it hardly is competing with an Apple store. And if it does, some OEM's are going to be REALLY mad if they are not included. Though they could maybe have EVERY SINGLE OEM BRAND represented. Yea, that will make the store work real good.
Seriously this has got to be a joke. It makes absolutely zero sense. Microsoft is running ads already that show that you buy there stuff in the same store that might have an Apple display where you can compare prices, not at a "Microsoft store".
If this is not a joke, I think maybe some Microsoft shareholders should sue.
Yes I would suspect that such a streambuf, along with some methods to reset/clear it and to get the char* pointer without copying, would get the speed up to match unless the compiler is really stupid.
They could also write stringstream so it has a fixed-size buffer as part of the structure. I would not be surprised if 99.99% of the uses are 128 bytes or less. When the buffer overflows it starts allocating one. They also need to put a method to get a char* pointer directly, all legal things str() can call will copy the buffer and rvalue optimization does not help here. Yea the compilers put tricks in there such as secret string constructors but this is why we have unreadable error messages.
I can tell you that figuring this out would be a hundred times harder than using snprintf. It is true that it could make up for it by allowing complicated objects to be printed, my normal solution has been to add a "print yourself to this buffer" call that uses stringstream internally, which adds up to the same complexity.
"struct" is supposed to be the same as class with "public:" right at the start. Unfortunately Microsoft's compiler gets this wrong, not sure why however.
Instead of adding a new nullptr type, I think the solution is to add a "0" type. The type literally is named "0", as it is only a placeholder in argument lists. The typical example where nullptr is needed would be solved with:
class C {
doSomething(X* ptr);
doSomething(int integer);
doSomething(0) { doSomething((X*)0); }
};
C c;
c.doSomething(0);// works as though it is a null pointer
int n = 1-1;
c.doSomething(n);// calls the integer version
This would also fix the annoying fact that a method that knows it is taking a null pointer can often do things much more efficiently and differently than one that takes an arbitrary pointer. I see people add extra "clearPtr" type functions because of this, but with this syntax doing setPtr(0) could directly compile to a call to the fast method.
He's only putting auto_ptr pointers on the stack, not whole objects. That is what he meant by "automatic".
But also don't discount putting things on the stack. It's not a good idea if your functions are recursive, but for leaf functions it is. I just did some tests today, replacing a stl stringstream with a 256 byte stack buffer and using snprintf and it literally was 4 times faster. I wasted some time trying to improve the stringstream, by putting it outside the loop and clearing it instead of recreating it each time, and performance got worse (I think because the only way to clear it is to do s.str("") which created a temporary std::string and the compiler was too stupid to remove it). Changing the called code to take a const char* instead of a const std::string& did improve it about 1.5 times, but that was just doing a portion of the conversion to old fashined C code, and was still worse than the one that kept the std::string and used the buffer.
Anybody who claims C++ stl stuff is just as fast is lying. They are safer (for instance nothing stopped me from sending the wrong number to snprintf, and my code did truncate if the answer was too big for the buffer, though I knew that the input (identifiers) would never be that long). But they are never faster, even compared to rather stupid code. I'm sure if I went and replaced snprintf with various strlcat calls it would be even better.
However an open-source client to their software means they cannot hide how to interoperate, and they cannot prevent other software from using this code. I suspect it does not cover a lot of the interoperation, but the code is probably also a big help for reverse engineering.
Microsoft could compete without shenanigans if they would document how to interoperate and license that information for everybody to use. Releasing this information as open source licensed code is a good way to do it, as the documentation in the code is likely much more accurate than any manual, and it probably is easier to make that code than to try to write the documentation.
If Linux could run DirectX programs legally and with the api fully documented, it would still have a hard time if it ran them 10 times slower, due to some clever piece of internal code that some engineer at Microsoft invented, for instance much faster antialiasing. This is fair competition. I think some engineers at Microsoft are interested in this as well, I would be, it is insulting that any actual talent is invisible because it is totally impossible for anybody to make a competing implementation.
Releasing anything under the GPL is a huge change for Microsoft. If you believed what they said a few years ago, they would have to publish every piece of source code they have right now, because the GPL is "viral".
I tried Google and got the Eiffel Tower Wikipedia article first, and Google then thought the Eiffel language Wikipedia page was a sub-page and listed it indented second.
Most of the rest of the links were for the tower.
However there was only one link to Gustave Eiffel...
Microsoft wanted their drivers included in the main source code of Linux, which means they had to be GPL for this to be accepted. It has NOTHING to do with whether or not the GPL actually can cover some drivers and not all of them, which I agree is questionable.
Much more important is that releasing something GPL did not force Microsoft to GPL every single piece of source code they ever wrote. This is in direct contradiction to what they claimed earlier, and proves they lied.
I have to say WTF to you.
You seem to think "pointer arithmetic" means being able to cast between integers and pointers. That is NOT what it means. What it means is that you can ADD an integer to a pointer to get another pointer, and you can subtract two pointers to get an integer.
This is VASTLY different and does indeed make garbage collection possible, just the way the above poster suggested. There are some rules in that you cannot use the arithemetic between pointers to different objects, but you can certainly use a pointer to the interior of an object as an indication that is in use.
You also seem to have confused "non-conservative GC" with "relocating GC" where you can alter pointers. That is also wrong. "conservative" means it may not delete everything possible. This is completley orthogonal to whether or not the pointers are writable by the GC, I certainly see no reason why there could not be conservative but relocating GCs.
I certainly was planning to and am pretty bummed that the program will probably end before I choose a new car.
I feel however that they could have offered a lot less money, like $1500. That would make the program go 3 times as far and I don't see it really changing things. Most of the clunkers are worth far less than $1500 and I certainly saw it as "I can get rid of this thing for more than I could sell it, it is easier to get rid of it, I will get a *new* car (not a used one), and I will be helping the economy". Actual monetary arguments don't count, obviously I am losing more than $4500 buying a new car vs a used one, the choice is entirely emotional so I feel it would work just as well with a lower price. I believe it would work for me, for instance.
Also you can't force your modified version of the app to be included by RedHat on their distribution CD! The original poster seems to think this is a requirement of the GPL, apparently.
There have been about 1000 posts now pointing out he is wrong, but more can't hurt.
You can combine GPL code with BSD code no problem. You can still release all the rest of the code BSD. So nothing legal prevents Apple from doing this, unlike the CDDL situation.
However the btrfs code would remain GPL and in effect a Darwin source with it included is GPL. They could probably make it a loaded module so that it is trivial to separate, but if it is the main file system and you assume the main file system is an important part of the kernel, then yes the kernel would be GPL.
Well then Stroupstrup should fix his book, because he is lying in the first chapter.
It pretty clearly says that "struct" is the same as "class" except it acts like "public:" is right at the start.
I thought it was required.
I don't see any problem with requiring certain drivers to work under a VM. The VM is in fact a piece of hardware. You don't expect a random piece of hardware to work without a driver, it would only work if it emulates a common piece of hardware that there already is a driver for, and considering the requirements of a VM are probably vastly different than an actual piece of hardware that is not using the CPU and underlying operating system to do it's work, I would certainly not be suprised at all that the driver is required.
You really, really, really made "threaten them with being unable to sell in some stores" and think it is better to word it as "allow them to sell in those stores?"
WOW!
This place is a dump. Shills are so prevalent that they are not even trying anymore...
You really did not understand at all what the above poster is saying, huh?
The above poster was saying Microsoft could threaten a OEM with FEWER stores. That is assuming the Microsoft stores take some non-zero percentage of the market. Removing the ability to sell in the Microsoft stores makes FEWER stores, not more.
Now you can maybe argue that it is unrealistic or false or whatever, but please try to at least form some comprehension of what was being said, rather than posting a sentence that proves you are a complete moron.
Really the level of intelligence of the shills here is going down really fast.
I'm not sure about that, mostly because there could be an alternative non-GPL version of the library, and if your program called that it certainly would not be bound by the GPL. Non-GPL replacements for GPL libraries certainly have been made by some people who dislike the GPL, and you could claim you are working on it right now, but here is a program and instructions on legally compiling it...
I think this is a real loophole in the GPL. However exploiting it may be either pointless or impossible for these reasons:
1. You would have to include the entire source code of your non-GPL program if you want to distribute to somebody and have them get a usable program. A .o file would not be allowed, as compiling certainly sucks in plenty of information from header files and library api's and thus a compilied .o file is a derived work. Since you have to reveal the source code anyway, this defeats the main reason to not use the GPL.
2. If the GPL code was not really designed as a callable library, it may be quite impossible to call it without copying parts of it. A header file you create would have to copy structure definitions. If the source has static functions or other reasons you cannot link to it, you would have to modify it. A patch file is a derived work, I think even instructions to the user on how to edit is a derived work. Maybe you could get away with instructing the end user to compile with -Dstatic=.
3. If the GPL code came with any samples of how to use it of any substantial size that was GPL and not public-domain, you would have to avoid using these samples and somehow create your code by referring only to the documentation and header files. Often though the sample code is far better documentation than anything the user wrote.
My complaint is with you saying that everything is ok with a delayed settlement, something your wording seems to skip over a bit. I don't think Microsoft will say in a press release "thanks for paying us for those 500 copies! Let's keep this going for everyone's benefit!".
Yet in your "positive reinforcement" you say exactly that!
Furthermore you imply that the alternative is "we will sue you anyway". That is really a huge piece of spin.
Instead the wording is "thanks for complying, now we won't sue you. But please don't think this means you can do this repeatedly".
Much as Microsoft would say to that company "thanks for the delayed payment, now we won't sue you. But please don't think this means you can do this repeatedly".
You are right, code that calls a GPL library is not covered by the GPL. I can write some source code that shows how to call a GPL function and distribute it under any copyright I want. If you force the end user to compile the code themselves I do believe there is a big loophole in the GPL, and you could distribute code this way. They would have to get all the copyrighted pieces, including header files, themselves. I cannot believe that using "include Name" or putting the names of some functions into your code can be considered a copyright violation.
But it seems impractical for anybody to really do this for any serious piece of code, as binary distribution is expected by many people. In the case of the driver, Microsoft certainly wants it included in the kernel source tree, so that a stock kernel can run on their VM. Thus even if there was no other reason, they wanted it GPLv2 so that the code could be included.
So I am free to pirate Windows and only pay when they send a letter? Wow!
Lovely spin there, mister.
If "paying the original price" was how you could get out of a copyright infringement or any other infraction, then nobody would pay anything. Because the net result is always positive, either you are caught and pay what you would have anyway, or you are not caught and you get it for free!
In fact Microsoft could legally sue for far more than the incremental price of those 500 extra copies. However if the company paid they might not as the public relations disaster would be much worse than any possible income from encouraging enforcement of their license, since most people see the company as admitting their mistake and paying the fair price.
And Microsoft did violate copyright by releasing the code without following the GPL. The fact that they later released the code makes no difference, the copyright is still violated. If releasing the source code "later" made you not violate the GPL then the GPL would serve no purpose, since "later" can be arbitrarily in the future. The reason nobody sues is because of a similar public relations disaster since they did admit the mistake and did what most people think is the fair price of releasing their source code.
Because the copyright holder can say "I will ignore your copyright violation if you do this..." and they agreed. "this" is typically "release the source code" in GPL cases, but it does not have to be. It could instead be "pay me $10000" or .
The fact that the typical settlement in GPL cases is equivalent to what the infringer could have done earlier to avoid breaking the copyright is confusing people here. The settlement could be anything that the copyright holder demanded and the infringer agreed to.
I think a copyright holder could still sue for money if they wanted to. But it has to be somebody who actually contributed code that was used by this module, not just a random Slashdot poster. The case would be pretty hard because it is now clearly established that a whole lot of other copyright holders agreed to accept the source code release as settlement.
This is a binary module for Linux, it is impossible to write it without using GPL code. Microsoft was well aware of this.
I'm fairly certain that the people writing it intended to release the code as GPL, they knew it was necessary, and they certainly wanted it added to the main kernel source tree (as otherwise generic copies of Linux would not run under their VM). The explanation that they were working on releasing it as GPL is probably true. They probably "forgot" at some upper level, I would not be suprised if there was more pressure to do the right thing from the lower engineers who did this work than from the FSF or other outside groups.
The huge news is that Microsoft was not forced to release every single bit of source code to Windows despite the fact that they used GPL code. This directly refutes all their claims of "cancer" and shows that they directly lied in their earlier statements.
What I meant is that the shareholders should sue because Microsoft is blowing a lot of money on these stores which will not make any difference to their sales, not one bit.
The other shenanigans you are talking about, if real, are at least obviously intended to improve Microsoft's income, so the shareholders should have no complaint.
Some things such as the IE 8 are better explained by incompetence than malice. However the "browserless" stuff certainly is them being assholes and trying to make it look like the regulators are to blame. And they sure flooded this site with shills trying to bury any intelligent discussion under reams of "browserless" claims of how hard that will be for the users, trying to hide the fact that all that was wanted was to allow OEM's to install multiple browsers (they still have this silly "browser selection" stuff. what is wanted is to just allow the machine to be bought with both the IE and Firefox icon on the desktop, but they will refuse and cry like babies and throw their shills on this site and everywhere, trying to bury any mention of the actual solution). Pretty shocking, but makes me feel more sorry for them than anything, if I worked there I think I would be embarrassed and ashamed by this behavior, as it is insulting to my own talents that they think they need to do such things to sell their product, rather than try to sell on quality.
The following does not compile in VC++ but does in GCC:
class Foo;
struct Foo {
int blah;
};
This makes it annoying if you decide that a struct should be a class (or vice-versa).
Microsoft is not stupid. They have absolutely no reason to make "stores". You can find Microsoft stuff at every single computer store in the world. Apple had to make stores to compete. Microsoft is PAID to get their produce put into those stores, they have no overhead or staff salarlies to expense.
Also if it does not sell computers then it hardly is competing with an Apple store. And if it does, some OEM's are going to be REALLY mad if they are not included. Though they could maybe have EVERY SINGLE OEM BRAND represented. Yea, that will make the store work real good.
Seriously this has got to be a joke. It makes absolutely zero sense. Microsoft is running ads already that show that you buy there stuff in the same store that might have an Apple display where you can compare prices, not at a "Microsoft store".
If this is not a joke, I think maybe some Microsoft shareholders should sue.
Yes I would suspect that such a streambuf, along with some methods to reset/clear it and to get the char* pointer without copying, would get the speed up to match unless the compiler is really stupid.
They could also write stringstream so it has a fixed-size buffer as part of the structure. I would not be surprised if 99.99% of the uses are 128 bytes or less. When the buffer overflows it starts allocating one. They also need to put a method to get a char* pointer directly, all legal things str() can call will copy the buffer and rvalue optimization does not help here. Yea the compilers put tricks in there such as secret string constructors but this is why we have unreadable error messages.
I can tell you that figuring this out would be a hundred times harder than using snprintf. It is true that it could make up for it by allowing complicated objects to be printed, my normal solution has been to add a "print yourself to this buffer" call that uses stringstream internally, which adds up to the same complexity.
Maybe a new type of link should be added that does a search, or a set of navigation steps.
"struct" is supposed to be the same as class with "public:" right at the start. Unfortunately Microsoft's compiler gets this wrong, not sure why however.
Instead of adding a new nullptr type, I think the solution is to add a "0" type. The type literally is named "0", as it is only a placeholder in argument lists. The typical example where nullptr is needed would be solved with:
class C {
doSomething(X* ptr);
doSomething(int integer);
doSomething(0) { doSomething((X*)0); }
};
C c; // works as though it is a null pointer // calls the integer version
c.doSomething(0);
int n = 1-1;
c.doSomething(n);
This would also fix the annoying fact that a method that knows it is taking a null pointer can often do things much more efficiently and differently than one that takes an arbitrary pointer. I see people add extra "clearPtr" type functions because of this, but with this syntax doing setPtr(0) could directly compile to a call to the fast method.
He's only putting auto_ptr pointers on the stack, not whole objects. That is what he meant by "automatic".
But also don't discount putting things on the stack. It's not a good idea if your functions are recursive, but for leaf functions it is. I just did some tests today, replacing a stl stringstream with a 256 byte stack buffer and using snprintf and it literally was 4 times faster. I wasted some time trying to improve the stringstream, by putting it outside the loop and clearing it instead of recreating it each time, and performance got worse (I think because the only way to clear it is to do s.str("") which created a temporary std::string and the compiler was too stupid to remove it). Changing the called code to take a const char* instead of a const std::string& did improve it about 1.5 times, but that was just doing a portion of the conversion to old fashined C code, and was still worse than the one that kept the std::string and used the buffer.
Anybody who claims C++ stl stuff is just as fast is lying. They are safer (for instance nothing stopped me from sending the wrong number to snprintf, and my code did truncate if the answer was too big for the buffer, though I knew that the input (identifiers) would never be that long). But they are never faster, even compared to rather stupid code. I'm sure if I went and replaced snprintf with various strlcat calls it would be even better.
However an open-source client to their software means they cannot hide how to interoperate, and they cannot prevent other software from using this code. I suspect it does not cover a lot of the interoperation, but the code is probably also a big help for reverse engineering.
Microsoft could compete without shenanigans if they would document how to interoperate and license that information for everybody to use. Releasing this information as open source licensed code is a good way to do it, as the documentation in the code is likely much more accurate than any manual, and it probably is easier to make that code than to try to write the documentation.
If Linux could run DirectX programs legally and with the api fully documented, it would still have a hard time if it ran them 10 times slower, due to some clever piece of internal code that some engineer at Microsoft invented, for instance much faster antialiasing. This is fair competition. I think some engineers at Microsoft are interested in this as well, I would be, it is insulting that any actual talent is invisible because it is totally impossible for anybody to make a competing implementation.
Releasing anything under the GPL is a huge change for Microsoft. If you believed what they said a few years ago, they would have to publish every piece of source code they have right now, because the GPL is "viral".