These are chat archives for bluescarni/pagmo_reborn

3rd
May 2016
Dario Izzo
@darioizzo
May 03 2016 06:55
Good morning!!! Today I will write the tests and finish docs on the ZDT suite. Then? Should I finish up the population class or start the work on the algorithm class in case that makes us change our mind on the current structure of the population class?
Francesco Biscani
@bluescarni
May 03 2016 07:31
maybe finish the pop class? we can always iterate later
I am at home with fever today, and also need to finish some urgent bullshit for work work :(
Dario Izzo
@darioizzo
May 03 2016 07:32
k then I will make docs and tests for pop ..
Yep, Ben got you!
Francesco Biscani
@bluescarni
May 03 2016 07:33
I hope he does not get it as well otherwise... https://www.myinstants.com/instant/its-a-disaster-6mil-echoslam/
Dario Izzo
@darioizzo
May 03 2016 07:34
lol just rewatched the video ...
Francesco Biscani
@bluescarni
May 03 2016 07:39
Marcus Märtens
@CoolRunning
May 03 2016 08:49
Hey! Quick update: boost compiles quite easy with MSVC. CMake constructs some solution-file for PaGMO but then things are odd. Wasn't able to build an executable with Visual Studio yet.
Francesco Biscani
@bluescarni
May 03 2016 08:50
can you be more specific on the problems?
Marcus Märtens
@CoolRunning
May 03 2016 08:51
I am investigating. The odd thing is: the solution file gives some targets in Visual studio, but I do not see any sources. It compiles, but it does only produce empty folder.
Francesco Biscani
@bluescarni
May 03 2016 08:52
did you enable the compilation of tutorials and/or unit tests in the cmake?
Marcus Märtens
@CoolRunning
May 03 2016 08:52
From what I have seen in the internet, it should show me source-files
Nope. I was wondering if that was necessary?
Tests are problematic though... Boost-issues.
Tutorials I haven't tried.
I also did that at home. Need to prepare my work PC in order to reproduce the stuff here.
Francesco Biscani
@bluescarni
May 03 2016 08:56
pagmo is now a header-only librar, so the only "source files" are those in the tutorials, examples and tests
probably the easiest thing is to start with the tutorials as those do not need to link to boost I believe
Marcus Märtens
@CoolRunning
May 03 2016 08:57
Ah, but there was a main.cpp? Does that mean anything?
Francesco Biscani
@bluescarni
May 03 2016 08:57
I think it's just there to do some experiments, but probably it is to be removed eventually
it's just handy to test things quickly
Marcus Märtens
@CoolRunning
May 03 2016 08:59
But still this should appear imho. I will give the tutorials a trial as I do not need boost for it, I should be able to do it now.
There is also a little CMake policy warning:
CMake Warning (dev) at cmake_modules/yacma/YACMACompilerLinkerSettings.cmake:12 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Dario Izzo
@darioizzo
May 03 2016 09:04
I also had a warning on osx .... its good to test different environments so we can get rid of all these glitches
Francesco Biscani
@bluescarni
May 03 2016 09:06
what version of cmake are you using?
I can probably fix that
Marcus Märtens
@CoolRunning
May 03 2016 09:06
3.5.2.
Francesco Biscani
@bluescarni
May 03 2016 09:06
ok I should be able to reproduce it here hopefully
Marcus Märtens
@CoolRunning
May 03 2016 09:07
Concerning the tutorials: now I indeed see some source-files, but... building seems buggy.
Dario Izzo
@darioizzo
May 03 2016 09:08
details?
Marcus Märtens
@CoolRunning
May 03 2016 09:08
========== Build: 0 succeeded, 2 failed, 1 up-to-date, 1 skipped ==========
multiple errors in one of the examples
Dario Izzo
@darioizzo
May 03 2016 09:08
You should have a tab somewhere to see the exact output from the compiler
Francesco Biscani
@bluescarni
May 03 2016 09:08
can you paste the error log here?
Marcus Märtens
@CoolRunning
May 03 2016 09:09
1>------ Build started: Project: example0, Configuration: Debug Win32 ------
2>------ Build started: Project: example0_gh, Configuration: Debug Win32 ------
1> example0.cpp
2> example0_gh.cpp
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(151): error C2686: cannot overload static and non-static member functions with the same parameter types
1> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(151): note: could be 'pagmo::sparsity_pattern pagmo::detail::prob_inner<T>::gradient_sparsity_impl(const U &)'
1> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(151): note: or 'pagmo::sparsity_pattern pagmo::detail::prob_inner<T>::gradient_sparsity_impl(const U &) const'
1> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(316): note: see reference to class template instantiation 'pagmo::detail::prob_inner<T>' being compiled
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(205): error C2686: cannot overload static and non-static member functions with the same parameter types
1> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(205): note: could be 'std::vector<pagmo::sparsity_pattern,std::allocator<_Ty>> pagmo::detail::prob_inner<T>::hessians_sparsity_impl(const U &)'
1> with
1> [
1> _Ty=pagmo::sparsity_pattern
1> ]
1> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(205): note: or 'std::vector<pagmo::sparsity_pattern,std::allocator<_Ty>> pagmo::detail::prob_inner<T>::hessians_sparsity_impl(const U &) const'
1> with
1> [
1> _Ty=pagmo::sparsity_pattern
1> ]
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(151): error C2686: cannot overload static and non-static member functions with the same parameter types
2> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(151): note: could be 'pagmo::sparsity_pattern pagmo::detail::prob_inner<T>::gradient_sparsity_impl(const U &)'
2> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(151): note: or 'pagmo::sparsity_pattern pagmo::detail::prob_inner<T>::gradient_sparsity_impl(const U &) const'
2> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(316): note: see reference to class template instantiation 'pagmo::detail::prob_inner<T>' being compiled
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(205): error C2686: cannot overload static and non-static member functions with the same parameter types
2> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(205): note: could be 'std::vector<pagmo::sparsity_pattern,std::allocator<_Ty>> pagmo::detail::prob_inner<T>::hessians_sparsity_impl(const U &)'
2> with
2> [
2> _Ty=pagmo::sparsity_pattern
2> ]
2> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(205): note: or 'std::vector<pagmo::sparsity_pattern,std::allocator<_Ty>> pagmo::detail::prob_inner<T>::hessians_sparsity_impl(const U &) const'
2> with
2> [
2> _Ty=pagmo::sparsity_pattern
2> ]
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(992): error C2146: syntax error: missing ')' before identifier 'or'
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(992): error C3861: 'or': identifier not found
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(992): error C2059: syntax error: ')'
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(993): error C2059: syntax error: ';'
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(997): error C2065: 'gs': undeclared identifier
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1003): error C2065: 'gs': undeclared identifier
1>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1003): error C2228: left of '.size' must have class/struct/union
1> c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1003): note: type is 'unknown-type'
1>c:\projects\pagmo\pagmoreborn\tutorials\
and a few more
Francesco Biscani
@bluescarni
May 03 2016 09:15
right so the first problem actually looks legit
I think MSVC is still wrong about erroring out, but I think I can fix that
Marcus Märtens
@CoolRunning
May 03 2016 09:17
btw: here is the CMake-log as there was a MSVC warning there as well

