1. 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
  2. a82a444 Minor cleanups. by Marco Poletti · 10 years ago
  3. 0bfbe05 Reorganize the code, notably move BindingDataNodeIter to InjectorStorage. by Marco Poletti · 10 years ago
  4. 2a1a581 Factor out a Vector class from ComponentStorage. by Marco Poletti · 10 years ago
  5. 433257c Remove the unused SemistaticGraph::getOrAllocateNodeId() method. by Marco Poletti · 10 years ago
  6. 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
  7. 6c13003 Rename createObjectVector->createMultibindingVector for clarity. by Marco Poletti · 10 years ago
  8. 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
  9. 207597b Minor code simplifications in InjectorStorage. by Marco Poletti · 10 years ago
  10. 1cb7de4 Fix a bug that caused an assertion error when using addMultibinding(). by Marco Poletti · 10 years ago
  11. 9c80dbd Add test to ensure that objects in the injector are destroyed once (and only once). by Marco Poletti · 10 years ago
  12. 9a93cda Rename BindAssistedFactoryHelper->InvokeAssistedFactory, remove BindAssistedFactory. by Marco Poletti · 10 years ago
  13. b829323 Rename singleton->object throughout, plus other minor comment fixes. by Marco Poletti · 10 years ago
  14. 85aea00 Rename typeRegistry->bindings, typeRegistryForMultibindings->multibindings throughout. by Marco Poletti · 10 years ago
  15. eedc2a5 Remove the multibindingDeps vector from ComponentStorage. Each MultibindingData stores the deps anyway. by Marco Poletti · 10 years ago
  16. 93372ce Inline trivial methods of ComponentStorage into component.defn.h. by Marco Poletti · 10 years ago
  17. 224bd9c First part of the refactoring of ComponentStorage, mostly moving logic into InjectorStorage. by Marco Poletti · 10 years ago
  18. 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
  19. 5c913af Split out the allocator part of InjectorStorage into a separate FixedSizeAllocator class. by Marco Poletti · 10 years ago
  20. 1e3b61a Fix a bug in HasReverseBinding that produced a compile error in some cases. by Marco Poletti · 10 years ago
  21. d36df0f Bump version to 1.0.1. by Marco Poletti · 10 years ago
  22. 017b0a4 Change the compile-time benchmark to only run in Release mode. by Marco Poletti · 10 years ago
  23. 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
  24. 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
  25. e879261 Update the new/delete benchmark to use classes with virtual destructors. by Marco Poletti · 10 years ago
  26. 542ce42 Update documentation of unsafeGet() due to binding compression. by Marco Poletti · 10 years ago
  27. 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
  28. b723538 Use a CandidateValuesRange struct instead of a std::pair, in SemistaticMap. by Marco Poletti · 10 years ago
  29. 58e2ec2 First implementation of binding compression; reduces injection time by ~35% when using virtual destructors. by Marco Poletti · 10 years ago
  30. 0f76a0d Use virtual destructors for classes in the benchmark. by Marco Poletti · 10 years ago
  31. b0c9dce Change the new/delete benchmark to reduce the impact of timing overhead on the benchmark result. by Marco Poletti · 10 years ago
  32. 934689f Optimize injection of Provider<> objects. by Marco Poletti · 10 years ago
  33. 784fd21 Increase the version to 1.0.0. by Marco Poletti · 10 years ago
  34. b6e6c09 Fix compilation warnings/errors that only appear with Clang or when in release mode. by Marco Poletti · 10 years ago
  35. f928a00 Optimize SemistaticMap using shallow copy semantics to share data with the NormalizedComponent. Decreases injection time by ~5%. by Marco Poletti · 10 years ago
  36. 050d600 Optimize SemistaticGraph using shallow copy semantics to share data with the NormalizedComponent. Decreases injection time by ~15%. by Marco Poletti · 10 years ago
  37. 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
  38. 181cbe2 Changes in preparation of making SemistaticGraph non-copyable. by Marco Poletti · 10 years ago
  39. 5200558 Make InjectorStorage and NormalizedComponentStorage non-movable/copyable, in preparation of future optimizations. by Marco Poletti · 10 years ago
  40. 8fb03fa Move the component normalization logic into InjectorStorage, and refactor InjectorStorage to prepare for the StaticMap optimization. by Marco Poletti · 10 years ago
  41. 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
  42. a4cf126 Rename normalized_component_storage.defn.h -> binding_data.defn.h. by Marco Poletti · 10 years ago
  43. 3396ad9 Update the benchmark to avoid copying NormalizedComponents (it's no longer allowed). by Marco Poletti · 10 years ago
  44. a1e9958 Improve Doxygen documentation. by Marco Poletti · 10 years ago
  45. 9867cef . by Marco Poletti · 10 years ago
  46. 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
  47. f16f2b7 Add unit tests for metaprogramming data structures. by Marco Poletti · 10 years ago
  48. 3837c35 Add unit tests for SemistaticGraph. by Marco Poletti · 10 years ago
  49. a0eda10 Make SemistaticGraph compile in debug mode when using a type different from TypeId as key. by Marco Poletti · 10 years ago
  50. 72d9da9 Add unit tests for SemistaticMap. by Marco Poletti · 10 years ago
  51. 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
  52. 7b7844b Swap the order of the parameters to combine() in SemistaticMap to match the specification. by Marco Poletti · 10 years ago
  53. 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
  54. a185d5e Some documentation improvements. by Marco Poletti · 10 years ago
  55. 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
  56. a0a6b3a Split out forward declarations of Fruit internal types to a separate fruit_internal_forward_decls.h file. by Marco Poletti · 10 years ago
  57. 3450bed Minor improvements to Doxygen comments. by Marco Poletti · 10 years ago
  58. ff4c8da Make component.h simpler to understand. by Marco Poletti · 10 years ago
  59. 1d7ef49 Forbid copy construction and move/copy assignment of PartialComponent. by Marco Poletti · 10 years ago
  60. 2ffdcb3 Add a test for component copy. by Marco Poletti · 10 years ago
  61. cdcf729 The Injector constructor with 2 parameters now takes the NormalizedComponent as const& instead of value. by Marco Poletti · 10 years ago
  62. 9e77ba8 Slight optimization to ConstructProofForest. by Marco Poletti · 10 years ago
  63. 5dcffd0 . by Marco Poletti · 10 years ago
  64. a4a6b47 Optimize AddProvide (now called AddProvidedType) and AddRequirements, saving ~10% of compile time due to dependency resolution. by Marco Poletti · 10 years ago
  65. dd8a677 Factor out the proof tree/forest implementation from metaprogramming/component.h into a separate proof_trees.h. by Marco Poletti · 10 years ago
  66. 42e9e34 Minor changes. by Marco Poletti · 10 years ago
  67. c18f6e6 Add a test that checks that all test sources are listed. Prepare for test directory split. by Marco Poletti · 10 years ago
  68. 81e03d5 Add a macro that disables compile-time dep checking for benchmarking purposes. by Marco Poletti · 10 years ago
  69. 23d852c Increase version to 0.9.6. by Marco Poletti · 10 years ago
  70. 0e1f0cf Fix checksum generation in extras/CMakeLists.txt. by Marco Poletti · 10 years ago
  71. 4b8744f Remove/address TODOs. by Marco Poletti · 10 years ago
  72. 5a2a5c1 No longer check for List<>s in IsValidSignature. by Marco Poletti · 10 years ago
  73. d34ceed Remove addressed TODO. by Marco Poletti · 10 years ago
  74. 7ad3862 Re-organize the files in include/fruit/impl into subdirectories. by Marco Poletti · 10 years ago
  75. 307b4d7 Rename normalized_component.inlines.h to normalized_component.defn.h. by Marco Poletti · 10 years ago
  76. 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
  77. faa258c Fix Clang compile error. by Marco Poletti · 10 years ago
  78. a10ad11 Now the compile time test is run with both Release-like and Debug-like compiler flags. by Marco Poletti · 10 years ago
  79. e0e2ac3 Remove unused metafunction. by Marco Poletti · 10 years ago
  80. 95131c3 Avoid constructing a List<Tail...> when recursing on a List<T, Tail...>. Reduces compilation time by ~5%. by Marco Poletti · 10 years ago
  81. 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
  82. 71c36de Fix some warnings in release mode, and set debug-only compiler flags properly. by Marco Poletti · 10 years ago
  83. 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
  84. fbcb38b Revert "Another attempt to increase performance by having static storage in the injector." by Marco Poletti · 10 years ago
  85. f50f56f Another attempt to increase performance by having static storage in the injector. by Marco Poletti · 10 years ago
  86. b1d265c Use the run-time dependency graph to save hash table lookups. Saves 10-15% of injection time. by Marco Poletti · 10 years ago
  87. 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
  88. 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
  89. bd971eb Rename BindingDataForMultibinding->MultibindingData, BindingDataVectorForMultibinding->NormalizedMultibindingData. by Marco Poletti · 10 years ago
  90. a49c9ad Store dependencies in BindingData, in preparation for the next optimization. by Marco Poletti · 10 years ago
  91. 2d81d25 Remove the BindingData-specific optimization from SemistaticMap (even though this decreases performance) in preparation for later optimizations. by Marco Poletti · 10 years ago
  92. 173500e Add more tests, increasing coverage. by Marco Poletti · 10 years ago
  93. 2050c36 SemistaticMap now uses a random seed for the hash generation instead of using seed 0. by Marco Poletti · 10 years ago
  94. 50291bc Slight optimization for the memory allocation in the injector, saving 1-2% of injection time. by Marco Poletti · 10 years ago
  95. 6d48f70 Minor changes to doxygen documentation for Injector. by Marco Poletti · 10 years ago
  96. 91d702c Remove SemistaticMap::count(), it's never used. by Marco Poletti · 10 years ago
  97. 90cd6b3 Remove two branches that were never taken. by Marco Poletti · 10 years ago
  98. 4f70da2 Minor changes, simplify/remove unreachable or redundant code. by Marco Poletti · 10 years ago
  99. 361e759 Fix compile error that prevented PartialComponent::addInstanceMultibinding() from working. by Marco Poletti · 10 years ago
  100. 1576a73 Add an unsafeGet method to the Injector class. by Marco Poletti · 10 years ago