diff options
-rw-r--r-- | starts/meaning-vm/level-2/baseref.hpp | 2 | ||||
-rw-r--r-- | starts/meaning-vm/level-2/funcs.cpp | 4 | ||||
-rw-r--r-- | starts/meaning-vm/level-2/funcs.hpp | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/starts/meaning-vm/level-2/baseref.hpp b/starts/meaning-vm/level-2/baseref.hpp index 921d1d3..c66d1a7 100644 --- a/starts/meaning-vm/level-2/baseref.hpp +++ b/starts/meaning-vm/level-2/baseref.hpp @@ -17,7 +17,7 @@ struct baseref : public level1::baseref<ref> using level1::template baseref<ref>::baseref; // thread-local context - static ref context() { return level2::context(); } + static ref & context() { return level2::context(); } template <typename... Refs> ref operator()(Refs... args) { return level2::dohabit(self, {args.ptr()...}); } diff --git a/starts/meaning-vm/level-2/funcs.cpp b/starts/meaning-vm/level-2/funcs.cpp index 3c34c41..ed50c39 100644 --- a/starts/meaning-vm/level-2/funcs.cpp +++ b/starts/meaning-vm/level-2/funcs.cpp @@ -11,7 +11,7 @@ namespace level2 { using namespace concepts; -ref context() +ref & context() { static thread_local auto ctx = a(concepts::context); return ctx; @@ -19,7 +19,7 @@ ref context() ref makehabit(ref name, std::initializer_list<ref> argnames, std::function<void(ref)> code) { - ref habit = level1::a(habit, name); + ref habit = level1::a(concepts::habit, name); ref posarg = habit; for (auto argname : argnames) { ref nextarg = a(positional-argument); diff --git a/starts/meaning-vm/level-2/funcs.hpp b/starts/meaning-vm/level-2/funcs.hpp index f32679c..2a92bfd 100644 --- a/starts/meaning-vm/level-2/funcs.hpp +++ b/starts/meaning-vm/level-2/funcs.hpp @@ -8,7 +8,7 @@ namespace intellect { namespace level2 { -ref context(); +ref & context(); ref makehabit(ref name, std::initializer_list<ref> argnames, std::function<void(ref)> code); ref dohabit(ref habit, std::initializer_list<ref> args); |