Skip to content

Instantly share code, notes, and snippets.

@turtlesoupy
Created May 11, 2020 03:42
Show Gist options
  • Save turtlesoupy/61d66bf4b3c01f733a0ffb875f781d6c to your computer and use it in GitHub Desktop.
Save turtlesoupy/61d66bf4b3c01f733a0ffb875f781d6c to your computer and use it in GitHub Desktop.
Processing /home/tdimson/projects/skimpy
Building wheels for collected packages: skimpy
Building wheel for skimpy (setup.py): started
Building wheel for skimpy (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /home/tdimson/anaconda3/envs/skimpy/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/tdimson/projects/skimpy/setup.py'"'"'; __file__='"'"'/home/tdimson/projects/skimpy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-x6ym153g
cwd: /home/tdimson/projects/skimpy/
Complete output (1511 lines):
running bdist_wheel
running build
running build_ext
Generating cmake build...
** AsmJit Summary **
ASMJIT_DIR=/home/tdimson/projects/skimpy/third_party/asmjit
ASMJIT_TEST=FALSE
ASMJIT_TARGET_TYPE=STATIC
ASMJIT_DEPS=pthread;rt
ASMJIT_LIBS=asmjit;pthread;rt
ASMJIT_CFLAGS=-DASMJIT_STATIC
ASMJIT_PRIVATE_CFLAGS=-Wall;-Wextra;-fno-math-errno;-fno-threadsafe-statics;-fno-semantic-interposition;-DASMJIT_STATIC
ASMJIT_PRIVATE_CFLAGS_DBG=
ASMJIT_PRIVATE_CFLAGS_REL=-O2;-fmerge-all-constants
-- Version: 6.1.3
-- Build type: Release
-- CXX_STANDARD: 11
-- Required features: cxx_variadic_templates
-- pybind11 v2.4.dev4
-- Found OpenMP_CXX: -fopenmp
-- Found OpenMP: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tdimson/projects/skimpy/build/temp.linux-x86_64-3.7
Executing cmake build...
[ 60%] Built target fmt
[ 80%] Building CXX object python/CMakeFiles/skimpy_ext.dir/skimpy_ext.cpp.o
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/conv.hpp:8,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:9,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp: In member function ‘Val skimpy::detail::core::Range<Val>::get(skimpy::detail::core::Pos) const’:
/home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp:99:31: error: ‘ends’ was not declared in this scope; did you mean ‘std::ends’?
99 | return *std::upper_bound(&ends[0], &ends[size], start + pos);
| ^~~~
| std::ends
In file included from /usr/include/c++/9/istream:39,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/complex.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:13,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/ostream:611:5: note: ‘std::ends’ declared here
611 | ends(basic_ostream<_CharT, _Traits>& __os)
| ^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In function ‘auto skimpy::detail::make_fix(Fn&&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:23: error: ‘foward’ is not a member of ‘std’; did you mean ‘forward’?
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^~~~~~
| forward
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:17: error: expected primary-expression before ‘(’ token
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:23: error: ‘foward’ is not a member of ‘std’; did you mean ‘forward’?
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^~~~~~
| forward
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:32: error: expected primary-expression before ‘>’ token
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp: In function ‘auto skimpy::detail::step::compose(F&&, G&&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:48:4: error: expected ‘;’ before ‘}’ token
48 | }
| ^
| ;
49 | }
| ~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp: In function ‘auto skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:324:40: error: ‘hardware_destructive_interference_size’ is not a member of ‘std’
324 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Store<Val>::Store(std::shared_ptr<skimpy::detail::core::Store<Val> >)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:66:9: error: class ‘skimpy::detail::lang::Store<Val>’ does not have any field named ‘Op’
66 | : Op(store->span(), 1, 1), store(std::move(store)) {
| ^~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp:6,
from /home/tdimson/projects/skimpy/include/skimpy/detail/conv.hpp:8,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:9,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:67:20: error: there are no arguments to ‘span’ that depend on a template parameter, so a declaration of ‘span’ must be available [-fpermissive]
67 | CHECK_ARGUMENT(span());
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:17:11: note: in definition of macro ‘CHECK_ARGUMENT’
17 | if (!(cond)) { \
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:67:20: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
67 | CHECK_ARGUMENT(span());
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:17:11: note: in definition of macro ‘CHECK_ARGUMENT’
17 | if (!(cond)) { \
| ^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Slice<Val>::Slice(std::shared_ptr<skimpy::detail::lang::Op<Val> >, int, int, int)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:79:9: error: class ‘skimpy::detail::lang::Slice<Val>’ does not have any field named ‘Op’
79 | : Op(1 + (stop - start - 1) / stride,
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Stack<Val>::Stack(std::vector<std::shared_ptr<skimpy::detail::lang::Op<Val> > >)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:98:9: error: class ‘skimpy::detail::lang::Stack<Val>’ does not have any field named ‘Op’
98 | : Op(sum(inputs, [](const auto& op) { return op->span(); }),
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Merge<Val>::Merge(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Merge<Val>::Fn)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:131:9: error: class ‘skimpy::detail::lang::Merge<Val>’ does not have any field named ‘Op’
131 | : Op(lhs->span(), 1 + lhs->depth(), 1 + lhs->count()),
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Apply<Val>::Apply(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Apply<Val>::Fn)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:146:9: error: class ‘skimpy::detail::lang::Apply<Val>’ does not have any field named ‘Op’
146 | : Op(input->span(), 1 + input->depth(), 1 + input->count()),
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In member function ‘std::size_t skimpy::detail::lang::OpHash<Val>::operator()(skimpy::detail::lang::OpPtr<Val>&) const’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:196:34: error: expected primary-expression before ‘>’ token
196 | if (auto p = op->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:196:37: error: expected primary-expression before ‘)’ token
196 | if (auto p = op->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:198:41: error: expected primary-expression before ‘>’ token
198 | } else if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:198:44: error: expected primary-expression before ‘)’ token
198 | } else if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:200:41: error: expected primary-expression before ‘>’ token
200 | } else if (auto p = op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:200:44: error: expected primary-expression before ‘)’ token
200 | } else if (auto p = op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:202:41: error: expected primary-expression before ‘>’ token
202 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:202:44: error: expected primary-expression before ‘)’ token
202 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:204:41: error: expected primary-expression before ‘>’ token
204 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:204:44: error: expected primary-expression before ‘)’ token
204 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In member function ‘bool skimpy::detail::lang::OpEqualTo<Val>::operator()(skimpy::detail::lang::OpPtr<Val>&, skimpy::detail::lang::OpPtr<Val>&) const’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:215:35: error: expected primary-expression before ‘>’ token
215 | if (auto l = lop->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:215:38: error: expected primary-expression before ‘)’ token
215 | if (auto l = lop->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:216:37: error: expected primary-expression before ‘>’ token
216 | if (auto r = rop->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:216:40: error: expected primary-expression before ‘)’ token
216 | if (auto r = rop->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:219:42: error: expected primary-expression before ‘>’ token
219 | } else if (auto l = lop->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:219:45: error: expected primary-expression before ‘)’ token
219 | } else if (auto l = lop->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:220:37: error: expected primary-expression before ‘>’ token
220 | if (auto r = rop->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:220:40: error: expected primary-expression before ‘)’ token
220 | if (auto r = rop->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:225:42: error: expected primary-expression before ‘>’ token
225 | } else if (auto l = lop->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:225:45: error: expected primary-expression before ‘)’ token
225 | } else if (auto l = lop->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:226:37: error: expected primary-expression before ‘>’ token
226 | if (auto r = rop->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:226:40: error: expected primary-expression before ‘)’ token
226 | if (auto r = rop->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:229:42: error: expected primary-expression before ‘>’ token
229 | } else if (auto l = lop->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:229:45: error: expected primary-expression before ‘)’ token
229 | } else if (auto l = lop->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:230:37: error: expected primary-expression before ‘>’ token
230 | if (auto r = rop->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:230:40: error: expected primary-expression before ‘)’ token
230 | if (auto r = rop->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:233:42: error: expected primary-expression before ‘>’ token
233 | } else if (auto l = lop->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:233:45: error: expected primary-expression before ‘)’ token
233 | } else if (auto l = lop->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:234:37: error: expected primary-expression before ‘>’ token
234 | if (auto r = rop->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:234:40: error: expected primary-expression before ‘)’ token
234 | if (auto r = rop->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In lambda function:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:318:34: error: expected primary-expression before ‘>’ token
318 | if (auto p = op->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:318:37: error: expected primary-expression before ‘)’ token
318 | if (auto p = op->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:320:41: error: expected primary-expression before ‘>’ token
320 | } else if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:320:44: error: expected primary-expression before ‘)’ token
320 | } else if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:322:41: error: expected primary-expression before ‘>’ token
322 | } else if (auto p = op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:322:44: error: expected primary-expression before ‘)’ token
322 | } else if (auto p = op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:325:41: error: expected primary-expression before ‘>’ token
325 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:325:44: error: expected primary-expression before ‘)’ token
325 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:329:41: error: expected primary-expression before ‘>’ token
329 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:329:44: error: expected primary-expression before ‘)’ token
329 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In function ‘auto skimpy::detail::lang::str(skimpy::detail::lang::OpPtr<Val>&, const char*)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:352:36: error: expected primary-expression before ‘>’ token
352 | if (auto p = stmt->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:352:39: error: expected primary-expression before ‘)’ token
352 | if (auto p = stmt->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:360:43: error: expected primary-expression before ‘>’ token
360 | } else if (auto p = stmt->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:360:46: error: expected primary-expression before ‘)’ token
360 | } else if (auto p = stmt->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:369:43: error: expected primary-expression before ‘>’ token
369 | } else if (auto p = stmt->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:369:46: error: expected primary-expression before ‘)’ token
369 | } else if (auto p = stmt->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:378:43: error: expected primary-expression before ‘>’ token
378 | } else if (auto p = stmt->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:378:46: error: expected primary-expression before ‘)’ token
378 | } else if (auto p = stmt->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:385:43: error: expected primary-expression before ‘>’ token
385 | } else if (auto p = stmt->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:385:46: error: expected primary-expression before ‘)’ token
385 | } else if (auto p = stmt->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In function ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:417:31: error: expected primary-expression before ‘>’ token
417 | if (old_op->is<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:417:34: error: expected primary-expression before ‘)’ token
417 | if (old_op->is<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:423:40: error: expected primary-expression before ‘>’ token
423 | if (auto p = old_op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:423:43: error: expected primary-expression before ‘)’ token
423 | if (auto p = old_op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:424:59: error: expected primary-expression before ‘>’ token
424 | const auto& c = new_ops.at(p->input)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:424:62: error: expected primary-expression before ‘)’ token
424 | const auto& c = new_ops.at(p->input)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:441:47: error: expected primary-expression before ‘>’ token
441 | } else if (auto p = old_op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:441:50: error: expected primary-expression before ‘)’ token
441 | } else if (auto p = old_op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:446:60: error: expected primary-expression before ‘>’ token
446 | const auto& c = new_ops.at(p_input)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:446:63: error: expected primary-expression before ‘)’ token
446 | const auto& c = new_ops.at(p_input)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:453:47: error: expected primary-expression before ‘>’ token
453 | } else if (auto p = old_op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:453:50: error: expected primary-expression before ‘)’ token
453 | } else if (auto p = old_op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:454:52: error: expected primary-expression before ‘>’ token
454 | auto c_1 = new_ops.at(p->lhs)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:454:55: error: expected primary-expression before ‘)’ token
454 | auto c_1 = new_ops.at(p->lhs)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:455:52: error: expected primary-expression before ‘>’ token
455 | auto c_2 = new_ops.at(p->rhs)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:455:55: error: expected primary-expression before ‘)’ token
455 | auto c_2 = new_ops.at(p->rhs)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:500:43: error: expected primary-expression before ‘>’ token
500 | auto parent = old_op->to<Apply<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:500:46: error: expected primary-expression before ‘)’ token
500 | auto parent = old_op->to<Apply<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:501:56: error: expected primary-expression before ‘>’ token
501 | auto c = new_ops.at(parent.input)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:501:59: error: expected primary-expression before ‘)’ token
501 | auto c = new_ops.at(parent.input)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In lambda function:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:517:25: error: expected primary-expression before ‘>’ token
517 | if (op->is<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:517:28: error: expected primary-expression before ‘)’ token
517 | if (op->is<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:521:34: error: expected primary-expression before ‘>’ token
521 | if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:521:37: error: expected primary-expression before ‘)’ token
521 | if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:523:42: error: expected primary-expression before ‘>’ token
523 | if (auto c = p->input->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:523:45: error: expected primary-expression before ‘)’ token
523 | if (auto c = p->input->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:525:49: error: expected primary-expression before ‘>’ token
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:525:52: error: expected primary-expression before ‘)’ token
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:531:49: error: expected primary-expression before ‘>’ token
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:531:52: error: expected primary-expression before ‘)’ token
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:537:49: error: expected primary-expression before ‘>’ token
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:537:52: error: expected primary-expression before ‘)’ token
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:544:41: error: expected primary-expression before ‘>’ token
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:544:44: error: expected primary-expression before ‘)’ token
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:547:41: error: expected primary-expression before ‘>’ token
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:547:44: error: expected primary-expression before ‘)’ token
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:551:41: error: expected primary-expression before ‘>’ token
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:551:44: error: expected primary-expression before ‘)’ token
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp:6,
from /home/tdimson/projects/skimpy/include/skimpy/detail/conv.hpp:8,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:9,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In function ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:565:40: error: expected primary-expression before ‘>’ token
565 | CHECK_STATE(normal_form->is<Stack<Val>>());
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:9:11: note: in definition of macro ‘CHECK_STATE’
9 | if (!(cond)) { \
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:565:43: error: expected primary-expression before ‘)’ token
565 | CHECK_STATE(normal_form->is<Stack<Val>>());
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:9:11: note: in definition of macro ‘CHECK_STATE’
9 | if (!(cond)) { \
| ^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:570:52: error: expected primary-expression before ‘>’ token
570 | for (const auto& root : normal_form->to<Stack<Val>>().inputs) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:570:55: error: expected primary-expression before ‘)’ token
570 | for (const auto& root : normal_form->to<Stack<Val>>().inputs) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:575:9: error: need ‘typename’ before ‘skimpy::detail::lang::Apply<Val>::Fn’ because ‘skimpy::detail::lang::Apply<Val>’ is a dependent scope
575 | Apply<Val>::Fn apply_fn;
| ^~~~~~~~~~
| typename
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:576:9: error: need ‘typename’ before ‘skimpy::detail::lang::Merge<Val>::Fn’ because ‘skimpy::detail::lang::Merge<Val>’ is a dependent scope
576 | Merge<Val>::Fn merge_fn;
| ^~~~~~~~~~
| typename
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:580:39: error: ‘hardware_destructive_interference_size’ is not a member of ‘std’
580 | constexpr auto kStackAlign = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)::EvalFunc::EvalFunc(int)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:588:39: error: use of local variable with automatic storage from containing function
588 | stack(new Val[stack_size, kStackAlign]),
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:580:20: note: ‘constexpr<typeprefixerror> kStackAlign’ declared here
580 | constexpr auto kStackAlign = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In copy constructor ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)::EvalFunc::EvalFunc(const skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)::EvalFunc&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:593:42: error: use of local variable with automatic storage from containing function
593 | stack(new Val[ef.stack_size, kStackAlign]),
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:580:20: note: ‘constexpr<typeprefixerror> kStackAlign’ declared here
580 | constexpr auto kStackAlign = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In lambda function:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:623:36: error: expected primary-expression before ‘>’ token
623 | if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:623:39: error: expected primary-expression before ‘)’ token
623 | if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:624:51: error: expected primary-expression before ‘>’ token
624 | const auto& store = p->input->to<Store<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:624:54: error: expected primary-expression before ‘)’ token
624 | const auto& store = p->input->to<Store<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:630:43: error: expected primary-expression before ‘>’ token
630 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:630:46: error: expected primary-expression before ‘)’ token
630 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:636:43: error: expected primary-expression before ‘>’ token
636 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:636:46: error: expected primary-expression before ‘)’ token
636 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In constructor ‘skimpy::ArrayBuilder<Val>::ArrayBuilder(std::shared_ptr<skimpy::detail::core::Store<Val> >)’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:67:9: error: ‘ArrayVal’ was not declared in this scope; did you mean ‘Array’?
67 | set(ArrayVal<Val>(store));
| ^~~~~~~~
| Array
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:67:21: error: expected primary-expression before ‘>’ token
67 | set(ArrayVal<Val>(store));
| ^
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::min(const ArrayOrVal&) const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:250:20: error: ‘min’ is not a member of ‘skimpy’; did you mean ‘std::min’?
250 | return skimpy::min(*this, other);
| ^~~
In file included from /usr/include/c++/9/algorithm:62,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:15,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:3450:5: note: ‘std::min’ declared here
3450 | min(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::max(const ArrayOrVal&) const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:254:20: error: ‘max’ is not a member of ‘skimpy’; did you mean ‘std::max’?
254 | return skimpy::max(*this, other);
| ^~~
In file included from /usr/include/c++/9/algorithm:62,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:15,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:3462:5: note: ‘std::max’ declared here
3462 | max(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::pow(const ArrayOrVal&) const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:258:20: error: ‘pow’ is not a member of ‘skimpy’
258 | return skimpy::pow(*this, other);
| ^~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:258:20: note: suggested alternatives:
In file included from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/cmath:388:3: note: ‘pow’
388 | pow(float __x, float __y)
| ^~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:549:1: note: ‘std::pow’
549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, _Pow)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::abs() const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:261:20: error: ‘abs’ is not a member of ‘skimpy’
261 | return skimpy::abs(*this);
| ^~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:261:20: note: suggested alternatives:
In file included from /usr/include/c++/9/cstdlib:77,
from /usr/include/c++/9/stdlib.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:34,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/std_abs.h:56:3: note: ‘abs’
56 | abs(long __i) { return __builtin_labs(__i); }
| ^~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:445:5: note: ‘std::abs’
445 | _DEFINE_EXPR_UNARY_FUNCTION(abs, _Abs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/thread:38,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:7,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/usr/include/c++/9/chrono:263:7: note: ‘std::chrono::abs’
263 | abs(duration<_Rep, _Period> __d)
| ^~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::sqrt() const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:264:20: error: ‘sqrt’ is not a member of ‘skimpy’
264 | return skimpy::sqrt(*this);
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:264:20: note: suggested alternatives:
In file included from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/cmath:463:3: note: ‘sqrt’
463 | sqrt(float __x)
| ^~~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:458:5: note: ‘std::sqrt’
458 | _DEFINE_EXPR_UNARY_FUNCTION(sqrt, _Sqrt)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::exp() const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:267:20: error: ‘exp’ is not a member of ‘skimpy’
267 | return skimpy::exp(*this);
| ^~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:267:20: note: suggested alternatives:
In file included from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/cmath:222:3: note: ‘exp’
222 | exp(float __x)
| ^~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:455:5: note: ‘std::exp’
455 | _DEFINE_EXPR_UNARY_FUNCTION(exp, _Exp)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: error: no match for call to ‘(skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >) (skimpy::detail::lang::OpPtr<int>&)’
280 | auto ret = tr(op);
| ~~^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) const [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
56 | auto operator()(Args&&... args) const -> decltype(
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) const [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:57:10: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
57 | fn_(std::declval<const Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
66 | auto operator()(Args&&... args)
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:67:22: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
67 | -> decltype(fn_(std::declval<Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/unordered_set:46,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:147,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/hashtable.h: In instantiation of ‘class std::_Hashtable<std::shared_ptr<skimpy::detail::lang::Op<int> >, std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> > >, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> > > >, std::__detail::_Select1st, skimpy::detail::lang::OpEqualTo<int>, skimpy::detail::lang::OpHash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’:
/usr/include/c++/9/bits/unordered_map.h:105:18: required from ‘class std::unordered_map<std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::lang::OpHash<int>, skimpy::detail::lang::OpEqualTo<int>, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> > > > >’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:414:30: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/usr/include/c++/9/bits/hashtable.h:275:21: error: static assertion failed: Cache the hash code or qualify your functors involved in hash code and bucket index computation with noexcept
275 | static_assert(noexcept(declval<const __hash_code_base_access&>()
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
276 | ._M_bucket_index((const __node_type*)nullptr,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
277 | (std::size_t)0)),
| ~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/hashtable.h: In instantiation of ‘class std::_Hashtable<std::shared_ptr<skimpy::detail::lang::Op<int> >, std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > > >, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > > > >, std::__detail::_Select1st, skimpy::detail::lang::OpEqualTo<int>, skimpy::detail::lang::OpHash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’:
/usr/include/c++/9/bits/unordered_map.h:105:18: required from ‘class std::unordered_map<std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > >, skimpy::detail::lang::OpHash<int>, skimpy::detail::lang::OpEqualTo<int>, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > > > > >’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:302:46: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/usr/include/c++/9/bits/hashtable.h:275:21: error: static assertion failed: Cache the hash code or qualify your functors involved in hash code and bucket index computation with noexcept
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: error: no match for call to ‘(skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >) (skimpy::detail::lang::OpPtr<int>&)’
280 | auto ret = tr(op);
| ~~^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) const [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
56 | auto operator()(Args&&... args) const -> decltype(
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) const [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:57:10: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
57 | fn_(std::declval<const Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
66 | auto operator()(Args&&... args)
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:67:22: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
67 | -> decltype(fn_(std::declval<Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: error: no match for ‘operator=’ (operand types are ‘skimpy::detail::lang::OpPtr<int>’ {aka ‘std::shared_ptr<skimpy::detail::lang::Op<int> >’} and ‘void’)
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:103:11: note: candidate: ‘std::shared_ptr<_Tp>& std::shared_ptr<_Tp>::operator=(const std::shared_ptr<_Tp>&) [with _Tp = skimpy::detail::lang::Op<int>]’
103 | class shared_ptr : public __shared_ptr<_Tp>
| ^~~~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:309:29: note: no known conversion for argument 1 from ‘void’ to ‘const std::shared_ptr<skimpy::detail::lang::Op<int> >&’
309 | shared_ptr& operator=(const shared_ptr&) noexcept = default;
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:313:2: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<const std::shared_ptr<_Yp>&> std::shared_ptr<_Tp>::operator=(const std::shared_ptr<_Yp>&) [with _Yp = _Yp; _Tp = skimpy::detail::lang::Op<int>]’
313 | operator=(const shared_ptr<_Yp>& __r) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:313:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘const std::shared_ptr<_Tp>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:324:2: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<std::auto_ptr<_Up> > std::shared_ptr<_Tp>::operator=(std::auto_ptr<_Up>&&) [with _Yp = _Yp; _Tp = skimpy::detail::lang::Op<int>]’
324 | operator=(auto_ptr<_Yp>&& __r)
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:324:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘std::auto_ptr<_Up>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:333:7: note: candidate: ‘std::shared_ptr<_Tp>& std::shared_ptr<_Tp>::operator=(std::shared_ptr<_Tp>&&) [with _Tp = skimpy::detail::lang::Op<int>]’
333 | operator=(shared_ptr&& __r) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:333:30: note: no known conversion for argument 1 from ‘void’ to ‘std::shared_ptr<skimpy::detail::lang::Op<int> >&&’
333 | operator=(shared_ptr&& __r) noexcept
| ~~~~~~~~~~~~~^~~
/usr/include/c++/9/bits/shared_ptr.h:341:2: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<std::shared_ptr<_Yp> > std::shared_ptr<_Tp>::operator=(std::shared_ptr<_Yp>&&) [with _Yp = _Yp; _Tp = skimpy::detail::lang::Op<int>]’
341 | operator=(shared_ptr<_Yp>&& __r) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:341:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘std::shared_ptr<_Tp>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:349:2: note: candidate: ‘template<class _Yp, class _Del> std::shared_ptr<_Tp>::_Assignable<std::unique_ptr<_Up, _Ep> > std::shared_ptr<_Tp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Yp = _Yp; _Del = _Del; _Tp = skimpy::detail::lang::Op<int>]’
349 | operator=(unique_ptr<_Yp, _Del>&& __r)
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:349:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:610:28: error: ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’ has no member named ‘merge_fn’
610 | *(sp - 2) = cn.merge_fn(*(sp - 2), *(sp - 1));
| ~~~^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:614:28: error: ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’ has no member named ‘apply_fn’
614 | *(sp - 1) = cn.apply_fn(*(sp - 1));
| ~~~^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:635:25: error: ‘__gnu_cxx::__alloc_traits<std::allocator<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>, skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>::value_type’ {aka ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’} has no member named ‘merge_fn’
635 | ef_nodes.back().merge_fn = p->fn;
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:640:25: error: ‘__gnu_cxx::__alloc_traits<std::allocator<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>, skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>::value_type’ {aka ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’} has no member named ‘apply_fn’
640 | ef_nodes.back().apply_fn = p->fn;
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::store(skimpy::detail::core::Pos, Val) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >; skimpy::detail::core::Pos = int]’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:156:46: required from ‘skimpy::Array<Val>::Array(skimpy::Pos, Val) [with Val = int; skimpy::Pos = int]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:205:14: required from ‘void skimpy::Array<Val>::set(skimpy::Pos, Val) [with Val = int; skimpy::Pos = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:109:67: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:157:15: error: no matching function for call to ‘store(std::remove_reference<std::shared_ptr<skimpy::detail::core::Store<int> >&>::type)’
157 | return store(std::move(s));
| ~~~~~^~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:152:19: note: candidate: ‘template<class Val> skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::store(skimpy::detail::core::Pos, Val)’
152 | inline OpPtr<Val> store(core::Pos span, Val fill) {
| ^~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:152:19: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:157:15: note: candidate expects 2 arguments, 1 provided
157 | return store(std::move(s));
| ~~~~~^~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Store<Val>::Store(std::shared_ptr<skimpy::detail::core::Store<Val> >) [with Val = int]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Store<int>; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Store<int>; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Store<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>; _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Store<int>; _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr.h:359:59: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>]’
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Store<int>; _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Store<int>; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:162:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::store(std::shared_ptr<skimpy::detail::core::Store<Val> >) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:155:70: required from ‘skimpy::Array<Val>::Array(std::shared_ptr<skimpy::detail::core::Store<Val> >) [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:47:36: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:66:56: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
66 | : Op(store->span(), 1, 1), store(std::move(store)) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Slice<Val>::Slice(std::shared_ptr<skimpy::detail::lang::Op<Val> >, int, int, int) [with Val = int]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Slice<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Slice<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Slice<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>; _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Slice<int>; _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr.h:359:59: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>]’
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Slice<int>; _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Slice<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:167:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::slice(skimpy::detail::lang::OpPtr<Val>, int, int, int) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:232:34: required from ‘skimpy::Array<Val> skimpy::Array<Val>::get(const skimpy::Slice&) const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:105:61: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:85:22: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
85 | stride(stride) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Apply<Val>::Apply(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Apply<Val>::Fn) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >; skimpy::detail::lang::Apply<Val>::Fn = int (*)(int)]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Apply<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; _Tp = skimpy::detail::lang::Apply<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Apply<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; _Tp = skimpy::detail::lang::Apply<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Apply<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; _Tp = skimpy::detail::lang::Apply<int>; _Alloc = std::allocator<skimpy::detail::lang::Apply<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Apply<int>; _Alloc = std::allocator<skimpy::detail::lang::Apply<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Apply<int>; _Alloc = std::allocator<skimpy::detail::lang::Apply<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Apply<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:189:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::apply(skimpy::detail::lang::OpPtr<Val>, Fun&&) [with Val = int; Fun = int (*&)(int); skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:240:34: required from ‘skimpy::Array<Val> skimpy::Array<Val>::apply(Val (*)(Val)) const [with Val = int]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:296:46: required from ‘skimpy::Array<Val> skimpy::operator-(const skimpy::Array<Val>&) [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:120:58: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:148:14: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
148 | fn(fn) {}
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Merge<Val>::Merge(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Merge<Val>::Fn) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >; skimpy::detail::lang::Merge<Val>::Fn = int (*)(int, int)]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Merge<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; _Tp = skimpy::detail::lang::Merge<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Merge<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; _Tp = skimpy::detail::lang::Merge<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Merge<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; _Tp = skimpy::detail::lang::Merge<int>; _Alloc = std::allocator<skimpy::detail::lang::Merge<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Merge<int>; _Alloc = std::allocator<skimpy::detail::lang::Merge<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Merge<int>; _Alloc = std::allocator<skimpy::detail::lang::Merge<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Merge<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:183:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::merge(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::OpPtr<Val>, Fun&&) [with Val = int; Fun = int (*&)(int, int); skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:237:34: required from ‘skimpy::Array<Val> skimpy::Array<Val>::merge(const skimpy::Array<Val>&, Val (*)(Val, Val)) const [with Val = int]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:307:59: required from ‘skimpy::Array<Val> skimpy::operator+(const skimpy::Array<Val>&, const skimpy::Array<Val>&) [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:129:27: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:134:14: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
134 | fn(fn) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: At global scope:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:53:3: error: ‘skimpy::detail::Fix<Fn>::Fix(Fn&&) [with Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’, declared using local type ‘skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>’, is used but never defined [-fpermissive]
53 | Fix(Fn&& fn) : fn_(std::forward<Fn>(fn)) {}
| ^~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/specfun.h:45,
from /usr/include/c++/9/cmath:1927,
from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_iterator.h:819:7: error: ‘__gnu_cxx::__normal_iterator<_Iterator, _Container>::reference __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator*() const [with _Iterator = skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode*; _Container = std::vector<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode, std::allocator<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode> >; __gnu_cxx::__normal_iterator<_Iterator, _Container>::reference = skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode&]’, declared using local type ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’, is used but never defined [-fpermissive]
819 | operator*() const _GLIBCXX_NOEXCEPT
| ^~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:53:3: error: ‘skimpy::detail::Fix<Fn>::Fix(Fn&&) [with Fn = skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:47&, skimpy::detail::lang::OpPtr<int>&)>]’, declared using local type ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:47&, skimpy::detail::lang::OpPtr<int>&)>’, is used but never defined [-fpermissive]
53 | Fix(Fn&& fn) : fn_(std::forward<Fn>(fn)) {}
| ^~~
In file included from /usr/include/c++/9/algorithm:62,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:15,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 1; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 1; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
4887 | sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
| ^~~~
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 2; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 2; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 3; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 3; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 4; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 4; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
In file included from /usr/include/c++/9/memory:80,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
In file included from /usr/include/c++/9/vector:72,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:144,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/vector.tcc:109:7: error: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>}; _Tp = std::function<void()>; _Alloc = std::allocator<std::function<void()> >; std::vector<_Tp, _Alloc>::reference = std::function<void()>&]’, declared using local type ‘skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>’, is used but never defined [-fpermissive]
109 | vector<_Tp, _Alloc>::
| ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/vector.tcc:109:7: error: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>}; _Tp = std::function<void()>; _Alloc = std::allocator<std::function<void()> >; std::vector<_Tp, _Alloc>::reference = std::function<void()>&]’, declared using local type ‘skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>’, is used but never defined [-fpermissive]
make[3]: *** [python/CMakeFiles/skimpy_ext.dir/build.make:63: python/CMakeFiles/skimpy_ext.dir/skimpy_ext.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:1088: python/CMakeFiles/skimpy_ext.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1095: python/CMakeFiles/skimpy_ext.dir/rule] Error 2
make: *** [Makefile:565: skimpy_ext] Error 2
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/tdimson/projects/skimpy/setup.py", line 97, in <module>
zip_safe = False
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/site-packages/setuptools/__init__.py", line 144, in setup
return distutils.core.setup(**attrs)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 223, in run
self.run_command('build')
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/tdimson/projects/skimpy/setup.py", line 33, in run
self.build_extension(ext)
File "/home/tdimson/projects/skimpy/setup.py", line 81, in build_extension
cwd = self.build_temp,
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/subprocess.py", line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'skimpy_ext', '--config', 'Release']' returned non-zero exit status 2.
----------------------------------------
ERROR: Failed building wheel for skimpy
Running setup.py clean for skimpy
Failed to build skimpy
Installing collected packages: skimpy
Running setup.py install for skimpy: started
Running setup.py install for skimpy: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /home/tdimson/anaconda3/envs/skimpy/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/tdimson/projects/skimpy/setup.py'"'"'; __file__='"'"'/home/tdimson/projects/skimpy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-_91glqwe/install-record.txt --single-version-externally-managed --compile --install-headers /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/skimpy
cwd: /home/tdimson/projects/skimpy/
Complete output (1545 lines):
running install
running build
running build_ext
Generating cmake build...
-- The CXX compiler identification is GNU 9.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test __CxxFlag__fno_threadsafe_statics
-- Performing Test __CxxFlag__fno_threadsafe_statics - Success
-- Performing Test __CxxFlag__fno_semantic_interposition
-- Performing Test __CxxFlag__fno_semantic_interposition - Success
-- Performing Test __CxxFlag__fmerge_all_constants
-- Performing Test __CxxFlag__fmerge_all_constants - Success
** AsmJit Summary **
ASMJIT_DIR=/home/tdimson/projects/skimpy/third_party/asmjit
ASMJIT_TEST=FALSE
ASMJIT_TARGET_TYPE=STATIC
ASMJIT_DEPS=pthread;rt
ASMJIT_LIBS=asmjit;pthread;rt
ASMJIT_CFLAGS=-DASMJIT_STATIC
ASMJIT_PRIVATE_CFLAGS=-Wall;-Wextra;-fno-math-errno;-fno-threadsafe-statics;-fno-semantic-interposition;-DASMJIT_STATIC
ASMJIT_PRIVATE_CFLAGS_DBG=
ASMJIT_PRIVATE_CFLAGS_REL=-O2;-fmerge-all-constants
-- Version: 6.1.3
-- Build type: Release
-- CXX_STANDARD: 11
-- Performing Test has_std_11_flag
-- Performing Test has_std_11_flag - Success
-- Performing Test has_std_0x_flag
-- Performing Test has_std_0x_flag - Success
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS - Success
-- Performing Test FMT_HAS_VARIANT
-- Performing Test FMT_HAS_VARIANT - Success
-- Required features: cxx_variadic_templates
-- Looking for strtod_l
-- Looking for strtod_l - found
-- Found PythonInterp: /home/tdimson/anaconda3/envs/skimpy/bin/python3.7 (found version "3.7.6")
-- Found PythonLibs: /home/tdimson/anaconda3/envs/skimpy/lib/libpython3.7m.so
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- pybind11 v2.4.dev4
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tdimson/projects/skimpy/build/temp.linux-x86_64-3.7
Executing cmake build...
Scanning dependencies of target fmt
[ 20%] Building CXX object third_party/fmt/CMakeFiles/fmt.dir/src/format.cc.o
[ 40%] Building CXX object third_party/fmt/CMakeFiles/fmt.dir/src/os.cc.o
[ 60%] Linking CXX static library libfmt.a
[ 60%] Built target fmt
Scanning dependencies of target skimpy_ext
[ 80%] Building CXX object python/CMakeFiles/skimpy_ext.dir/skimpy_ext.cpp.o
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/conv.hpp:8,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:9,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp: In member function ‘Val skimpy::detail::core::Range<Val>::get(skimpy::detail::core::Pos) const’:
/home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp:99:31: error: ‘ends’ was not declared in this scope; did you mean ‘std::ends’?
99 | return *std::upper_bound(&ends[0], &ends[size], start + pos);
| ^~~~
| std::ends
In file included from /usr/include/c++/9/istream:39,
from /usr/include/c++/9/sstream:38,
from /usr/include/c++/9/complex:45,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/complex.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:13,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/ostream:611:5: note: ‘std::ends’ declared here
611 | ends(basic_ostream<_CharT, _Traits>& __os)
| ^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In function ‘auto skimpy::detail::make_fix(Fn&&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:23: error: ‘foward’ is not a member of ‘std’; did you mean ‘forward’?
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^~~~~~
| forward
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:17: error: expected primary-expression before ‘(’ token
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:23: error: ‘foward’ is not a member of ‘std’; did you mean ‘forward’?
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^~~~~~
| forward
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:81:32: error: expected primary-expression before ‘>’ token
81 | return Fix<Fn>(std::foward<Fn>(fn));
| ^
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp: In function ‘auto skimpy::detail::step::compose(F&&, G&&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:48:4: error: expected ‘;’ before ‘}’ token
48 | }
| ^
| ;
49 | }
| ~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp: In function ‘auto skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:324:40: error: ‘hardware_destructive_interference_size’ is not a member of ‘std’
324 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Store<Val>::Store(std::shared_ptr<skimpy::detail::core::Store<Val> >)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:66:9: error: class ‘skimpy::detail::lang::Store<Val>’ does not have any field named ‘Op’
66 | : Op(store->span(), 1, 1), store(std::move(store)) {
| ^~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp:6,
from /home/tdimson/projects/skimpy/include/skimpy/detail/conv.hpp:8,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:9,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:67:20: error: there are no arguments to ‘span’ that depend on a template parameter, so a declaration of ‘span’ must be available [-fpermissive]
67 | CHECK_ARGUMENT(span());
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:17:11: note: in definition of macro ‘CHECK_ARGUMENT’
17 | if (!(cond)) { \
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:67:20: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
67 | CHECK_ARGUMENT(span());
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:17:11: note: in definition of macro ‘CHECK_ARGUMENT’
17 | if (!(cond)) { \
| ^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Slice<Val>::Slice(std::shared_ptr<skimpy::detail::lang::Op<Val> >, int, int, int)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:79:9: error: class ‘skimpy::detail::lang::Slice<Val>’ does not have any field named ‘Op’
79 | : Op(1 + (stop - start - 1) / stride,
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Stack<Val>::Stack(std::vector<std::shared_ptr<skimpy::detail::lang::Op<Val> > >)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:98:9: error: class ‘skimpy::detail::lang::Stack<Val>’ does not have any field named ‘Op’
98 | : Op(sum(inputs, [](const auto& op) { return op->span(); }),
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Merge<Val>::Merge(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Merge<Val>::Fn)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:131:9: error: class ‘skimpy::detail::lang::Merge<Val>’ does not have any field named ‘Op’
131 | : Op(lhs->span(), 1 + lhs->depth(), 1 + lhs->count()),
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::Apply<Val>::Apply(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Apply<Val>::Fn)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:146:9: error: class ‘skimpy::detail::lang::Apply<Val>’ does not have any field named ‘Op’
146 | : Op(input->span(), 1 + input->depth(), 1 + input->count()),
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In member function ‘std::size_t skimpy::detail::lang::OpHash<Val>::operator()(skimpy::detail::lang::OpPtr<Val>&) const’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:196:34: error: expected primary-expression before ‘>’ token
196 | if (auto p = op->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:196:37: error: expected primary-expression before ‘)’ token
196 | if (auto p = op->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:198:41: error: expected primary-expression before ‘>’ token
198 | } else if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:198:44: error: expected primary-expression before ‘)’ token
198 | } else if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:200:41: error: expected primary-expression before ‘>’ token
200 | } else if (auto p = op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:200:44: error: expected primary-expression before ‘)’ token
200 | } else if (auto p = op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:202:41: error: expected primary-expression before ‘>’ token
202 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:202:44: error: expected primary-expression before ‘)’ token
202 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:204:41: error: expected primary-expression before ‘>’ token
204 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:204:44: error: expected primary-expression before ‘)’ token
204 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In member function ‘bool skimpy::detail::lang::OpEqualTo<Val>::operator()(skimpy::detail::lang::OpPtr<Val>&, skimpy::detail::lang::OpPtr<Val>&) const’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:215:35: error: expected primary-expression before ‘>’ token
215 | if (auto l = lop->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:215:38: error: expected primary-expression before ‘)’ token
215 | if (auto l = lop->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:216:37: error: expected primary-expression before ‘>’ token
216 | if (auto r = rop->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:216:40: error: expected primary-expression before ‘)’ token
216 | if (auto r = rop->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:219:42: error: expected primary-expression before ‘>’ token
219 | } else if (auto l = lop->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:219:45: error: expected primary-expression before ‘)’ token
219 | } else if (auto l = lop->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:220:37: error: expected primary-expression before ‘>’ token
220 | if (auto r = rop->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:220:40: error: expected primary-expression before ‘)’ token
220 | if (auto r = rop->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:225:42: error: expected primary-expression before ‘>’ token
225 | } else if (auto l = lop->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:225:45: error: expected primary-expression before ‘)’ token
225 | } else if (auto l = lop->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:226:37: error: expected primary-expression before ‘>’ token
226 | if (auto r = rop->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:226:40: error: expected primary-expression before ‘)’ token
226 | if (auto r = rop->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:229:42: error: expected primary-expression before ‘>’ token
229 | } else if (auto l = lop->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:229:45: error: expected primary-expression before ‘)’ token
229 | } else if (auto l = lop->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:230:37: error: expected primary-expression before ‘>’ token
230 | if (auto r = rop->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:230:40: error: expected primary-expression before ‘)’ token
230 | if (auto r = rop->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:233:42: error: expected primary-expression before ‘>’ token
233 | } else if (auto l = lop->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:233:45: error: expected primary-expression before ‘)’ token
233 | } else if (auto l = lop->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:234:37: error: expected primary-expression before ‘>’ token
234 | if (auto r = rop->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:234:40: error: expected primary-expression before ‘)’ token
234 | if (auto r = rop->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In lambda function:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:318:34: error: expected primary-expression before ‘>’ token
318 | if (auto p = op->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:318:37: error: expected primary-expression before ‘)’ token
318 | if (auto p = op->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:320:41: error: expected primary-expression before ‘>’ token
320 | } else if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:320:44: error: expected primary-expression before ‘)’ token
320 | } else if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:322:41: error: expected primary-expression before ‘>’ token
322 | } else if (auto p = op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:322:44: error: expected primary-expression before ‘)’ token
322 | } else if (auto p = op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:325:41: error: expected primary-expression before ‘>’ token
325 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:325:44: error: expected primary-expression before ‘)’ token
325 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:329:41: error: expected primary-expression before ‘>’ token
329 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:329:44: error: expected primary-expression before ‘)’ token
329 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In function ‘auto skimpy::detail::lang::str(skimpy::detail::lang::OpPtr<Val>&, const char*)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:352:36: error: expected primary-expression before ‘>’ token
352 | if (auto p = stmt->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:352:39: error: expected primary-expression before ‘)’ token
352 | if (auto p = stmt->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:360:43: error: expected primary-expression before ‘>’ token
360 | } else if (auto p = stmt->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:360:46: error: expected primary-expression before ‘)’ token
360 | } else if (auto p = stmt->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:369:43: error: expected primary-expression before ‘>’ token
369 | } else if (auto p = stmt->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:369:46: error: expected primary-expression before ‘)’ token
369 | } else if (auto p = stmt->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:378:43: error: expected primary-expression before ‘>’ token
378 | } else if (auto p = stmt->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:378:46: error: expected primary-expression before ‘)’ token
378 | } else if (auto p = stmt->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:385:43: error: expected primary-expression before ‘>’ token
385 | } else if (auto p = stmt->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:385:46: error: expected primary-expression before ‘)’ token
385 | } else if (auto p = stmt->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In function ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:417:31: error: expected primary-expression before ‘>’ token
417 | if (old_op->is<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:417:34: error: expected primary-expression before ‘)’ token
417 | if (old_op->is<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:423:40: error: expected primary-expression before ‘>’ token
423 | if (auto p = old_op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:423:43: error: expected primary-expression before ‘)’ token
423 | if (auto p = old_op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:424:59: error: expected primary-expression before ‘>’ token
424 | const auto& c = new_ops.at(p->input)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:424:62: error: expected primary-expression before ‘)’ token
424 | const auto& c = new_ops.at(p->input)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:441:47: error: expected primary-expression before ‘>’ token
441 | } else if (auto p = old_op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:441:50: error: expected primary-expression before ‘)’ token
441 | } else if (auto p = old_op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:446:60: error: expected primary-expression before ‘>’ token
446 | const auto& c = new_ops.at(p_input)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:446:63: error: expected primary-expression before ‘)’ token
446 | const auto& c = new_ops.at(p_input)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:453:47: error: expected primary-expression before ‘>’ token
453 | } else if (auto p = old_op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:453:50: error: expected primary-expression before ‘)’ token
453 | } else if (auto p = old_op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:454:52: error: expected primary-expression before ‘>’ token
454 | auto c_1 = new_ops.at(p->lhs)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:454:55: error: expected primary-expression before ‘)’ token
454 | auto c_1 = new_ops.at(p->lhs)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:455:52: error: expected primary-expression before ‘>’ token
455 | auto c_2 = new_ops.at(p->rhs)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:455:55: error: expected primary-expression before ‘)’ token
455 | auto c_2 = new_ops.at(p->rhs)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:500:43: error: expected primary-expression before ‘>’ token
500 | auto parent = old_op->to<Apply<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:500:46: error: expected primary-expression before ‘)’ token
500 | auto parent = old_op->to<Apply<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:501:56: error: expected primary-expression before ‘>’ token
501 | auto c = new_ops.at(parent.input)->to<Stack<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:501:59: error: expected primary-expression before ‘)’ token
501 | auto c = new_ops.at(parent.input)->to<Stack<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In lambda function:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:517:25: error: expected primary-expression before ‘>’ token
517 | if (op->is<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:517:28: error: expected primary-expression before ‘)’ token
517 | if (op->is<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:521:34: error: expected primary-expression before ‘>’ token
521 | if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:521:37: error: expected primary-expression before ‘)’ token
521 | if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:523:42: error: expected primary-expression before ‘>’ token
523 | if (auto c = p->input->as<Store<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:523:45: error: expected primary-expression before ‘)’ token
523 | if (auto c = p->input->as<Store<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:525:49: error: expected primary-expression before ‘>’ token
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:525:52: error: expected primary-expression before ‘)’ token
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:531:49: error: expected primary-expression before ‘>’ token
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:531:52: error: expected primary-expression before ‘)’ token
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:537:49: error: expected primary-expression before ‘>’ token
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:537:52: error: expected primary-expression before ‘)’ token
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:544:41: error: expected primary-expression before ‘>’ token
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:544:44: error: expected primary-expression before ‘)’ token
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:547:41: error: expected primary-expression before ‘>’ token
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:547:44: error: expected primary-expression before ‘)’ token
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:551:41: error: expected primary-expression before ‘>’ token
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:551:44: error: expected primary-expression before ‘)’ token
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/core.hpp:6,
from /home/tdimson/projects/skimpy/include/skimpy/detail/conv.hpp:8,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:9,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In function ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:565:40: error: expected primary-expression before ‘>’ token
565 | CHECK_STATE(normal_form->is<Stack<Val>>());
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:9:11: note: in definition of macro ‘CHECK_STATE’
9 | if (!(cond)) { \
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:565:43: error: expected primary-expression before ‘)’ token
565 | CHECK_STATE(normal_form->is<Stack<Val>>());
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/errors.hpp:9:11: note: in definition of macro ‘CHECK_STATE’
9 | if (!(cond)) { \
| ^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:570:52: error: expected primary-expression before ‘>’ token
570 | for (const auto& root : normal_form->to<Stack<Val>>().inputs) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:570:55: error: expected primary-expression before ‘)’ token
570 | for (const auto& root : normal_form->to<Stack<Val>>().inputs) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:575:9: error: need ‘typename’ before ‘skimpy::detail::lang::Apply<Val>::Fn’ because ‘skimpy::detail::lang::Apply<Val>’ is a dependent scope
575 | Apply<Val>::Fn apply_fn;
| ^~~~~~~~~~
| typename
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:576:9: error: need ‘typename’ before ‘skimpy::detail::lang::Merge<Val>::Fn’ because ‘skimpy::detail::lang::Merge<Val>’ is a dependent scope
576 | Merge<Val>::Fn merge_fn;
| ^~~~~~~~~~
| typename
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:580:39: error: ‘hardware_destructive_interference_size’ is not a member of ‘std’
580 | constexpr auto kStackAlign = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In constructor ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)::EvalFunc::EvalFunc(int)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:588:39: error: use of local variable with automatic storage from containing function
588 | stack(new Val[stack_size, kStackAlign]),
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:580:20: note: ‘constexpr<typeprefixerror> kStackAlign’ declared here
580 | constexpr auto kStackAlign = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In copy constructor ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)::EvalFunc::EvalFunc(const skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&)::EvalFunc&)’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:593:42: error: use of local variable with automatic storage from containing function
593 | stack(new Val[ef.stack_size, kStackAlign]),
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:580:20: note: ‘constexpr<typeprefixerror> kStackAlign’ declared here
580 | constexpr auto kStackAlign = std::hardware_destructive_interference_size;
| ^~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In lambda function:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:623:36: error: expected primary-expression before ‘>’ token
623 | if (auto p = op->as<Slice<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:623:39: error: expected primary-expression before ‘)’ token
623 | if (auto p = op->as<Slice<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:624:51: error: expected primary-expression before ‘>’ token
624 | const auto& store = p->input->to<Store<Val>>();
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:624:54: error: expected primary-expression before ‘)’ token
624 | const auto& store = p->input->to<Store<Val>>();
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:630:43: error: expected primary-expression before ‘>’ token
630 | } else if (auto p = op->as<Merge<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:630:46: error: expected primary-expression before ‘)’ token
630 | } else if (auto p = op->as<Merge<Val>>()) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:636:43: error: expected primary-expression before ‘>’ token
636 | } else if (auto p = op->as<Apply<Val>>()) {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:636:46: error: expected primary-expression before ‘)’ token
636 | } else if (auto p = op->as<Apply<Val>>()) {
| ^
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In constructor ‘skimpy::ArrayBuilder<Val>::ArrayBuilder(std::shared_ptr<skimpy::detail::core::Store<Val> >)’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:67:9: error: ‘ArrayVal’ was not declared in this scope; did you mean ‘Array’?
67 | set(ArrayVal<Val>(store));
| ^~~~~~~~
| Array
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:67:21: error: expected primary-expression before ‘>’ token
67 | set(ArrayVal<Val>(store));
| ^
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::min(const ArrayOrVal&) const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:250:20: error: ‘min’ is not a member of ‘skimpy’; did you mean ‘std::min’?
250 | return skimpy::min(*this, other);
| ^~~
In file included from /usr/include/c++/9/algorithm:62,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:15,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:3450:5: note: ‘std::min’ declared here
3450 | min(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::max(const ArrayOrVal&) const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:254:20: error: ‘max’ is not a member of ‘skimpy’; did you mean ‘std::max’?
254 | return skimpy::max(*this, other);
| ^~~
In file included from /usr/include/c++/9/algorithm:62,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:15,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:3462:5: note: ‘std::max’ declared here
3462 | max(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::pow(const ArrayOrVal&) const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:258:20: error: ‘pow’ is not a member of ‘skimpy’
258 | return skimpy::pow(*this, other);
| ^~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:258:20: note: suggested alternatives:
In file included from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/cmath:388:3: note: ‘pow’
388 | pow(float __x, float __y)
| ^~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:549:1: note: ‘std::pow’
549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, _Pow)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::abs() const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:261:20: error: ‘abs’ is not a member of ‘skimpy’
261 | return skimpy::abs(*this);
| ^~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:261:20: note: suggested alternatives:
In file included from /usr/include/c++/9/cstdlib:77,
from /usr/include/c++/9/stdlib.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:34,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/std_abs.h:56:3: note: ‘abs’
56 | abs(long __i) { return __builtin_labs(__i); }
| ^~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:445:5: note: ‘std::abs’
445 | _DEFINE_EXPR_UNARY_FUNCTION(abs, _Abs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/thread:38,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:7,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/usr/include/c++/9/chrono:263:7: note: ‘std::chrono::abs’
263 | abs(duration<_Rep, _Period> __d)
| ^~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::sqrt() const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:264:20: error: ‘sqrt’ is not a member of ‘skimpy’
264 | return skimpy::sqrt(*this);
| ^~~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:264:20: note: suggested alternatives:
In file included from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/cmath:463:3: note: ‘sqrt’
463 | sqrt(float __x)
| ^~~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:458:5: note: ‘std::sqrt’
458 | _DEFINE_EXPR_UNARY_FUNCTION(sqrt, _Sqrt)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp: In member function ‘skimpy::Array<Val> skimpy::Array<Val>::exp() const’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:267:20: error: ‘exp’ is not a member of ‘skimpy’
267 | return skimpy::exp(*this);
| ^~~
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:267:20: note: suggested alternatives:
In file included from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/cmath:222:3: note: ‘exp’
222 | exp(float __x)
| ^~~
In file included from /usr/include/c++/9/valarray:603,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/stl.h:20,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:3:
/usr/include/c++/9/bits/valarray_after.h:455:5: note: ‘std::exp’
455 | _DEFINE_EXPR_UNARY_FUNCTION(exp, _Exp)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: error: no match for call to ‘(skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >) (skimpy::detail::lang::OpPtr<int>&)’
280 | auto ret = tr(op);
| ~~^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) const [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
56 | auto operator()(Args&&... args) const -> decltype(
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) const [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:57:10: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
57 | fn_(std::declval<const Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
66 | auto operator()(Args&&... args)
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = void; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:37&, const auto:38&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:317:24: required from ‘auto skimpy::detail::lang::linearize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:412:29: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:67:22: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
67 | -> decltype(fn_(std::declval<Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/unordered_set:46,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:147,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/hashtable.h: In instantiation of ‘class std::_Hashtable<std::shared_ptr<skimpy::detail::lang::Op<int> >, std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> > >, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> > > >, std::__detail::_Select1st, skimpy::detail::lang::OpEqualTo<int>, skimpy::detail::lang::OpHash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’:
/usr/include/c++/9/bits/unordered_map.h:105:18: required from ‘class std::unordered_map<std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::lang::OpHash<int>, skimpy::detail::lang::OpEqualTo<int>, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> > > > >’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:414:30: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/usr/include/c++/9/bits/hashtable.h:275:21: error: static assertion failed: Cache the hash code or qualify your functors involved in hash code and bucket index computation with noexcept
275 | static_assert(noexcept(declval<const __hash_code_base_access&>()
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
276 | ._M_bucket_index((const __node_type*)nullptr,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
277 | (std::size_t)0)),
| ~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/hashtable.h: In instantiation of ‘class std::_Hashtable<std::shared_ptr<skimpy::detail::lang::Op<int> >, std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > > >, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > > > >, std::__detail::_Select1st, skimpy::detail::lang::OpEqualTo<int>, skimpy::detail::lang::OpHash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >’:
/usr/include/c++/9/bits/unordered_map.h:105:18: required from ‘class std::unordered_map<std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > >, skimpy::detail::lang::OpHash<int>, skimpy::detail::lang::OpEqualTo<int>, std::allocator<std::pair<const std::shared_ptr<skimpy::detail::lang::Op<int> >, skimpy::detail::Deferred<std::shared_ptr<skimpy::detail::lang::Op<int> > > > > >’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:302:46: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/usr/include/c++/9/bits/hashtable.h:275:21: error: static assertion failed: Cache the hash code or qualify your functors involved in hash code and bucket index computation with noexcept
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: error: no match for call to ‘(skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >) (skimpy::detail::lang::OpPtr<int>&)’
280 | auto ret = tr(op);
| ~~^~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) const [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
56 | auto operator()(Args&&... args) const -> decltype(
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:56:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<const skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) const [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:57:10: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
57 | fn_(std::declval<const Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: candidate: ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<Fn>&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<Fn>::operator()(Args&& ...) [with Args = {Args ...}; Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’
66 | auto operator()(Args&&... args)
| ^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:66:8: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: In substitution of ‘template<class ... Args> decltype (fn_(declval<skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >&>(), (forward<Args>)(skimpy::detail::Fix::operator()::args)...)) skimpy::detail::Fix<skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)> >::operator()<Args ...>(Args&& ...) [with Args = {const std::shared_ptr<skimpy::detail::lang::Op<int> >&}]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:280:16: required from ‘auto skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:303:23: required from ‘auto skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:36: required from ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:67:22: error: ‘fn_’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
67 | -> decltype(fn_(std::declval<Fix<Fn>&>(), std::forward<Args>(args)...)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:564:31: required from ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: error: no match for ‘operator=’ (operand types are ‘skimpy::detail::lang::OpPtr<int>’ {aka ‘std::shared_ptr<skimpy::detail::lang::Op<int> >’} and ‘void’)
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:103:11: note: candidate: ‘std::shared_ptr<_Tp>& std::shared_ptr<_Tp>::operator=(const std::shared_ptr<_Tp>&) [with _Tp = skimpy::detail::lang::Op<int>]’
103 | class shared_ptr : public __shared_ptr<_Tp>
| ^~~~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:309:29: note: no known conversion for argument 1 from ‘void’ to ‘const std::shared_ptr<skimpy::detail::lang::Op<int> >&’
309 | shared_ptr& operator=(const shared_ptr&) noexcept = default;
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:313:2: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<const std::shared_ptr<_Yp>&> std::shared_ptr<_Tp>::operator=(const std::shared_ptr<_Yp>&) [with _Yp = _Yp; _Tp = skimpy::detail::lang::Op<int>]’
313 | operator=(const shared_ptr<_Yp>& __r) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:313:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘const std::shared_ptr<_Tp>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:324:2: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<std::auto_ptr<_Up> > std::shared_ptr<_Tp>::operator=(std::auto_ptr<_Up>&&) [with _Yp = _Yp; _Tp = skimpy::detail::lang::Op<int>]’
324 | operator=(auto_ptr<_Yp>&& __r)
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:324:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘std::auto_ptr<_Up>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:333:7: note: candidate: ‘std::shared_ptr<_Tp>& std::shared_ptr<_Tp>::operator=(std::shared_ptr<_Tp>&&) [with _Tp = skimpy::detail::lang::Op<int>]’
333 | operator=(shared_ptr&& __r) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:333:30: note: no known conversion for argument 1 from ‘void’ to ‘std::shared_ptr<skimpy::detail::lang::Op<int> >&&’
333 | operator=(shared_ptr&& __r) noexcept
| ~~~~~~~~~~~~~^~~
/usr/include/c++/9/bits/shared_ptr.h:341:2: note: candidate: ‘template<class _Yp> std::shared_ptr<_Tp>::_Assignable<std::shared_ptr<_Yp> > std::shared_ptr<_Tp>::operator=(std::shared_ptr<_Yp>&&) [with _Yp = _Yp; _Tp = skimpy::detail::lang::Op<int>]’
341 | operator=(shared_ptr<_Yp>&& __r) noexcept
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:341:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘std::shared_ptr<_Tp>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
In file included from /usr/include/c++/9/memory:81,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/shared_ptr.h:349:2: note: candidate: ‘template<class _Yp, class _Del> std::shared_ptr<_Tp>::_Assignable<std::unique_ptr<_Up, _Ep> > std::shared_ptr<_Tp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Yp = _Yp; _Del = _Del; _Tp = skimpy::detail::lang::Op<int>]’
349 | operator=(unique_ptr<_Yp, _Del>&& __r)
| ^~~~~~~~
/usr/include/c++/9/bits/shared_ptr.h:349:2: note: template argument deduction/substitution failed:
In file included from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:515:7: note: mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘void’
515 | ret = cached_traverse<OpPtr<Val>>(ret, [](const auto& tr, const auto& op) {
| ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
516 | // Handle the base case by wrapping the leaf store in a slice.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517 | if (op->is<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
518 | return make_deferred([op] { return slice(op, 0, op->span(), 1); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
519 | }
| ~
520 |
|
521 | if (auto p = op->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
522 | // If the op is a slice, we push it down one level in the tree.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
523 | if (auto c = p->input->as<Store<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 | return make_deferred([op] { return op; });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 | } else if (auto c = p->input->as<Slice<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526 | auto span = c->input->span();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
527 | auto start = std::min(c->start + c->stride * p->start, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 | auto stop = std::min(c->start + c->stride * p->stop, span);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
529 | auto stride = c->stride * p->stride;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
530 | return tr(slice(c->input, start, stop, stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
531 | } else if (auto c = p->input->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532 | auto lhs = tr(slice(c->lhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533 | auto rhs = tr(slice(c->rhs, p->start, p->stop, p->stride));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
534 | return chain(lhs, rhs).then([c](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
535 | return merge(std::get<0>(deps), std::get<1>(deps), c->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
536 | });
| ~~~
537 | } else if (auto c = p->input->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
538 | auto input = slice(c->input, p->start, p->stop, p->stride);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
539 | return tr(input).then(
| ~~~~~~~~~~~~~~~~~~~~~~
540 | [c](const auto& dep) { return apply(dep, c->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
541 | } else {
| ~~~~~~~~
542 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
543 | }
| ~
544 | } else if (auto p = op->as<Stack<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | auto deps = map(p->inputs, tr);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | return chain(deps).then([](const auto& deps) { return stack(deps); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
547 | } else if (auto p = op->as<Merge<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
548 | return chain(tr(p->lhs), tr(p->rhs)).then([p](const auto& deps) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | return merge(std::get<0>(deps), std::get<1>(deps), p->fn);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550 | });
| ~~~
551 | } else if (auto p = op->as<Apply<Val>>()) {
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
552 | return tr(p->input).then(
| ~~~~~~~~~~~~~~~~~~~~~~~~~
553 | [p](const auto& dep) { return apply(dep, p->fn); });
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
554 | } else {
| ~~~~~~~~
555 | CHECK_UNREACHABLE("Unsupported op type!");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
556 | }
| ~
557 | });
| ~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘auto skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:191:29: required from ‘std::shared_ptr<skimpy::detail::core::Store<Val> > skimpy::Array<Val>::store() const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:89:68: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:610:28: error: ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’ has no member named ‘merge_fn’
610 | *(sp - 2) = cn.merge_fn(*(sp - 2), *(sp - 1));
| ~~~^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:614:28: error: ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’ has no member named ‘apply_fn’
614 | *(sp - 1) = cn.apply_fn(*(sp - 1));
| ~~~^~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:635:25: error: ‘__gnu_cxx::__alloc_traits<std::allocator<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>, skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>::value_type’ {aka ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’} has no member named ‘merge_fn’
635 | ef_nodes.back().merge_fn = p->fn;
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:640:25: error: ‘__gnu_cxx::__alloc_traits<std::allocator<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>, skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode>::value_type’ {aka ‘struct skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’} has no member named ‘apply_fn’
640 | ef_nodes.back().apply_fn = p->fn;
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::store(skimpy::detail::core::Pos, Val) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >; skimpy::detail::core::Pos = int]’:
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:156:46: required from ‘skimpy::Array<Val>::Array(skimpy::Pos, Val) [with Val = int; skimpy::Pos = int]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:205:14: required from ‘void skimpy::Array<Val>::set(skimpy::Pos, Val) [with Val = int; skimpy::Pos = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:109:67: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:157:15: error: no matching function for call to ‘store(std::remove_reference<std::shared_ptr<skimpy::detail::core::Store<int> >&>::type)’
157 | return store(std::move(s));
| ~~~~~^~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:152:19: note: candidate: ‘template<class Val> skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::store(skimpy::detail::core::Pos, Val)’
152 | inline OpPtr<Val> store(core::Pos span, Val fill) {
| ^~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:152:19: note: template argument deduction/substitution failed:
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:157:15: note: candidate expects 2 arguments, 1 provided
157 | return store(std::move(s));
| ~~~~~^~~~~~~~~~~~~~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Store<Val>::Store(std::shared_ptr<skimpy::detail::core::Store<Val> >) [with Val = int]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Store<int>; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Store<int>; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Store<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>; _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Store<int>; _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr.h:359:59: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}; _Tp = skimpy::detail::lang::Store<int>]’
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Store<int>; _Alloc = std::allocator<skimpy::detail::lang::Store<int> >; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Store<int>; _Args = {std::shared_ptr<skimpy::detail::core::Store<int> >}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:162:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::store(std::shared_ptr<skimpy::detail::core::Store<Val> >) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:155:70: required from ‘skimpy::Array<Val>::Array(std::shared_ptr<skimpy::detail::core::Store<Val> >) [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:47:36: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:66:56: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
66 | : Op(store->span(), 1, 1), store(std::move(store)) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Slice<Val>::Slice(std::shared_ptr<skimpy::detail::lang::Op<Val> >, int, int, int) [with Val = int]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Slice<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Slice<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Slice<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>; _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Slice<int>; _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr.h:359:59: required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}; _Tp = skimpy::detail::lang::Slice<int>]’
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Slice<int>; _Alloc = std::allocator<skimpy::detail::lang::Slice<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Slice<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int&, int&, int&}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:167:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::slice(skimpy::detail::lang::OpPtr<Val>, int, int, int) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:232:34: required from ‘skimpy::Array<Val> skimpy::Array<Val>::get(const skimpy::Slice&) const [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:105:61: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:85:22: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
85 | stride(stride) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Apply<Val>::Apply(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Apply<Val>::Fn) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >; skimpy::detail::lang::Apply<Val>::Fn = int (*)(int)]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Apply<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; _Tp = skimpy::detail::lang::Apply<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Apply<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; _Tp = skimpy::detail::lang::Apply<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Apply<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; _Tp = skimpy::detail::lang::Apply<int>; _Alloc = std::allocator<skimpy::detail::lang::Apply<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Apply<int>; _Alloc = std::allocator<skimpy::detail::lang::Apply<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Apply<int>; _Alloc = std::allocator<skimpy::detail::lang::Apply<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Apply<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int)}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:189:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::apply(skimpy::detail::lang::OpPtr<Val>, Fun&&) [with Val = int; Fun = int (*&)(int); skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:240:34: required from ‘skimpy::Array<Val> skimpy::Array<Val>::apply(Val (*)(Val)) const [with Val = int]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:296:46: required from ‘skimpy::Array<Val> skimpy::operator-(const skimpy::Array<Val>&) [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:120:58: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:148:14: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
148 | fn(fn) {}
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp: In instantiation of ‘skimpy::detail::lang::Merge<Val>::Merge(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::Merge<Val>::Fn) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >; skimpy::detail::lang::Merge<Val>::Fn = int (*)(int, int)]’:
/usr/include/c++/9/ext/new_allocator.h:147:4: required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Merge<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; _Tp = skimpy::detail::lang::Merge<int>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = skimpy::detail::lang::Merge<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; _Tp = skimpy::detail::lang::Merge<int>; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<skimpy::detail::lang::Merge<int> >]’
/usr/include/c++/9/bits/shared_ptr_base.h:548:39: required from ‘std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_Sp_counted_ptr_inplace(_Alloc, _Args&& ...) [with _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; _Tp = skimpy::detail::lang::Merge<int>; _Alloc = std::allocator<skimpy::detail::lang::Merge<int> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:679:16: required from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = skimpy::detail::lang::Merge<int>; _Alloc = std::allocator<skimpy::detail::lang::Merge<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/include/c++/9/bits/shared_ptr_base.h:1344:71: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/9/bits/shared_ptr.h:701:14: required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = skimpy::detail::lang::Merge<int>; _Alloc = std::allocator<skimpy::detail::lang::Merge<int> >; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}]’
/usr/include/c++/9/bits/shared_ptr.h:717:39: required from ‘std::shared_ptr<_Tp> std::make_shared(_Args&& ...) [with _Tp = skimpy::detail::lang::Merge<int>; _Args = {std::shared_ptr<skimpy::detail::lang::Op<int> >, std::shared_ptr<skimpy::detail::lang::Op<int> >, int (*&)(int, int)}]’
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:183:38: required from ‘skimpy::detail::lang::OpPtr<Val> skimpy::detail::lang::merge(skimpy::detail::lang::OpPtr<Val>, skimpy::detail::lang::OpPtr<Val>, Fun&&) [with Val = int; Fun = int (*&)(int, int); skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:237:34: required from ‘skimpy::Array<Val> skimpy::Array<Val>::merge(const skimpy::Array<Val>&, Val (*)(Val, Val)) const [with Val = int]’
/home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:307:59: required from ‘skimpy::Array<Val> skimpy::operator+(const skimpy::Array<Val>&, const skimpy::Array<Val>&) [with Val = int]’
/home/tdimson/projects/skimpy/python/skimpy_ext.cpp:129:27: required from here
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:134:14: error: no matching function for call to ‘skimpy::detail::lang::Op<int>::Op()’
134 | fn(fn) {
| ^
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate: ‘skimpy::detail::lang::Op<Val>::Op(skimpy::detail::core::Pos, int, int) [with Val = int; skimpy::detail::core::Pos = int]’
20 | Op(core::Pos span, int depth, int count)
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:20:3: note: candidate expects 3 arguments, 0 provided
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate: ‘constexpr skimpy::detail::lang::Op<int>::Op(const skimpy::detail::lang::Op<int>&)’
19 | struct Op {
| ^~
/home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:19:8: note: candidate expects 1 argument, 0 provided
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp: At global scope:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:53:3: error: ‘skimpy::detail::Fix<Fn>::Fix(Fn&&) [with Fn = skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>]’, declared using local type ‘skimpy::detail::lang::traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Fn = skimpy::detail::lang::cached_traverse(skimpy::detail::lang::OpPtr<Val>&, Fn&&) [with Ret = std::shared_ptr<skimpy::detail::lang::Op<int> >; Val = int; Hash = skimpy::detail::lang::OpHash<int>; EqualTo = skimpy::detail::lang::OpEqualTo<int>; Fn = skimpy::detail::lang::normalize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:40&, const auto:41&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:35&, const auto:36&)>; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:34&, skimpy::detail::lang::OpPtr<int>&)>’, is used but never defined [-fpermissive]
53 | Fix(Fn&& fn) : fn_(std::forward<Fn>(fn)) {}
| ^~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:67,
from /usr/include/c++/9/bits/specfun.h:45,
from /usr/include/c++/9/cmath:1927,
from /usr/include/c++/9/math.h:36,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/pyport.h:191,
from /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/Python.h:63,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:112,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_iterator.h:819:7: error: ‘__gnu_cxx::__normal_iterator<_Iterator, _Container>::reference __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator*() const [with _Iterator = skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode*; _Container = std::vector<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode, std::allocator<skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode> >; __gnu_cxx::__normal_iterator<_Iterator, _Container>::reference = skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode&]’, declared using local type ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::EvalNode’, is used but never defined [-fpermissive]
819 | operator*() const _GLIBCXX_NOEXCEPT
| ^~~~~~~~
In file included from /home/tdimson/projects/skimpy/include/skimpy/detail/step.hpp:4,
from /home/tdimson/projects/skimpy/include/skimpy/detail/eval.hpp:10,
from /home/tdimson/projects/skimpy/include/skimpy/detail/lang.hpp:13,
from /home/tdimson/projects/skimpy/include/skimpy/skimpy.hpp:11,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:5:
/home/tdimson/projects/skimpy/include/skimpy/detail/util.hpp:53:3: error: ‘skimpy::detail::Fix<Fn>::Fix(Fn&&) [with Fn = skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:47&, skimpy::detail::lang::OpPtr<int>&)>]’, declared using local type ‘skimpy::detail::lang::materialize(skimpy::detail::lang::OpPtr<Val>&) [with Val = int; skimpy::detail::lang::OpPtr<Val> = std::shared_ptr<skimpy::detail::lang::Op<int> >]::<lambda(const auto:47&, skimpy::detail::lang::OpPtr<int>&)>’, is used but never defined [-fpermissive]
53 | Fix(Fn&& fn) : fn_(std::forward<Fn>(fn)) {}
| ^~~
In file included from /usr/include/c++/9/algorithm:62,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:15,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 1; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 1; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
4887 | sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
| ^~~~
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 2; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 2; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 3; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 3; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
/usr/include/c++/9/bits/stl_algo.h:4887:5: error: ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = int*; _Compare = skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 4; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>]’, declared using local type ‘skimpy::detail::eval::eval_step_fixed(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int k = 4; Val = int; skimpy::detail::eval::Pos = int]::<lambda(int, int)>’, is used but never defined [-fpermissive]
In file included from /usr/include/c++/9/memory:80,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:149,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 16; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 32; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 64; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 128; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 256; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 512; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_stack(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with int buffer_size = 1024; Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:493:2: error: ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(_Up) [with _Up = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode*; _Vp = std::default_delete<skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; <template-parameter-2-3> = void; <template-parameter-2-4> = bool; _Tp = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode []>]’, declared using local type ‘skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
493 | unique_ptr(_Up __p) noexcept
| ^~~~~~~~~~
/usr/include/c++/9/bits/unique_ptr.h:611:7: error: ‘typename std::add_lvalue_reference<_Tp>::type std::unique_ptr<_Tp [], _Dp>::operator[](std::size_t) const [with _Tp = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode; _Dp = std::default_delete<skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode []>; typename std::add_lvalue_reference<_Tp>::type = skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode&; std::size_t = long unsigned int]’, declared using local type ‘skimpy::detail::eval::eval_step_heap(skimpy::detail::eval::Pos*, Val*, const skimpy::detail::eval::EvalStep<Val>&) [with Val = int; skimpy::detail::eval::Pos = int]::HashNode’, is used but never defined [-fpermissive]
611 | operator[](size_t __i) const
| ^~~~~~~~
In file included from /usr/include/c++/9/vector:72,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/detail/common.h:144,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pytypes.h:12,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/cast.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/attr.h:13,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/pybind11.h:44,
from /home/tdimson/projects/skimpy/third_party/pybind11/include/pybind11/numpy.h:12,
from /home/tdimson/projects/skimpy/python/skimpy_ext.cpp:1:
/usr/include/c++/9/bits/vector.tcc:109:7: error: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>}; _Tp = std::function<void()>; _Alloc = std::allocator<std::function<void()> >; std::vector<_Tp, _Alloc>::reference = std::function<void()>&]’, declared using local type ‘skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>’, is used but never defined [-fpermissive]
109 | vector<_Tp, _Alloc>::
| ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/vector.tcc:109:7: error: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>}; _Tp = std::function<void()>; _Alloc = std::allocator<std::function<void()> >; std::vector<_Tp, _Alloc>::reference = std::function<void()>&]’, declared using local type ‘skimpy::detail::eval::eval_plan(const skimpy::detail::eval::EvalPlan<Val>&) [with Val = int]::<lambda()>’, is used but never defined [-fpermissive]
make[3]: *** [python/CMakeFiles/skimpy_ext.dir/build.make:63: python/CMakeFiles/skimpy_ext.dir/skimpy_ext.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:1088: python/CMakeFiles/skimpy_ext.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1095: python/CMakeFiles/skimpy_ext.dir/rule] Error 2
make: *** [Makefile:565: skimpy_ext] Error 2
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/tdimson/projects/skimpy/setup.py", line 97, in <module>
zip_safe = False
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/site-packages/setuptools/__init__.py", line 144, in setup
return distutils.core.setup(**attrs)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/command/install.py", line 545, in run
self.run_command('build')
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/home/tdimson/projects/skimpy/setup.py", line 33, in run
self.build_extension(ext)
File "/home/tdimson/projects/skimpy/setup.py", line 81, in build_extension
cwd = self.build_temp,
File "/home/tdimson/anaconda3/envs/skimpy/lib/python3.7/subprocess.py", line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'skimpy_ext', '--config', 'Release']' returned non-zero exit status 2.
----------------------------------------
ERROR: Command errored out with exit status 1: /home/tdimson/anaconda3/envs/skimpy/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/home/tdimson/projects/skimpy/setup.py'"'"'; __file__='"'"'/home/tdimson/projects/skimpy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-_91glqwe/install-record.txt --single-version-externally-managed --compile --install-headers /home/tdimson/anaconda3/envs/skimpy/include/python3.7m/skimpy Check the logs for full command output.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment