--- Log opened Thu Nov 29 00:00:22 2018 | ||
-!- witness [uid10044@gateway/web/irccloud.com/x-jucdwzctntkscizw] has joined #shogun | 05:58 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 10:14 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 10:14 | |
@HeikoS | lefteris: hi | 10:54 |
---|---|---|
lefteris | hello | 10:54 |
@HeikoS | lefteris: sorry I was unavailable the last few days | 10:55 |
@HeikoS | just checking the updates on your pr | 10:55 |
@HeikoS | there is this issue with the enums | 10:56 |
lefteris | No problem. I am checking other stuff in the shogun to get a feel how things work. I will soon push the minkowski distance meta example. | 10:56 |
lefteris | The enum issue is I believe a problem with the auto generation of the examples. | 10:56 |
@HeikoS | lefteris: in what sense? | 10:57 |
lefteris | in the case of generating cpp examples the enums are converted to int | 10:57 |
@HeikoS | yes | 10:57 |
lefteris | If you pass the enum converted to int to a factory then it works fine but if you pass the enum to a class then there is a problem | 10:58 |
lefteris | because the class constructor expects a enum type and not an int | 10:58 |
@HeikoS | yes | 10:59 |
@HeikoS | lefteris: there are reasons for this | 10:59 |
@HeikoS | they have to do with java and c# interfaces | 10:59 |
@HeikoS | and the way swig generates enum constants | 10:59 |
@HeikoS | and type safety | 10:59 |
lefteris | yes, I tried to make some changes yesterday and could not make the java examples work | 11:00 |
@HeikoS | and then the way the type dispatching within "put" works | 11:00 |
@HeikoS | and this casting the enums to int in cpp makes the enum example work | 11:00 |
@HeikoS | (as well as all the other examples we have so far) | 11:00 |
lefteris | maybe the way I wrote the example is problematic | 11:00 |
lefteris | ? | 11:01 |
@HeikoS | you are talking about the char feature example? | 11:01 |
lefteris | yes | 11:01 |
@HeikoS | let me check | 11:01 |
@HeikoS | btw | 11:01 |
@HeikoS | enum class also had a problem | 11:01 |
@HeikoS | (I just cannot remember what it was) | 11:01 |
@HeikoS | I tried that | 11:02 |
@HeikoS | mmh | 11:02 |
@HeikoS | one thing that is a problem is the huge refactoring effort | 11:02 |
lefteris | yeah and I am not sure if they are going to make changes to the new compiler versions. That is why I pushed a problematic PR so you can help me with that | 11:02 |
@HeikoS | yeah definitely good idea | 11:03 |
@HeikoS | ah! | 11:03 |
@HeikoS | ok so | 11:03 |
@HeikoS | https://github.com/shogun-toolbox/shogun/pull/4423/files#diff-f02a7e184cd89a2eb90e74b280d12620R4 | 11:03 |
@HeikoS | this is the reasoning: | 11:03 |
@HeikoS | the casting to int does not work with constructors that expect an enum | 11:03 |
lefteris | yes | 11:04 |
@HeikoS | as some languages are type safe | 11:04 |
@HeikoS | but | 11:04 |
@HeikoS | we actually want to get rid of all constructor calls | 11:04 |
@HeikoS | that might sound a bit crazy at first, but it has some reasons | 11:04 |
@HeikoS | that have to do with swig and modularizing the library | 11:04 |
@HeikoS | check out almost all the other meta examples | 11:05 |
lefteris | ok, I understand | 11:05 |
@HeikoS | dont have any ctor calls | 11:05 |
@HeikoS | but rather use put | 11:05 |
lefteris | yes, I saw that | 11:05 |
@HeikoS | and put has a dispatcher for the enums | 11:05 |
@HeikoS | let me try to find it | 11:05 |
lefteris | ok thanks | 11:05 |
@HeikoS | check out LibLinear.cpp:62 | 11:07 |
lefteris | ok | 11:07 |
@HeikoS | you see something like SG_ADD( (machine_int_t*) solver_type, ... ) | 11:07 |
@HeikoS | this registers the class field without the parameter framework (macro is in SGObject.h, but details can be ignored for now) | 11:08 |
lefteris | ok | 11:08 |
@HeikoS | when the field is registered, one can access with via "put" | 11:08 |
@HeikoS | but only with the *exact* type | 11:08 |
@HeikoS | so put(my_enum) wont work | 11:08 |
@HeikoS | gives a runtime error | 11:08 |
@HeikoS | but put(my_machine_int) works | 11:08 |
lefteris | ok i see | 11:09 |
@HeikoS | if you check the swig code for java/csharp | 11:09 |
@HeikoS | you will see that it translates enums to ints | 11:10 |
@HeikoS | so a call put(my_enum) from swig java will actually be a put(int) | 11:10 |
@HeikoS | so in order to unify the meta example api, we cast to machine_int in cpp | 11:10 |
lefteris | ok | 11:10 |
@HeikoS | at the expense of not being able to call ctors/methods that expect an enum | 11:11 |
lefteris | i see | 11:11 |
@HeikoS | but since we are aiming to instantiate classes using factories, that is no problemo | 11:11 |
@HeikoS | eventually, we plan to hide all but the base classes from swig | 11:11 |
@HeikoS | to make compilation faster | 11:12 |
lefteris | yes | 11:12 |
@HeikoS | so from the interfaces we only see | 11:12 |
@HeikoS | Features | 11:12 |
@HeikoS | Machine | 11:12 |
@HeikoS | Kernel | 11:12 |
@HeikoS | etc | 11:12 |
lefteris | there is line 98 in factory.h | 11:12 |
@HeikoS | but not | 11:12 |
@HeikoS | DenseFeatures | 11:12 |
@HeikoS | GaussianKernel | 11:12 |
@HeikoS | yes that is a factory that was added for another string example | 11:12 |
lefteris | Do you remember this example? | 11:13 |
@HeikoS | sure let me check | 11:13 |
lefteris | thanks | 11:13 |
lefteris | I tried to use string_features but I got an error - I don't remember now what was it. However, I will try to do that again | 11:14 |
@HeikoS | was added here: https://github.com/shogun-toolbox/shogun/pull/4345 | 11:15 |
lefteris | ok thanks | 11:15 |
@HeikoS | wuwei[m]: are you here? | 11:16 |
@HeikoS | wuwei[m]: did you end up using the string_features factory ever? | 11:16 |
@HeikoS | I canont find an example where this is used | 11:16 |
lefteris | Yeah, I could not find too. I will try to use that and update the PR. | 11:17 |
@HeikoS | lefteris: you stepped into a bit of a mess there with those enums ;) | 11:17 |
@HeikoS | lefteris: you can always add another factory (if it makes sense and solves your problem) | 11:17 |
@HeikoS | adding string features to the new api is definitely a challenge but something that we need to do | 11:17 |
lefteris | No problem. It's good think to find difficulties so we can fix them | 11:18 |
@HeikoS | yep | 11:18 |
@HeikoS | we want to get rid of the type StringFeatures in the examples eventually | 11:18 |
lefteris | Can I ask about the procedure of adding integration test data? | 11:18 |
@HeikoS | so this means we also dont want to add class specific calls such as this one | 11:19 |
@HeikoS | https://github.com/shogun-toolbox/shogun/pull/4423/files#diff-f02a7e184cd89a2eb90e74b280d12620R17 | 11:19 |
@HeikoS | instead, you would use a "get" call | 11:19 |
lefteris | ok no problem I will work on that | 11:19 |
@HeikoS | StringFeatures.cpp:1720 shows you waht is registered | 11:20 |
@HeikoS | and then if something is not registered, but computed | 11:20 |
@HeikoS | say | 11:20 |
@HeikoS | return_t my_object:compute_something | 11:20 |
@HeikoS | but this method is not part of the base class | 11:20 |
@HeikoS | then we have a neat little trick | 11:20 |
@HeikoS | where one can register a method to be accessible via "get" | 11:20 |
@HeikoS | lefteris: check this PR how to use it | 11:21 |
@HeikoS | https://github.com/shogun-toolbox/shogun/pull/4358 | 11:21 |
@HeikoS | lefteris: integration data? | 11:22 |
lefteris | yes, I updated the minkowski intergation test data. I have a PR in the shogun-data repo | 11:22 |
lefteris | so | 11:23 |
lefteris | if you merge this PR then I have to pull the changes in the submodule in the shogun repo and then add the new example? | 11:23 |
@HeikoS | so the commit you put into data has a hash | 11:24 |
lefteris | and create a PR to the shogun repo | 11:24 |
@HeikoS | since you have sent a PR with it, github "knows" the hash now | 11:24 |
@HeikoS | now in the develop repo | 11:24 |
@HeikoS | you commit "data" | 11:24 |
@HeikoS | which defines which hash of the data submodule to use | 11:24 |
@HeikoS | so the way it works is you | 11:24 |
@HeikoS | 1, send data PR | 11:25 |
@HeikoS | 2. send main PR | 11:25 |
@HeikoS | 3. we wait for CI (currently down, but it would usually run the tests with the updated data hash) | 11:25 |
@HeikoS | 4. we merge data | 11:25 |
@HeikoS | 5 we merge main PR | 11:25 |
lefteris | ok | 11:25 |
lefteris | One last question - I use ubuntu and I have the issue with the eigenvalues/vectors | 11:26 |
@HeikoS | ah yes | 11:27 |
@HeikoS | which version of ubuntu? | 11:27 |
lefteris | 18.04 | 11:27 |
@HeikoS | I wonder whether we have a buildbot for that ,let me check | 11:27 |
@HeikoS | http://buildbot.shogun-toolbox.org:8080/ | 11:28 |
lefteris | the thing is that based on the library that you use you get different tests failling | 11:28 |
@HeikoS | whats the nickname of 18.04? | 11:28 |
lefteris | Bionic Beaver | 11:28 |
@HeikoS | lefteris: yes, eigensolver implementations are OS dependent | 11:29 |
@HeikoS | super annoying | 11:29 |
@HeikoS | the sign changes | 11:29 |
lefteris | yeah | 11:29 |
@HeikoS | http://buildbot.shogun-toolbox.org:8080/#/builders/27 | 11:29 |
@HeikoS | but we have a green test build for it | 11:30 |
@HeikoS | what test is it? | 11:30 |
@HeikoS | mmh | 11:30 |
@HeikoS | no wait | 11:30 |
lefteris | converter-diffusionmaps | 11:30 |
lefteris | pipeline-pipeline | 11:30 |
@HeikoS | http://buildbot.shogun-toolbox.org:8080/#/builders/41/builds/72 | 11:30 |
lefteris | these two fail for me | 11:30 |
@HeikoS | this is it | 11:30 |
@HeikoS | I'd say for now, just don't worry about them | 11:31 |
@HeikoS | they are troublemakers | 11:31 |
@HeikoS | you see that our bioni build doesnt even compile | 11:32 |
lefteris | yeah i thought so. Maybe using intel MKL will change that. | 11:32 |
lefteris | ok. thank you Heiko for the help. things are clearer now | 11:33 |
@HeikoS | yes the errors are definitely coming from lapack calls | 11:33 |
@HeikoS | and we have been messing around with using MKL by default last year | 11:33 |
@HeikoS | needs some love | 11:33 |
@HeikoS | we are a bit undermanpowered atm | 11:33 |
@HeikoS | I hope that wiking manages to get the CI back up running | 11:34 |
@HeikoS | we moved it to azure cloud which should make many things easier | 11:34 |
@HeikoS | but will see | 11:34 |
@HeikoS | lefteris: let me know how things go with the example | 11:34 |
@HeikoS | and thanks for the efforts! | 11:34 |
wuwei[m] | HeikoS: hi | 11:34 |
lefteris | yes I understand. I am a bit slow now because I still wait for my new computer. I have a 10 years old workstation for now - Dell is slow delivering computers | 11:35 |
@HeikoS | lol ok | 11:35 |
@HeikoS | I mostly develop shogun remotely | 11:35 |
@HeikoS | on some server | 11:35 |
wuwei[m] | I remember I have a WIP string factory example | 11:35 |
@HeikoS | whenever I have access to one | 11:35 |
@HeikoS | wuwei[m]: but we never merged something? | 11:35 |
@HeikoS | lisitsyn: are we c++17 already? | 11:36 |
@HeikoS | or did we not in the end? | 11:36 |
lisitsyn | uhmmm | 11:36 |
lisitsyn | I don't know | 11:36 |
@HeikoS | lisitsyn: I forgot what we decided in belgrade :D | 11:36 |
lisitsyn | :) | 11:36 |
lisitsyn | I think it is just fine to go C++17 | 11:36 |
@HeikoS | ehehe | 11:36 |
@HeikoS | I know that | 11:36 |
@HeikoS | but what about the others? | 11:36 |
@HeikoS | I seem to remember that we decided to wait a bit more | 11:36 |
wuwei[m] | I havn't sent the pr | 11:36 |
wuwei[m] | I got some issues before | 11:37 |
wuwei[m] | but let me check | 11:37 |
@HeikoS | ok | 11:37 |
lisitsyn | HeikoS: I think we stick to what latest ubuntu supports | 11:37 |
wuwei[m] | HeikoS: I was stuck with WeightedDegreeStringKernel | 11:42 |
@HeikoS | wuwei[m]: ah I see | 11:42 |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] | 11:47 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 13:53 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 13:53 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] | 14:06 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 14:59 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:00 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Read error: No route to host] | 15:03 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 15:03 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:03 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 250 seconds] | 16:24 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 16:25 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 16:26 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Client Quit] | 16:30 | |
-!- HeikoS1 [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 16:30 | |
-!- HeikoS1 [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Client Quit] | 16:32 | |
-!- lefteris [836fb90d@gateway/web/freenode/ip.131.111.185.13] has quit [Quit: Page closed] | 16:34 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 18:36 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 18:36 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Quit: Leaving.] | 19:07 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 20:12 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 20:12 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 250 seconds] | 20:24 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has joined #shogun | 21:30 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 21:30 | |
-!- HeikoS [~heiko@p4FED5912.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] | 22:03 | |
--- Log closed Fri Nov 30 00:00:24 2018 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!