c10773522b
Summary: In order to enhance C++ metaprogramming capabilities, a custom preprocessing step is added before compilation. C++ code may be mixed with Lisp code in order to generate a complete C++ source code. The mechanism is hooked into cmake. To notify cmake of .lcp files, `add_lcp` function in src/CMakeLists.txt needs to be invoked. The main executable entry point is in tools/lcp, while the source code is in src/lisp/lcp.lisp The main goal of LCP is to auto generate class serialization code and member variable getter functions. This should now be significantly less error prone, since you cannot forget to serialize a member variable through this mechanism. Future uses should be generating other repeating code, such as `Clone` methods or perhaps some debug information. .lcp files may contain mixed C++ code (enclosed in #>cpp ... cpp<# blocks) with Common Lisp code. NOTE: With great power comes great responsibility. Lisp metaprogramming capabilities are incredibly powerful. To keep the sanity of the team intact, use Lisp preprocessing only when *really* necessary. Reviewers: buda, mferencevic, msantl, dgleich, ipaljak, mculinovic, mtomic Reviewed By: mtomic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1361 |
||
---|---|---|
.. | ||
apollo | ||
gdb-plugins | ||
plot | ||
src | ||
tests | ||
.gitignore | ||
analyze_rpc_calls | ||
CMakeLists.txt | ||
lcp | ||
manage_distributed_card_fraud | ||
memory_usage | ||
mg_import_csv.dockerfile | ||
neo_to_memgraph | ||
requirements.txt | ||
setup | ||
snapshot_recovery_speed |