Coder Social home page Coder Social logo

blog example compilation fails about silicon HOT 13 CLOSED

matt-42 avatar matt-42 commented on August 10, 2024
blog example compilation fails

from silicon.

Comments (13)

matt-42 avatar matt-42 commented on August 10, 2024

G++ fails at compiling this example. It compiles fine with clang.

from silicon.

tex avatar tex commented on August 10, 2024

It does not:

msvobod :: tmp/silicon/examples ‹master› » clang -std=c++14 blog.cc -I ../ -I ../iod/iod/ -lmicrohttpd -o hello_world 1 ↵
In file included from blog.cc:1:
In file included from ../silicon/backends/mhd.hh:3:
In file included from /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/memory:62:
In file included from /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/bits/stl_algobase.h:64:
In file included from /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/bits/stl_pair.h:59:
In file included from /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/bits/move.h:57:
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:545:14: fatal error: recursive template instantiation exceeded maximum depth of
256
: public _or<is_lvalue_reference<_Tp>,
^
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:115:26: note: in instantiation of template class
'std::is_reference<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &>' requested here
: public conditional<_B1::value, _B1, _B2>::type
^
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:120:14: note: in instantiation of template class
'std::_or<std::is_reference<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &>, std::is_void<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&>
&> >' requested here
: public conditional<_B1::value, _B1, _or<_B2, _B3, _Bn...>>::type
^
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:148:39: note: in instantiation of template class
'std::_or<std::is_function<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &>, std::is_reference<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection
*&> &>, std::is_void<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &> >' requested here
: public integral_constant<bool, !_Pp::value>
^
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:565:14: note: in instantiation of template class
'std::_not<std::_or<std::is_function<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &>, std::is_reference<std::_Tuple_impl<16, sl::mhd_response *&,
MHD_Connection *&> &>, std::is_void<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &> > >' requested here
: public _not<_or<is_function<_Tp>, is_reference<_Tp>,
^
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:115:26: note: in instantiation of template class
'std::is_object<std::_Tuple_impl<16, sl::mhd_response *&, MHD_Connection *&> &>' requested here
: public conditional<_B1::value, _B1, _B2>::type
^
/usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../include/c++/5.3.0/type_traits:602:14: note: (skipping 247 contexts in backtrace; use
-ftemplate-backtrace-limit=0 to see all)
: public _or<is_object<_Tp>, is_reference<_Tp>>::type
^
/usr/local/include/iod/di.hh:145:42: note: in instantiation of function template specialization 'std::forward_as_tuple<sl::mhd_session_cookie &, sl::sqlite_connection_factory
&, sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > > &,
sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int,
iod::sio<s::_read_only_t> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > > > &, sl::hashmap_session_factory &, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > &, sl::mhd_request *&, sl::mhd_response *&, MHD_Connection *&, sl::mhd_session_cookie &,
sl::sqlite_connection_factory &, sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > > &,
sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int,
iod::sio<s::_read_only_t> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > > > &, sl::hashmap_session_factory &, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > &, sl::mhd_request *&, sl::mhd_response *&, MHD_Connection *&>' requested here
return di_meta_instantiate(std::forward_as_tuple(to_inject...),
^
../silicon/service.hh:36:5: note: in instantiation of member function 'sl::ws_handler<sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_login_t>, iod::sio<>,
iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<>
> > >, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >,
void, (lambda at ../silicon/api.hh:77:12)>, std::tuple<sl::mhd_session_cookie, sl::sqlite_connection_factory, sl::sql_orm_factory<sl::sqlite_connection,
iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int,
iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::_cxx11::basic_string<char, iod::sio<> > > >,
sl::hashmap_session_factory >, sl::mhd_json_service_utils, sl::mhd_request *, sl::mhd_response *, MHD_Connection *>::operator()' requested here
ws_handler(P proc) : procedure
(proc) {}
^
../silicon/service.hh:165:19: note: in instantiation of member function 'sl::ws_handler<sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_login_t>, iod::sio<>,
iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<>
> > >, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >,
void, (lambda at ../silicon/api.hh:77:12)>, std::tuple<sl::mhd_session_cookie, sl::sqlite_connection_factory, sl::sql_orm_factory<sl::sqlite_connection,
iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int,
iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::hashmap_session_factory >, sl::mhd_json_service_utils, sl::mhd_request *, sl::mhd_response *, MHD_Connection *>::ws_handler' requested here
new ws_handler<P, middlewares_type, S, ARGS...>(f.content);
^
../silicon/service.hh:121:7: note: in instantiation of function template specialization 'sl::service<sl::mhd_json_service_utils, std::tuple<sl::mhd_session_cookie,
sl::sqlite_connection_factory, sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int,
iod::sio<s::_read_only_t> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > > >, sl::hashmap_session_factory >, sl::mhd_request *, sl::mhd_response *, MHD_Connection
*>::index_api<std::tuple<sl::api_node<sl::http_route<sl::http_post, std::tuple<s::_login_t>, iod::sio<>, iod::sio<>,
iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_login_t>, iod::sio<>, iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string,
iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string,
iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, void, (lambda at ../silicon/api.hh:77:12)> >,
sl::api_node<sl::http_route<sl::http_get, std::tuple<s::_logout_t>, iod::sio<>, iod::sio<>, iod::sio<> >, sl::procedure<sl::http_route<sl::http_get,
std::tuple<s::_logout_t>, iod::sio<>, iod::sio<>, iod::sio<> >, iod::sio<>, void, (lambda at ./blog_api.hh:69:19)> >, sl::api_node<sl::http_route<sl::http_verb_any,
std::tuple<s::_user_t>, iod::sio<>, iod::sio<>, iod::sio<> >, std::tuple<sl::api_node<sl::http_route<sl::http_get, std::tuple<s::_user_t, s::_get_by_id_t>, iod::sio<>,
iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<> >, sl::procedure<sl::http_route<sl::http_get, std::tuple<s::_user_t, s::_get_by_id_t>, iod::sio<>,
iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<> >, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<s::_id_t::variable_type<int,
iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_user_t, s::_create_t>, iod::sio<>, iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_user_t, s::_create_t>,
iod::sio<>, iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)>
>, sl::api_node<sl::http_route<sl::http_post, std::tuple<s::_user_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_user_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
iod::sio<s::_id_t::variable_type<int, iod::sio<> >, s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, void, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_user_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post,
std::tuple<s::_user_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> >
>, void, (lambda at ../silicon/api.hh:77:12)> > > >, sl::api_node<sl::http_route<sl::http_verb_any, std::tuple<s::_post_t>, iod::sio<>, iod::sio<>, iod::sio<> >,
std::tuple<sl::api_node<sl::http_route<sl::http_get, std::tuple<s::_post_t, s::_get_by_id_t>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<>
>, sl::procedure<sl::http_route<sl::http_get, std::tuple<s::_post_t, s::_get_by_id_t>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<> >,
iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >,
s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_create_t>, iod::sio<>, iod::sio<>, iod::sio<s::_title_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_post_t, s::_create_t>,
iod::sio<>, iod::sio<>, iod::sio<s::_title_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > > >, iod::sio<s::_title_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_post_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
iod::sio<s::_id_t::variable_type<int, iod::sio<> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, void, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> >
>, void, (lambda at ../silicon/api.hh:77:12)> > > > > >' requested here
index_api(api);
^
../silicon/backends/mhd.hh:409:18: note: in instantiation of function template specialization 'sl::service<sl::mhd_json_service_utils, std::tuple<sl::mhd_session_cookie,
sl::sqlite_connection_factory, sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::sql_orm_factory<sl::sqlite_connection, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int,
iod::sio<s::_read_only_t> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > > >, sl::hashmap_session_factory >, sl::mhd_request *, sl::mhd_response *, MHD_Connection
*>::service<std::tuple<sl::api_node<sl::http_route<sl::http_post, std::tuple<s::_login_t>, iod::sio<>, iod::sio<>,
iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_login_t>, iod::sio<>, iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string,
iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string,
iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, void, (lambda at ../silicon/api.hh:77:12)> >,
sl::api_node<sl::http_route<sl::http_get, std::tuple<s::_logout_t>, iod::sio<>, iod::sio<>, iod::sio<> >, sl::procedure<sl::http_route<sl::http_get,
std::tuple<s::_logout_t>, iod::sio<>, iod::sio<>, iod::sio<> >, iod::sio<>, void, (lambda at ./blog_api.hh:69:19)> >, sl::api_node<sl::http_route<sl::http_verb_any,
std::tuple<s::_user_t>, iod::sio<>, iod::sio<>, iod::sio<> >, std::tuple<sl::api_node<sl::http_route<sl::http_get, std::tuple<s::_user_t, s::_get_by_id_t>, iod::sio<>,
iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<> >, sl::procedure<sl::http_route<sl::http_get, std::tuple<s::_user_t, s::_get_by_id_t>, iod::sio<>,
iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<> >, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<s::_id_t::variable_type<int,
iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_user_t, s::_create_t>, iod::sio<>, iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_user_t, s::_create_t>,
iod::sio<>, iod::sio<>, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, iod::sio<s::_login_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)>
>, sl::api_node<sl::http_route<sl::http_post, std::tuple<s::_user_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_user_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
iod::sio<s::_id_t::variable_type<int, iod::sio<> >, s::_login_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_password_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, void, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_user_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post,
std::tuple<s::_user_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> >
>, void, (lambda at ../silicon/api.hh:77:12)> > > >, sl::api_node<sl::http_route<sl::http_verb_any, std::tuple<s::_post_t>, iod::sio<>, iod::sio<>, iod::sio<> >,
std::tuple<sl::api_node<sl::http_route<sl::http_get, std::tuple<s::_post_t, s::_get_by_id_t>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<>
>, sl::procedure<sl::http_route<sl::http_get, std::tuple<s::_post_t, s::_get_by_id_t>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<> >,
iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >,
s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_create_t>, iod::sio<>, iod::sio<>, iod::sio<s::_title_t::variable_type<std::__cxx11::basic_string, iod::sio<> >,
s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_post_t, s::_create_t>,
iod::sio<>, iod::sio<>, iod::sio<s::_title_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > > >, iod::sio<s::_title_t::variable_type<std::__cxx11::basic_string, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char,
iod::sio<> > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> > >, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
sl::procedure<sl::http_route<sl::http_post, std::tuple<s::_post_t, s::_update_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> >,
s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >, s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > > >,
iod::sio<s::_id_t::variable_type<int, iod::sio<> >, s::_title_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> >,
s::_body_t::variable_typestd::__cxx11::basic_string<char, iod::sio<> > >, void, (lambda at ../silicon/api.hh:77:12)> >, sl::api_node<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, sl::procedure<sl::http_route<sl::http_post,
std::tuple<s::_post_t, s::_destroy_t>, iod::sio<>, iod::sio<>, iod::sio<s::_id_t::variable_type<int, iod::sio<> > > >, iod::sio<s::_id_t::variable_type<int, iod::sio<> >
>, void, (lambda at ../silicon/api.hh:77:12)> > > > > >' requested here
auto s = new service_t(api, m2);
^
1 error generated.
msvobod :: tmp/silicon/examples ‹master› » clang --version 1 ↵
clang version 3.7.1 (tags/RELEASE_371/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix

from silicon.

matt-42 avatar matt-42 commented on August 10, 2024

Sorry, you need to pass the option -ftemplate-depth=1024 to clang. I'll add this to the documentation.

from silicon.

tex avatar tex commented on August 10, 2024

Now it is better :-)

msvobod :: tmp/silicon/examples ‹master› » clang -ftemplate-depth=1024 -std=c++14 blog.cc -I ../ -I ../iod/iod/ -lmicrohttpd -o hello_world 1 ↵
/usr/bin/ld: /tmp/blog-0c479d.o: undefined reference to symbol 'nettle_sha3_512_init@@NETTLE_6'
/usr/lib/libnettle.so.6: error adding symbols: DSO missing from command line
clang-3.7: error: linker command failed with exit code 1 (use -v to see invocation)

Do you know what if libnettle and why it complains on that undefined reference?

from silicon.

tex avatar tex commented on August 10, 2024

Oh I see... Nevermind.

from silicon.

tex avatar tex commented on August 10, 2024

Do you have any idea from where those _ubsan comes?

msvobod :: tmp/silicon/examples ‹master› » cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ 2 ↵
-- Boost version: 1.60.0
-- Found the following Boost libraries:
-- system
-- thread
-- date_time
-- program_options
-- filesystem
-- chrono
-- atomic
-- Configuring done
You have changed variables that require your cache to be deleted.
Configure will be re-run and you may have to reset some variables.
The following variables have changed:
CMAKE_CXX_COMPILER= clang++

-- The C compiler identification is GNU 5.3.0
-- The CXX compiler identification is Clang 3.7.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Boost version: 1.60.0
-- Found the following Boost libraries:
-- system
-- thread
-- date_time
-- program_options
-- filesystem
-- chrono
-- atomic
-- Configuring done
-- Generating done
-- Build files have been written to: /home/milan/tmp/silicon/examples
msvobod :: tmp/silicon/examples ‹master› » make
Scanning dependencies of target blog
[ 12%] Building CXX object CMakeFiles/blog.dir/blog.cc.o
[ 25%] Linking CXX executable blog
[ 25%] Built target blog
Scanning dependencies of target simple
[ 37%] Building CXX object CMakeFiles/simple.dir/simple.cc.o
[ 50%] Linking CXX executable simple
[ 50%] Built target simple
Scanning dependencies of target blog_test
[ 62%] Building CXX object CMakeFiles/blog_test.dir/blog_test.cc.o
[ 75%] Linking CXX executable blog_test
/usr/local/lib/liblwan-common.a(lwan.c.o): In function lwan_module_init': /home/milan/tmp/silicon/lwan/common/lwan.c:63: undefined reference to__ubsan_handle_type_mismatch'
/home/milan/tmp/silicon/lwan/common/lwan.c:65: undefined reference to __ubsan_handle_type_mismatch' /usr/local/lib/liblwan-common.a(lwan.c.o): In functionlwan_module_shutdown':
/home/milan/tmp/silicon/lwan/common/lwan.c:71: undefined reference to __ubsan_handle_type_mismatch' /usr/local/lib/liblwan-common.a(lwan.c.o): In functionfind_handler_symbol':
/home/milan/tmp/silicon/lwan/common/lwan.c:76: undefined reference to __ubsan_handle_nonnull_arg' /home/milan/tmp/silicon/lwan/common/lwan.c:78: undefined reference to__ubsan_handle_nonnull_arg'
/usr/local/lib/liblwan-common.a(lwan.c.o): In function lwan_module_find': /home/milan/tmp/silicon/lwan/common/lwan.c:84: undefined reference to__ubsan_handle_type_mismatch'
/home/milan/tmp/silicon/lwan/common/lwan.c:91: undefined reference to __ubsan_handle_type_mismatch' /home/milan/tmp/silicon/lwan/common/lwan.c:91: undefined reference to__ubsan_handle_type_mismatch'
/home/milan/tmp/silicon/lwan/common/lwan.c:91: undefined reference to __ubsan_handle_type_mismatch' /home/milan/tmp/silicon/lwan/common/lwan.c:91: undefined reference to__ubsan_handle_type_mismatch'
/usr/local/lib/liblwan-common.a(lwan.c.o):/home/milan/tmp/silicon/lwan/common/lwan.c:94: more undefined references to __ubsan_handle_type_mismatch' follow /usr/local/lib/liblwan-common.a(lwan.c.o): In functionadd_url_map':
/home/milan/tmp/silicon/lwan/common/lwan.c:151: undefined reference to __ubsan_handle_nonnull_arg' /home/milan/tmp/silicon/lwan/common/lwan.c:151: undefined reference to__ubsan_handle_nonnull_arg'
/home/milan/tmp/silicon/lwan/common/lwan.c:153: undefined reference to __ubsan_handle_type_mismatch' /home/milan/tmp/silicon/lwan/common/lwan.c:153: undefined reference to__ubsan_handle_nonnull_arg'

