Version History

6.6.2:

  • Updated SDK to solve potential problem with future versions of Xojo.

    6.6:

  • Changed compiler on Linux 32 bit to Clang.
  • Changed compiler on Linux 64 bit to Clang.
  • Changed the compiler on Linux ARM 32 bit to Clang.

    6.5:

  • Added 64 bit compile support for Mac targets.
  • Added 64 bit compile support for Windows targets.
  • Added 64 bit compile support for Linux targets.
  • Added ARM compile support for Linux targets.
  • Reduced internal segment count by two.
  • Greatly reduced dependencies on Linux so the plugin can work in Linux console application where no GUI libraries are installed in the Linux system.

    6.0:

  • Now also ships with a Xojo plugin. The Xojo plugin comes in the new Xojo format and is compiled with newer SDK.
  • (Previous CoreClasses.xojo_plugin that was preliminary and still linked against old SDK)
  • Plugin segments come code signed on MacOS X systems.
  • Documentation now also ships as docset for the awesome Dash viewer from http://kapeli.com/dash.

    5.5:

  • Added a BitArray class that can store and manage boolean arrays, only consuming one bit of memory per element in the array.

    5.3:

  • Changed entry point loading to support REALbasic 2010r5 and later.

    5.2:

  • Added support for the new operator Operator_Subscript (read and write) to the IArray interface.
  • Added support for the new operator Operator_Redim to the IArray interface.
  • Added support for the new operator Operator_Subscript (read) to the IArrayReader interface.
  • Added support for the new operator Operator_Subscript (read and write) to the ObjectArray class.
  • Added support for the new operator Operator_Redim to the ObjectArray class.
  • Added support for the new operator Operator_Subscript (read and write) to the VariantArray class.
  • Added support for the new operator Operator_Redim to the VariantArray class.
  • Added support for the new operator Operator_Subscript (read and write) to the StringArray class.
  • Added support for the new operator Operator_Redim to the StringArray class.
  • Added support for the new operator Operator_Subscript (read - 3 variations and write - 3 variations) to the ObjectCollection class.
  • Added support for the new operator Operator_Subscript (read - 3 variations and write - 3 variations) to the VariantCollection class.
  • Added support for the new operator Operator_Subscript (read - 2 variations and write - 2 variations) to the ObjectDictionary class.
  • Added support for the new operator Operator_Subscript (read) to the ObjectSet class.
  • Added support for the new operator Operator_Subscript (read) to the StringTokenizerArray class.
  • Removed PowerPC support from the Cocoa segments since REALbasic Cocoa is Intel only anyhow.
  • 5.1:

  • Added IndexOf function on the ObjectArray class.
  • Added IndexOf function on the StringArray class.
  • Added IndexOf function on the VariantArray class.
  • Added IndexOf function on the ObjectCollection class.
  • Added IndexOf function on the VariantCollection class.
  • Used a more optimized compiler on Windows systems.

    5.0:

  • Added Cocoa support for all the segments in the plugin.

    4.8:

  • Hash function is now both faster and gives better distribution. Making ObjectCollection, ObjectDictionary, VariantCollection and VariantDictionary both faster and consume less memory.

    4.7:

  • Changed the constructors and did other internal changes to support future REALbasic versions.

    4.6:

  • Fixed a error in the Insert function on the Object and VariantCollection classes.
  • Fixed a minor problem in all the dictionary based classes.
  • Improved clustering in all dictionary based classes.
  • The Universal Binary is now compiled as Bundle instead of dylib to support the new mechanism in REALbasic to load Mach-O plugins directly into memory.

    4.5:

  • Added support for MacOS Universal Build.

    4.0.2:

  • Fixed a serious linker problem on Linux systems.

    4.0:

  • Added a AVLTree class.
  • Added a IObjectAddable interface.
  • Added a IVariantAddable interface.
  • The ObjectArray class now implements the IObjectAddable interface.
  • Added a Add method that does the same thing as Append to the ObjectArray class to support the IObjectAddable interface.
  • The ObjectQueue class now implements the IObjectAddable interface.
  • Added a Add method that does the same thing as Push to the ObjectQueue class to support the IObjectAddable interface.
  • The ObjectSet class now implements the IObjectAddable interface.
  • The ObjectStack class now implements the IObjectAddable interface.
  • Added a Add method that does the same thing as Push to the ObjectStack class to support the IObjectAddable interface.
  • The VariantArray class now implements the IVariantAddable interface.
  • Added a Add method that does the same thing as Append to the VariantArray class to support the IVariantAddable interface.
  • The VariantQueue class now implements the IVariantAddable interface.
  • Added a Add method that does the same thing as Push to the VariantQueue class to support the IVariantAddable interface.
  • The VariantStack class now implements the IVariantAddable interface.
  • Added a Add method that does the same thing as Push to the VariantStack class to support the IVariantAddable interface.
  • All classes, methods and properties in the plugin have been marked as Console safe.
  • All Mach-O segments in the plugin are now compiled with a different compiler to support future roadmap and long term goals for the plugin.
  • All Windows segments in the plugin are now compiled with a different compiler to support future roadmap and long term goals for the plugin.
  • Improved the documentation.
  • 3.3:

  • Added PeekNext function to the IIterator interface.
  • Added PeekNext function to the IStringIterator interface.
  • Added PeekNext function to the ObjectArray class.
  • Added PeekNext function to the ObjectCollection class.
  • Added PeekNext function to the ObjectQueue class.
  • Added PeekNext function to the ObjectStack class.
  • Added PeekNext function to the ObjectSet class.
  • Added PeekNext function to the StringArray class.
  • Added PeekNext function to the StringMultiTokonizerList class.
  • Added PeekNext function to the StringTokenizerArray class.
  • Added PeekNext function to the StringTokenizerList class.

    3.2.6:

  • Fixed a Mach-O build problem with ObjectStack, VariantStack, ObjectQueue, VarianQueue, ObjectCollection, VariantCollection and ObjectDictionary.

    3.2.4:

  • The plugin was altered so it could pass tests for next generation of REALbasic.

    3.2.2:

  • Fixed some critical errors that were discovered in the ObjectCollection and ObjectDictionary classes.

    3.2:

  • Added another variation of the Add method to the ObjectCollection class where a object can be used as a key.
  • Added another variation of the Exists function to the ObjectCollection class where object can be used as a key.
  • Added a GetItemObjectKey function to the ObjectCollection class.
  • Added another variation of the GetKeySet function to the ObjectCollection class where object can be used as a key.
  • Added a Insert method for string keys to the ObjectCollection class.
  • Added a Insert method for object keys to the ObjectCollection class.
  • Added another variation of the Item setter/getter method in the ObjectCollection class where items can be addressed with object based keys.
  • Added another variation of the Remove function to the ObjectCollection class where object can be used as a key.
  • Added another variation of the Add method to the VariantCollection class where a object can be used as a key.
  • Added another variation of the Add method to the VariantCollection class where a object can be used as a key.
  • Added another variation of the Exists function to the VariantCollection class where object can be used as a key.
  • Added a GetItemObjectKey function to the VariantCollection class.
  • Added another variation of the GetKeySet function to the VariantCollection class where object can be used as a key.
  • Added a Insert method for string keys to the VariantCollection class.
  • Added a Insert method for object keys to the VariantCollection class.
  • Added another variation of the Item setter/getter method in the VariantCollection class where items can be addressed with object based keys.
  • Added another variation of the Remove function to the VariantCollection class where object can be used as a key.
  • Added another variation of the Add method to the ObjectDictionary class where a object can be used as a key.
  • Added another variation of the Exists function to the ObjectDictionary class where object can be used as a key.
  • Added another variation of the GetKeySet function to the ObjectDictionary class where object can be used as a key.
  • Added another variation of the Item setter/getter method in the ObjectDictionary class where items can be addressed with object based keys.
  • Added another variation of the Remove function to the ObjectDictionary class where object can be used as a key.

    3.1:

  • Did a internal change to support a new Einhugur Plugin that uses the CoreClasses plugin internally.
  • The plugin now comes with a high quality HTML documentation instead of RB Plugin Plunger documentation.
  • 3.0:

  • Added Linux support for all classes in the plugin.

    2.9.8:

  • ObjectCollection will now write a error code to the LastError property when a item is not found. (Request ID 25)
  • VariantCollection will now write a error code to the LastError property when a item is not found. (Request ID 25)
  • ObjectDictionary will now write a error code to the LastError property when a item is not found. (Request ID 25)
  • ObjectDictionary, ObjectCollection and VariantCollection now will now store error code between transactions.
  • Added a ClearError method to the ObjectCollection class.
  • Added a ClearError method to the VariantCollection class.
  • Added a ClearError method to the ObjectDictionary class.

    2.9.6:

  • Fixed a problem in the StringMultiTokenizerList class where its optimizer could cause it to hang and in some cases hard crash.

    2.9.4:

  • Fixed a potential problem in bucket overflow handler in the ObjectCollection class.
  • Fixed a potential problem in bucket overflow handler in the VariantCollection class.
  • Fixed a potential problem in bucket overflow handler in the ObjectDictionary class.
  • Fixed a potential problem in bucket overflow handler in the ObjectSet class.

    2.9.2:

  • Fixed a critical error in the ObjectCollection where the hash function could generate a overflow when using large keys.
  • Fixed a critical error in the VariantCollection where the hash function could generate a overflow when using large keys.
  • Fixed a critical error in the ObjectDictionary where the hash function could generate a overflow when using large keys.
  • Did some more speed optimizations on the ObjectCollection class.
  • Did some more speed optimizations on the VariantCollection class.
  • Did more speed optimizations on the ObjectDictionary class.

    2.9:

  • The plugin now also ships with a version for the REALbasic Windows IDE.

    2.8:

  • Did a minor tweak for REALbasic 5.1.
  • Made the Object and Variant Collection classes a lot faster. (We were inspired by Brendan Murphy's speed tests to do this)
  • Added a ObjectDictionary class. (Again inspired by Brendan Murphy's speed tests to do this, his tests measure the ObjectDictionary to be able to perform from 31% to 45% faster than REALbasic dictionary).

    2.7:

  • Added a ObjectSet class which is a container for objects where each object instance can only exist once.
  • Added a AddItems method to the ObjectArray class which is used to add multiple items from any IIterator compatible container class.
  • Added a AddItems method to the StringArray class which is used to add multiple strings from any IStringIterator compatible container class.
  • Added a AddItems method to the ObjectStack class which is used to add multiple items from any IIterator compatible container class.
  • Added a AddItems method to the ObjectQueue class which is used to add multiple items from any IIterator compatible container class.
  • Fixed a Win32 problem with the StringMultiTokenizerList class.
  • 2.6:

  • Added a StringMultiTokenizerList class.
  • Added a IStringIterator Interface.
  • StringArray now implements the IStringIterator Interface.
  • StringTokenizerList now implements the IStringIterator Interface.
  • StringTokenizerArray now implements the IStringIterator Interface.

    2.5:

  • The OOP model was redesigned where REALentry is out and class interfaces are in.
  • Added a IComparer Interface.
  • Added a IVariantComparer Interface.
  • Added a IArray Interface.
  • Added a IIterator Interface.
  • Added a IArrayReader Interface.
  • The ObjectArray class now Implements the IArray,IArrayReader and IIterator Interface.
  • The ObjectArray class now has Iterator functionality.
  • The ObjectArray Sort method now uses IComparer Interface instead of a event proc.
  • The VariantArray Sort method now uses IComparer Interface instead of a event proc.
  • The ObjectCollection class now Implements the IArrayReader and IIterator Interface.
  • The ObjectCollection class now has Iterator functionality.
  • The ObjectCollection Sort method now uses IComparer Interface instead of a event proc.
  • The ObjectCollection GetKeySet method now uses IArray Interface instead of late bind error prone connection to ObjectArray. The GetGeyKeySet method can now connect to any class that implements theIArray interface, rather than only to ObjectArray.
  • The VariantCollection Sort method now uses IComparer Interface
  • The VariantCollection GetKeySet method now uses IArray Interface instead of late bind error prone connection to VariantArray. The Get GetKeySet method can now connect to any class that implements theIArray interface, rather than only to ObjectArray. instead of a event proc.
  • Fixed a fatal error in the ObjectQueue class.
  • The ObjectQueue class now Implements the IIterator Interface.
  • The ObjectQueue class now has Iterator functionality.
  • The ObjectStack class now Implements the IIterator Interface.
  • The ObjectStack class now has Iterator functionality.
  • Removed the ObjectComparerProc class.
  • Removed the VariantComparerProc class.

    2.2:

  • Added a Clear method to the ObjectCollection class.
  • Added a Clear method to the VariantCollection class.
  • Fixed a problem that was introduced in version 1.0 which made the 2 collection classes unusable.

    2.1:

  • Added a SkipTokens method to the StringTokenizerList class.
  • StringArray can now be subclassed again without additional calls to the class super.
  • ObjectArray can now be subclassed again without additional calls to the class super.
  • VariantArray can now be subclassed again without additional calls to the class super.
  • ObjectCollection can now be subclassed.
  • VariantCollection can now be subclassed.
  • Added information to the documentation on how to correctly subclass StringTokenizerList and StringTokenizerArray.

    2.0:

  • Added a StringTokenizerList class.
  • Added a StringTokenizerArray class.
  • Added a extra constructor to the StringArray class to set the grow rate.
  • Added a extra constructor to the ObjectArray class to set the grow rate.
  • Added a extra constructor to the VariantArray class to set the grow rate.

    1.8:

  • Added a highly optimised Sort method to the StringArray class. (Ascending and Descending sort)
  • Added a highly optimised Sort method to the ObjectArray class. (Ascending and Descending sort)
  • Added a highly optimised Sort method to the VariantArray class. (Ascending and Descending sort)
  • Added a highly optimised Sort method to the ObjectCollection class. (Ascending and Descending sort)
  • Added a highly optimised Sort method to the VariantCollection class. (Ascending and Descending sort)
  • Added ObjectComparerProc class to define how objects are compared.
  • Added VariantComparerProc class to define how Variants are compared.

    1.6:

  • Added a remove by key method to the ObjectCollection class
  • Added a remove by key method to the VariantCollection class
  • 1.5:

  • Added a advanced ObjectCollection class.
  • Added a advanced VariantCollection class.

    1.1:

  • The disk footprint of ObjectStack and VariantStack is now 80% smaller.
  • Added a ObjectQueue class.
  • Added a VariantQueue class.

    1.0:

  • The Initial version.