System name: Windows
The C++ compiler ID is: MSVC
CMake Warning (dev) at cmake_modules/yacma/YACMACompilerLinkerSettings.cmake:12 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
cmake_modules/PAGMOCompilerLinkerSettings.cmake:1 (include)
CMakeLists.txt:28 (include)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at cmake_modules/yacma/YACMACompilerLinkerSettings.cmake:16 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
cmake_modules/PAGMOCompilerLinkerSettings.cmake:1 (include)
CMakeLists.txt:28 (include)
This warning is for project developers. Use -Wno-dev to suppress it.

Thread library:
Extra compiler flags for threading:
The 'thread_local' keyword is available.
Current CXX flags: /DWIN32 /D_WINDOWS /W3 /GR /EHsc
Current CXX debug flags: /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
Configuring done
Generating done

Francesco Biscani
@bluescarni
May 03 2016 09:19
thanks
so just for reference, the first error is regarding these two functions:
    template <typename U, typename std::enable_if<pagmo::has_gradient_sparsity<U>::value,int>::type = 0>
    static sparsity_pattern gradient_sparsity_impl(const U &p)
    {
        return p.gradient_sparsity();
    }
    template <typename U, typename std::enable_if<!pagmo::has_gradient_sparsity<U>::value,int>::type = 0>
    sparsity_pattern gradient_sparsity_impl(const U &) const
    {
        // By default a problem is dense
        auto dim = get_bounds().first.size();
        auto f_dim = get_nobj() + get_nec() + get_nic();
        return dense_gradient(f_dim, dim);
    }
the problem is that one function is marked static, the other is not
you are not supposed to overload two functions with different static qualifiers
they must be all static or all non-static
MSVC is still wrong I think though
because the first function is enabled only if the condition pagmo::has_gradient_sparsity<U>::value is true, the other only if the condition is false
so they never "exist" at the same time, there's no overloading going on
anyway I can fix this by making the second function static
doing it now
Marcus Märtens
@CoolRunning
May 03 2016 09:23
but that condition is something dynamic, no? Maybe MSVC is not checking that while compiling? Dunno - I am just a noob :)
Francesco Biscani
@bluescarni
May 03 2016 09:24
no that condition is checked at compile time, the value pagmo::has_gradient_sparsity<U>::value is a compile-time bool constant
Marcus Märtens
@CoolRunning
May 03 2016 09:24
okay
Francesco Biscani
@bluescarni
May 03 2016 09:24
so the idea in the new pagmo is that you can use as a problem class any class that provides a certain set of functions/methods in its interface
you don't need to derive from anything
Marcus Märtens
@CoolRunning
May 03 2016 09:25
Dario mentioned that
Francesco Biscani
@bluescarni
May 03 2016 09:25
yeah so the idea is that things like pagmo::has_gradient_sparsity<U>::value are constructs to detect if a struct/class provides a specific method
at compile time
if pagmo::has_gradient_sparsity<U>::value is true, then it means that the class type U has a method called gradient_sparsity() with a certain signature
if U does not provide the method, that value will be false
all this requires modern C++ to work, and we are not sure yet if MSVC is up to the task because it might be lacking certain C++11/14 features
Marcus Märtens
@CoolRunning
May 03 2016 09:29
I see... :worried:
Francesco Biscani
@bluescarni
May 03 2016 09:29
but mingw will work for sure, so we can use that in case
it would be more useful to have a MSVC port though
Marcus Märtens
@CoolRunning
May 03 2016 09:30
Why that? Since MSVC is more windowish native?
Francesco Biscani
@bluescarni
May 03 2016 09:31
that is one reason, the other being that the software gets better if it works in different environments
it's like a virus :)
but if it does not work we can do everything on mingw, that works fine
Marcus Märtens
@CoolRunning
May 03 2016 09:33
We can try to make it work. It is just a bit tapping in the dark as I do not even know how a working thing in VS should look like. But let's figure out. This looks already better than yesterday.
Francesco Biscani
@bluescarni
May 03 2016 09:33
I don't have much experience either
I really need to set up a VM with windows
Dario Izzo
@darioizzo
May 03 2016 09:38
Committed the final ZDT problem .... tests docs and code. @CoolRunning you can have a look in case you are curious on how user will have to implement problem suites .....
Marcus Märtens
@CoolRunning
May 03 2016 09:39
I will later. For now I have to get CGP-stuff running.
Francesco Biscani
@bluescarni
May 03 2016 09:48
I pushed a couple of fixes for MSVC, could you test now?
pushed another one
Marcus Märtens
@CoolRunning
May 03 2016 09:51
will do
Dario Izzo
@darioizzo
May 03 2016 09:51
Its a pity on the right everything is screwd up in gitter
Francesco Biscani
@bluescarni
May 03 2016 09:51
@CoolRunning cheerio
yes might as well remove it :/
Marcus Märtens
@CoolRunning
May 03 2016 09:55
errors
1>------ Build started: Project: ZERO_CHECK, Configuration: Debug Win32 ------
1> Checking Build System
1> CMake does not need to re-run because C:/projects/pagmo/PaGMOreborn/build/CMakeFiles/generate.stamp is up-to-date.
1> CMake does not need to re-run because C:/projects/pagmo/PaGMOreborn/build/tutorials/CMakeFiles/generate.stamp is up-to-date.
2>------ Build started: Project: example0, Configuration: Debug Win32 ------
3>------ Build started: Project: example0_gh, Configuration: Debug Win32 ------
4>------ Skipped Build: Project: RUN_TESTS, Configuration: Debug Win32 ------
4>Project not selected to build for this solution configuration
2> Building Custom Rule C:/projects/pagmo/PaGMOreborn/tutorials/CMakeLists.txt
2> CMake does not need to re-run because C:\projects\pagmo\PaGMOreborn\build\tutorials\CMakeFiles\generate.stamp is up-to-date.
2> example0.cpp
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1043): error C2146: syntax error: missing ')' before identifier 'or'
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1043): error C3861: 'or': identifier not found
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1043): error C2059: syntax error: ')'
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1044): error C2059: syntax error: ';'
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1048): error C2059: syntax error: 'if'
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1048): error C2143: syntax error: missing ';' before '{'
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1048): error C2447: '{': missing function header (old-style formal list?)
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1107): error C2059: syntax error: '}'
2>c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1107): error C2143: syntax error: missing ';' before '}'
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(24): error C3646: 'fitness': unknown override specifier
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(24): error C2059: syntax error: '('
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(25): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(31): error C2653: 'vector_double': is not a class or namespace name
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(31): error C3646: 'get_nobj': unknown override specifier
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(31): error C2059: syntax error: '('
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(32): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(37): error C2065: 'vector_double': undeclared identifier
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(37): error C2923: 'std::pair': 'vector_double' is not a valid template type argument for parameter '_Ty1'
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(37): error C2923: 'std::pair': 'vector_double' is not a valid template type argument for parameter '_Ty2'
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(59): error C3646: 'best_known': unknown override specifier
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(59): error C2059: syntax error: '('
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(60): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(39): error C2440: 'return': cannot convert from 'initializer list' to 'std::pair'
2> C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(39): note: No constructor could take the source type, or constructor overload resolution was ambiguous
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(69): error C2065: 'problem': undeclared identifier
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(69): error C2146: syntax error: missing ';' before identifier 'p0'
2>C:\projects\pagmo\PaGMOreborn\tutorials\example0.cpp(69): err
Dario Izzo
@darioizzo
May 03 2016 09:56
The first one is because I used or instead of ||
Shall I change them all?
Marcus Märtens
@CoolRunning
May 03 2016 09:57
is "or" C++11?
Dario Izzo
@darioizzo
May 03 2016 09:57
Its valid also before in gcc and clang, not in MSVC
Not sure what the standard says .... @bluescarni ?
Francesco Biscani
@bluescarni
May 03 2016 09:59
it should be valid but eveidently MSVC does not like it
Dario Izzo
@darioizzo
May 03 2016 10:00
You want me to go through the code and change them all?
Francesco Biscani
@bluescarni
May 03 2016 10:00
maybe marcus can do it
Marcus Märtens
@CoolRunning
May 03 2016 10:01
which files?
Francesco Biscani
@bluescarni
May 03 2016 10:01
c:\projects\pagmo\pagmoreborn\tutorials../include/problem.hpp(1043)
Dario Izzo
@darioizzo
May 03 2016 10:01
Not sure where I used it maybe its only there try changing it and see if the compiler finds more
Marcus Märtens
@CoolRunning
May 03 2016 10:01
k
apparently only one occurence
lets see
3>Project not selected to build for this solution configuration
2> example0_gh.cpp
1> example0.cpp
2> example0_gh.vcxproj -> C:\projects\pagmo\PaGMOreborn\build\tutorials\Debug\example0_gh.exe
2> example0_gh.vcxproj -> C:/projects/pagmo/PaGMOreborn/build/tutorials/Debug/example0_gh.pdb (Full PDB)
1> example0.vcxproj -> C:\projects\pagmo\PaGMOreborn\build\tutorials\Debug\example0.exe
1> example0.vcxproj -> C:/projects/pagmo/PaGMOreborn/build/tutorials/Debug/example0.pdb (Full PDB)
4>------ Skipped Build: Project: ALL_BUILD, Configuration: Debug Win32 ------
4>Project not selected to build for this solution configuration
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 2 skipped ==========
Looks good?
Dario Izzo
@darioizzo
May 03 2016 10:03
better right?
can you run them and post the output?
Francesco Biscani
@bluescarni
May 03 2016 10:04
looks like it worked
Marcus Märtens
@CoolRunning
May 03 2016 10:04