from silicon.

tex avatar tex commented on August 10, 2024

"fixed" by switching the test to use mhd.

from silicon.

tex avatar tex commented on August 10, 2024

And now websocketpp:

[ 87%] Building CXX object CMakeFiles/ws_broadcast_server.dir/ws_broadcast_server.cc.o
In file included from /home/milan/tmp/silicon/examples/ws_broadcast_server.cc:3:
In file included from /home/milan/tmp/silicon/examples/../silicon/backends/websocketpp.hh:13:
In file included from /home/milan/tmp/silicon/examples/../silicon/backends/websocketpp_remote_client.hh:11:
/home/milan/tmp/silicon/examples/../silicon/backends/wspp_connection.hh:16:65: error: invalid operands to binary expression ('const websocketpp::connection_hdl'
(aka 'const weak_ptr') and 'const websocketpp::connection_hdl')
bool operator<(const wspp_connection& a) const { return hdl < a.hdl; }
~~~ ^ ~~~~~
/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:57:12: error: 'wspp_connection' does not refer to a value
std::set<wspp_connection> users;
^
/home/milan/tmp/silicon/examples/../silicon/backends/wspp_connection.hh:11:10: note: declared here
struct wspp_connection
^
/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:57:8: error: no member named 'set' in namespace 'std'
std::set<wspp_connection> users;

