Thursday, July 14, 2011

Release notes for revision 13181.

"Committed revision 13181...."

Improvements to testing
  • Railgun::UnitTest now has tests for .const, .method_missing, .get_dll, in addition to the new known_dll_names
  • ApiConstants::UnitTest now has a test for the new get_manager function
  • DLLHelper::UnitTest is now ruby 1.8.6 compatible
  • DLL::UnitTest became cleaner after adjusting for the changes to DLL
  • DLLWrapper::UnitTest was added to test the newly added class DLLWrapper.
  • railgun.rb.ts.rb contains tests that should have but weren't added
Performance Tweaks
  • DLLs with definition classes (railgun/def/Def_*) are loaded once and shared across instances (railgun.add_function makes a local copy so you can still thread-safely make changes to just that instance)
  • No calculations are performed when the railgun instance initializes. All loading is done lazily.
Changes that affect you
  • Support for dlls with a corresponding Def_ class is added by adding the DLL's name to BUILTIN_DLLS instead of editing code in get_dll
  • Def classes load dlls by creating them explicitly (as in DLL.new) and then adding functions directly instead of going through the railgun instance like before.
  • Def classes now have the ability to control what WinConstManager a given DLL will contain. Will be important later.
  • Documentation scattered throughout railgun.rb
  • Styling in railgun.rb was redone to match my target style for railgun
  • Removed some code silliness from various places
Neat!
  • ApiConstants now has a class-scoped WinConstManager that is accessible through ApiConstants.get_manager and is lazily loaded.
  • Added method to display the names of dlls available to be loaded. (This was needed in areas that wanted to show what was available, but instead only showed what had been loaded so far)
  • method_missing now returns a wrapper class that acts as an interface to the underlying Railgun::DLL instance. This helped remove Railgun::DLL's dependence on Client

No comments:

Post a Comment