- See release notes in documentation for more details.
- See Github project issues (#nnn) for discussion on an issue.
- 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
- 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.
- Fix UserProperty creation (#110).
- Tidy UserProperty and tests.
- Fix Lua binding (#104).
- Fix
string_view
no return value (#106). - Added docs on building Ponder.
- 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()
. Useponder::classIterator()
instead. - Cmake project name changed to "ponder" to match namespace (#95).
- Removed composed property getter. Use lambdas instead. See property test p14-p17.
- Removed dependency on cppformat (#59)
- Identifiers/names now return IdReturn (
const std::string&
) to improve usability.
- 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.
- 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 toPONDER_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.
- Ids/Names now configurable using
IdTrait
s. - Default
IdTrait
usesstring_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.
- Properties now support method chaining or named parameter idiom (#28).
- UserObjects can be created from user pointers (#30).
- Change
ponder::Type
to enum classValueType
(#26). - Remove composed function bindings. Use lambdas instead.
- Re-add function unit tests.
- 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.
- Moved to Catch for unit testing.
- Boost dependency removed. C++11 features used instead.