A lot of previously deprecated classes, methods, and header files were removed from ACE for the release of ACE 6.0 in December 2010. Since then, there’s been a steady stream of questions, from both Riverace support customers and user group members along the lines of “Where the $%^@* is OS.h?!”
Oops…
Some explanation is in order.
OS.h is one of the oldest files in ACE and it had grown quite unwieldy and large over the years. The past few years have seen an effort to reduce build times for ACE and OS.h was a prime target of that work. Most of its content had been reorganized and moved to a number of new files with the prefix OS_NS (e.g., OS_NS_string.h) leaving OS.h as primarily a collection of #include “ace/OS_NS_…h” lines. A mere shell of its former ugly self.
OS.h had been marked “deprecated” for years and was finally removed during the housecleaning for ACE 6. However, the number of ACE apps in the field that still include OS.h was not taken enough into account. Hence, the steady stream of complaints regarding its absence.
We heard you loud and clear. I resurrected OS.h today and it will be back in ACE for the 6.0.2 micro release as well as the 6.0b Fix Kit for Riverace support customers. It’s also available as attachment to the “Missing header files building against ACE 6.0” solution in the Riverace Knowledge Base.
Tags: ACE
March 17, 2011 at 4:32 pm |
I will go ahead and admit that I grumbled to myself when some of my old tests broke, but I did go back and fix those tests to use the specific OS_NS*.h files and that seemed to fix everything. Hopefully, we won’t be removing those OS_NS*.h files sometime in the future too ;D. Regardless, thanks for listening to the community and giving them back their quick fix!
March 17, 2011 at 5:08 pm |
Yeah, many projects could edit in the correct OS_NS_…h files without much trouble, but we ran into a project with hundreds of needed edits. For what? They didn’t care about compile times. It was a matter of getting some heads together to decide the best way to help everyone out.