- 695a93f Add an example that shows how to use annotated injection. by Marco Poletti · 8 years ago
- 93801e6 Fix the runtime benchmark code. by Marco Poletti · 9 years ago
- 18fb995 Support Bazel as an alternative build system (in parallel with CMake). by Marco Poletti · 9 years ago
- fcb7ead Re-add an include that was erroneously removed in commit 16A4E8. by Marco Poletti · 9 years ago
- 16a4e81 Remove unused includes (detected by CLion). by Marco Poletti · 9 years ago
- a70a2e0 Minor changes to help CLion (and probably other IDEs) analyze the code of Fruit. by Marco Poletti · 9 years ago
- 320340e Remove old benchmarks. by Marco Poletti · 9 years ago
- c1f7e1f Fix compile-time benchmark (was broken by the introduction of fruit/impl/config-base.h). by Marco Poletti · 9 years ago
- e5c936b Replace a MapContainsKey with an IsInSet check where possible. This slightly improves compile-time performance. by Marco Poletti · 9 years ago
- 36253c9 Major changes to the metaprogramming code. Now using a DFS search to find dependency loops instead of transitive closure of the edges (at compile time), expressing more operations as Fold/Transform for conciseness, added ImmutableSet/ImmutableMap (compile-time data structures), now calculating the exact dep loop (if any), and many other small changes. by Marco Poletti · 9 years ago
- d08991f Rewrite the server example for Fruit 1.0. by Marco Poletti · 10 years ago
- 43af2da generate_benchmark: take the num_loops as a command line argument instead of stdin. 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
- 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
- 3396ad9 Update the benchmark to avoid copying NormalizedComponents (it's no longer allowed). 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
- 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
- cdcf729 The Injector constructor with 2 parameters now takes the NormalizedComponent as const& instead of value. by Marco Poletti · 10 years ago
- 42e9e34 Minor changes. 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
- a10ad11 Now the compile time test is run with both Release-like and Debug-like compiler flags. 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
- 2f4a41c Improve the benchmark to make the per-request time more stable. by Marco Poletti · 10 years ago
- a097991 Add a simple benchmark for the use of new/delete (instead of injection). by Marco Poletti · 10 years ago
- 8e417d8 Improve the (runtime) benchmark, make it closer to real-world usage. by Marco Poletti · 10 years ago
- 1072a68 Allow lambdas used as providers/factories to be inlined in the create() operation, by pushing down the lambda type in the call hierarchy instead of casting it to a function pointer. by Marco Poletti · 10 years ago
- 4406e32 Simplify the public interface: move PartialComponent into component.h, inline a copy of Provider into Injector, remove unused forward declarations, move method definition out of public headers. by Marco Poletti · 10 years ago
- 1fd2649 getMultibindings now returns a vector instead of a set. by Marco Poletti · 10 years ago
- d9d60db Reduce the preprocessed size of fruit.h by moving big includes to .cpp files. by Marco Poletti · 10 years ago
- aa9e5de Minor changes for Clang compatibility. by Marco Poletti · 10 years ago
- dae2949 Update the server example to use normalized components. by Marco Poletti · 10 years ago
- 6d1b7f3 Increase the multiplier to 64 in the compile-time benchmark. by Marco Poletti · 10 years ago
- 845a3d4 Revert "Change the representation of compile-time lists.". There is no compile-time performance benefit with Clang, and the compile-time with GCC was ~10% worse. by Marco Poletti · 10 years ago
- 2ccfbbf Change the representation of compile-time lists. by Marco Poletti · 10 years ago
- 4da94a6 Add compile-time benchmark. by Marco Poletti · 10 years ago
- 15ffd28 Improve benchmark, now measuring several metrics. Remove bench.sh. by Marco Poletti · 10 years ago
- 3ff7136 Re-increase the benchmark size to ~400 types. by Marco Poletti · 10 years ago
- 492b1ba Split NormalizedComponentStorage out of InjectorStorage. by Marco Poletti · 10 years ago
- 66d59c0 Don't run bench.sh during "make benchmark", expect the user to run it separately afterwards. by Marco Poletti · 10 years ago
- 756ef1f Change the benchmark to use both registerConstructor and bind in each component. by Marco Poletti · 10 years ago
- 08486e0 Update benchmark: change the number of injected types, reduce number of includes. by Marco Poletti · 10 years ago
- dd0a023 Disable assertions when benchmarking. by Marco Poletti · 10 years ago
- fdbfcbe Split InjectorStorage out of ComponentStorage. by Marco Poletti · 10 years ago
- c7a632c Add a bench.sh script to run the benchmark multiple times and report the average. by Marco Poletti · 10 years ago
- e7a7102 Increase the number of loops in the benchmark. by Marco Poletti · 10 years ago
- a02c7df Change component dependencies to avoid calling the same getComponent() more than once in the whole system. by Marco Poletti · 10 years ago
- 6455f45 generate_benchmark now generates a more meaningful benchmark, with a component per file (that installs the necessary other components). by Marco Poletti · 10 years ago
- f4df33e Improve thhe benchmark to also benchmark types with dependencies. Add a C++ program that generates the benchmark. by Marco Poletti · 10 years ago
- 927eafc Add a ComponentImpl 'cast' that takes a ComponentImpl&&. by Marco Poletti · 10 years ago
- 5a0838f Add a smaller benchmark. by Marco Poletti · 10 years ago
- 09f7617 Add injection benchmark. by Marco Poletti · 10 years ago
- 09fa583 Optimize allocations by allocating a single chunk of memory in the injector. by Marco Poletti · 10 years ago
- cad3698 Minor changes to the examples. by Marco Poletti · 10 years ago
- c26bac0 Remove injection_scopes example, turn it into a 'server' example. by Marco Poletti · 10 years ago
- bf7cf56 Add new example: examples/scaling_doubles. by Marco Poletti · 10 years ago
- 7496e36 Some improvement to examples/simple_injection. by Marco Poletti · 10 years ago
- 7bde950 Include Fruit as <fruit/fruit.h> instead of "fruit/fruit.h". by Marco Poletti · 10 years ago
- 6c83bde Implement eager injection. by Marco Poletti · 10 years ago
- a5f49d4 Split the Injector class, now Provider is a separate class. by Marco Poletti · 10 years ago
- 65d8eb9 Implement multibindings. by Marco Poletti · 10 years ago
- d61b579 Implement injection scopes, plus some other changes: by Marco Poletti · 10 years ago
- c0db95e Rename Module->Component, UnsafeModule->ComponentStorage. by Marco Poletti · 10 years ago
- eadb5f7 Add a few comments to the hello world example. by Marco Poletti · 10 years ago
- cf798fa Initial commit. by Marco Poletti · 10 years ago