VERSION 0.7.2 (r???) * Old (and buggy) build system removed in favor of CMake. * Changed source control to Git from Subversion. * Fixed a few memory leaks in CPUID. * Added support for DEC Alpha and Sun SPARC. * Documentation is now more verbose and has been clarified in some areas. * Added an optional preprocessor definition "DISABLE_DEPRECATED_CODE" to disable MD2, slow sorts, etc. * CPUID test application now reports any oddities (such as: the processor is multicore but only 1 virtual processor was detected). * Added 'flushArray' and 'flush' to DArray to allow for simpler deletion of contained data. * Stopwatch::Clocks() removed because it was too platform-specific and only Windows seemed to have decent support. * HashTable is now usable and is no longer considered experimental. * A major AVLTree::findRecursive() bug (in which the result might not actually be found) has been corrected. * A major RedBlackTree::findRecursive() bug (in which the result might not actually be found) has been corrected. * A major SplayTree::findRecursive() bug (in which the result might not actually be found) has been corrected. * Test suite is now a bit more zealous about checking everything. VERSION 0.7.1 (r768) * Added Objective-C support via the NSApplicationMain entry point. Define COCOA_APPLICATION in universal_include.h to use. * In-progress connections now report EINPROGRESS instead of EWOULDBLOCK. * TCPSockets generally overhauled after lots of practical use of them in ARC++. * FG_YELLOW now exists as an alias of FG_BROWN | FG_INTENSITY. * GenerateBuildNumber.exe is now statically linked. * Stopwatch now calls Start() on initialization (largely for cases such as static instantiations of the class). * Removed an extra semicolon which caused compiler errors on newer versions of GCC. * Removed the largely unimplemented "ban" system in sockets. * Renamed the internal strdup macro to cc_strdup to avoid conflicts. * Fixed a critical bug in RedBlackTree where a null pointer is dereferenced. * Fixed a bug in AVLTree where the size may be incorrectly reported. * Fixed a few compiler warnings. * Fixed ThreadSleep on Mac OS X. * Coding style changes implemented in the uncrustify config. VERSION 0.7.0 (r684) * Added several checksum methods: - MD2 - MD4 - MD5 - SHA-1 - SHA-256 - SHA-512 - Tiger * Nintendo DS homebrew support added (compile with 'make BUILDFORNDS=1') - Copyright changed to fit Nintendo DS screen. - Cross-compiling is possible with devkitPro. - Console class supports libnds console features. * Fixed ANSI reset color code. * GenPrime algorithm updated slightly to improve speed. * SplayTree can't handle duplicate keys properly, so 1:1 compatibility with AVLTree/RedBlackTree has been broken to disable certain duplicate key handling functions. * CPUID updated with December 2007 Intel CPUID specification. * Rare bug in AVLTree corrected. * Renamed TextReader and TextWriter to FileReader and FileWriter, respectively. VERSION 0.6.6 (r593) * Visual Studio 2008 support added. * More example projects added. * CPUID now detects AMD cache descriptors. * ConvertToDArray and ConvertIndexToDArray functions optimized, deprecation notice removed * Fixed Stopwatch on FreeBSD, NetBSD and OpenBSD * Added AVLTree, SplayTree, ShellSort, InsertionSort, and BubbleSort (the last two for educational purposes only) * Added a basic HashTable implementation. * AVLTree, RedBlackTree, and SplayTree have close-to-identical (if not perfectly identical) APIs. * Cleaned up some 'using namespace' statements that were causing hard-to-detect errors. * Many, many minor fixes. * Doxygen config updated to v1.5.4 VERSION 0.6.5 (r427) * CrissCross::Data::Compare now can compare C-style strings. * x64 target added for Visual Studio 2005 projects. * New crisscross/crisscross.h added which basically includes every common CrissCross header. * RedBlackTree now works with char* string keys. * No longer needlessly recompiles on Mac OS X (build_number.h regeneration caused a recompile). * QuickSort::Sort is now marked deprecated with _CC_DEPRECATE_SLOW as a warning to those who use it. * CoreIOWriter had a few functions which had std::string passed by value rather than by reference. * DStack::peek() function added. * FastestSort and MemoryEfficientSort aliases added by request. * BTree alias for RedBlackTree added. * Cleaned data structure function names a bit (getData() is now simply get(), etc). * Added compatibility with Tosser data structure library, allowing CrissCross to be used with the Onlink project. * Added XCrashReports support for release builds. * _CC_DEPRECATE_SLOW changed for Windows builds to indicate severity of the slowdown. * Improved speed and size of CoreAssert and made it more CrissCross-like for its stderr output. * Major time-critical Stopwatch functions are now inlined (Start/Stop functions). * Corrected an error with ThreadSleep which caused it to sleep forever if a value less than zero was passed to it. * crisscross/sort.h is now all that needs to be included for use of CombSort, QuickSort, and HeapSort. * Disabled core/thread detection in CPUID, because of varying results (can't yet interpret what they mean. * Added a few more cache descriptors to CPUID (Core 2 related ones). VERSION 0.6.0 * CrissCross test suite added (tests a majority of the features). * Added QuickSort and CombSort. * Doxygen config updated to v1.5.2 * Enabled man page generation on Doxygen config. * Documentation updated and clarified. * Fastdep and CCDV removed. * New build number system added (based on SVN revision number). * Visual C++ 2003 project added. * XCode project added. * Visual C++ 6.0 project removed. * Headers in all files reduced in size. * New CoreIOReader ReadLine added. * Flush added in CoreIOWriter::Write (some platforms wouldn't display written data until a newline). * Winsock 2.2 is now used in Windows builds (instead of 2.0) * CoreSocket::Close no longer attempts to close an invalid socket (which would cause errno to give an error value). * Various UDPSocket functions no longer return false errors. * SDL_APPLICATION preprocessor definition available for SDL applications with the SDLmain entry point. * Windows memory leak checking improved and no longer causes weird crashes. * Switched to STL for memory leak check file parsing. * Stale ENABLE_DEBUGLOG #ifdefs removed. * Option to disable C++ exception handler (decreases executable size among other things) available now. * CrissCross::Data::Compare is now a template function. * CoreMutex is now called Mutex. * CoreConsole is now called Console. * DArray, LList and RedBlackTree function calls are converted to a more standard naming system. * A dangerous flaw in the Stopwatch class causing a crash and a bad compile was corrected. * Platform detection improved and cleaned up. * Made several changes for GCC 4.3.0 (SVN) compatibility. * Gentoo ebuild is available on uplinklabs.net portage overlay. VERSION 0.5.2 * Split CoreIO into CoreIOReader and CoreIOWriter. * CoreConsole now accepts input. * All unicode support removed until it is further researched. * Several documentation errors were corrected. * CoreIOReader and CoreIOWriter now check to see if the file is open before attempting read or write operations. * Makefiles improved to allow 'make -j#' builds. * Added Visual C++ 6 project files, but there's no guarantee they work perfectly. * Moved data structures to the main include directory. * Including CrissCross files with #include now works properly without adding -I/usr/include/crisscross to the GCC command line. * Fixed CCDV to say 'Compiling' rather than 'Linking' for precompiled headers. * CPUID now detects SSSE3 (Supplemental SSE3 instructions). * CPUID now properly detects CMP (Core Multi Processing, a.k.a. dual core) * Sockets heavily edited, allowing for better error handling. * TCPSocket::Accept() syntax changed. VERSION 0.5.1 * Fixed Makefiles to work on any previously non-working platforms (OS X, mainly). * Disabled CPUID on BSD. BSD lacks affinity control, and therefore doesn't work. VERSION 0.5.0 ( MILESTONE 2, Codename "Loki" ) * Cleanup Much of the existing code was disorganized, and was re-categorized into other namespaces. * Documentation o All namespaces o Stopwatch class o LList class o RedBlackTree class Some classes that showed up in documentation are now hidden. o CrissCross::System::param o CrissCross::Data::LListItem< T > o CrissCross::Data::RedBlackTree< dataType, keyType >::nodeType * Conventionalization Existing code is now consistent in it's conventions. * Bugfixes Bugs discovered during the v0.4.x testing cycle have been corrected (details unnecessary for pre-release code). * Examples v0.5.0 is the first public release. Examples are now provided for reference. * Cross-Platform Fixes Functions in CoreConsole that previously did nothing on non-Windows platforms now do what they should. * UTF-8 Support ( partially implemented and is untested) WCHAR and so on need to be supported. We're working on this right now, so please don't #define ENABLE_UNICODE unless you're brave.