C:\projects\pagmo\PaGMOreborn\build\tutorials\Debug>example0.exe
Problem name: My Problem
Global dimension: 4
Fitness dimension: 1
Number of objectives: 1
Equality constraints dimension: 0
Inequality constraints dimension: 0
Lower bounds: [-10, -10, -10, -10]
Upper bounds: [10, 10, 10, 10]

    Has gradient: false
    User implemented gradient sparsity: false
    Has hessians: false
    User implemented hessians sparsity: false

    Function evaluations: 0

Problem's extra info:
This is just a simple toy problem with one fitness,
no constraint and a fixed dimension of 4.

Calling the dimension getter: 4
Calling the fitness dimension getter: 1
Calling the bounds getter: ([-10, -10, -10, -10],[10, 10, 10, 10])
fevals: 0
calling fitness in x=[2,2,2,2]: [16]
fevals: 1
Accessing best_known: [0, 0, 0, 0]

Dario Izzo
@darioizzo
May 03 2016 10:04
looks good!
Marcus Märtens
@CoolRunning
May 03 2016 10:04
The other one: similar.
Shall I push my 2 symbol-change fix :D
Dario Izzo
@darioizzo
May 03 2016 10:05
yep
first commit!!
Marcus Märtens
@CoolRunning
May 03 2016 10:05
So proud of myself
remote: GitLab: You are not allowed to push code to protected branches on this project.
To https://gitlab.com/EuropeanSpaceAgency/PaGMOreborn.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://gitlab.com/EuropeanSpaceAgency/PaGMOreborn.git'
Dario Izzo
@darioizzo
May 03 2016 10:09
let me check
Francesco Biscani
@bluescarni
May 03 2016 10:09
do you have the ssh key and stuff like that setup correctly? I am noticing you checked out using https
Marcus Märtens
@CoolRunning
May 03 2016 10:10
I haven't done ssh-stuff
Shall I?
Dario Izzo
@darioizzo
May 03 2016 10:10
dunno I never did it ... but it works for me
Francesco Biscani
@bluescarni
May 03 2016 10:10
but you added the key no dario?
to your account
Dario Izzo
@darioizzo
May 03 2016 10:11
in gitlab?
no
Francesco Biscani
@bluescarni
May 03 2016 10:11
oh ok
Dario Izzo
@darioizzo
May 03 2016 10:11
The only difference is that I am owner, marcus developer ...
Marcus Märtens
@CoolRunning
May 03 2016 10:11
Curios: what is the reason behind using gitlab?
Francesco Biscani
@bluescarni
May 03 2016 10:11
but did you check out the code with https or git+ssh?
https://gitlab.com/profile/keys I do have ssh keys setup here
@CoolRunning mostly because my employer watches github :)
Dario Izzo
@darioizzo
May 03 2016 10:13
I used https
Shall I make Marcus owner and see if it works?
Marcus Märtens
@CoolRunning
May 03 2016 10:13
So we are all doing Guerilla development? :smile:
Francesco Biscani
@bluescarni
May 03 2016 10:13
does it ask you username/password each time you push?
Dario Izzo
@darioizzo
May 03 2016 10:13
yes
Francesco Biscani
@bluescarni
May 03 2016 10:13
right ok
@CoolRunning apart from Dario who has the luxury of doing it as part of his job :p
Dario Izzo
@darioizzo
May 03 2016 10:14
well, not exactly ... the difference is that nobody cares
And I can sell it as "working methods"
Should they ever discover it :)
Francesco Biscani
@bluescarni
May 03 2016 10:16
we should also start development in the GIT way eventually... with PRs and things like those
Dario Izzo
@darioizzo
May 03 2016 10:16
when algorithm is finished we will right?
Francesco Biscani
@bluescarni
May 03 2016 10:17
right ok... then all these problems go away
Dario Izzo
@darioizzo
May 03 2016 10:17
for now, how do we solve @CoolRunning problem?
Francesco Biscani
@bluescarni
May 03 2016 10:18
you can make him owner as a quick fix, if that works
we can always change the permissions later
Dario Izzo
@darioizzo
May 03 2016 10:18
I made him "Master" try now.
This should fix the issue if it was related to the master branch being protected
@CoolRunning works?
Marcus Märtens
@CoolRunning
May 03 2016 10:19
affirmative.
Dario Izzo
@darioizzo
May 03 2016 10:19
You are MASTER now!!!
Congrats
Marcus Märtens
@CoolRunning
May 03 2016 10:19
:sparkles:
And all I did was keep on asking stupid questions and being told to exchange or for || :smile:
Protected branches are designed to
prevent pushes from everybody except masters
prevent anyone from force pushing to the branch
prevent anyone from deleting the branch
Read more about project permissions
seems reasonable
Dario Izzo
@darioizzo
May 03 2016 10:22
Yep, lets keep it this way ...
Francesco Biscani
@bluescarni
May 03 2016 10:26
@CoolRunning can you try to change if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") to if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") in cmake_modules/yacma/YACMACompilerLinkerSettings.cmake?
Marcus Märtens
@CoolRunning
May 03 2016 10:26
k
Francesco Biscani
@bluescarni
May 03 2016 10:26
thanks
Marcus Märtens
@CoolRunning
May 03 2016 10:29
I also changed the Intel one
Warning in CMake are gone
commit?
Francesco Biscani
@bluescarni
May 03 2016 10:29
sure... can you also post the new CMake log here?
Marcus Märtens
@CoolRunning
May 03 2016 10:30
System name: Windows
The C++ compiler ID is: MSVC
Thread library:
Extra compiler flags for threading:
The 'thread_local' keyword is available.
Current CXX flags: /DWIN32 /D_WINDOWS /W3 /GR /EHsc
Current CXX debug flags: /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
Configuring done
Generating done
Francesco Biscani
@bluescarni
May 03 2016 10:31
could you also add something like this:
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC")
    set(YACMA_COMPILER_IS_MSVC 1)