/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:57:29: error: use of undeclared identifier 'users'; did you mean '_user'?
  std::set<wspp_connection> users;
                            ^~~~~
                            _user
/home/milan/tmp/silicon/examples/symbols.hh:110:5: note: '_user' declared here
    iod_define_symbol(user)
    ^
/usr/local/include/iod/symbol.hh:69:27: note: expanded from macro 'iod_define_symbol'
  constexpr _##SYMBOL##_t _##SYMBOL;                                      \
                          ^
<scratch space>:388:1: note: expanded from here
_user
^
/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:69:39: error: use of undeclared identifier 'users'; did you mean '_user'?
      for (const wspp_connection& c : users) rclient(c).message(p.message);
                                      ^~~~~
                                      _user
/home/milan/tmp/silicon/examples/symbols.hh:110:5: note: '_user' declared here
    iod_define_symbol(user)
    ^
/usr/local/include/iod/symbol.hh:69:27: note: expanded from macro 'iod_define_symbol'
  constexpr _##SYMBOL##_t _##SYMBOL;                                      \
                          ^
<scratch space>:388:1: note: expanded from here
_user
^
/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:69:37: error: invalid range expression of type 'const s::_user_t'; no viable 'begin' function available
      for (const wspp_connection& c : users) rclient(c).message(p.message);
                                    ^
