Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apple aarch64 Compiler Error, unable to compile jluna #64

Open
Clemapfel opened this issue Apr 12, 2024 · 2 comments
Open

Apple aarch64 Compiler Error, unable to compile jluna #64

Clemapfel opened this issue Apr 12, 2024 · 2 comments
Labels
apple issue only appears on apple compiler error error on compilation known issue the problem is known to the developer

Comments

@Clemapfel
Copy link
Owner

On Apple machines with the aarch64 architecture, such as the M1/M2 Macs, compiler errors of the following type may appear when compiling jluna. These is due to integer-sizes of common types such as size_t or uint64_t being unusually redefined on these platforms.

Currently, there is no fix for this, I'm sure it is perfectly fixable I just do not have access to a machine to test and debug for it, and Apple makes it impossible to legally obtain such a platform without spending the money to get a physical device.

In file included from /Users/username/Documents/dev/ExternalThreads/jluna/.test/main.cpp:4:
In file included from /Users/username/Documents/dev/ExternalThreads/jluna/jluna.hpp:23:
In file included from /Users/username/Documents/dev/ExternalThreads/jluna/include/module.hpp:281:
/Users/username/Documents/dev/ExternalThreads/jluna/.src/module.inl:256:32: error: no matching function for call to 'box'
        create_or_assign(name, box<std::tuple<Ts...>>(std::make_tuple(args...)));
                               ^~~~~~~~~~~~~~~~~~~~~~