endif()
after the Intel one for instance
Marcus Märtens
@CoolRunning
May 03 2016 10:33
this gives a warning though

CMake Warning (dev) at cmake_modules/yacma/YACMACompilerLinkerSettings.cmake:20 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
cmake_modules/PAGMOCompilerLinkerSettings.cmake:1 (include)
CMakeLists.txt:28 (include)
This warning is for project developers. Use -Wno-dev to suppress it.

Francesco Biscani
@bluescarni
May 03 2016 10:34
mhm forget it then, I need to do some reading :)
just commit the modifications with the " removed
actually
could you try one last thing
Marcus Märtens
@CoolRunning
May 03 2016 10:35
aye?
Francesco Biscani
@bluescarni
May 03 2016 10:35
if(MSVC)
    set(YACMA_COMPILER_IS_MSVC 1)
endif()
Marcus Märtens
@CoolRunning
May 03 2016 10:36
works
Francesco Biscani
@bluescarni
May 03 2016 10:36
ok cool!
Marcus Märtens
@CoolRunning
May 03 2016 10:37
anything else?
Francesco Biscani
@bluescarni
May 03 2016 10:42
no looks good :ok:
Marcus Märtens
@CoolRunning
May 03 2016 10:43
done
Dario Izzo
@darioizzo
May 03 2016 11:59
Population class finished (code + docs). Few notes:
  • At the moment the method random_decision_vector is there implemented, but could be useful elsewhere. We may move it later in some utils file.
  • Cereal serialization is private so that does not appear on docs or warnings
  • I like how simple it has become .... hopefully we will be able to keep it like that