/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:81:78: error: use of undeclared identifier 'users'
                  _on_open = [&] (wspp_connection& c) { lock l(users_mutex); users.insert(c); },
                                                                             ^
/home/milan/tmp/silicon/examples/ws_broadcast_server.cc:82:79: error: use of undeclared identifier 'users'
                  _on_close = [&] (wspp_connection& c) { lock l(users_mutex); users.erase(c); },
                                                                              ^
8 errors generated.
CMakeFiles/ws_broadcast_server.dir/build.make:62: návod pro cíl „CMakeFiles/ws_broadcast_server.dir/ws_broadcast_server.cc.o“ selhal
make[2]: *** [CMakeFiles/ws_broadcast_server.dir/ws_broadcast_server.cc.o] Chyba 1
CMakeFiles/Makefile2:178: návod pro cíl „CMakeFiles/ws_broadcast_server.dir/all“ selhal
make[1]: *** [CMakeFiles/ws_broadcast_server.dir/all] Chyba 2
Makefile:83: návod pro cíl „all“ selhal

from silicon.

matt-42 avatar matt-42 commented on August 10, 2024

I'll push a fix tomorrow.

from silicon.

matt-42 avatar matt-42 commented on August 10, 2024

Problem solved by 97bdd57

from silicon.

matt-42 avatar matt-42 commented on August 10, 2024

I close this issue but do not hesitate to reopen it whenever you encounter any problems.

from silicon.

tex avatar tex commented on August 10, 2024

Thanks! It compiles now.

from silicon.

matt-42 avatar matt-42 commented on August 10, 2024

Great! Thanks for your feedback. Note that I'll probably add the https://github.com/alexhultman/uWebSockets backend. It claims to be a faster websocket library.

from silicon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.