- ed4d62b Assisted injection is just a convenience feature, it can be implemented using registerProvider(). Do so, and move the assisted injection code out of InjectorStorage into component.defn.h. by Marco Poletti · 10 years ago
- a82a444 Minor cleanups. by Marco Poletti · 10 years ago
- 0bfbe05 Reorganize the code, notably move BindingDataNodeIter to InjectorStorage. by Marco Poletti · 10 years ago
- 2a1a581 Factor out a Vector class from ComponentStorage. by Marco Poletti · 10 years ago
- 433257c Remove the unused SemistaticGraph::getOrAllocateNodeId() method. by Marco Poletti · 10 years ago
- 9491d65 Switch to the lowercase_with_underscores style for variables and fields (before some used the lowerCamel case instead). by Marco Poletti · 10 years ago
- 6c13003 Rename createObjectVector->createMultibindingVector for clarity. by Marco Poletti · 10 years ago
- 7eab28b When a lambda used as provider returns a pointer to a derived class with virtual methods, let the compiler emit a warning if there's no virtual destructor. by Marco Poletti · 10 years ago
- 207597b Minor code simplifications in InjectorStorage. by Marco Poletti · 10 years ago
- 1cb7de4 Fix a bug that caused an assertion error when using addMultibinding(). by Marco Poletti · 10 years ago
- 9c80dbd Add test to ensure that objects in the injector are destroyed once (and only once). by Marco Poletti · 10 years ago
- 9a93cda Rename BindAssistedFactoryHelper->InvokeAssistedFactory, remove BindAssistedFactory. by Marco Poletti · 10 years ago
- b829323 Rename singleton->object throughout, plus other minor comment fixes. by Marco Poletti · 10 years ago
- 85aea00 Rename typeRegistry->bindings, typeRegistryForMultibindings->multibindings throughout. by Marco Poletti · 10 years ago
- eedc2a5 Remove the multibindingDeps vector from ComponentStorage. Each MultibindingData stores the deps anyway. by Marco Poletti · 10 years ago
- 93372ce Inline trivial methods of ComponentStorage into component.defn.h. by Marco Poletti · 10 years ago
- 224bd9c First part of the refactoring of ComponentStorage, mostly moving logic into InjectorStorage. by Marco Poletti · 10 years ago
- 4ac3c8e Factor common code in individual bindings in component_storage.defn.h into a new constructObject() method in InjectorStorage. Now the allocator can be private. by Marco Poletti · 10 years ago
- 5c913af Split out the allocator part of InjectorStorage into a separate FixedSizeAllocator class. by Marco Poletti · 10 years ago
- 1e3b61a Fix a bug in HasReverseBinding that produced a compile error in some cases. by Marco Poletti · 10 years ago
- d36df0f Bump version to 1.0.1. by Marco Poletti · 10 years ago
- 017b0a4 Change the compile-time benchmark to only run in Release mode. by Marco Poletti · 10 years ago
- eef01ad Make the new/delete benchmark more real-world by defining many classes instead of just allocating the single class many times. by Marco Poletti · 10 years ago
- 4a0072c Change the run-time benchmark to only do 1 NormalizedComponent creation per 100 injection loops (was 1 per 50 before). by Marco Poletti · 10 years ago
- e879261 Update the new/delete benchmark to use classes with virtual destructors. by Marco Poletti · 10 years ago
- 542ce42 Update documentation of unsafeGet() due to binding compression. by Marco Poletti · 10 years ago
- 94dd821 Change the signature of the 'create' operation of various bindings to only return the created object, and to set any deleter itself if needed instead of returning it. Saves ~20% of injection time. by Marco Poletti · 10 years ago
- b723538 Use a CandidateValuesRange struct instead of a std::pair, in SemistaticMap. by Marco Poletti · 10 years ago
- 58e2ec2 First implementation of binding compression; reduces injection time by ~35% when using virtual destructors. by Marco Poletti · 10 years ago
- 0f76a0d Use virtual destructors for classes in the benchmark. by Marco Poletti · 10 years ago
- b0c9dce Change the new/delete benchmark to reduce the impact of timing overhead on the benchmark result. by Marco Poletti · 10 years ago
- 934689f Optimize injection of Provider<> objects. by Marco Poletti · 10 years ago
- 784fd21 Increase the version to 1.0.0. by Marco Poletti · 10 years ago
- b6e6c09 Fix compilation warnings/errors that only appear with Clang or when in release mode. by Marco Poletti · 10 years ago
- f928a00 Optimize SemistaticMap using shallow copy semantics to share data with the NormalizedComponent. Decreases injection time by ~5%. by Marco Poletti · 10 years ago
- 050d600 Optimize SemistaticGraph using shallow copy semantics to share data with the NormalizedComponent. Decreases injection time by ~15%. by Marco Poletti · 10 years ago
- 5c1bf6d SemistaticGraph now stores internal IDs using a SemistaticGraphInternalNodeId struct. This is in preparation of the upcoming SemistaticGraph optimization. by Marco Poletti · 10 years ago
- 181cbe2 Changes in preparation of making SemistaticGraph non-copyable. by Marco Poletti · 10 years ago
- 5200558 Make InjectorStorage and NormalizedComponentStorage non-movable/copyable, in preparation of future optimizations. by Marco Poletti · 10 years ago
- 8fb03fa Move the component normalization logic into InjectorStorage, and refactor InjectorStorage to prepare for the StaticMap optimization. by Marco Poletti · 10 years ago
- 4e9594b InjectorStorage now stores the type registry (for bindings and multibindings) separately, instead of storing a NormalizedComponentStorage. This is in preparation for future optimizations. by Marco Poletti · 10 years ago
- a4cf126 Rename normalized_component_storage.defn.h -> binding_data.defn.h. by Marco Poletti · 10 years ago
- 3396ad9 Update the benchmark to avoid copying NormalizedComponents (it's no longer allowed). by Marco Poletti · 10 years ago
- a1e9958 Improve Doxygen documentation. by Marco Poletti · 10 years ago
- 9867cef . by Marco Poletti · 10 years ago
- 9250dea Limit Provider to a single argument, it's easier to understand and it will allow some specific optimizations later. by Marco Poletti · 10 years ago
- f16f2b7 Add unit tests for metaprogramming data structures. by Marco Poletti · 10 years ago
- 3837c35 Add unit tests for SemistaticGraph. by Marco Poletti · 10 years ago
- a0eda10 Make SemistaticGraph compile in debug mode when using a type different from TypeId as key. by Marco Poletti · 10 years ago
- 72d9da9 Add unit tests for SemistaticMap. by Marco Poletti · 10 years ago
- d09ec5b Document that the default constructor of Semistatic{Map,Graph} constructs an invalid object. Remove the default constructor of NormalizedComponentStorage. by Marco Poletti · 10 years ago
- 7b7844b Swap the order of the parameters to combine() in SemistaticMap to match the specification. by Marco Poletti · 10 years ago
- 757c78f Move code from semistatic_map.cpp to semistatic_map.templates.h. Add a IN_FRUIT_CPP_FILE to ensure that .templates.h files are only included by Fruit cpp files. by Marco Poletti · 10 years ago
- a185d5e Some documentation improvements. by Marco Poletti · 10 years ago
- 1a5832a Forbid copying NormalizedComponents, there's no reason to do it and it would be error-prone. Fix server example. by Marco Poletti · 10 years ago
- a0a6b3a Split out forward declarations of Fruit internal types to a separate fruit_internal_forward_decls.h file. by Marco Poletti · 10 years ago
- 3450bed Minor improvements to Doxygen comments. by Marco Poletti · 10 years ago
- ff4c8da Make component.h simpler to understand. by Marco Poletti · 10 years ago
- 1d7ef49 Forbid copy construction and move/copy assignment of PartialComponent. by Marco Poletti · 10 years ago
- 2ffdcb3 Add a test for component copy. by Marco Poletti · 10 years ago
- cdcf729 The Injector constructor with 2 parameters now takes the NormalizedComponent as const& instead of value. by Marco Poletti · 10 years ago
- 9e77ba8 Slight optimization to ConstructProofForest. by Marco Poletti · 10 years ago
- 5dcffd0 . by Marco Poletti · 10 years ago
- a4a6b47 Optimize AddProvide (now called AddProvidedType) and AddRequirements, saving ~10% of compile time due to dependency resolution. by Marco Poletti · 10 years ago
- dd8a677 Factor out the proof tree/forest implementation from metaprogramming/component.h into a separate proof_trees.h. by Marco Poletti · 10 years ago
- 42e9e34 Minor changes. by Marco Poletti · 10 years ago
- c18f6e6 Add a test that checks that all test sources are listed. Prepare for test directory split. by Marco Poletti · 10 years ago
- 81e03d5 Add a macro that disables compile-time dep checking for benchmarking purposes. by Marco Poletti · 10 years ago
- 23d852c Increase version to 0.9.6. by Marco Poletti · 10 years ago
- 0e1f0cf Fix checksum generation in extras/CMakeLists.txt. by Marco Poletti · 10 years ago
- 4b8744f Remove/address TODOs. by Marco Poletti · 10 years ago
- 5a2a5c1 No longer check for List<>s in IsValidSignature. by Marco Poletti · 10 years ago
- d34ceed Remove addressed TODO. by Marco Poletti · 10 years ago
- 7ad3862 Re-organize the files in include/fruit/impl into subdirectories. by Marco Poletti · 10 years ago
- 307b4d7 Rename normalized_component.inlines.h to normalized_component.defn.h. by Marco Poletti · 10 years ago
- 32381f6 Split the compile-time part of component_impl.h in metaprogramming/component.h, and move the runtime part to component.defn.h. by Marco Poletti · 10 years ago
- faa258c Fix Clang compile error. by Marco Poletti · 10 years ago
- a10ad11 Now the compile time test is run with both Release-like and Debug-like compiler flags. by Marco Poletti · 10 years ago
- e0e2ac3 Remove unused metafunction. by Marco Poletti · 10 years ago
- 95131c3 Avoid constructing a List<Tail...> when recursing on a List<T, Tail...>. Reduces compilation time by ~5%. by Marco Poletti · 10 years ago
- bd9e0b3 Change the metaprogramming code to use an mpl-like style. Greatly improves readability, but compile time increaes ~10% in the benchmark. by Marco Poletti · 10 years ago
- 71c36de Fix some warnings in release mode, and set debug-only compiler flags properly. by Marco Poletti · 10 years ago
- 7f35b65 Re-organize the source code. Merge component.utils.h into component_impl.h. Now using .defn files for template/inline definitions. by Marco Poletti · 10 years ago
- fbcb38b Revert "Another attempt to increase performance by having static storage in the injector." by Marco Poletti · 10 years ago
- f50f56f Another attempt to increase performance by having static storage in the injector. by Marco Poletti · 10 years ago
- b1d265c Use the run-time dependency graph to save hash table lookups. Saves 10-15% of injection time. by Marco Poletti · 10 years ago
- 24a6cd2 Document that factories can't return a naked pointer, and add an error/test. Remove legacy code that dealt with pointers (but was no longer called). by Marco Poletti · 10 years ago
- 633a389 Add a SemistaticGraph class and use it to re-implement NormalizedComponentStorage. This is in preparation of a following optimization, for now it's just slower. by Marco Poletti · 10 years ago
- bd971eb Rename BindingDataForMultibinding->MultibindingData, BindingDataVectorForMultibinding->NormalizedMultibindingData. by Marco Poletti · 10 years ago
- a49c9ad Store dependencies in BindingData, in preparation for the next optimization. by Marco Poletti · 10 years ago
- 2d81d25 Remove the BindingData-specific optimization from SemistaticMap (even though this decreases performance) in preparation for later optimizations. by Marco Poletti · 10 years ago
- 173500e Add more tests, increasing coverage. by Marco Poletti · 10 years ago
- 2050c36 SemistaticMap now uses a random seed for the hash generation instead of using seed 0. by Marco Poletti · 10 years ago
- 50291bc Slight optimization for the memory allocation in the injector, saving 1-2% of injection time. by Marco Poletti · 10 years ago
- 6d48f70 Minor changes to doxygen documentation for Injector. by Marco Poletti · 10 years ago
- 91d702c Remove SemistaticMap::count(), it's never used. by Marco Poletti · 10 years ago
- 90cd6b3 Remove two branches that were never taken. by Marco Poletti · 10 years ago
- 4f70da2 Minor changes, simplify/remove unreachable or redundant code. by Marco Poletti · 10 years ago
- 361e759 Fix compile error that prevented PartialComponent::addInstanceMultibinding() from working. by Marco Poletti · 10 years ago
- 1576a73 Add an unsafeGet method to the Injector class. by Marco Poletti · 10 years ago