Marcus Märtens
@CoolRunning
May 03 2016 11:59
:clap:
Francesco Biscani
@bluescarni
May 03 2016 12:00
coolio
I am working on the CI stuff
Dario Izzo
@darioizzo
May 03 2016 12:00
Where do you find all these little icons? You know them by heart?
CI -> yeah!!!
Francesco Biscani
@bluescarni
May 03 2016 12:00
type :
Marcus Märtens
@CoolRunning
May 03 2016 12:00
Just type ":"
Dario Izzo
@darioizzo
May 03 2016 12:01
ahah thanks :shipit:
Francesco Biscani
@bluescarni
May 03 2016 12:01
it turns out the clang builds were actually being done with GCC so I am fixing that first
Marcus Märtens
@CoolRunning
May 03 2016 12:01
This icon I could not identify by now
Francesco Biscani
@bluescarni
May 03 2016 12:01
which revealed other problems etc. etc.
Marcus Märtens
@CoolRunning
May 03 2016 12:01
Noob question: what is clang?
Francesco Biscani
@bluescarni
May 03 2016 12:01
a C++ compiler
Dario Izzo
@darioizzo
May 03 2016 12:01
o my, I wondered that yesterday, as I was getting the warning which is gcc also when using the build system
Marcus Märtens
@CoolRunning
May 03 2016 12:02
So an alternative to gcc?
Dario Izzo
@darioizzo
May 03 2016 12:02
Better error messages :)
Francesco Biscani
@bluescarni
May 03 2016 12:02
it's the native compiler on OSX and FreeBSD, and an alternative to GCC on linux you could say
you can also use it from MSVC as far as know
Marcus Märtens
@CoolRunning
May 03 2016 12:03
Okay, got it.
Francesco Biscani
@bluescarni
May 03 2016 12:03
it's actually better than GCC in some aspects, even though GCC has gotten better lately
Dario Izzo
@darioizzo
May 03 2016 12:06
How could the CI builds in clang be using gcc if it was not installed in alpine?
Francesco Biscani
@bluescarni
May 03 2016 12:06
apk update && apk add build-base clang I think this does intall GCC
Dario Izzo
@darioizzo
May 03 2016 12:06
wtf .. k
Francesco Biscani
@bluescarni
May 03 2016 12:13
so I think we cannot use alpine linux for testing on clang :/
I'll look for another image
Dario Izzo
@darioizzo
May 03 2016 12:13
uff..pity
whats the reason in a few words?
Francesco Biscani
@bluescarni
May 03 2016 12:17
boost stuff.. basically the boost packages in alpine have been compiled in a way that results in undefined references when compiling with clang
I just tried locally on my computer with docker a few ways of solving the problem but none works
Francesco Biscani
@bluescarni
May 03 2016 12:35
@darioizzo can one use any docker image on gitlab ci? or, in other words, where did you get the suggestion of alpine linux from?
Dario Izzo
@darioizzo
May 03 2016 12:36
I just looked into other projects that were doing CI in gitlab using the online service ...
The list is here:
Francesco Biscani
@bluescarni
May 03 2016 12:44
I am shivering in anticipation
Dario Izzo
@darioizzo
May 03 2016 12:45
:) cannot find the axact page ... it had a long list of gitlab CI projects yml
Marcus Märtens
@CoolRunning
May 03 2016 12:45
Ahh... and I thought list = []
We should do some TDD
Francesco Biscani
@bluescarni
May 03 2016 12:51
the ubuntu docker images are also quite small... 50MB it says here
Dario Izzo
@darioizzo
May 03 2016 12:52
still did not understand if a shared runner can run any docker image ...
... or what subset
Francesco Biscani
@bluescarni
May 03 2016 12:52
well on top of the yml file it's written image: python:3.4-alpine
and that's a standard docker image from the public archive
it would seem strange they support alpine but not ubuntu
Dario Izzo
@darioizzo
May 03 2016 12:53
I am just unable to find good docs for this shit .....
But ok, go for shittuntu
Dario Izzo
@darioizzo
May 03 2016 13:53
wtf!!!
The CI waited 19 minutes to start .... and then failed with messages I do not get here !
Francesco Biscani
@bluescarni
May 03 2016 13:54
I am getting the same error here, that's why I wanted a working clang CI build :)
Dario Izzo
@darioizzo
May 03 2016 13:54
its again the bullshit on unsigned double conversion?
i thought only gcc was giving troubles
Francesco Biscani
@bluescarni
May 03 2016 13:55
[  3%] Building CXX object tests/CMakeFiles/zdt.dir/zdt.cpp.o
In file included from /builds/EuropeanSpaceAgency/PaGMOreborn/tests/zdt.cpp:10:
/builds/EuropeanSpaceAgency/PaGMOreborn/tests/../include/problems/zdt.hpp:309:16: error: implicit conversion changes signedness: 'typename iterator_traits<__normal_iterator<double *, vector<double, allocator<double> > > >::difference_type' (aka 'long') to 'value_type' (aka 'unsigned long') [-Werror,-Wsign-conversion]
        u[0] = std::count(x.begin(), x.begin() + 30, 1.);
             ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builds/EuropeanSpaceAgency/PaGMOreborn/tests/../include/problems/zdt.hpp:313:23: error: implicit conversion changes signedness: 'int' to 'size_type' (aka 'unsigned long') [-Werror,-Wsign-conversion]
                if (x[k] == 1.) {
                    ~ ^
/builds/EuropeanSpaceAgency/PaGMOreborn/tests/../include/problems/zdt.hpp:395:23: error: implicit conversion changes signedness: 'int' to 'size_type' (aka 'unsigned long') [-Werror,-Wsign-conversion]
                if (x[k] == 1.) {
                    ~ ^
3 errors generated.
tests/CMakeFiles/zdt.dir/build.make:62: recipe for target 'tests/CMakeFiles/zdt.dir/zdt.cpp.o' failed
make[2]: *** [tests/CMakeFiles/zdt.dir/zdt.cpp.o] Error 1
make[1]: *** [tests/CMakeFiles/zdt.dir/all] Error 2
CMakeFiles/Makefile2:105: recipe for target 'tests/CMakeFiles/zdt.dir/all' failed
Makefile:94: recipe for target 'all' failed
make: *** [all] Error 2
I don't see any mention of double
std::count(x.begin(), x.begin() + 30, 1.) so I am guessing this one gives a signed int as result
Dario Izzo
@darioizzo
May 03 2016 13:55
misread sorry
difference_type
Francesco Biscani
@bluescarni
May 03 2016 13:56
yep the usual shit about iterators
Dario Izzo
@darioizzo
May 03 2016 13:58
safe to cast as it will be in [0, 30]
Francesco Biscani
@bluescarni
May 03 2016 13:58
yeah in this case you can just cast without problems
luckily
Dario Izzo
@darioizzo
May 03 2016 14:00
I do not like, though, cluttering the code with casts ..... makes it look ugly. I guess there is no solution if one wants to use std:count here
Francesco Biscani
@bluescarni
May 03 2016 14:00
btw I tried to register pagmo in appveyor but it does not allow to do it because the project is private
meh it's just a cast
Dario Izzo
@darioizzo
May 03 2016 14:00
lolfuck
point is that in this case it does not make the code better, just uglier
        u[0] = static_cast<vector_double::size_type>(std::count(x.begin(), x.begin() + 30, 1.));
Francesco Biscani
@bluescarni
May 03 2016 14:03
I am much more pissed by this fucking horribleness that makes the standard algorithm unusuable :(
Dario Izzo
@darioizzo
May 03 2016 14:04
? what algo what horribleness?
Marcus Märtens
@CoolRunning
May 03 2016 14:04
I don't understand a thing but I feel with you guys... :+1:
Francesco Biscani
@bluescarni
May 03 2016 14:05
the same thing we were discussing the other day:
std::vector<char> v(2**64 - 1);
std::count(v.begin(),v.end(),0); // <- undefined behaviour
Dario Izzo
@darioizzo
May 03 2016 14:08
@CoolRunning The discussion (which you may find well pointless) is that when you deal with iterators in c++ many std algorithm return a difference_type which is a signed integer. and cannot represent things like the size of a huge vector leading to undefined behaviour without you noticing it.
The reason to return a signed integer is that for example you want to be able to interpret negative results such as -3 as "3 positions before".
Francesco Biscani
@bluescarni
May 03 2016 14:09
right but for count it does not make any sense to have a negative value returned
Dario Izzo
@darioizzo
May 03 2016 14:09
That is true, they went for consistency I guess
Francesco Biscani
@bluescarni
May 03 2016 14:10
could have been std::make_unsigned<difference_type>::type sigh
Marcus Märtens
@CoolRunning
May 03 2016 14:10
So this is a "flaw" in the standard library then?
Which would need you to avoid using count on huge vectors?
Francesco Biscani
@bluescarni
May 03 2016 14:11
it is a theoretical hole yeah, unlikely to be of much consequence but still a pain if you want to write portable code
so if you want to be 100% sure you might have to write your own version of count, which is not difficult but still a pain
Marcus Märtens
@CoolRunning
May 03 2016 14:12
because undefined behaviour means the compiler takes a decision which will result in different behaviour depending on the underlying system?
Dario Izzo
@darioizzo
May 03 2016 14:13
you got it!
Marcus Märtens
@CoolRunning
May 03 2016 14:13
Then I can see why Francesco is so annoyed.
Francesco Biscani
@bluescarni
May 03 2016 14:13
undefined behaviour means that anything can happen
Dario Izzo
@darioizzo
May 03 2016 14:13
And its the worst enemy of Francesco..... as I am a sloppy engineer in these things I do not care as much :)
Marcus Märtens
@CoolRunning
May 03 2016 14:13
This is why I explicitly pointed out Francesco in my last statement.
Dario Izzo
@darioizzo
May 03 2016 14:14
I was late :)
Francesco Biscani
@bluescarni
May 03 2016 14:14
:p
Dario Izzo
@darioizzo
May 03 2016 14:15
do you think the CI is starting in so much more time because of the new image?
Francesco Biscani
@bluescarni
May 03 2016 14:16
I have no clue... I remember at the very beginning it was also very slow
Dario Izzo
@darioizzo
May 03 2016 14:16
the image size is 50 MB right? alpine was 35 so it cannot be download time
Francesco Biscani
@bluescarni
May 03 2016 14:17
maybe it's just overloaded at the moment?
Marcus Märtens
@CoolRunning
May 03 2016 14:30
what kind of CI are we using? Jenkins?
Dario Izzo
@darioizzo
May 03 2016 14:30
No, its the native gitlab one have a look here:
Or in the project page on the right there is a build tab where you can click
Marcus Märtens
@CoolRunning
May 03 2016 14:31
Ah - I see
How does it work? Is Gitlab compiling our sources on their servers?
Dario Izzo
@darioizzo
May 03 2016 14:32
Yes. You can define a docker image to use and then script anything.
Also the web pages are deployed automatically
Marcus Märtens
@CoolRunning
May 03 2016 14:32
nice
Dario Izzo
@darioizzo
May 03 2016 14:33
Here is the file gitlab-ci.yml that we are trying to define so that he does what we want:
the build started!!!!
I am excited :)
Marcus Märtens
@CoolRunning
May 03 2016 14:37
interesting
Dario Izzo
@darioizzo
May 03 2016 14:38
better than a dota match right?
Marcus Märtens
@CoolRunning
May 03 2016 14:38
Only if the Ubuntu-package manager would give toxic remarks
FAIL
Dario Izzo
@darioizzo
May 03 2016 14:41
ITS A DISASTERRRRRRRR!!!!!
my bad will fix it in 1 ms
Marcus Märtens
@CoolRunning
May 03 2016 14:43
What's the respawn-time of the builds? ^^
Dario Izzo
@darioizzo
May 03 2016 14:43
Before this afternoon with alpine linux was instantaneous (like max 30 sec)
Now its 20 mins, not sure if its because they are redeploying the new gitlab or something else connected to the docker image of ubuntu we are now trying to use
made a new commit. This will trigger the request for a new build
Marcus Märtens
@CoolRunning
May 03 2016 14:47
Nothing builds... buuuh
Need to go - ciao
Dario Izzo
@darioizzo
May 03 2016 14:48
lcia
nothing built as I forgot to push :) now it is
And infact you see a pending request
Dario Izzo
@darioizzo
May 03 2016 15:05
The image from ubuntu its 120 MB. I guess its the download time that somehow affects the overall CI speed
Francesco Biscani
@bluescarni
May 03 2016 15:07
we can also try other images
Dario Izzo
@darioizzo
May 03 2016 15:07
or maybe not boh, still do not understand this stuff fully :)
Yes 120 vs 68 of the alpine
Lets wait a few days and see it this becomes faster
Francesco Biscani
@bluescarni
May 03 2016 15:09
there's official fedora images and unofficial arch ones as well
Dario Izzo
@darioizzo
May 03 2016 15:10
must be here right: https://hub.docker.com/explore/ ?
Francesco Biscani
@bluescarni
May 03 2016 15:10
alpine would be best probably but if it does not work with clang it's a bit of a pain
yeah
Dario Izzo
@darioizzo
May 03 2016 15:11
yep, we could recompile the boost library correctly :)
Francesco Biscani
@bluescarni
May 03 2016 15:11
then it would take more than 20 minutes per build :)
Dario Izzo
@darioizzo
May 03 2016 15:11
THERE IS A WAY TO ONLY COMPILE ONE BOOST LIBRARY
sorry for the caps
Francesco Biscani
@bluescarni
May 03 2016 15:11
actually there is
Dario Izzo
@darioizzo
May 03 2016 15:11
thats what I am saying man
Francesco Biscani
@bluescarni
May 03 2016 15:11
when you build the boost libs you can just specify which to build
Dario Izzo
@darioizzo
May 03 2016 15:11
yep
and we only need unit test
which brings down the compile time to what? 30 s ?
Francesco Biscani
@bluescarni
May 03 2016 15:12
well there's the configuration time, plus the installation time which is nontrivial because of all the headers... at least if you want to follow the full boost procedure
Dario Izzo
@darioizzo
May 03 2016 15:13
right true forgot about that
Francesco Biscani
@bluescarni
May 03 2016 15:13
and there would be some setup to do to understand where to put the libraries etc.
probably better to move to a script rather than doing it from yaml
Dario Izzo
@darioizzo
May 03 2016 15:14
24 minutes to start the fucking VM
Francesco Biscani
@bluescarni
May 03 2016 15:14
but maybe we could have different images for different build I guess?
Dario Izzo
@darioizzo
May 03 2016 15:14
it cannot be ubuntu
yes we can
its pretty easy actually
Francesco Biscani
@bluescarni
May 03 2016 15:14
just specify a different image value per build?
Dario Izzo
@darioizzo
May 03 2016 15:14
exactly
Dario Izzo
@darioizzo
May 03 2016 15:28
tortoise git is on gitlab, they have an appveyor file in case you want to look at it
Francesco Biscani
@bluescarni
May 03 2016 15:31
we can also make the project public no?
I mean I don't think it will change much
Francesco Biscani
@bluescarni
May 03 2016 16:10
lol the build fails anyway
for the same reason :)
I suppose it's better to go back to alpine then
Dario Izzo
@darioizzo
May 03 2016 19:22
k shit ...
doing some experiments
Francesco Biscani
@bluescarni
May 03 2016 19:23
did the warning on OSX go away?
Dario Izzo
@darioizzo
May 03 2016 19:23
If you want I can go downstairs and check
while I wait for the build
Francesco Biscani
@bluescarni
May 03 2016 19:23
no rush, I thought you were on your laptop
Dario Izzo
@darioizzo
May 03 2016 19:24
I will make the stair ....
Francesco Biscani
@bluescarni
May 03 2016 19:24
the commitment of a true pagmoer :)
Dario Izzo
@darioizzo
May 03 2016 19:26

