[julia-users] Re: Errors while trying to use cxx and embed Julia together
Hello again, I am experiencing the following difficulty. So I have the above mentioned header and cpp files that define the class ArrayMaker on top of that I wrote a small main connected to this class that simply excecute its function: main.cpp: #include ArrayMaker.h #include iostream using namespace std; int main(int argc, char ** argv) { ArrayMaker* FI_CSP=new ArrayMaker(); int a = 7; float b = 4; double z; z = FI_CSP-ArrayMak(a,b); coutendlTest = z; return 1; } Now I created for Arraymaker.cpp, Arraymaker.h and main.cpp a shared library so that I can link it with a julia file. So on this point I do have a very noob question, but I couldn't work it out from the examples of cxx in its webpage. Say I have done the connection with the shared library properly inside a julia file to link with the above class and main. That looks as the previous one like this: using Cxx # Importing shared library and header file const path_to_lib = /home/kostav/Documents/Project/julia/cle addHeaderDir(path_to_lib, kind=C_System) Libdl.dlopen(path_to_lib * /test.so, Libdl.RTLD_GLOBAL) cxxinclude(ArrayMaker.h) So my really noob question is how is the proper syntaxis so that in this julia file I can call and run the above mentioned main.cpp file?
[julia-users] Re: Errors while trying to use cxx and embed Julia together
I don't know if this helps, but we have been also learning the basics of Cxx. See here @ovainola implementation of a simple library: https://github.com/JuliaFEM/MiniBall.jl/blob/master/src/MiniBall.jl On Saturday, August 1, 2015 at 5:00:41 PM UTC+3, Kostas Tavlaridis-Gyparakis wrote: Hello again, I am experiencing the following difficulty. So I have the above mentioned header and cpp files that define the class ArrayMaker on top of that I wrote a small main connected to this class that simply excecute its function: main.cpp: #include ArrayMaker.h #include iostream using namespace std; int main(int argc, char ** argv) { ArrayMaker* FI_CSP=new ArrayMaker(); int a = 7; float b = 4; double z; z = FI_CSP-ArrayMak(a,b); coutendlTest = z; return 1; } Now I created for Arraymaker.cpp, Arraymaker.h and main.cpp a shared library so that I can link it with a julia file. So on this point I do have a very noob question, but I couldn't work it out from the examples of cxx in its webpage. Say I have done the connection with the shared library properly inside a julia file to link with the above class and main. That looks as the previous one like this: using Cxx # Importing shared library and header file const path_to_lib = /home/kostav/Documents/Project/julia/cle addHeaderDir(path_to_lib, kind=C_System) Libdl.dlopen(path_to_lib * /test.so, Libdl.RTLD_GLOBAL) cxxinclude(ArrayMaker.h) So my really noob question is how is the proper syntaxis so that in this julia file I can call and run the above mentioned main.cpp file?
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Ok, this did solve my problem. Now I will proceed with trying to connect a big c++ project with julia and see what happens there, in the very optimistic case where I proceed without any problems I will let you know just for reference, otherwise I will return with the new errors and mistakes I receive. Thanks a lot for all the help and suggestions so far! On Thursday, July 30, 2015 at 11:47:27 PM UTC+2, Jeff Waller wrote: Specifically I think this will not work because of the following: double ArrayMaker::ArrayMak(int iNum, float fNum) { jl_init(JULIA_INIT_DIR); jl_atexit_hook(); return sol; } } What this is doing it starting up a 2nd julia engine inside of the original julia engine, and that can only work if julia has no globals that must only be initialized once and all mutual exclusive sections protected by mutex, (i.e. thread safe), and currently it is not. In other words you're going beyond the question can Julia be embedded in C++ as well as can C++ be embedded in Julia simultaneously; answer is yes. You're asking can Julia be embedded within itself, and I think the answer is no. But from what you're describing as the problem you're attempting to solve, you don't really to accomplish Julia inside Julia. You just need to call C++ from Julia. What happens if you just simply leave out the calls to jl_init and jl_atexit_hook?
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Specifically I think this will not work because of the following: double ArrayMaker::ArrayMak(int iNum, float fNum) { jl_init(JULIA_INIT_DIR); jl_atexit_hook(); return sol; } } What this is doing it starting up a 2nd julia engine inside of the original julia engine, and that can only work if julia has no globals that must only be initialized once and all mutual exclusive sections protected by mutex, (i.e. thread safe), and currently it is not. In other words you're going beyond the question can Julia be embedded in C++ as well as can C++ be embedded in Julia simultaneously; answer is yes. You're asking can Julia be embedded within itself, and I think the answer is no. But from what you're describing as the problem you're attempting to solve, you don't really to accomplish Julia inside Julia. You just need to call C++ from Julia. What happens if you just simply leave out the calls to jl_init and jl_atexit_hook?
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Hello again, After following the above mentioned instructions of Jeff managed to make Cxx working properly in the julia version installed via (make install), yet again the original problem persists. Just to remind you: I have the following c++ class: 1) cpp.file: #include ArrayMaker.h #include iostream using namespace std; ArrayMaker::ArrayMaker() { // TODO Auto-generated constructor stub } ArrayMaker::~ArrayMaker() { // TODO Auto-generated destructor stub } double ArrayMaker::ArrayMak(int iNum, float fNum) { jl_init(JULIA_INIT_DIR); jl_load(/home/kostav/.julia/v0.4/loleee/src/loleee.jl); jl_value_t * mod = (jl_value_t*)jl_eval_string(loleee); jl_function_t * func = jl_get_function((jl_module_t*)mod,funior); jl_value_t * argument = jl_box_float64(2.0); jl_value_t * argument2 = jl_box_float64(3.0); jl_value_t * ret = jl_call2(func, argument, argument2); sol = jl_unbox_float64(ret); jl_atexit_hook(); return sol; } } 2) header file: #ifndef ARRAYMAKER_H #define ARRAYMAKER_H #include julia.h class ArrayMaker { public: ArrayMaker(); virtual ~ArrayMaker(); double ArrayMak(int, float); }; #endif Which are called isnide this small julia file: using Cxx # Importing shared library and header file const path_to_lib = /home/kostav/Documents/Project/julia/cle addHeaderDir(path_to_lib, kind=C_System) Libdl.dlopen(path_to_lib * /test.so, Libdl.RTLD_GLOBAL) cxxinclude(ArrayMaker.h) maker = @cxxnew ArrayMaker() a = @cxx maker-ArrayMak(5, 2.0) println(return value is: , a) As described above what I am trying is to call the c++ function ArrayMak from julia file, where inside this function I call an other julia function (called name funior) that just receives two numbers as arguments and returns their sum. More or less want to verify that I can have the following process: Julia file - Calling C++ classes - calling inside them other julia functions - returning arguments from the C++ classes to the original julia file. So when I run the julia file everything works until the moment that the c++ function needs to return the argument to julia file, I have checked and confirmed that until that point everything works proprely: 1) C++ function ArrayMak is called 2) Function funior is receiving the arguments properly and returns to the variable sol the sum of the two arguments But when the value of sol needs to be returned to the julia function everythins stucks. Judging from the example in the cxx web-site in order to return arguments from c++ functions to julia you don't need to do anything complicated or different from what is shown here: arr = @cxx maker-fillArr() (where fillArr is supposed to return an array) So, I am not sure what is going wrong here... On Wednesday, July 22, 2015 at 9:33:00 AM UTC+2, Kostas Tavlaridis-Gyparakis wrote: Any help/further suggestions please? On Tuesday, July 21, 2015 at 3:27:10 PM UTC+2, Kostas Tavlaridis-Gyparakis wrote: Hello again, Unfortunately and let me apologize in advance I still find myself confused on how to make things work properly. Here are the symbolic links. I believe with some simple changes to Cxx, the need for these will disappear, but for now there's where it searches. /usr/local/julia/lib bizarro% ls -l total 16 drwxr-xr-x 4 jeffw staff 136 Jul 18 18:26 clang lrwxr-xr-x 1 root staff10 Jul 19 03:16 include - ../include drwxr-xr-x 49 jeffw staff 1666 Jul 18 20:11 julia lrwxr-xr-x 1 root staff 1 Jul 19 03:16 lib - . If I get this right does it mean that for all the files that are included in the list * DirectoryLayout* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayout I need to create a soft link to link them with the directory /usr/local/julia/lib (which doesn't exist in my system)? Aslo regarding the instructions of part *BuildJuliaLLVMforCXX* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-buildjuliallvmforcxx where you present the files that need to be cp to the directory julia-f428392003 in my system I face the following problems: 1) The image files (sys.ji, sys.dylib,sys-debug.dylib) don't exist anywhere in my system 2) The folder llvm-svn (in the source julia directory) has completely different structure in my system, In my julia (source code) folder there are two folders with the name llvm-svn the one has a structure that you can look in the attach picture called name (llvmsn), while the second one is located in the path /home/kostav/julia/usr-staging/llvm-svn and has a single folder named build_Release+Asserts. All in all I am confused on how to follow your instructions (for which I do really appreciate the effort you put to provide me with). Is what I have to do: 1) Try to copy paste the folders as presented in *BuildJuliaLLVMforCXX*
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Any help/further suggestions please? On Tuesday, July 21, 2015 at 3:27:10 PM UTC+2, Kostas Tavlaridis-Gyparakis wrote: Hello again, Unfortunately and let me apologize in advance I still find myself confused on how to make things work properly. Here are the symbolic links. I believe with some simple changes to Cxx, the need for these will disappear, but for now there's where it searches. /usr/local/julia/lib bizarro% ls -l total 16 drwxr-xr-x 4 jeffw staff 136 Jul 18 18:26 clang lrwxr-xr-x 1 root staff10 Jul 19 03:16 include - ../include drwxr-xr-x 49 jeffw staff 1666 Jul 18 20:11 julia lrwxr-xr-x 1 root staff 1 Jul 19 03:16 lib - . If I get this right does it mean that for all the files that are included in the list * DirectoryLayout* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayout I need to create a soft link to link them with the directory /usr/local/julia/lib (which doesn't exist in my system)? Aslo regarding the instructions of part *BuildJuliaLLVMforCXX* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-buildjuliallvmforcxx where you present the files that need to be cp to the directory julia-f428392003 in my system I face the following problems: 1) The image files (sys.ji, sys.dylib,sys-debug.dylib) don't exist anywhere in my system 2) The folder llvm-svn (in the source julia directory) has completely different structure in my system, In my julia (source code) folder there are two folders with the name llvm-svn the one has a structure that you can look in the attach picture called name (llvmsn), while the second one is located in the path /home/kostav/julia/usr-staging/llvm-svn and has a single folder named build_Release+Asserts. All in all I am confused on how to follow your instructions (for which I do really appreciate the effort you put to provide me with). Is what I have to do: 1) Try to copy paste the folders as presented in *BuildJuliaLLVMforCXX* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-buildjuliallvmforcxx ? 2) Create links for all the files listed * DirectoryLayout * https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayouttowards the folder /usr/local/julia/lib? On Sunday, July 19, 2015 at 10:44:07 PM UTC+2, Jeff Waller wrote: Symbolic links to link which files though? Sorry if the questions I raise are already answered by the git, I just failed to understand it properly so that's why I come back with these questions now. I've added a listing of the entire directory structure https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayout Here are the symbolic links. I believe with some simple changes to Cxx, the need for these will disappear, but for now there's where it searches. /usr/local/julia/lib bizarro% ls -l total 16 drwxr-xr-x 4 jeffw staff 136 Jul 18 18:26 clang lrwxr-xr-x 1 root staff10 Jul 19 03:16 include - ../include drwxr-xr-x 49 jeffw staff 1666 Jul 18 20:11 julia lrwxr-xr-x 1 root staff 1 Jul 19 03:16 lib - .
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Hello again, Unfortunately and let me apologize in advance I still find myself confused on how to make things work properly. Here are the symbolic links. I believe with some simple changes to Cxx, the need for these will disappear, but for now there's where it searches. /usr/local/julia/lib bizarro% ls -l total 16 drwxr-xr-x 4 jeffw staff 136 Jul 18 18:26 clang lrwxr-xr-x 1 root staff10 Jul 19 03:16 include - ../include drwxr-xr-x 49 jeffw staff 1666 Jul 18 20:11 julia lrwxr-xr-x 1 root staff 1 Jul 19 03:16 lib - . If I get this right does it mean that for all the files that are included in the list * DirectoryLayout* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayout I need to create a soft link to link them with the directory /usr/local/julia/lib (which doesn't exist in my system)? Aslo regarding the instructions of part *BuildJuliaLLVMforCXX* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-buildjuliallvmforcxx where you present the files that need to be cp to the directory julia-f428392003 in my system I face the following problems: 1) The image files (sys.ji, sys.dylib,sys-debug.dylib) don't exist anywhere in my system 2) The folder llvm-svn (in the source julia directory) has completely different structure in my system, In my julia (source code) folder there are two folders with the name llvm-svn the one has a structure that you can look in the attach picture called name (llvmsn), while the second one is located in the path /home/kostav/julia/usr-staging/llvm-svn and has a single folder named build_Release+Asserts. All in all I am confused on how to follow your instructions (for which I do really appreciate the effort you put to provide me with). Is what I have to do: 1) Try to copy paste the folders as presented in *BuildJuliaLLVMforCXX* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-buildjuliallvmforcxx ? 2) Create links for all the files listed * DirectoryLayout * https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayouttowards the folder /usr/local/julia/lib? On Sunday, July 19, 2015 at 10:44:07 PM UTC+2, Jeff Waller wrote: Symbolic links to link which files though? Sorry if the questions I raise are already answered by the git, I just failed to understand it properly so that's why I come back with these questions now. I've added a listing of the entire directory structure https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayout Here are the symbolic links. I believe with some simple changes to Cxx, the need for these will disappear, but for now there's where it searches. /usr/local/julia/lib bizarro% ls -l total 16 drwxr-xr-x 4 jeffw staff 136 Jul 18 18:26 clang lrwxr-xr-x 1 root staff10 Jul 19 03:16 include - ../include drwxr-xr-x 49 jeffw staff 1666 Jul 18 20:11 julia lrwxr-xr-x 1 root staff 1 Jul 19 03:16 lib - .
[julia-users] Re: Errors while trying to use cxx and embed Julia together
So I built and installed Cxx and then attempted to use it with embedded Julia and was successful. The tricky part is pretty tricky especially for someone not familiar how the whole thing is laid out, I've put most of what I did in this gist https://gist.github.com/waTeim/ec622a0630f220e6b3c3 Step 1. Build and run make install Step 2. While still in the top level source directory, install Cxx as per the Cxx webpage Step 3. Take the installed directory structure and put it in an installed location. Step 4. There are additional include files that Cxx needs access to after it has built whenever c++ source needs to be compiled, they can be found in the following directories relative to the source tree root. usr/include/{clang,llvm,llvm-c} usr/lib/clang/ Cxx attempts to access the files in these directories when it gets imported, and although addIncludeDir is supposed to help here, I could not make it work like that, so i ended up copying all of this to the installed directory (see the gist). Step 5. In addition for embedding the relative paths are off, so a couple of symbolic links need to be added. Step 6 access Cxx from embedding framework and I have some show and tell here for that Consider the following file (index.js) this is taken from the Cxx example page, I simplified it to merely good ol' hello world var julia = require('node-julia'); julia.eval('using Cxx'); julia.eval('cxx #includeiostream '); julia.eval('cxx void mycppfunction() { std::cout hello world std::endl; } '); julia.eval('julia_function() = @cxx mycppfunction()'); julia.exec('julia_function'); and when run: bizarro% node index.js hello world So that's JITed-C++ within JITed-Julia within JITed-Javascript, which I think is a first. It's pretty slow because of all of the compiling going on, and there's a bunch of eval where there could be something else, but I think pre-compilation will fix that. Pretty exciting.
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Hello, Once again I really appreciate all the effort you put and the help you provide. I assume that since you made things work properly now we do havea working solution. Yet again as I am not really good with programming in general sth things I still unfortunately need to ask on how to follow your directions. So, Step 1. Build and run make install Step 2. While still in the top level source directory, install Cxx as per the Cxx webpage Step 3. Take the installed directory structure and put it in an installed location. These three steps I have already done, I have compiled the source code and installed Cxx accordingly for the source code and I also have copied the installed directory (the one with the big number that is created after make install) in a seperate file from which I run julia. Step 4. There are additional include files that Cxx needs access to after it has built whenever c++ source needs to be compiled, they can be found in the following directories relative to the source tree root. usr/include/{clang,llvm,llvm-c} usr/lib/clang/ Cxx attempts to access the files in these directories when it gets imported, and although addIncludeDir is supposed to help here, I could not make it work like that, so i ended up copying all of this to the installed directory (see the gist). Here I am a bit confused what to do. I did cp the abve mentioned directories: cp -a /usr/lib/clang /home/kostav/Julian/julia-f428392003/lib cp -a /usr/include/{clang,llvm-3.6,llvm-c-3.6} /home/kostav/Julian/julia-f428392003/include But then in the gist I see you do cp a bunch of other files which I am not sure I do have them all anyway. Does this mean that instead of copying the above mentioned directories I included I need to copy the spe- cific files you point out in the first session of the git ( i.e. *BuildJuliaLLVMforCXX* https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-buildjuliallvmforcxx )? Step 5. In addition for embedding the relative paths are off, so a couple of symbolic links need to be added. Symbolic links to link which files though? Sorry if the questions I raise are already answered by the git, I just failed to understand it properly so that's why I come back with these questions now. )
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Symbolic links to link which files though? Sorry if the questions I raise are already answered by the git, I just failed to understand it properly so that's why I come back with these questions now. I've added a listing of the entire directory structure https://gist.github.com/waTeim/ec622a0630f220e6b3c3#file-directorylayout Here are the symbolic links. I believe with some simple changes to Cxx, the need for these will disappear, but for now there's where it searches. /usr/local/julia/lib bizarro% ls -l total 16 drwxr-xr-x 4 jeffw staff 136 Jul 18 18:26 clang lrwxr-xr-x 1 root staff10 Jul 19 03:16 include - ../include drwxr-xr-x 49 jeffw staff 1666 Jul 18 20:11 julia lrwxr-xr-x 1 root staff 1 Jul 19 03:16 lib - .
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Hello again and thanks a lot for the suggestions. Thing is, I went back to the source version of Julia where Cxx is already built and runs properly, so there wasn't much for me to do, I run in terminal also the command of: addHeaderDir(/home/kostav/julia/src/) Then proceeded again with make install and run the version of julia from this folder but still not being able to use or install Cxx. So, maybe I didn't understand properly what you were suggesting for me to do in the source version of Julia... Or maybe there is sth else I should try..? On Friday, July 17, 2015 at 10:31:16 PM UTC+2, Jeff Waller wrote: On Friday, July 17, 2015 at 1:44:41 PM UTC-4, Kostas Tavlaridis-Gyparakis wrote: Hello, Just to be sure that I am understanding correctly what your proposal. You suggest I should: 1) Completely uninstall Julia 2) Recompile the source code (i.e. run make) heh no need for 1,2, the current source tree build should be fine. 3) Then try using julia from the source code build cxx package Yea like Isaiah says, originally this built by pointing to the source tree, it's still there. 4) Then perform the make install and link the version of julia of the decaxemical folder with my system And hopefully this will work? The tricky part. There's a reasonable change it will just work, and likewise there's a good chance it won't and it all revolves around what Cxx expects from Julia and does Julia make install copy whatever that is into the install directory. I am just asking to be sure before I proceed with any attempt, as the make command is really time con- suming, so want first to be sure that I am doing what you are actually suggesting (: On Friday, July 17, 2015 at 6:24:21 PM UTC+2, Jeff Waller wrote: Yea I think what you're seeing is that Cxx needs to use the source tree for example Make.inc only exists in the source tree while embedding assumes the installed tree. How to reconcile this the best way I'm not sure yet. I myself found Cxx interesting enough to try, but the build failed a couple of times and I haven't had a chance to pick it back up. But here's what I assume could be done. Don't attempt to do them at the same time but first Cxx (using source) and then embed second (using install). Build Cxx following the Cxx instructions. Then install (this is the tricky part and only something I can guess at right now). You might find that a number of things necessary for Cxx to function are not installed by default, or it will all go smoothly. I think though that Cxx is going to need clang in some way and that is definitely NOT installed by default. I'm not sure how much Julia must/can provide and how much the Cxx package can/must provide. Then build embed against installed stuff. Report errors, they may require multiple iterations.
[julia-users] Re: Errors while trying to use cxx and embed Julia together
So, in case it will be of any help to you here is the exact message I receive: julia Pkg.build(Cxx) INFO: Building Cxx Tuning for julia installation at: /home/kostav/Julian/julia-f428392003/bin BuildBootstrap.Makefile:2: /home/kostav/Julian/julia-f428392003/bin/../../deps/Versions.make: No such file or directory BuildBootstrap.Makefile:3: /home/kostav/Julian/julia-f428392003/bin/../../Make.inc: No such file or directory make: *** No rule to make target '/home/kostav/Julian/julia-f428392003/bin/../../Make.inc'. Stop. =[ ERROR: Cxx ]= LoadError: failed process: Process(`make -f BuildBootstrap.Makefile JULIA_HOME=/home/kostav/Julian/julia-f428392003/bin`, ProcessExited(2)) [2] while loading /home/kostav/.julia/v0.4/Cxx/deps/build.jl, in expression starting on line 16 [ BUILD ERRORS ] WARNING: Cxx had build errors. - packages with build errors remain installed in /home/kostav/.julia/v0.4 - build the package(s) and all dependencies with `Pkg.build(Cxx)` - build a single package by running its `deps/build.jl` script On Saturday, July 18, 2015 at 11:35:32 PM UTC+2, Jeff Waller wrote: On Saturday, July 18, 2015 at 5:24:33 AM UTC-4, Kostas Tavlaridis-Gyparakis wrote: Hello again and thanks a lot for the suggestions. Thing is, I went back to the source version of Julia where Cxx is already built and runs properly, so there wasn't much for me to do, I run in terminal also the command of: addHeaderDir(/home/kostav/julia/src/) Then proceeded again with make install and run the version of julia from this folder but still not being able to use or install Cxx. So, maybe I didn't understand properly what you were suggesting for me to do in the source version of Julia... Or maybe there is sth else I should try..? Well it's guesswork on my part, the exact failure would be helpful. However, I'm going to try to do this as well. Not exactly the thing you're doing but related, you're more familiar with Cxx, and I'm more familiar with embed, let's see what can be done.
[julia-users] Re: Errors while trying to use cxx and embed Julia together
On Saturday, July 18, 2015 at 5:24:33 AM UTC-4, Kostas Tavlaridis-Gyparakis wrote: Hello again and thanks a lot for the suggestions. Thing is, I went back to the source version of Julia where Cxx is already built and runs properly, so there wasn't much for me to do, I run in terminal also the command of: addHeaderDir(/home/kostav/julia/src/) Then proceeded again with make install and run the version of julia from this folder but still not being able to use or install Cxx. So, maybe I didn't understand properly what you were suggesting for me to do in the source version of Julia... Or maybe there is sth else I should try..? Well it's guesswork on my part, the exact failure would be helpful. However, I'm going to try to do this as well. Not exactly the thing you're doing but related, you're more familiar with Cxx, and I'm more familiar with embed, let's see what can be done.
Re: [julia-users] Re: Errors while trying to use cxx and embed Julia together
You are still picking up the f42... version. On Jul 18, 2015 6:41 PM, Kostas Tavlaridis-Gyparakis kostas.tavlari...@gmail.com wrote: So, in case it will be of any help to you here is the exact message I receive: julia Pkg.build(Cxx) INFO: Building Cxx Tuning for julia installation at: /home/kostav/Julian/julia-f428392003/bin BuildBootstrap.Makefile:2: /home/kostav/Julian/julia-f428392003/bin/../../deps/Versions.make: No such file or directory BuildBootstrap.Makefile:3: /home/kostav/Julian/julia-f428392003/bin/../../Make.inc: No such file or directory make: *** No rule to make target '/home/kostav/Julian/julia-f428392003/bin/../../Make.inc'. Stop. =[ ERROR: Cxx ]= LoadError: failed process: Process(`make -f BuildBootstrap.Makefile JULIA_HOME=/home/kostav/Julian/julia-f428392003/bin`, ProcessExited(2)) [2] while loading /home/kostav/.julia/v0.4/Cxx/deps/build.jl, in expression starting on line 16 [ BUILD ERRORS ] WARNING: Cxx had build errors. - packages with build errors remain installed in /home/kostav/.julia/v0.4 - build the package(s) and all dependencies with `Pkg.build(Cxx)` - build a single package by running its `deps/build.jl` script On Saturday, July 18, 2015 at 11:35:32 PM UTC+2, Jeff Waller wrote: On Saturday, July 18, 2015 at 5:24:33 AM UTC-4, Kostas Tavlaridis-Gyparakis wrote: Hello again and thanks a lot for the suggestions. Thing is, I went back to the source version of Julia where Cxx is already built and runs properly, so there wasn't much for me to do, I run in terminal also the command of: addHeaderDir(/home/kostav/julia/src/) Then proceeded again with make install and run the version of julia from this folder but still not being able to use or install Cxx. So, maybe I didn't understand properly what you were suggesting for me to do in the source version of Julia... Or maybe there is sth else I should try..? Well it's guesswork on my part, the exact failure would be helpful. However, I'm going to try to do this as well. Not exactly the thing you're doing but related, you're more familiar with Cxx, and I'm more familiar with embed, let's see what can be done.
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Yea I think what you're seeing is that Cxx needs to use the source tree for example Make.inc only exists in the source tree while embedding assumes the installed tree. How to reconcile this the best way I'm not sure yet. I myself found Cxx interesting enough to try, but the build failed a couple of times and I haven't had a chance to pick it back up. But here's what I assume could be done. Don't attempt to do them at the same time but first Cxx (using source) and then embed second (using install). Build Cxx following the Cxx instructions. Then install (this is the tricky part and only something I can guess at right now). You might find that a number of things necessary for Cxx to function are not installed by default, or it will all go smoothly. I think though that Cxx is going to need clang in some way and that is definitely NOT installed by default. I'm not sure how much Julia must/can provide and how much the Cxx package can/must provide. Then build embed against installed stuff. Report errors, they may require multiple iterations.
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Hello, Just to be sure that I am understanding correctly what your proposal. You suggest I should: 1) Completely uninstall Julia 2) Recompile the source code (i.e. run make) 3) Then try using julia from the source code build cxx package 4) Then perform the make install and link the version of julia of the decaxemical folder with my system And hopefully this will work? I am just asking to be sure before I proceed with any attempt, as the make command is really time con- suming, so want first to be sure that I am doing what you are actually suggesting (: On Friday, July 17, 2015 at 6:24:21 PM UTC+2, Jeff Waller wrote: Yea I think what you're seeing is that Cxx needs to use the source tree for example Make.inc only exists in the source tree while embedding assumes the installed tree. How to reconcile this the best way I'm not sure yet. I myself found Cxx interesting enough to try, but the build failed a couple of times and I haven't had a chance to pick it back up. But here's what I assume could be done. Don't attempt to do them at the same time but first Cxx (using source) and then embed second (using install). Build Cxx following the Cxx instructions. Then install (this is the tricky part and only something I can guess at right now). You might find that a number of things necessary for Cxx to function are not installed by default, or it will all go smoothly. I think though that Cxx is going to need clang in some way and that is definitely NOT installed by default. I'm not sure how much Julia must/can provide and how much the Cxx package can/must provide. Then build embed against installed stuff. Report errors, they may require multiple iterations.
Re: [julia-users] Re: Errors while trying to use cxx and embed Julia together
Somehow your setup has regressed here. Cxx.jl was loading fine in your original email, so go back to that version and call: addHeaderDir(/home/kostav/julia/src/) because that is where julia.h lives. On Fri, Jul 17, 2015 at 1:44 PM, Kostas Tavlaridis-Gyparakis kostas.tavlari...@gmail.com wrote: Hello, Just to be sure that I am understanding correctly what your proposal. You suggest I should: 1) Completely uninstall Julia 2) Recompile the source code (i.e. run make) 3) Then try using julia from the source code build cxx package 4) Then perform the make install and link the version of julia of the decaxemical folder with my system And hopefully this will work? I am just asking to be sure before I proceed with any attempt, as the make command is really time con- suming, so want first to be sure that I am doing what you are actually suggesting (: On Friday, July 17, 2015 at 6:24:21 PM UTC+2, Jeff Waller wrote: Yea I think what you're seeing is that Cxx needs to use the source tree for example Make.inc only exists in the source tree while embedding assumes the installed tree. How to reconcile this the best way I'm not sure yet. I myself found Cxx interesting enough to try, but the build failed a couple of times and I haven't had a chance to pick it back up. But here's what I assume could be done. Don't attempt to do them at the same time but first Cxx (using source) and then embed second (using install). Build Cxx following the Cxx instructions. Then install (this is the tricky part and only something I can guess at right now). You might find that a number of things necessary for Cxx to function are not installed by default, or it will all go smoothly. I think though that Cxx is going to need clang in some way and that is definitely NOT installed by default. I'm not sure how much Julia must/can provide and how much the Cxx package can/must provide. Then build embed against installed stuff. Report errors, they may require multiple iterations.
[julia-users] Re: Errors while trying to use cxx and embed Julia together
Some notes I think a gist might be better and then we can annotate and stuff in place. Google groups is just a mailing list and is bad for extended debugging info don't worry about it too much just a suggestion. 1) jl_value_t * ret = jl_call2(func, argument, argument2); sol = jl_unbox_float64(ret); this is ok for this example and testing and the fact you are very confident it wont fail, but in general you always want to follow this up with jl_value_t *ex = jl_exception_occurred(); because something could go wrong and then all bets are off. 2) CFLAGS = -fPIC -Wall -g -Wl,-rpath,/home/kostav/julia/usr/lib -Wl,-rpath,/home/kostav/julia/usr/lib--- Strictly speaking these are flags for the linker they might be being applied incorrectly here 3) #include(/home/kostav/julia/src/julia.h) cxxinclude(ArrayMaker.h) maker = @cxxnew ArrayMaker() Ooh, I don't know about that. Because you are starting julia, and then using Cxx to create ArrayMaker which starts embedded Julia and so you have Julia running inside Julia, I feel that's a little too crazy for Julia in its current state to handle. Perhaps that explains the never returns behavior. 4) Did you see my comments at the end of the previous thread. I see you're using Cxx here and I think that has some requirements on using the source tree since it needs access a bunch of LLVM libs not normally distributed, and probably some other things as well. I wonder if those things could be copied into the distribution tree manually for this and it would end up helping?