/Users/username/Documents/dev/ExternalThreads/jluna/.test/main.cpp:542:25: note: in instantiation of function template specialization 'jluna::Module::new_tuple<unsigned long long, std::string, int>' requested here
        auto res = Main.new_tuple("test", std::get<0>(value), std::get<1>(value), std::get<2>(value));
                        ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/symbol.inl:24:27: note: candidate function template not viable: no known conversion from 'tuple<typename __unwrap_ref_decay<unsigned long long &>::type, typename __unwrap_ref_decay<string &>::type, typename __unwrap_ref_decay<int &>::type>' (aka 'tuple<unsigned long long, std::string, int>') to 'const std::string' (aka 'const basic_string<char>') for 1st argument
    inline unsafe::Value* box(const std::string& value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:26:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:25:14: note: because 'std::tuple<unsigned long long, std::string, int>' does not satisfy 'is_julia_value_pointer'
    template<is_julia_value_pointer T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:139:9: note: because 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_value_t *>' evaluated to false
        std::is_same_v<T, jl_value_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:140:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_module_t *>' evaluated to false
        std::is_same_v<T, jl_module_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:141:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_array_t *>' evaluated to false
        std::is_same_v<T, jl_array_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:142:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_datatype_t *>' evaluated to false
        std::is_same_v<T, jl_datatype_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:143:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_function_t *>' evaluated to false
        std::is_same_v<T, jl_function_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:144:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_sym_t *>' evaluated to false
        std::is_same_v<T, jl_sym_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:145:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_expr_t *>' evaluated to false
        std::is_same_v<T, jl_expr_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:146:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_unionall_t *>' evaluated to false
        std::is_same_v<T, jl_unionall_t*>;
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:32:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:31:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::nullptr_t>' evaluated to false
    template<is<std::nullptr_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<std::nullptr_t>, is_same_or_const<tuple<unsigned long long, string, int>, std::nullptr_t> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:38:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:37:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, void *>' evaluated to false
    template<is<void*> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<void *>, is_same_or_const<tuple<unsigned long long, string, int>, void *> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:50:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:49:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, _Bool>' evaluated to false
    template<is<bool> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<_Bool>, is_same_or_const<tuple<unsigned long long, string, int>, _Bool> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:56:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:55:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::bool_constant<true> >' evaluated to false
    template<is<std::bool_constant<true>> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<integral_constant<_Bool, true> >, is_same_or_const<tuple<unsigned long long, string, int>, integral_constant<_Bool, true> > >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:62:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:61:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::bool_constant<false> >' evaluated to false
    template<is<std::bool_constant<false>> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<integral_constant<_Bool, false> >, is_same_or_const<tuple<unsigned long long, string, int>, integral_constant<_Bool, false> > >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:68:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:67:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, char>' evaluated to false
    template<is<char> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<char>, is_same_or_const<tuple<unsigned long long, string, int>, char> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:74:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:73:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint8_t>' evaluated to false
    template<is<uint8_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned char>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned char> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:80:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:79:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint16_t>' evaluated to false
    template<is<uint16_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned short>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned short> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:86:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:85:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint32_t>' evaluated to false
    template<is<uint32_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned int>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned int> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:92:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:91:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint64_t>' evaluated to false
    template<is<uint64_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned long long>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned long long> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:98:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:97:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int8_t>' evaluated to false
    template<is<int8_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<signed char>, is_same_or_const<tuple<unsigned long long, string, int>, signed char> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:104:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:103:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int16_t>' evaluated to false
    template<is<int16_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<short>, is_same_or_const<tuple<unsigned long long, string, int>, short> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:110:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:109:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int32_t>' evaluated to false
    template<is<int32_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<int>, is_same_or_const<tuple<unsigned long long, string, int>, int> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:116:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:115:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int64_t>' evaluated to false
    template<is<int64_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<long long>, is_same_or_const<tuple<unsigned long long, string, int>, long long> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:122:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:121:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, float>' evaluated to false
    template<is<float> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<float>, is_same_or_const<tuple<unsigned long long, string, int>, float> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:128:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:127:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, double>' evaluated to false
    template<is<double> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<double>, is_same_or_const<tuple<unsigned long long, string, int>, double> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:134:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:133:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::string>' evaluated to false
    template<is<std::string> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<string>, is_same_or_const<tuple<unsigned long long, string, int>, string> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:144:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:143:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, const char *>' evaluated to false
    template<is<const char*> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<const char *>, is_same_or_const<tuple<unsigned long long, string, int>, const char *> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/module.inl:20:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/module.inl:19:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Module>' evaluated to false
    template<is<Module> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Module>, is_same_or_const<tuple<unsigned long long, string, int>, Module> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/box.hpp:116:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'key_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value);
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:155:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:162:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:180:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'key_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:196:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:213:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'first_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/box.hpp:166:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T);
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/box.hpp:165:14: note: because 'std::tuple<unsigned long long, std::string, int>' does not satisfy 'is_usertype'
    template<is_usertype T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:244:27: note: because 'usertype_enabled<tuple<unsigned long long, string, int> >::value' evaluated to false
    concept is_usertype = usertype_enabled<T>::value;
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:44:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:43:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, void>' evaluated to false
    template<is<void> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<void>, is_same_or_const<tuple<unsigned long long, string, int>, void> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:226:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:225:14: note: because 'std::tuple<unsigned long long, std::string, int>' does not satisfy 'is_tuple'
    template<is_tuple T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:233:24: note: because substituted constraint expression is ill-formed: no matching function for call to 'is_tuple_aux'
    concept is_tuple = detail::is_tuple_aux<T>(std::make_index_sequence<std::tuple_size<T>::value>());
                       ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/proxy.inl:19:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/proxy.inl:18:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Proxy>' evaluated to false
    template<is<Proxy> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Proxy>, is_same_or_const<tuple<unsigned long long, string, int>, Proxy> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/mutex.inl:11:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T in)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/mutex.inl:10:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, jluna::Mutex>' evaluated to false
    template<is<jluna::Mutex> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Mutex>, is_same_or_const<tuple<unsigned long long, string, int>, Mutex> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/symbol.inl:18:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/symbol.inl:17:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Symbol>' evaluated to false
    template<is<Symbol> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Symbol>, is_same_or_const<tuple<unsigned long long, string, int>, Symbol> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/type.inl:19:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/type.inl:18:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Type>' evaluated to false
    template<is<Type> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Type>, is_same_or_const<tuple<unsigned long long, string, int>, Type> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/array.inl:15:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/array.inl:26:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(T value)
@Clemapfel Clemapfel added known issue the problem is known to the developer compiler error error on compilation apple issue only appears on apple labels Apr 12, 2024
@Clemapfel
Copy link
Owner Author

To reproduce these errors, on your mac, execute:

git clone https://github.com/jluna
cd jluna
git fetch
git checkout mac_literal
git pull
cmake .. -DBUILD_TESTING=ON
make -j 8

@kouchy
Copy link

kouchy commented Jul 22, 2024

Hi @Clemapfel,

First thank you very much for this very useful library, sincerely!

I also noticed the same problem on Apple Silicon CPUs. Do you have any plan to fix this? In any case I think it could be useful knowing that more and more CPUs are ARM-based nowadays :-)

Best regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
apple issue only appears on apple compiler error error on compilation known issue the problem is known to the developer
Projects
None yet
Development

No branches or pull requests

2 participants