CMake Warning (dev):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.

MACOSX_RPATH is not specified for the following targets:
_core

This warning is for project developers. Use -Wno-dev to suppress it.

In PaGMO I "solved this" by setting the policy explicitly ... not sure if its just a workaround though
Francesco Biscani
@bluescarni
May 03 2016 19:28
lte me check a second
Dario Izzo
@darioizzo
May 03 2016 19:33
I have in PyGMO:
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    SET(CMAKE_MACOSX_RPATH OFF)
    SET(CMAKE_OSX_ROOT "")
    SET(CMAKE_OSX_DEPLOYMENT_TARGET "")
    # Homebrew directory added to path
    SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/local/lib)
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
setting the RPATH off solves the warning, nit sure what it does though
Francesco Biscani
@bluescarni
May 03 2016 19:34
I was reading now that setting is suggested to be ON instead?
Dario Izzo
@darioizzo
May 03 2016 19:35
by default its enabled infact ...
Francesco Biscani
@bluescarni
May 03 2016 19:35
# This is an OS X specific setting that is suggested to be enabled. See:
# https://blog.kitware.com/upcoming-in-cmake-2-8-12-osx-rpath-support/
# http://stackoverflow.com/questions/31561309/cmake-warnings-under-os-x-macosx-rpath-is-not-specified-for-the-following-targe
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    set(CMAKE_MACOSX_RPATH 1)
endif()
Can you try what happens if you append this at the end of YACMACompilerLinkersettings.cmake?
Dario Izzo
@darioizzo
May 03 2016 19:37
no warning anymore
building
Francesco Biscani
@bluescarni
May 03 2016 19:37
ok cheers
Dario Izzo
@darioizzo
May 03 2016 19:37
did you understand what it does?
Francesco Biscani
@bluescarni
May 03 2016 19:38
as I understand it, it is some type of thingie that allows to move libraries in other paths and have them working nevertheless, for use with OSX app bundles/frameworks
or something like that
Dario Izzo
@darioizzo
May 03 2016 19:38
many compilation errors ....
not related probably
looks like this clang is much better at sanitizing the headers
its giving me a lot of errors related to the fact that I forgot some headers here and there
#include <cmath>
#include <algorithm>
Francesco Biscani
@bluescarni
May 03 2016 19:41
right ok
I think it has to do with the C++ library rather than clang
as clang is working ok here on linux
Dario Izzo
@darioizzo
May 03 2016 19:42
ah right ...
Francesco Biscani
@bluescarni
May 03 2016 19:43
can you see if it is compiling with the -stdlib=libc++ option on?
Dario Izzo
@darioizzo
May 03 2016 19:43
verbose?
Francesco Biscani
@bluescarni
May 03 2016 19:43
make VERBOSE=1 yeah
is that clang from xcode or from homebrew?
Dario Izzo
@darioizzo
May 03 2016 19:43
homebrew
Francesco Biscani
@bluescarni
May 03 2016 19:44
ok it would be interesting to get the full cmake log
Dario Izzo
@darioizzo
May 03 2016 19:44
If you say so :)
MacBook-Pro:build darioizzo$ cmake ../
-- System name: Darwin
-- The C++ compiler ID is: Clang
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wshadow' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Werror' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wall' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wextra' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wnon-virtual-dtor' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Failed
-- Disabling the '-Wnoexcept' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Failed
-- Disabling the '-Wlogical-op' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wconversion' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wdeprecated' debug compiler flag.
-- Performing Test YACMA_CHECK_CXX_FLAG
-- Performing Test YACMA_CHECK_CXX_FLAG - Success
-- Enabling the '-ftemplate-depth=1024' compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-pedantic-errors' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wdisabled-optimization' debug compiler flag.
-- Performing Test YACMA_CHECK_CXX_FLAG
-- Performing Test YACMA_CHECK_CXX_FLAG - Success
-- Enabling the '-fvisibility-inlines-hidden' compiler flag.
-- Performing Test YACMA_CHECK_CXX_FLAG
-- Performing Test YACMA_CHECK_CXX_FLAG - Success
-- Enabling the '-fvisibility=hidden' compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-ftemplate-backtrace-limit=0' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-fstack-protector-all' debug compiler flag.
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG
-- Performing Test YACMA_CHECK_DEBUG_CXX_FLAG - Success
-- Enabling the '-Wodr' debug compiler flag.
-- C++14 supported by the compiler, enabling.
-- Thread library: 
-- POSIX threads detected.
-- POSIX threads affinity extensions not detected.
-- Extra compiler flags for threading: 
-- The 'thread_local' keyword is not available.
-- Current CXX flags:  -ftemplate-depth=1024 -fvisibility-inlines-hidden -fvisibility=hidden -std=c++14 
-- Current CXX debug flags: -g -Wshadow -Werror -Wall -Wextra -Wnon-virtual-dtor -Wconversion -Wdeprecated -pedantic-errors -Wdisabled-optimization -ftemplate-backtrace-limit=0 -fstack-protector-all -Wodr
-- Boost version: 1.60.0
-- Found the following Boost libraries:
--   unit_test_framework
-- Python interpreter: /usr/local/bin/python
-- Python libraries: /usr/lib/libpython2.7.dylib
-- Python include dirs: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/python2.7
-- Python library version: 2.7.10
-- OS X platform detected.
-- Output extension for compiled modules will be '.so'.
-- Python modules install path: 
-- Setting up the compilation of the Python module "_core".
-- Setting up custom extension "so" for the Python module "_core."
-- Setting up extra compiler flag "-fwrapv" for the Python module "_core".
-- Python < 3 detected, setting up extra compiler flag "-fno-strict-aliasing" for the Python module "_core."
-- Configuring done
-- Generating done
-- Build
Francesco Biscani
@bluescarni
May 03 2016 19:44
osx is a disaster you have to admit... even if it works now we have no idea if it works with xcode, it seems like there are so many variations possible on OSX
Dario Izzo
@darioizzo
May 03 2016 19:45
looks like python is from xcode here.
But I did not test it on ipython
it just builds
actually interpreter and libraries from homebrew headers from xcode
Francesco Biscani
@bluescarni
May 03 2016 19:46
yeah there's a big TODO in yacma regarding OSX support :)
Dario Izzo
@darioizzo
May 03 2016 19:46
here its all correct as he gets the homebrew python
not sure why the headers though are from XCODE
thats the only problem in this log I see
Francesco Biscani
@bluescarni
May 03 2016 19:47
but the library is also wrong isn't it? /usr/lib vs /usr/local/lib
Dario Izzo
@darioizzo
May 03 2016 19:47
fuck my eyes are really bad :) yes
library is wrong
told you that find python sucks
Why did you nit like using distutils to determine the python stuff from a set python executable?
Francesco Biscani
@bluescarni
May 03 2016 19:49
we can do it on osx if it works, on linux it seems unnecessary and as far as I remember it fucked up installation in a custom prefix
Dario Izzo
@darioizzo
May 03 2016 19:49
right .. yes thats why it automatically suggests the system site-packages directory
Francesco Biscani
@bluescarni
May 03 2016 19:49
what's the logic from distutils? do you have pointers?
logic is:
  • you find the interpreter (or let the user choose it, which is awesome)
  • then at configure he runs distutils and detect all the correct system folders related
