Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-08-18 | Add a PartialComponent::installComponentFunctions() method that allows to ↵ | Marco Poletti | |
install a variable number of components (typically by expanding a template parameter pack). | |||
2017-12-27 | Add a .clang-format config file and reformat all C++ source code using that. ↵ | Marco Poletti | |
Also added some documentation on the preferred style in CONTRIBUTING.md. | |||
2017-08-06 | Various improvements to the Doxygen documentation on Fruit classes and their ↵ | Marco Poletti | |
public methods. | |||
2016-08-28 | No longer inline some component-related code, to reduce the executable size ↵ | Marco Poletti | |
of client code using Fruit. This yields a ~6x reduction in the benchmark with 100 classes (1.6MB -> 275KB). | |||
2016-02-07 | Now PartialComponent is parameterized on human-readable binding types, ↵ | Marco Poletti | |
instead of metaprogramming types. This allows to hide metaprogramming types in template instantiation traces in errors, making them less verbose/confusing. This change is not fully backwards-compatible; Component no longer inherits from PartialComponent, and createComponent() now returns a PartialComponent. Even though PartialComponent is implicitly convertible to Component, an explicit cast to Component might be required in some cases. | |||
2015-05-31 | Complete support for annotated types, with tests (and fixes for bugs that ↵ | Marco Poletti | |
slipped in the previous commit due to lack of tests). | |||
2015-05-10 | Add support for injection of annotated types in {Component,Injector}Storage. ↵ | Marco Poletti | |
This is the first step towards support of annotated types. This has no user-visible changes yet, since {Partial,}Component and Injector still don't support annotated types. | |||
2015-01-29 | No longer consider fruit::Requirements<...> as one of the exposed types when ↵ | Marco Poletti | |
determining what binding compressions to perform. Pass the list of exposed types as an std::vector instead of an std::initializer_list, allowing getTypeIdsForList to work. | |||
2014-11-16 | First implementation of binding compression; reduces injection time by ~35% ↵ | Marco Poletti | |
when using virtual destructors. | |||
2014-11-09 | Limit Provider to a single argument, it's easier to understand and it will ↵ | Marco Poletti | |
allow some specific optimizations later. | |||
2014-11-08 | Split out forward declarations of Fruit internal types to a separate ↵ | Marco Poletti | |
fruit_internal_forward_decls.h file. | |||
2014-11-08 | Minor improvements to Doxygen comments. | Marco Poletti | |
2014-11-08 | Make component.h simpler to understand. | Marco Poletti | |
2014-11-02 | Factor out the proof tree/forest implementation from ↵ | Marco Poletti | |
metaprogramming/component.h into a separate proof_trees.h. | |||
2014-11-01 | Split the compile-time part of component_impl.h in ↵ | Marco Poletti | |
metaprogramming/component.h, and move the runtime part to component.defn.h. | |||
2014-11-01 | Re-organize the source code. Merge component.utils.h into component_impl.h. ↵ | Marco Poletti | |
Now using .defn files for template/inline definitions. | |||
2014-10-04 | Simplify the public interface: move PartialComponent into component.h, ↵ | Marco Poletti | |
inline a copy of Provider into Injector, remove unused forward declarations, move method definition out of public headers. | |||
2014-10-04 | Refactor the implementation of Component: use ConsComp and drop the ↵ | Marco Poletti | |
ComponentImpl class. | |||
2014-09-28 | Improve error reporting, move all user-visible errors to injection_errors.h ↵ | Marco Poletti | |
and remove all user-visible List<>s. | |||
2014-09-13 | Revert "Change the representation of compile-time lists.". There is no ↵ | Marco Poletti | |
compile-time performance benefit with Clang, and the compile-time with GCC was ~10% worse. This reverts commit 2ccfbbfa767b216bdfe61f62cc1a79903e285ff6. | |||
2014-09-13 | Change the representation of compile-time lists. | Marco Poletti | |
2014-09-07 | Add the notion of NormalizedComponent, add a two-argument constructor of ↵ | Marco Poletti | |
Injector that takes a NormalizedComponent and a Component. | |||
2014-09-07 | Split NormalizedComponentStorage out of InjectorStorage. | Marco Poletti | |
2014-08-31 | Split InjectorStorage out of ComponentStorage. | Marco Poletti | |
2014-08-24 | Improve compile-time error messages, and add tests for the improved ↵ | Marco Poletti | |
messages. Also test that all public headers can be included on their own, and add missing includes. | |||
2014-08-23 | Minor changes. | Marco Poletti | |
2014-08-20 | Remove the second registerFactory() method introduced together with ↵ | Marco Poletti | |
non-movable types support; the pre-existing registerFactory() method is enough. | |||
2014-08-19 | Add injection support for unique_ptr for non-movable types. | Marco Poletti | |
2014-07-27 | Minor changes: move code between classes, split PartialComponent out of ↵ | Marco Poletti | |
ComponentImpl, fix Clang warnings, add comments. | |||
2014-06-29 | Split the Injector class, now Provider is a separate class. | Marco Poletti | |
2014-06-28 | Rename Module->Component, UnsafeModule->ComponentStorage. | Marco Poletti | |
2014-06-21 | Initial commit. | Marco Poletti | |