--- Log opened Fri Jun 09 00:00:05 2017 | ||
-!- olinguyen [81615ad9@gateway/web/freenode/ip.129.97.90.217] has quit [Quit: Page closed] | 00:27 | |
@wiking | ???? | 03:13 |
---|---|---|
-!- mikeling [uid89706@gateway/web/irccloud.com/x-kkmyepfbwvxthgjp] has joined #shogun | 04:29 | |
mikeling | wiking: hey! | 05:13 |
mikeling | morning Sir | 05:13 |
mikeling | wiking: ping | 06:01 |
mikeling | what's this for ? https://github.com/shogun-toolbox/shogun/blob/develop/src/shogun/base/DynArray.h#L359-L362 | 06:01 |
-!- iglesiasg [~iglesiasg@217.119.234.214] has joined #shogun | 09:21 | |
-!- mode/#shogun [+o iglesiasg] by ChanServ | 09:21 | |
-!- geektoni [5d27d5be@gateway/web/freenode/ip.93.39.213.190] has joined #shogun | 09:55 | |
shogun-buildbot | build #77 of nightly_all is complete: Success [build successful] Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_all/builds/77 | 10:01 |
@wiking | mikeling, here? | 10:07 |
mikeling | wiking: yep | 10:07 |
@wiking | mikeling, ok so i dont understand | 10:07 |
@wiking | why would you try to use std::vector<bool> | 10:07 |
@wiking | ? | 10:07 |
@wiking | :) | 10:07 |
mikeling | because we need it in DynProg | 10:08 |
mikeling | https://pastebin.mozilla.org/9024039 | 10:08 |
@wiking | yes | 10:09 |
@wiking | but why dont we use a different datastructure | 10:10 |
@wiking | for the special case of | 10:10 |
@wiking | DynamicArray<bool> | 10:10 |
@wiking | ? | 10:10 |
mikeling | wiking: yeah, but array doesn't really works, because std::array looks like can't been resize maanully | 10:11 |
mikeling | * manually | 10:11 |
@wiking | mikeling, yes you can | 10:11 |
@wiking | delete it | 10:11 |
@wiking | 1) create a new one | 10:11 |
@wiking | 2) copy stuff from the old | 10:11 |
@wiking | 3) delete the old | 10:11 |
@wiking | i mean | 10:11 |
@wiking | like old school | 10:11 |
mikeling | delete it? | 10:11 |
mikeling | mmm, so | 10:11 |
mikeling | if I got a pointer init by DynamicArray<bool>.get_array() | 10:12 |
mikeling | what will happened if I just delete the old one | 10:12 |
@wiking | yeah it's invalid | 10:13 |
@wiking | but i mean | 10:13 |
@wiking | you use the array internally | 10:13 |
@wiking | you who write the code | 10:13 |
@wiking | should know that this could happen | 10:13 |
mikeling | wiking: ok, but things will become weird for insert_element() | 10:14 |
mikeling | I need to first create a new onw | 10:15 |
mikeling | one | 10:15 |
mikeling | and copy first part of elements into it | 10:15 |
mikeling | add the new element and copy the rest of the old one | 10:15 |
mikeling | I prefer to do it by plain pointer | 10:16 |
mikeling | like bool* m_array and make things act like DynArray(bunch of mallocs) | 10:17 |
mikeling | But we could use Template Specialization to make these things happened only when the T is bool | 10:18 |
mikeling | and we use std::vector for the rest of type | 10:18 |
mikeling | I know it's weird, but so we could get rid of DynArray | 10:19 |
@wiking | yes | 10:21 |
@wiking | but i mean this was the idea until now | 10:21 |
@wiking | no? | 10:21 |
@wiking | "Template Specialization to make these things happened only when the T is bool | 10:21 |
@wiking | " | 10:21 |
@wiking | that's why i was a bit surprised when i saw a log when you were talking about std::vector<bool> | 10:21 |
mikeling | wiking: yeah, I finally give it up until this morning | 10:23 |
mikeling | I thought I could do it when I found something like std<bool>::reference | 10:23 |
mikeling | and std<bool>::pointer | 10:23 |
@wiking | nono | 10:23 |
@wiking | those are special way of arrays | 10:23 |
@wiking | because they super optimized | 10:24 |
@wiking | for the bool value | 10:24 |
@wiking | i guess the story there is that | 10:24 |
mikeling | yeah.... | 10:24 |
@wiking | they take a unit8_t | 10:24 |
mikeling | so I finally give it up | 10:24 |
@wiking | and store there 8 booleans | 10:24 |
@wiking | and use bit operations to set and get the right boolean value | 10:24 |
@wiking | ;) | 10:24 |
mikeling | so, I'm trying to use bool* now, most of works are same like we did in DynArray. | 10:27 |
mikeling | hope it can works this time | 10:27 |
@wiking | yes | 10:27 |
@wiking | it should | 10:27 |
mikeling | I really need finish it and move on | 10:27 |
@wiking | i mean if you maintain your own | 10:27 |
mikeling | really do | 10:27 |
@wiking | bool array | 10:27 |
@wiking | then it should be fine | 10:27 |
geektoni | ping wiking | 10:30 |
@wiking | pong | 10:32 |
geektoni | I get some weird errors on the last PR I made | 10:33 |
geektoni | https://travis-ci.org/shogun-toolbox/shogun/jobs/240700757#L3559 | 10:33 |
geektoni | Are they related to SWIG? | 10:33 |
@wiking | lemme check | 10:34 |
@wiking | probably | 10:35 |
@wiking | lemme see the changes | 10:35 |
@wiking | in the code | 10:35 |
@iglesiasg | wiking, mikeling: if Features and DynProg are not getting a pointer to the data, it should be possible to use std::vector<bool>, right? | 10:35 |
@wiking | iglesiasg, yes | 10:35 |
@wiking | well it's easy to test | 10:36 |
@wiking | just disable that function | 10:36 |
@wiking | get_array() | 10:36 |
@wiking | for T = bool | 10:36 |
@iglesiasg | then, I think substituting DynArray by std::vector should still be all good | 10:37 |
@iglesiasg | it might need a special treatment to explitcitly say DynArray<bool> is std::vector<bool>, otherwise DynArray<T> is std::vector<T> | 10:37 |
@iglesiasg | mikeling: does it make sense to you? | 10:38 |
@wiking | structure/DynProg.cpp: m_sign_words_array(m_sign_words.get_array()), | 10:38 |
@wiking | :) | 10:38 |
@wiking | CDynamicArray<bool> m_sign_words | 10:38 |
mikeling | iglesiasg: wiking actually I had test it and i found it do call get array | 10:38 |
@iglesiasg | then no | 10:38 |
mikeling | Yes that's it | 10:38 |
@iglesiasg | because it is geting the pointer to the data | 10:38 |
mikeling | And I also try to use int instead of bool | 10:39 |
@iglesiasg | is it reasonable to dive i if the m_sign_words_array(m_sign_words.get_array()) could be done differently? | 10:39 |
mikeling | Like 1 represent true and 0 represent false | 10:39 |
mikeling | But it somehow went wrong also | 10:40 |
@iglesiasg | m_sign_words_array(m_sign_words.get_array()) | 10:40 |
@wiking | iglesiasg, the problem with this approach | 10:40 |
@iglesiasg | that looks like it is just being used as a shorthand | 10:40 |
@wiking | is that you kind of conceptually break | 10:40 |
@wiking | DynamicArray for a special type | 10:40 |
@wiking | so i mean either disable DynamicArray<bool> as is | 10:40 |
@wiking | or make it sure that it works for all the interface of DynamicArray | 10:40 |
@iglesiasg | yeah | 10:41 |
@iglesiasg | my thinking is that since the stl also made that error | 10:41 |
@wiking | :) | 10:41 |
@iglesiasg | we have that excuse to make it as well ^_^ | 10:41 |
@wiking | well what jupyter can do.... | 10:41 |
@wiking | geektoni, hey so one thing | 10:41 |
@wiking | what is your swig version? | 10:41 |
@iglesiasg | it feels reasonable to me at the time of taking the decision of falling back to std::vector | 10:41 |
@wiking | not for me | 10:42 |
@wiking | i feel it's really awkward | 10:42 |
@wiking | to say | 10:42 |
@iglesiasg | if std::vector has that limitation and we are just making use of it, of course then we get that limitation | 10:42 |
@wiking | DynamicArray<bool> is ok until you dont get the array :) | 10:42 |
@wiking | i mean in that case | 10:42 |
@iglesiasg | yeah, it is weird | 10:42 |
@wiking | then please just remove get_array() | 10:42 |
@wiking | from the api | 10:42 |
@iglesiasg | but it is something that comes with std::vector | 10:42 |
@wiking | that might be a more reasonable thing to do ... | 10:42 |
geektoni | wiking: my swig version is 3.0.8 | 10:42 |
@wiking | ok | 10:43 |
@wiking | so lemme check some | 10:43 |
@wiking | but there's something with swig there definitely | 10:43 |
@wiking | i'm just wondering what | 10:43 |
geektoni | maybe it can't "convert" Some<>? | 10:43 |
@wiking | yeah i'm wondering what exactly could go wrong there | 10:44 |
geektoni | wiking: btw, did you receive my daily update? | 10:44 |
@wiking | geektoni, yes | 10:49 |
@iglesiasg | but yeah, I think that making our own DynArray<bool> and for any other T != bool DynArray<T> is std::vector<T> is also good | 10:51 |
geektoni | wiking: kk | 10:51 |
@wiking | geektoni, trying to see wtf is happening there | 10:54 |
@wiking | but i guess | 10:54 |
@wiking | there's an indirection problem | 10:54 |
@wiking | that since things became Some<> | 10:55 |
@wiking | because | 10:55 |
@wiking | yeah probably | 10:55 |
@wiking | no? | 10:55 |
@wiking | geektoni, i mean SGObject.parallel is now Some<Parallel> | 10:56 |
@wiking | and as the swig error says | 10:56 |
@wiking | we still call | 10:56 |
@wiking | SGObject.parallel.set_num_threads(num_threads) | 10:57 |
geektoni | it shouldn't change much | 10:57 |
geektoni | I mean | 10:57 |
geektoni | if we a pointer or a Some object | 10:57 |
@wiking | but it should be | 10:57 |
@wiking | svm.parallel->set_num_threads(num_threads) | 10:57 |
@wiking | no? | 10:57 |
geektoni | we can still reach its methods by using -> | 10:57 |
@wiking | yes | 10:57 |
geektoni | but | 10:58 |
@wiking | i mean the thing is that that mapping should be taken care by someboy | 10:58 |
@wiking | *sombody | 10:58 |
@wiking | i mean swig has no idea that Some is an indirection object | 10:58 |
@wiking | it only knows that you want | 10:59 |
@iglesiasg | Some<body> | 10:59 |
@wiking | Some<Parallel>.set_num_threads | 10:59 |
@wiking | and it tries to lookup the set_num_threads of Some | 10:59 |
@wiking | but obviously it doesn't have that | 10:59 |
geektoni | ok right | 10:59 |
geektoni | that means we need to tweak some .i file? | 10:59 |
@wiking | yep | 11:01 |
@sukey | Pull Request #3840 "[SmartPointers] Port SGObject and its unit tests to Some<>." synchronized by geektoni - https://github.com/shogun-toolbox/shogun/pull/3840 | 11:03 |
geektoni | ok, I'll give a look | 11:03 |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 11:03 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 11:03 | |
@wiking | geektoni, i guess you should be able to get some inspiration from: https://github.com/swig/swig/blob/master/Lib/shared_ptr.i | 11:04 |
@wiking | as well as | 11:04 |
@wiking | https://github.com/swig/swig/blob/master/Lib/python/boost_shared_ptr.i | 11:05 |
@wiking | but | 11:05 |
@wiking | on this thing | 11:05 |
@wiking | i think this is going to be much more complicated | 11:05 |
@wiking | as we imagined | 11:05 |
@wiking | \o/ | 11:05 |
@wiking | another shitfuck | 11:05 |
@wiking | because the swig guys did all the wrapping for | 11:05 |
@wiking | std::shared_ptr | 11:06 |
@wiking | for all the languages they support | 11:06 |
@wiking | and now what? | 11:06 |
@wiking | our plan is to do this for Some<> ? :) | 11:06 |
@wiking | i would never do this | 11:06 |
@wiking | because it's not scaleable | 11:06 |
@wiking | HeikoS, ^ | 11:07 |
@wiking | geektoni, but i mean check on it | 11:07 |
@wiking | but my suspicion is what i just wrote above | 11:07 |
@wiking | :))) | 11:07 |
micmn | sorry to interrupt :p I can't find the make target to get the preprocessed output of just one file, i.e. make Linalgblaba.i, is it possibile? | 11:07 |
@HeikoS | wiking: hi | 11:08 |
@wiking | micmn, as tehre's no such thing :( | 11:08 |
geektoni | yeah sure. Maybe it turns out to be less terrible than we think. | 11:08 |
@wiking | micmn, those .i files are being included in modshogun.i | 11:08 |
@wiking | geektoni, yep maybe :) | 11:08 |
@wiking | but i mean you do understand | 11:08 |
@wiking | nevermind :) | 11:08 |
@wiking | i mean i just dont see | 11:08 |
@wiking | how you wanna do this less complicated | 11:09 |
@wiking | than std::shared_ptr | 11:09 |
@wiking | because what you need | 11:09 |
@wiking | is for each wrapped objet | 11:09 |
@wiking | *object | 11:09 |
@wiking | on compile time generate the api | 11:09 |
@wiking | somehow | 11:09 |
@wiking | right? | 11:09 |
@wiking | api of the wrapped object :D | 11:09 |
@wiking | i mean it might work some sort of tricky indirection in case of dynamic languages | 11:09 |
@wiking | but things like | 11:10 |
@wiking | java or any other compiled language | 11:10 |
@wiking | i'm a bit suspicious | 11:10 |
@HeikoS | wiking: what is up? | 11:10 |
@wiking | so like in case of java you would constantly do object inspection? | 11:10 |
@wiking | i mean that is quite costly | 11:10 |
@wiking | ... | 11:10 |
@wiking | but ok i mean lets see | 11:10 |
@wiking | HeikoS, Some<> | 11:11 |
@wiking | and how to use those object from swig | 11:11 |
@wiking | so say you have | 11:11 |
@wiking | SGObject.parallel which is Some<Parallel> | 11:11 |
@HeikoS | isnt there something like ->as(TYPE) ? | 11:11 |
@wiking | and then let's say in python you want | 11:11 |
@wiking | svm.parallel.set_num_threads(3) | 11:11 |
@wiking | how do you translate this? | 11:12 |
@wiking | HeikoS, what ? :) | 11:12 |
@HeikoS | wiking: i have a talk now, but will think about that | 11:12 |
@HeikoS | back soon | 11:12 |
@wiking | because this what std::shared_ptr does | 11:13 |
geektoni | wiking: ok, so, right now, the only problems we have are with the R and Python interface. Other languages seem to work well (since all their test passes). | 11:13 |
@wiking | geektoni, because they dont have | 11:13 |
@wiking | those things accesd | 11:13 |
@wiking | :) | 11:13 |
@wiking | i mean those errors | 11:13 |
@wiking | in python you get not from the generated examples | 11:13 |
@wiking | but from some custom examples right? | 11:13 |
geektoni | ? what do you mean? | 11:14 |
@wiking | in CI | 11:14 |
@wiking | htere are just a handful examples | 11:14 |
@wiking | that are systematically tested | 11:14 |
@wiking | on each and every interface | 11:14 |
@wiking | those are called integration_meta_* | 11:15 |
@wiking | now if you check in the python CI error | 11:15 |
@wiking | it's all the cases | 11:15 |
@wiking | where the python_modular tests are failing | 11:15 |
@wiking | those are some custom tests on python | 11:15 |
@wiking | that are not tested on other interfaces | 11:15 |
@wiking | hence if you dont access | 11:15 |
@wiking | parallel | 11:15 |
@wiking | or other stuff from SGObject via a swig interface | 11:16 |
@wiking | of course you will not fail | 11:16 |
geektoni | ahhn ok. | 11:16 |
geektoni | well | 11:16 |
geektoni | *tableflip* | 11:16 |
@wiking | sukey tableflip | 11:16 |
@wiking | sukey: tableflip | 11:16 |
@wiking | sukey help | 11:16 |
@sukey | wiking: ship it - Display a motivation squirrel | 11:16 |
@sukey | sukey adapter - Reply with the adapter | 11:16 |
@sukey | sukey animate me <query> - The same thing as `image me`, except adds a few parameters to try to return an animated GIF instead. | 11:16 |
@sukey | sukey calculate <expression> - Calculate the given math expression. | 11:16 |
@sukey | sukey convert <expression> in <units> - Convert expression to given units. | 11:16 |
@sukey | sukey echo <text> - Reply back with <text> | 11:16 |
@sukey | sukey flip - Hubot flips a table | 11:17 |
@sukey | sukey help - Displays all of the help commands that Hubot knows about. | 11:17 |
@sukey | sukey help <query> - Displays all help commands that match <query>. | 11:17 |
@sukey | sukey image me <query> - The Original. Queries Google Images for <query> and returns a random top result. | 11:17 |
@wiking | sukey flip | 11:17 |
@sukey | sukey map me <query> - Returns a map view of the area returned by `query`. | 11:17 |
@sukey | sukey mustache me <url|query> - Adds a mustache to the specified URL or query result. | 11:17 |
@sukey | sukey ping - Reply with pong | 11:17 |
@sukey | sukey pug bomb N - get N pugs | 11:17 |
@sukey | sukey pug me - Receive a pug | 11:17 |
@sukey | sukey tell <recipients> <some message> - tell <recipients> <some message> next time they are present. | 11:17 |
@sukey | sukey the rules - Make sure hubot still knows the rules. | 11:17 |
@sukey | sukey time - Reply with current time | 11:17 |
@sukey | sukey translate me <phrase> - Searches for a translation for the <phrase> and then prints that bad boy out. | 11:17 |
@sukey | sukey translate me from <source> into <target> <phrase> - Translates <phrase> from <source> into <target>. Both <source> and <target> are optional | 11:17 |
@sukey | (╯°□°)╯︵ ┻━┻ ︵ ╯(°□° ╯) | 11:17 |
@wiking | yeeeeeeeeeeeeeey | 11:17 |
@wiking | sukey flip | 11:17 |
@sukey | (╯'□')╯︵ ┻━┻ | 11:17 |
@wiking | :> | 11:17 |
@wiking | i mean this is gonna be a serious issue | 11:17 |
@wiking | you really dont want to into this | 11:17 |
@wiking | imo | 11:17 |
@wiking | unless you want to code swig | 11:17 |
@wiking | for the next 1 month | 11:17 |
@wiking | and in a way for nothing | 11:18 |
@wiking | because that work has been done for std::shared_ptr | 11:18 |
@wiking | https://github.com/swig/swig/blob/master/Lib/java/boost_shared_ptr.i | 11:18 |
@wiking | and as you can see | 11:18 |
@wiking | these things are all nicely customised | 11:18 |
@wiking | for all the langauges :) | 11:18 |
geektoni | mmh, since there are most important things to do I would gladly skip this pain. | 11:19 |
geektoni | however | 11:19 |
geektoni | if we can't export Some<> by using swig | 11:20 |
geektoni | technically we can't port member variables to some | 11:20 |
geektoni | because they won't be accessible anymore from other languages. | 11:20 |
@wiking | :) | 11:21 |
@wiking | bingo | 11:21 |
geektoni | oh crap | 11:22 |
@wiking | geektoni, i'm just looking at this one | 11:23 |
@wiking | http://www.swig.org/Doc3.0/Library.html#Library_std_shared_ptr | 11:23 |
@wiking | i mean it seems | 11:23 |
@wiking | for me that this indirection is not even possible with std::shared_ptr | 11:23 |
@wiking | as far as i understand it now | 11:23 |
@HeikoS | wiking: re | 11:24 |
geektoni | I need to look at it more closely, because I'm not a SWIG master | 11:24 |
@wiking | and then even the more nice thing is "Some target languages have support for handling the shared_ptr reference counted smart pointer" | 11:24 |
@wiking | note the *some* part | 11:24 |
@wiking | i.e. this will limit the target languages we could even support | 11:25 |
@HeikoS | wiking: not sure I yet fully understand the problem | 11:25 |
@wiking | it's fucked :) | 11:25 |
@wiking | that's the story | 11:26 |
@HeikoS | we cannot make API like parallel part of the base class api that is generated by swig? | 11:26 |
@wiking | que? | 11:26 |
@HeikoS | i.e. no dynmiac typing for that? | 11:26 |
@HeikoS | like the parallel set_num_threads | 11:26 |
@HeikoS | cant that be part of the base API? | 11:26 |
@HeikoS | so there is no need to "get" an object before? | 11:27 |
@wiking | i really dont see | 11:27 |
@wiking | how you gonna make this | 11:27 |
@wiking | i mean i really dont fully understand the concept yet | 11:27 |
@HeikoS | is this a problem related to things like Parallel? | 11:28 |
@HeikoS | or even for things like "get_kernel"? | 11:28 |
@wiking | it's a problem | 11:28 |
@wiking | if you wanna use Some<> | 11:28 |
@wiking | so basically remove auto reference counting | 11:28 |
@wiking | i.e. get rid of | 11:28 |
@wiking | SG_REF/UNREF | 11:29 |
@wiking | so any SGObject | 11:29 |
@HeikoS | I see | 11:29 |
@HeikoS | noiche! | 11:29 |
-!- HeikoS_mobile [~Mutter@host-92-0-178-129.as43234.net] has joined #shogun | 11:30 | |
HeikoS_mobile | I guess we keep on being surprised by this multi Lang stuff | 11:31 |
@wiking | ? | 11:33 |
@HeikoS | wiking: well as in problem we didnt anticipate | 11:34 |
@wiking | well yes :) | 11:34 |
@HeikoS | wiking: so let me understand the problem | 11:34 |
@HeikoS | you call a "get" | 11:34 |
@HeikoS | you get a some<...> | 11:34 |
@wiking | what get? | 11:34 |
@HeikoS | "get_parallel" | 11:34 |
@wiking | i dont understand what kind of get? | 11:34 |
@wiking | no | 11:34 |
@wiking | nobody calls get_paralle | 11:34 |
@wiking | l | 11:34 |
@wiking | as parallel is a public | 11:34 |
@wiking | but yeah | 11:35 |
@wiking | you can call get | 11:35 |
@wiking | if you want | 11:35 |
@wiking | it doesn't change the story here | 11:35 |
@wiking | yes you get some<parallel> | 11:35 |
@HeikoS | ok | 11:35 |
@wiking | which is auto reference counted | 11:35 |
@HeikoS | then I have a some<parallel> object in say python | 11:35 |
@wiking | yes | 11:35 |
@wiking | and then you wanna call any method on it | 11:35 |
-!- HeikoS_mobile [~Mutter@host-92-0-178-129.as43234.net] has quit [Quit: Mutter: www.mutterirc.com] | 11:35 | |
@HeikoS | well that doesnt work yet | 11:36 |
@HeikoS | because it is some | 11:36 |
@HeikoS | right? | 11:36 |
@wiking | which is th method of the wrapped object | 11:36 |
@wiking | but i mean | 11:36 |
@wiking | how you plan to fix this? | 11:36 |
@HeikoS | so there needs to be a cast | 11:36 |
@wiking | what cast? | 11:36 |
@HeikoS | p = some<parallel> ... | 11:36 |
@wiking | yes an p i now some<parallel> | 11:36 |
@wiking | and? | 11:36 |
@HeikoS | p.as<API_I_WANT>().my_mymethod? | 11:36 |
@wiking | what? | 11:37 |
@wiking | :) | 11:37 |
@HeikoS | isnt that what sergey said? | 11:37 |
@HeikoS | there is a cast operation implemented somewhere in tags-swig-interface | 11:37 |
@wiking | ? | 11:37 |
@HeikoS | that can re-interpret the type of any tag object | 11:37 |
@HeikoS | lisitsyn: ^ no? | 11:38 |
@wiking | HeikoS, if you do git grep Any | 11:38 |
@wiking | in src/interfaces | 11:38 |
@wiking | there's only 1 hit | 11:39 |
-!- HeikoS_mobile [~Mutter@host-92-0-178-129.as43234.net] has joined #shogun | 11:39 | |
@wiking | python_modular/swig_typemaps.i: array=PyArray_FromAny((PyObject*)ary, NULL,0,0, NPY_FARRAY|NPY_ENSURECOPY, NULL); | 11:39 |
@wiking | but yeah wait | 11:39 |
@wiking | wrong brnahc | 11:39 |
@wiking | noup | 11:39 |
@wiking | same story for in feature/tags | 11:39 |
@HeikoS | but this problem | 11:40 |
@HeikoS | is the same as for say | 11:40 |
@HeikoS | k=mkl->get_kernels()->get(0) | 11:40 |
@HeikoS | GaussianKernel::obtain_from_generic(k).get_width() | 11:40 |
@HeikoS | no | 11:40 |
@HeikoS | ? | 11:40 |
@wiking | eh? | 11:41 |
@wiking | i dont see how that's the same | 11:41 |
@wiking | i mean MKL* get_kernels | 11:41 |
@wiking | returns a Kernel* | 11:41 |
@wiking | that has get | 11:41 |
@wiking | but you dont get any other type | 11:41 |
@wiking | just | 11:41 |
@wiking | Some | 11:41 |
-!- HeikoS_mobile [~Mutter@host-92-0-178-129.as43234.net] has quit [Remote host closed the connection] | 11:41 | |
@wiking | and Some interface only has a handful of | 11:41 |
@HeikoS | wiking: sure k is kernel | 11:42 |
@HeikoS | but no access to the methods one wants | 11:42 |
@HeikoS | and so a cast-like call is needed | 11:42 |
@HeikoS | wiking: what does lisitsyn say to this? | 11:42 |
@wiking | i have no idea | 11:42 |
@wiking | i was just guessint | 11:42 |
@wiking | *guessing | 11:42 |
@wiking | that this is a similar story | 11:42 |
@wiking | in case of swig | 11:43 |
@wiking | like std::shared_ptr | 11:43 |
@wiking | as that's kind of our Some | 11:43 |
@wiking | and if you check in swig the story of std::shared_ptr is really a non trivial story | 11:43 |
@HeikoS | yep I glanced over that | 11:44 |
@wiking | so i mean yeah maybe we have a magic | 11:44 |
@wiking | buuuut | 11:44 |
@HeikoS | wiking: and if the libshogun and the swig stuff is separated? | 11:44 |
@wiking | i'm a bit sceptical | 11:44 |
@wiking | ttyl | 11:44 |
@HeikoS | kk | 11:44 |
-!- geektoni [5d27d5be@gateway/web/freenode/ip.93.39.213.190] has quit [Quit: Page closed] | 12:36 | |
lisitsyn | wiking: HeikoS: ok did read your discussion | 13:00 |
lisitsyn | will need to take a look at std::shared_ptr in swig | 13:01 |
lisitsyn | it is no different | 13:01 |
lisitsyn | as far as I know swig extensions (even internal ones) are not hard-coded | 13:01 |
lisitsyn | so should be possible | 13:01 |
mikeling | wiking: ping | 13:32 |
mikeling | lisitsyn: Hi~ | 13:32 |
-!- geektoni [c1cdd24e@gateway/web/freenode/ip.193.205.210.78] has joined #shogun | 14:02 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Quit: Leaving.] | 14:14 | |
-!- HeikoS1 [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 14:14 | |
-!- HeikoS1 [~heiko@host-92-0-178-129.as43234.net] has quit [Client Quit] | 14:15 | |
@sukey | Pull Request #3826 "Remove duplicate code in LDA/FisherLDA and port the solvers to use linalg (WIP)" - https://github.com/shogun-toolbox/shogun/pull/3826 | 14:58 |
@sukey | Pull Request #3826 "Remove duplicate code in LDA/FisherLDA and port the solvers to use linalg (WIP)" synchronized by micmn - https://github.com/shogun-toolbox/shogun/pull/3826 | 14:59 |
-!- Saurabh7_ [Saurabh7@gateway/shell/panicbnc/x-krwoojqznvtjxuod] has quit [Ping timeout: 255 seconds] | 15:10 | |
-!- iglesiasg [~iglesiasg@217.119.234.214] has quit [Quit: leaving] | 16:07 | |
-!- geektoni [c1cdd24e@gateway/web/freenode/ip.193.205.210.78] has quit [Quit: Page closed] | 16:30 | |
-!- OXPHOS [92bd305b@gateway/web/freenode/ip.146.189.48.91] has quit [Quit: Page closed] | 17:28 | |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has joined #shogun | 17:28 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 17:28 | |
@sukey | Pull Request #3832 "use std::deque instead of DynArray(on going)" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3832 | 17:57 |
-!- HeikoS [~heiko@host-92-0-178-129.as43234.net] has quit [Ping timeout: 246 seconds] | 18:52 | |
@sukey | Pull Request #3832 "use std::deque instead of DynArray(on going)" synchronized by MikeLing - https://github.com/shogun-toolbox/shogun/pull/3832 | 19:38 |
mikeling | wiking: lisitsyn ping | 19:39 |
-!- mikeling [uid89706@gateway/web/irccloud.com/x-kkmyepfbwvxthgjp] has quit [Quit: Connection closed for inactivity] | 22:10 | |
-!- Saurabh7_ [Saurabh7@gateway/shell/panicbnc/x-qjqdjvhmwkfngaea] has joined #shogun | 23:45 | |
--- Log closed Sat Jun 10 00:00:07 2017 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!