The nice thing os that you can manually change the executable and automatically the rest is set again
The bad thing is it detects the names of the system path (one could work them but its not nice) and I am not 100% sure distutils answers are "standardized"
Francesco Biscani
@bluescarni
May 03 2016 19:53
the non-standardised part is not a problem if we limit it to one system (OSX)
Dario Izzo
@darioizzo
May 03 2016 19:53
I can only say that it worked on py2-3 win osx and arch
Francesco Biscani
@bluescarni
May 03 2016 19:53
I wouldn't change it for linux as it works fine
Dario Izzo
@darioizzo
May 03 2016 19:54
Then, if this would only be OSX its nice as the user can select the python he wants (conda, homebrew, xcode, fink) and get the system paths
Francesco Biscani
@bluescarni
May 03 2016 19:54
what I don't like about it is that it does not respect the PREFIX setup, but whatever
Dario Izzo
@darioizzo
May 03 2016 19:54
Maybe we can work the names returned to make it respect it?
Francesco Biscani
@bluescarni
May 03 2016 19:55
I don't know
I am not even sure it matters on OSX
the nice thing about the prefix is that, for instance, I can set it to /home/bluescarni/.local and, on linux, I get:
Dario Izzo
@darioizzo
May 03 2016 19:56
Example: in my case it returns the string "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages"
for the install path case
we can "use this info" to create the correct path
Francesco Biscani
@bluescarni
May 03 2016 19:57
  • headers installed in /home/bluescarni/.local/include/pagmo
  • libraries in /home/bluescarni/.local/lib
  • python modules in /home/bluescarni/.local/lib/python-x.y/site-packages
    all in a standard way, then I can just change the prefix if I want a system-wide installation, etc.
