Sunday, 24 August 2014

Fix8 version 1.3.1 released!

This patch release fixes the windows build issues in 1.3.0.

Download here.

1. Windows build issue

Minor changes to fix build issues with Windows and 1.3.0


2. Issues fixed

Fixed Jira tickets FX-325


3. Summary of changes

  • 1.3 build bug under Win

Monday, 18 August 2014

Fix8 version 1.3.0 released

This minor release further extends and improves on our stable 1.2 version. Additional features and enhancements have been added in response to feedback from many users. Many thanks to those who have provided feedback and assistance. 

There have been some changes to the Fix8 API. Some users will need to make changes to their implementations to work with this release. The example applications supplied with Fix8 have been updated to reflect these changes.

Download here.


1. Pre-encoding support

Fix8 now supports pre-encoding messages on the application thread. This further reduces actual encode and transmission latency for applications that want to improve execution performance. For a typical NewOrderSingle message this will reduce encode latency by about %50. 


2. Permit unknown field pass-through with permissive mode

Many applications like message hubs and order routers need to pass unknown fields through unmolested. Fix8 now supports this as an extension of permissive mode. 


3. Major improvements to repeating groups

Changes to the way nested repeating group objects are constructed will significantly reduce encode and decode latencies. The Fix8 decoder will now only create repeating group objects for groups that are present. 


4. Long message and field name support

Fix8 now supports the ability to lookup compiler generated message and field data structures from their verbose/long name. These names are defined in the xml schema.


5. std::thread support

For C++11 compatibility, Fix8 now supports std::thread. This will also improve portability. 


6. Stream based log targets, XML logger

We've added support for a std::ostream style logger. This logger is available for the global log target, session and connection targets, as well as your own custom log target. This logger also now supports log levels which can be configured for your session. Log messages which are filtered from a level are taken off the execution path. Fix8 now also supports an XML log output format for applications that need XML downstream.


7. Bug fixes, XML improvements, C++11 improvements

We've made lots of improvements to the XML engine, C++11 optimisations and numerous bug fixes - many that were reported by our users. 


8. Issues fixed

Fixed Jira tickets FX-309,FX-308,FX-307,FX-306,FX-305,FX-304,FX-303,FX-302,FX-301,FX-300,FX-299,FX-298,FX-296,FX-295,FX-294,FX-293,FX-292,FX-291,FX-290,FX-289,FX-288,FX-287,FX-286,FX-236,FX-310,FX-311,FX-312,FX-314,FX-315,FX-316,FX-297,FX-254,FX-317,FX-318,FX-319,FX-41

Summary of changes

  • Provide XML logger
  • Overhaul logging system
    • allow user to specify field ordering as well as which fields to log
    • overhaul logging singleton
    • integrate stream based level specific logging targets
    • new targets - global, session and connection:
    • support logging levels
    • allow user to specify field delimiter inter field, e.g. a|b|c and field enclosing e.g. [a][b][c]
    • support no-op style expressions for not set logging levels
    • add additional fields: location, sstart (time since start in secs), mstart (time since start in msecs)
  • Facilitate "pass-through" fields which are not mentioned in the Dictionary
  • Fixed MAGIC_NUM expression can cause problems
  • Migrate Fix8 to C++11
  • Fixed XML parser does not support CDATA values
  • Support package and configuration string queries
  • Fixed Loggers should support log level
  • Allow shallow message construction
  • Provide Message::move_legal
  • Fixed gcc 4.7.2 linux build broken
  • Remove main Nuget package link dependency to gtest
  • Provide flag settings to control XML parser
  • Replace FIX8::dthread with std::thread
  • Fixed Compilation error on clean checkout 14/07/10
  • Fixed Protocol Logger Thread is not destroyed after deleting session
  • Fixed Wrong Timer implementation
  • RAII std::ostream Singleton log target
  • Fixed GlobalLogger::create_instance needs refactoring
  • Fixed Precision was altered unintentionally
  • Support flattened field query in messages
  • Allow SingleLogger to accept user defined LogFlags
  • Add mini-timestamp flag to logger
  • Fixed Update on 14-06-24 introduced build warnings on win
  • Fix variadic templates compile error under VS2013
  • Provide programmatic/generic method of loading and using Fix8 metadata
  • Permit lookup of fields and messages by their long name.
  • Xml improvements: find_child, GetLocString
  • Fixed Field equivalence operators missing
  • Option to compiler to generate router stubs without defaults
  • Fixed Session state does not changed when connection goes down.
  • Allow the option to the getters from a fix message those values that are fixed point values to be stored in float
  • Make dist, rpmbuild and pro build broken
  • Make nuget package generation files (*.autopkg) to be version independent