Open jonbarkerlondon opened 8 years ago
@jonbarkerlondon Interfaces.jl only works on the julia 0.4 prereleases as a prototype. Unfortunately, as of (0.4.1?) a change to how unions work in base has broken the mutable union approach we use. If you're interested in the approach Interfaces.jl took you may be interested in protocols which was proposed here Not sure if it'll make it into 0.5, but maybe 0.6?
Thanks for the response.
I get the following warnings when compiling the .O: (I turned off all warnings as errors in order to continue)
C:\Users\jbarker.julia\v0.5\Interfaces\deps\src\mutable_union.c:1:0: warning: - fPIC ignored for target (all code is position independent)
include "mutable_union.h"
^ C:\Users\jbarker.julia\v0.5\Interfaces\deps\src\mutable_union.c: In function 'jl_type_mutable_union_append': C:\Users\jbarker.julia\v0.5\Interfaces\deps\src\mutable_union.c:49:9: warning: implicit declaration of function 'jl_svec_append' [-Wimplicit-function-declaration] jl_svec_t new_types = jl_svec_append(_union->types, jl_svec_fill(1, t) ); ^ C:\Users\jbarker.julia\v0.5\Interfaces\deps\src\mutable_union.c:49:32: warning: initialization makes pointer from integer without a cast jl_svec_t new_types = jl_svec_append(_union->types, jl_svec_fill(1, t) ); ^
I get the following errors when compiling the .SO:
C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x49): undefined reference to
_imp__jl_gc_queue_root' C:\Users\jbarker\.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x63): undefined reference to
_impjl_simplevector_type' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0xf0): undefined reference to_imp__jl_type_union' C:\Users\jbarker\.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x107): undefined reference to
_impjl_uniontype_type' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x112): undefined reference to_imp__jl_bottom_type' C:\Users\jbarker\.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x129): undefined reference to
_impjl_alloc_svec_uninit' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x133): undefined reference to `_impjl_int64_type' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x151): undefined reference to_imp__jl_float64_type' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x175): undefined reference to
_impjl_type_union' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x18c): undefined reference to_imp__jl_uniontype_type' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x1a5): undefined reference to
_impjl_svec_fill' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x1b8): undefined reference to_imp__jl_alloc_svec_uninit' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x1ed): undefined reference to
_impjl_emptysvec' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x211): undefined reference to`_impjl_uniontype_type' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x21c): undefined reference to_imp__jl_bottom_type' C:\Users\jbarker\.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x23c): undefined reference to
_imp__jl_svec_fill' C:\Users\jbarker.julia\v0.5\Interfaces\deps\usr\lib\mutable_union.o:mutable_uni on.c:(.text+0x251): undefined reference to `jl_svec_append' collect2.exe: error: ld returned 1 exit statusWith the second GCC, it is finding the libjulia.a file correctly in the path supplied to the executable, but complaining that the exports are not available.