but I don't even know if it is something that people actually do on OSX to install stuff in their directories or similar
if you do pip install --user it does the same BTW
at least on linux
Dario Izzo
@darioizzo
May 03 2016 20:00
But we can use distutils to select the library and header, and use the prefix to form a path
Then its up to the user to update pythonpath (like in linux)
Francesco Biscani
@bluescarni
May 03 2016 20:00
I guess we can do that... usually one does not need to set the pythonpath if you install in .local, maybe on OSX one does
Dario Izzo
@darioizzo
May 03 2016 20:00
Also in linux (arch)
Francesco Biscani
@bluescarni
May 03 2016 20:01
you do have to set the path or do not?
Dario Izzo
@darioizzo
May 03 2016 20:01
I do yes
Francesco Biscani
@bluescarni
May 03 2016 20:01
ok that's weird.. so if you do pip install --user you won't see the installed packages unless you set the PYTHONPATH?
Dario Izzo
@darioizzo
May 03 2016 20:02
No, if I install piranha or audi using the default prefix '/usr/local' I do
Francesco Biscani
@bluescarni
May 03 2016 20:02
ah ok, so .local should work out of the box also on arch
Dario Izzo
@darioizzo
May 03 2016 20:02
whats .local ?
Francesco Biscani
@bluescarni
May 03 2016 20:03
/home/username/.local
Dario Izzo
@darioizzo
May 03 2016 20:03
and python looks there?
Francesco Biscani
@bluescarni
May 03 2016 20:03
yes on gentoo and ubuntu at least, python looks into home/username/.local/python-x.y/site-packages by default
that's what I have been using for development for years now
Dario Izzo
@darioizzo
May 03 2016 20:04
I can check in arch ....
Francesco Biscani
@bluescarni
May 03 2016 20:04
but I don't know about OSX
Dario Izzo
@darioizzo
May 03 2016 20:04
shall I climb the stairs ? :)
Francesco Biscani
@bluescarni
May 03 2016 20:04
:) can you check OSX first?
like for instace
pip install --user mpmath
then check where it writes the stuff
and if you can load the module without doing anything special
Dario Izzo
@darioizzo
May 03 2016 20:06
need I module I do not have already
any weird small modules you know?
Francesco Biscani
@bluescarni
May 03 2016 20:06
how come you have mpmath installed?
I am shocked
Dario Izzo
@darioizzo
May 03 2016 20:06
My dear
Francesco Biscani
@bluescarni
May 03 2016 20:06
that you would use multiprecision garbage :)
Dario Izzo
@darioizzo
May 03 2016 20:06
Its because you probably had me to :)
Francesco Biscani
@bluescarni
May 03 2016 20:06
lol fair nuff
Dario Izzo
@darioizzo
May 03 2016 20:07
I think we used it when debugging weierstrass new algos for P and P`
Francesco Biscani
@bluescarni
May 03 2016 20:07
pip install --user sympy?
yeah
Dario Izzo
@darioizzo
May 03 2016 20:07
Want to die?
MacBook-Pro:~ darioizzo$ pip install --user sympy
Collecting sympy
  Downloading sympy-1.0.tar.gz (4.3MB)
    100% |████████████████████████████████| 4.3MB 101kB/s 
Collecting mpmath>=0.19 (from sympy)
  Downloading mpmath-0.19.tar.gz (498kB)
    100% |████████████████████████████████| 499kB 666kB/s 
Building wheels for collected packages: sympy, mpmath
  Running setup.py bdist_wheel for sympy ... done
  Stored in directory: /Users/darioizzo/Library/Caches/pip/wheels/05/93/22/2d0f59d842347b1f38df0d3f7a3870586df60568d2a49d94c5
  Running setup.py bdist_wheel for mpmath ... done
  Stored in directory: /Users/darioizzo/Library/Caches/pip/wheels/02/2b/99/cd867d5da48d951118a8020e86c0c12a65022702426582d4b8
Successfully built sympy mpmath
Installing collected packages: mpmath, sympy
Successfully installed mpmath-0.17 sympy
You are using pip version 8.0.2, however version 8.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Francesco Biscani
@bluescarni
May 03 2016 20:08
ls .local?
Dario Izzo
@darioizzo
May 03 2016 20:08
share
I am waiting for your scream .....
Francesco Biscani
@bluescarni
May 03 2016 20:09
I don't get it...
also maybe you are using pip not from homebrew?
Dario Izzo
@darioizzo
May 03 2016 20:09
of course
Francesco Biscani
@bluescarni
May 03 2016 20:09
lol what a mess
Dario Izzo
@darioizzo
May 03 2016 20:10
I have no idea where he put sympy
but he imports it
Francesco Biscani
@bluescarni
May 03 2016 20:10
if you type sympy? in IPython it should show you
where it is from
Dario Izzo
@darioizzo
May 03 2016 20:11
/Users/darioizzo/Library/Python/2.7/lib/python/site-packages/sympy/init.pyc
Francesco Biscani
@bluescarni
May 03 2016 20:11
lol whatevs
Dario Izzo
@darioizzo
May 03 2016 20:11
Do you now appreciate the use of distutils in OSX?
Also given that all these paths and "rules" are subject to change with new osx versions
As they do not give a shit?
Francesco Biscani
@bluescarni
May 03 2016 20:14
but then we have no way of reconstructing a prefix from the information given by distutils, we should just stick with global installation
lol questo potrebbe essere sindaco di Roma :)
Francesco Biscani
@bluescarni
May 03 2016 20:18
Alfio Marchini (Roma, 1º aprile 1965) è un imprenditore, politico e giocatore di polo italiano.
lol oh god
Dario Izzo
@darioizzo
May 03 2016 20:19
povera mamma mia che sta ancora la !!
salgo
Francesco Biscani
@bluescarni
May 03 2016 20:19
non so come fai ancora a interessarti, a me viene il voltastomaco
ok
https://github.com/bluescarni/yacma/commits/master @darioizzo @CoolRunning you are both in the commit list of YACMA, which is like the most important software project ever
Marcus Märtens
@CoolRunning
May 03 2016 22:16
YACMA? Sounds like the future.
Francesco Biscani
@bluescarni
May 03 2016 22:16
it's where it's at
Marcus Märtens
@CoolRunning
May 03 2016 22:18
Is this the approach to create a building system for building CMake-stuff in order for Cmake to build build-files in order for compilers to build things? (I know, why I usually stick to interpreted languages)
Francesco Biscani
@bluescarni
May 03 2016 22:19
it's just a repository of useful cmake modules that I don't want to copy paste across projects :)
the idea is to keep it centralised so all the other projects benefit from the fixes as well
Marcus Märtens
@CoolRunning
May 03 2016 22:20
Make CMake great again!
Francesco Biscani
@bluescarni
May 03 2016 22:20
the trump steak