Skip to content

Latest commit

 

History

History
122 lines (91 loc) · 4.05 KB

CHANGELOG.md

File metadata and controls

122 lines (91 loc) · 4.05 KB

Ponder Changelog

  • See release notes in documentation for more details.
  • See Github project issues (#nnn) for discussion on an issue.

3.2

  • Ponder requires C++17.
  • MSVC: Visual Studio 2019 support.
  • Add pass-by-reference parameters (#109).
  • Serialisation: JSON support added (#43).
  • UserObject automatically destructs (#50).
  • Big refactor to simplify property bindings & add return internal refs.
  • API improvements (#93).
  • Tests: Catch2 updated to 2.13.1

3.1

  • Ponder now requires full C++14 support.
  • MSVC 2017 required. MSVC 2015 does not fully support C++14 (#113).
  • Fix object create with renamed classes (#108).
  • Change internal class registration to by type instead of by name.
  • Make detail::string_view more C++14.
  • Tidy unit tests.

3.0.2

  • Fix UserProperty creation (#110).
  • Tidy UserProperty and tests.

3.0.1

  • Fix Lua binding (#104).
  • Fix string_view no return value (#106).
  • Added docs on building Ponder.

3.0

  • Extensive refactoring of the API.
    • Changed UserObject reference semantics. Pointer makes a reference.
  • All types have common ancestor: Type.
  • Added UserData per Type. (#98)
  • Refactored serialisation. Removed ponder-xml. (#43).
  • Added RapidJSON for use by JSON serialiser (#43).
  • Added RapidXML for use by XML serialiser (#43).
  • Remove dynamic read/write attribute from properties. (#91)
  • Remove TagHolder. (#92)
  • Removed ponder::classByIndex(). Use ponder::classIterator() instead.
  • Cmake project name changed to "ponder" to match namespace (#95).
  • Removed composed property getter. Use lambdas instead. See property test p14-p17.

2.2

  • Removed dependency on cppformat (#59)

2.1.1

  • Identifiers/names now return IdReturn (const std::string&) to improve usability.

2.1

  • Bind Lua argument convertion directly to function. Saves Value conversion.
  • Lua custom type conversion with LuaValueRead and LuaValueWrite.
  • Lua supports enums.
  • Lua can return multiple values via std::tuple<...>.
  • Lua functions can parse table arguments.

2.0

  • Version 1.4 was unreleased and morphed into 2.0 because of extensive design changes.
  • Runtime functionality (object factory and function calling) decoupled (#49).
  • Many things renamed in the hope that this will clarify things.
    • FunctionType now FunctionKind. Avoid clash with "type".
    • ValueType now ValueKind. Avoid clash with "type".
    • Arguments now parameters. Functions have parameters and are called with arguments.
  • Added support for binding to static functions (#46).
  • Lua binding generator. Functional but sparse functionality. (#40).
  • PONDER_RTTI renamed to PONDER_POLYMORPHIC (#36).
  • Added function call return policies (#51).
  • Removed UserObject parent-child. Simplification, unused.
  • Removed Function callable behaviour. Unused complication.
  • Class::create() allows object creation without an Args list.
  • Class::tryFunction() and Class::tryProperty() added.
  • Remove properties with 3 accessors. Simplification, use lambdas.

1.3

  • Ids/Names now configurable using IdTraits.
  • Default IdTrait uses string_view so is more efficient (#11).
  • Lambda functions recognised as class functions.
  • std::auto_ptr removed as deprecated in C++11 and causes warning spam in GCC.
  • Internal string_view class added as std one still experimental.
  • Function and object classifiers.
  • Bug fixes.

1.2

  • Properties now support method chaining or named parameter idiom (#28).
  • UserObjects can be created from user pointers (#30).
  • Change ponder::Type to enum class ValueType (#26).
  • Remove composed function bindings. Use lambdas instead.
  • Re-add function unit tests.

1.1

  • Placement new creation of objects added.
  • Class function and property iterators added.
  • Class function and property access by index added.
  • Ability to undeclare Classes and Enums.
  • Dictionaries ordered internally. Allows for fast binary searching of keys.
  • Documentation fixes.

1.0.2

  • Moved to Catch for unit testing.

1.0

  • Boost dependency removed. C++11 features used instead.