--- Log opened Fri Aug 21 00:00:45 2015 | ||
shogun-buildbot | build #1036 of nightly_default is complete: Failure [failed test notebooks] Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_default/builds/1036 blamelist: Wu Lin <yorker.lin@gmail.com>, Bj?rn Esser <bjoern.esser@gmail.com> | 06:07 |
---|---|---|
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 07:51 | |
-!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 250 seconds] | 07:55 | |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has joined #shogun | 08:17 | |
-!- lambday [c40f1065@gateway/web/freenode/ip.196.15.16.101] has joined #shogun | 09:01 | |
-!- mode/#shogun [+o lambday] by ChanServ | 09:01 | |
@lambday | lisitsyn: hey | 09:09 |
lisitsyn | lambday: hey | 09:09 |
@lambday | lisitsyn: so I was reading up a few articles regarding reducing compilation time and many of them say that pimpl helps a lot - sometimes it even halved the time required | 09:10 |
lisitsyn | ahh | 09:10 |
lisitsyn | yeah pimpl is good | 09:10 |
@lambday | lisitsyn: I am worried about the overhead - and how to fit it with the tag idea you had for getters setters | 09:11 |
@lambday | like additional mem alloc/dealloc | 09:11 |
@lambday | lisitsyn: http://www.gotw.ca/publications/mill04.htm and http://www.gotw.ca/publications/mill05.htm says custom allocator/deallocator helps at times | 09:14 |
@lambday | herb sutter | 09:14 |
lisitsyn | lambday: see post in my blog :) | 09:14 |
lisitsyn | I have crazy solution | 09:14 |
@lambday | lisitsyn: could you please give me the link? | 09:15 |
lisitsyn | a sec | 09:15 |
lisitsyn | http://sergey.lisitsyn.me/2014/04/17/opaque-pointers-revisited/ | 09:15 |
@lambday | thanks - checking | 09:16 |
lisitsyn | lambday: tldr make an assumption about pimpl size | 09:16 |
lisitsyn | and keep it in object directly | 09:16 |
@lambday | outer object | 09:17 |
@lambday | umm won't that be nonportable? | 09:17 |
@lambday | I am reading the whole thing anyway :D | 09:17 |
lisitsyn | lambday: portable but not ready for changes | 09:19 |
lisitsyn | you get static assert error if you exceed provided size | 09:20 |
lisitsyn | you add field | 09:20 |
lisitsyn | and get struct of size 48 while storage size is 32 | 09:20 |
lisitsyn | you have to change header | 09:21 |
lisitsyn | I have no idea but I don't feel its that bad | 09:21 |
@lambday | hmm.. actually herb mentioned an idea similar to yours in the article link I posted.. | 09:25 |
@lambday | but he's advising against it | 09:25 |
@lambday | he's suggesting that use pimpl in general and use fast pimpl only if you think that all the hassle is worth taking (make some benchmarks).. | 09:25 |
@lambday | but the result is impressive! | 09:27 |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 09:27 | |
lisitsyn | lambday: yeah I wouldn't advocate using it everywhere :) | 09:27 |
lisitsyn | but I was scaried with allocator patches | 09:27 |
@lambday | lisitsyn: in shogun we do have our custom allocators/deallocators - why can't we take it one step further? | 09:28 |
lisitsyn | lambday: yes | 09:28 |
lisitsyn | that's ok | 09:29 |
lisitsyn | ohh | 09:29 |
lisitsyn | I see it has exactly the same idea | 09:29 |
@lambday | yep | 09:29 |
lisitsyn | pff I should have read all the article | 09:30 |
@lambday | lol that's impossible | 09:30 |
lisitsyn | now I feel I presented an idea | 09:30 |
lisitsyn | that was presented before my birth | 09:30 |
lisitsyn | or so | 09:31 |
lisitsyn | :D | 09:31 |
lisitsyn | 1998 | 09:31 |
@lambday | :D | 09:31 |
lisitsyn | when I was 7 okay okay | 09:31 |
@lambday | is that it? | 09:31 |
@lambday | oh ya 98 | 09:31 |
@lambday | great minds think alike :D | 09:31 |
lisitsyn | idea thief | 09:31 |
lisitsyn | :D | 09:31 |
lisitsyn | I am | 09:31 |
@lambday | so I'll toy with the idea of a fast memory allocator simialr to herb's and make some benchmarks | 09:36 |
@lambday | maybe in shogun also it could work out for good | 09:36 |
lisitsyn | lambday: hmm yes lets do it | 09:40 |
lisitsyn | :) | 09:40 |
@lambday | lisitsyn: did we settle with the Tag or Property<T> idea for getters/setters? | 09:40 |
lisitsyn | lambday: neither | 09:40 |
lisitsyn | can't decide | 09:40 |
@lambday | let me check the mail | 09:40 |
lisitsyn | :D | 09:40 |
@lambday | pimpl and tag/property should go together | 09:41 |
lisitsyn | they come together nicely | 09:41 |
lisitsyn | lambday: one thing does not | 09:41 |
lisitsyn | inheritance | 09:41 |
@lambday | why do we need inheritance :P | 09:42 |
lisitsyn | lambday: although you need just one pimpl to rule them all | 09:42 |
lisitsyn | in SGObject | 09:42 |
@lambday | lisitsyn: could you please explain that part a bit? | 09:42 |
lisitsyn | lambday: if you use tags | 09:43 |
lisitsyn | you just have Map<Tag, Value> | 09:43 |
lisitsyn | in the impl | 09:43 |
lisitsyn | but you need just one | 09:43 |
@lambday | yeah | 09:43 |
@lambday | just one map you're saying | 09:43 |
@lambday | yeah | 09:43 |
lisitsyn | yes | 09:43 |
lisitsyn | we can have other things | 09:43 |
lisitsyn | to handle signals and shit | 09:43 |
lisitsyn | everything can be in SGObject | 09:44 |
@lambday | yes | 09:44 |
lisitsyn | inheritance solved | 09:44 |
lisitsyn | :D | 09:44 |
@lambday | how about serialization? | 09:44 |
lisitsyn | just save that map | 09:45 |
lisitsyn | it is as easy as it gets | 09:45 |
@lambday | yeah | 09:45 |
@lambday | :D | 09:45 |
@lambday | awesome then! | 09:45 |
lisitsyn | ok just one thing | 09:45 |
lisitsyn | I don't like tags | 09:45 |
lisitsyn | they don't come with plugins | 09:46 |
lisitsyn | however | 09:46 |
lisitsyn | no, they could be used with plugins | 09:46 |
lisitsyn | lambday: maybe we can support *both* get(string), get(tag) | 09:46 |
lisitsyn | get(string) is non typed and should be casted | 09:46 |
lisitsyn | get(tag) is typed | 09:46 |
lisitsyn | how do you like it? | 09:46 |
@lambday | what do you mean by should be casted? | 09:47 |
* lambday brb | 09:48 | |
lisitsyn | lambday: get("parameter").asInt() | 09:50 |
lisitsyn | lambday: till you cast it it is of some magic type | 09:58 |
lisitsyn | just generic 'parameter' | 09:58 |
lisitsyn | if you want to use it as int/flaot/whatever please cast :) | 09:59 |
* lambday back | 10:07 | |
@lambday | lisitsyn: yes it sounds good.. | 10:08 |
@lambday | lisitsyn: why would we need typed get(tag) then? | 10:08 |
lisitsyn | for speed | 10:08 |
@lambday | I mean, is there anything we'd miss if not that tag? apart from the fact of a bit overhead for that string comparison | 10:08 |
lisitsyn | and typed | 10:08 |
lisitsyn | typed is the most important | 10:09 |
lisitsyn | say you integrate into something high performance | 10:09 |
lisitsyn | you do call getters often | 10:09 |
@lambday | yeah that's true | 10:09 |
lisitsyn | I think it would be better to have something typed and fast as well | 10:09 |
@lambday | yeah that's true | 10:09 |
@lambday | so SWIG-wise it would remain the same as before | 10:10 |
@lambday | actually let me dig the possible implementation from the chat history - I am not recalling the details correctly | 10:11 |
lisitsyn | I see no swig issue | 10:11 |
@lambday | lisitsyn: could you please help me understand it a bit? say, I have struct C { int i; float f;}; .. how many setter/getters would we have | 10:12 |
@lambday | Tag get(std::string) | 10:13 |
lisitsyn | why get(std::string) is tag? | 10:13 |
lisitsyn | lambday: we need get(Tag<T>) for any T | 10:13 |
lisitsyn | T is int,float, + base classes of shogun | 10:14 |
@lambday | you were talking about supporting both | 10:14 |
@lambday | so Tag<T> get(std::string) and T get(Tag<T>) ?? | 10:15 |
@lambday | assuming Tag<T> has T asT() method ? | 10:15 |
lisitsyn | no | 10:15 |
lisitsyn | Parameter get(string) | 10:15 |
lisitsyn | T get(Tag<T>) | 10:15 |
@lambday | okay | 10:15 |
lisitsyn | Parameter has internal type | 10:16 |
lisitsyn | and has T as{T}() | 10:17 |
lisitsyn | if required type is not castable from the original one | 10:17 |
lisitsyn | you get runtime error | 10:17 |
@lambday | okay that sounds good | 10:17 |
@lambday | so how Parameter is related to Tag | 10:17 |
lisitsyn | no relation | 10:19 |
lisitsyn | Parameter is just a generic holder for some value | 10:19 |
@lambday | alright | 10:21 |
@lambday | well, if Tag is template, how would the Map in SGObject would work? | 10:21 |
@lambday | aah I am not finding the stammtisch log | 10:22 |
@lambday | found it | 10:22 |
lisitsyn | lambday: oops sorry | 10:29 |
lisitsyn | lambday: map would use some hash | 10:30 |
lisitsyn | whatever | 10:30 |
lisitsyn | you can convert Tag<T> to hash | 10:30 |
@lambday | demangled stuff? | 10:30 |
@lambday | oh | 10:30 |
lisitsyn | why? | 10:30 |
@lambday | na nevermind | 10:30 |
lisitsyn | hash Tag<T> = hash of its object + hash of type T + hash of its name | 10:31 |
lisitsyn | looks valid :) | 10:31 |
@lambday | yeah makes sense | 10:31 |
@lambday | name has to be there | 10:31 |
@lambday | along with others | 10:31 |
@lambday | actually all are important | 10:31 |
lisitsyn | lambday: I wouldn't care about internals | 10:32 |
lisitsyn | it is solvable for sure | 10:32 |
@lambday | yep | 10:32 |
lisitsyn | the most important is api | 10:32 |
lisitsyn | lambday: we can write unit-tests first maybe | 10:32 |
@lambday | yeah | 10:33 |
@lambday | let | 10:33 |
@lambday | let's first have these classes - and then we'll add SGObject | 10:33 |
@lambday | once this whole thing work we'll iteratively add other classes to shogun-lite | 10:34 |
@lambday | are | 10:34 |
@lambday | aer* | 10:34 |
lisitsyn | lambday: can we maybe select some time | 10:35 |
lisitsyn | to do some real coding | 10:35 |
lisitsyn | is there any time that works for you tomorrow? | 10:36 |
@lambday | lisitsyn: I can devote weekends now | 10:36 |
lisitsyn | I mean lets take a few really intense coding sessions :D | 10:36 |
@lambday | lisitsyn: tomorrow works - so does tonight | 10:36 |
@lambday | lisitsyn: yeah | 10:36 |
lisitsyn | we should be able to prototype then | 10:36 |
@lambday | I will be online more often on irc | 10:37 |
lisitsyn | lambday: what changed? | 10:37 |
@lambday | lisitsyn: weekend party session stopped :D friends are going to US for MS/PhD - I'm left alone here | 10:37 |
lisitsyn | haha lol | 10:38 |
@lambday | I'll write GRE in a couple of months | 10:38 |
lisitsyn | you going to the US as well? | 10:38 |
@lambday | no preparation yet whatsoever :D | 10:38 |
@lambday | lisitsyn: fingers crossed! Before that I want to go to UK once - maybe some internship | 10:39 |
lisitsyn | oh okay cool | 10:39 |
lisitsyn | so we have some time before you're gone | 10:39 |
lisitsyn | :D | 10:39 |
@lambday | 1 year at least | 10:39 |
lisitsyn | that happened a few times to other people | 10:39 |
@lambday | hah Heiko too is doing super busy PhD but he's there :D | 10:40 |
lisitsyn | lambday: ok what about tomorrow same time | 10:40 |
@lambday | so it really depends on the people | 10:40 |
lisitsyn | lets take tmux and write code together lol | 10:40 |
@lambday | lisitsyn: I'll be online on IRC tomorrow, say, 7:30 GMT | 10:41 |
lisitsyn | ok cool | 10:41 |
@lambday | lisitsyn: today I'll think a bit details regarding this Tag-Parameter framework | 10:41 |
@lambday | maybe make a small POC | 10:42 |
@lambday | will help us in the discussion for tomorrow | 10:42 |
lisitsyn | I can discuss things a bit later today | 10:42 |
lisitsyn | I am now heading to the office | 10:42 |
@lambday | super | 10:42 |
@lambday | I will be free in 5-6 hrs | 10:42 |
lisitsyn | cool | 10:42 |
lisitsyn | ok let me take bus and subway :D | 10:43 |
@lambday | hehe go safe! | 10:43 |
-!- lambday [c40f1065@gateway/web/freenode/ip.196.15.16.101] has quit [Quit: Page closed] | 11:49 | |
-!- lambday [c40f1065@gateway/web/freenode/ip.196.15.16.101] has joined #shogun | 11:52 | |
-!- mode/#shogun [+o lambday] by ChanServ | 11:52 | |
lisitsyn | lambday: hey | 11:55 |
@lambday | lisitsyn: heya | 11:56 |
lisitsyn | do you have access to hedonismbot? | 11:56 |
@lambday | nope | 11:56 |
@lambday | don't even know what that is | 11:56 |
@besser82 | lambday, still there? | 12:11 |
@lambday | besser82: yes | 12:11 |
@lambday | besser82: how are you? | 12:13 |
@lambday | besser82: using fedora 22 since last week - smooth! :D | 12:13 |
* lambday afk | 12:21 | |
-!- lambday [c40f1065@gateway/web/freenode/ip.196.15.16.101] has quit [Quit: Page closed] | 13:53 | |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has joined #shogun | 13:55 | |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 14:03 | |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has joined #shogun | 14:04 | |
-!- lambdday [6a3386ac@gateway/web/freenode/ip.106.51.134.172] has joined #shogun | 14:37 | |
-!- mode/#shogun [+o lambdday] by ChanServ | 14:37 | |
@besser82 | lambday, nice ^^ Have a few questions for you... | 14:55 |
@besser82 | lambdday, sry... been afk... | 14:55 |
@lambdday | besser82: hey... | 14:56 |
@lambdday | besser82: yeah shoot :) | 14:56 |
@besser82 | lambdday, I'm currently experimenting with splitting Shogun into "plugins"... | 14:56 |
@lambdday | besser82: awesome! | 14:57 |
@besser82 | So we can significantly reduce, e.g. memory needed for compiling swig-bindingins | 14:57 |
@lambdday | lisitsyn: ^^ | 14:57 |
@besser82 | He already knows ;) | 14:57 |
@besser82 | lambdday, ^ | 14:57 |
@lambdday | okay.. great! | 14:57 |
@lambdday | so what did you find | 14:57 |
@besser82 | I was thinking of making the math-part of Shogun pluginzed as well... | 14:58 |
@besser82 | like having a base-lib providing factory / prototypes of the methods | 14:58 |
@lambdday | besser82: yes that makes sense! | 14:58 |
@besser82 | and dyn-loading plugins for several backends | 14:58 |
-!- lambdday is now known as lambday | 14:59 | |
@besser82 | like a plugin for "linalg"-impl, one for "atlas / blas" and one for openCL | 14:59 |
@besser82 | lambday, ^ | 14:59 |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:84cc:4487:f96a:1751] has joined #shogun | 14:59 | |
@lambday | so linalg-impl is the base? | 14:59 |
@lambday | or it's shogun's native impl | 14:59 |
@besser82 | linalg is the current base-impl | 15:00 |
@lambday | besser82: ^ | 15:01 |
@besser82 | my plan is to have stubs as base-impl | 15:01 |
@besser82 | and then use the plugin, which is avail | 15:02 |
@besser82 | or if several are avail the one with better perdormance | 15:02 |
@besser82 | performance | 15:02 |
@besser82 | lambday, ^ | 15:02 |
@lambday | besser82: hmm.. do you think it would be better than the present header-only scenario, which we just use as more of an external lib in Shogun's cpp files? | 15:03 |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:84cc:4487:f96a:1751] has quit [Ping timeout: 246 seconds] | 15:04 | |
@lambday | I mean, the present functionality is more like how Eigen does it | 15:04 |
@lambday | no dynlibs | 15:04 |
@lambday | besser82: would putting these stuffs into separate plugins help us compilation-wise or swig-wise? | 15:08 |
@besser82 | lambday, it would help in both cases | 15:10 |
@besser82 | lambday, if we have that split, we can fully hide math-impl from swig | 15:10 |
@besser82 | lambday, like we just have the base-lib of shogun, which just holds factory / base classes for elementary-type like CSVM, exposed to swig | 15:11 |
@besser82 | everything else is performed on full c++-level then | 15:12 |
@lambday | besser82: but those things that are only used in cpp files in the implementation are also hidden from swig, isn't it? sorry I don't have much idea of how swig works.. | 15:13 |
@lambday | I mean, if we don't expose any of these math things in public API, would swig bother about them? | 15:13 |
@besser82 | lambday, yes, what happnes in cpp-files is mostly hidden from swig | 15:13 |
@besser82 | lambday, but stuff in headers, like template-stuff and all needs swig to generate wrappers for | 15:14 |
@lambday | besser82: even if the header is only included in the cpp? | 15:14 |
@besser82 | lambday, not sure, but likely yes | 15:15 |
@lambday | besser82: that's bad!!! cause in most cpp we include <Eigen/Eigen> and that's millions of lines of code!! | 15:15 |
@lambday | oh but our swig doesn't generate any wrappers for eigen types, does it? | 15:16 |
@besser82 | lambday, afaik, no... | 15:16 |
@besser82 | lambday, but it is still really big | 15:16 |
@lambday | besser82: yeah that's true | 15:16 |
@besser82 | lambday, e.g. octave-bindings currently need 6+ Gigs of RAM | 15:17 |
@besser82 | lambday, during build | 15:17 |
@lambday | so in every file that header is included, the compiler has to go through the same pain every time? or things are saved in some cache or so? | 15:17 |
@lambday | besser82: holy **** | 15:17 |
@besser82 | lambday, if one uses ccache-swig, then there is cache otherwise no | 15:18 |
@lambday | hmm | 15:18 |
@lambday | yeah that's bad! | 15:18 |
@besser82 | next thing is: pluginizing math-stuff would help to write the plugins more general... | 15:18 |
@besser82 | like it only interfaces the lib with those stubs... | 15:19 |
@besser82 | which then instances the real class from plugin... | 15:19 |
@besser82 | lambday, ^ | 15:19 |
@lambday | besser82: yeah it sounds good | 15:20 |
@besser82 | so there won't be any matter inside the plugin which backend we use for maths | 15:20 |
@lambday | besser82: so how it would work? say, I have eigen3 and viennacl both in my machine - i'd ask the factory to give me a llt solver with eigen3 backend - it then dynamically loads that plugin | 15:21 |
@besser82 | lambday, yes that way | 15:22 |
@lambday | besser82: sounds great then! | 15:22 |
@besser82 | lambday, like my_maths = mathalicious::llt_instance("eigen3"); | 15:23 |
@besser82 | my_maths.perform(&data) | 15:23 |
@lambday | besser82: sweet!! | 15:23 |
@besser82 | lambday, =) | 15:24 |
@lambday | besser82: so the thing is, we'd be using inheritance and overloading instead of compile time things | 15:24 |
@lambday | like we'd have this base class derived class hierarchy | 15:24 |
@besser82 | lambday, right, factory-class with polymorphics | 15:25 |
@lambday | besser82: it might take a performance hit, but more manageable for sure | 15:25 |
@besser82 | lambday, performance has just a little penalty on init | 15:26 |
@lambday | and also the current template-metaprogramming thingi is tough to maintain | 15:26 |
@besser82 | lambday, just a bit... we just need to turn the current stuff into generalized factories | 15:26 |
@lambday | besser82: well, virtual calls would cost us a bit compared to compile-time scenarios but that won't be bottleneck compared to the actual operation costs | 15:27 |
@besser82 | okay... but that's pretty affordable I'd say | 15:27 |
@lambday | besser82: yeah it sounds good | 15:27 |
@besser82 | lambday, =) So you think: Let's give it a shot? | 15:27 |
@lambday | besser82: yeah sure! | 15:28 |
@lambday | besser82: the issue is - from where we start? :D | 15:28 |
@lambday | lisitsyn has a prototype ready for the plugin framework - but it has to have a bit polishing - for the ABI compatibility issues with C++ | 15:29 |
@lambday | we thought of having a C layer and on top of it C++ layer | 15:29 |
@lambday | for the plugin arch | 15:29 |
@besser82 | lambday, I'm currently writing such a nice thingie ;) | 15:30 |
@lambday | besser82: superb!! please share! | 15:30 |
@besser82 | lambday, sure, when stuff is ready for test-running ;) | 15:30 |
@lambday | besser82: awesome!!! :D | 15:30 |
-!- txomon|home [~txomon@unaffiliated/txomon] has quit [Read error: Connection reset by peer] | 15:36 | |
-!- txomon|home [~txomon@unaffiliated/txomon] has joined #shogun | 15:37 | |
@besser82 | lambday, my deep idea behind it is: we keep things in seperate libs, one is shogun-baselib, one is maths and one handles plugin-stuff... | 15:38 |
@lambday | besser82: yeah.. that would be good.. | 15:39 |
@lambday | besser82: now which parts would go into baselib | 15:40 |
@lambday | we have to have all the base classes in the baselib, right? | 15:40 |
@besser82 | lambday, we need to have all shogun-classes (like CSVM, ...) in the shogun-lib... | 15:44 |
@besser82 | math-related factory-classes go into the math-lib and get interfaced with the shogun-plugins directly | 15:45 |
@besser82 | shogun-lib and math-lib interface with the pluginmanager-lib to get instances of derived classes | 15:46 |
@besser82 | lambday, ^ | 15:46 |
@besser82 | in that way, we can hide all but needed shogun-classes and their methods from swig | 15:48 |
@lambday | besser82: okay so no further granularity within shogun classes - yeah this solves one major issue | 15:48 |
@lambday | besser82: earlier when we thought of this, it was something like, say, CMachine would be in the base-lib, but CSVM would be inside a plugin.. | 15:49 |
@lambday | and then we were restricted to use only the methods in CMachine in CSVM that can be overridden | 15:50 |
@lambday | but with this approach, we won't face that issue | 15:50 |
@besser82 | lambday, that would be possible, but would cause ugly API and those short-comings you just mentioned... | 15:50 |
@besser82 | so, yes | 15:50 |
@lambday | besser82: yeah this way sounds better | 15:50 |
@lambday | the one that you mentioned | 15:50 |
@lambday | cause maths takes up quite a lot of place | 15:51 |
@lambday | so shogun-algorithms are actually client code for the math-lib | 15:51 |
@besser82 | yes, or at least the math-functions used within them | 15:52 |
@lambday | yeah basically | 15:52 |
@lambday | the algorithms are anyway mostly maths :D | 15:52 |
@besser82 | sure... but we need to keep the algorithms general | 15:53 |
@besser82 | like having the algorithm is the shogun-plugin and have it called the needed maths func from math-lib | 15:54 |
@besser82 | so we can easily change math-backends | 15:54 |
@lambday | so it's the user who decides | 15:55 |
@lambday | besser82: btw me and lisitsyn were discussing about rewriting SGObject using pimpl which should go well with plugin arch as well and reduce compile time further.. | 15:56 |
@lambday | so all the parameter stuffs go inside SGObject itself, including mem-management.. | 15:56 |
-!- txomon|home [~txomon@unaffiliated/txomon] has quit [Read error: Connection reset by peer] | 15:56 | |
lisitsyn | lambday: ah and shogun server! | 15:57 |
lisitsyn | if we hide impl | 15:57 |
lisitsyn | we can make remote sgobject | 15:57 |
@lambday | lisitsyn: REST API? :D | 15:57 |
lisitsyn | yes | 15:58 |
lisitsyn | inside | 15:58 |
-!- txomon|home [~txomon@unaffiliated/txomon] has joined #shogun | 15:58 | |
@lambday | besser82: can't wait to see your stuff :D let's all align our aims | 15:59 |
@besser82 | lambday, lisitsyn: Yeah! Sure! :D | 16:01 |
lisitsyn | lets design by commitee! :D | 16:02 |
@lambday | would be cool if we could have had that hackathon Heiko talked about last year :D | 16:05 |
@besser82 | for sure! | 16:06 |
lisitsyn | oh no with hackathon we have a risk of aiming the same goal | 16:13 |
lisitsyn | ;) | 16:13 |
@lambday | lisitsyn: that's bad? | 16:22 |
@lambday | :P | 16:22 |
lisitsyn | jk | 16:22 |
@lambday | :D | 16:23 |
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun | 17:12 | |
shogun-notifier- | shogun: Wu Lin :develop * 84c57cc / src/shogun/optimization/ (2 files): https://github.com/shogun-toolbox/shogun/commit/84c57cc3073055c349f91d55f1b35d99ede5d6fe | 17:12 |
shogun-notifier- | shogun: update comments | 17:12 |
shogun-notifier- | shogun: Wu Lin :develop * e7a54ad / src/shogun/optimization/ (5 files): https://github.com/shogun-toolbox/shogun/commit/e7a54ad1709cd671d857963f5c2662218bcba69d | 17:12 |
shogun-notifier- | shogun: updated comments | 17:12 |
shogun-notifier- | shogun: Wu Lin :develop * f3cfdfe / src/shogun/optimization/ (6 files): https://github.com/shogun-toolbox/shogun/commit/f3cfdfe94db233c2d9e93dee38a9596b8471f254 | 17:12 |
shogun-notifier- | shogun: Merge pull request #2896 from yorkerlin/develop | 17:12 |
shogun-notifier- | shogun: | 17:12 |
shogun-notifier- | shogun: update comments | 17:12 |
shogun-buildbot | build #3476 of deb1 - libshogun is complete: Failure [failed test] Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/3476 blamelist: Wu Lin <yorker.lin@gmail.com> | 17:17 |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 17:50 | |
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout] | 20:12 | |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:84cc:4487:f96a:1751] has joined #shogun | 20:32 | |
-!- shaochuan [~shaochuan@2601:647:4600:fac5:84cc:4487:f96a:1751] has quit [Ping timeout: 246 seconds] | 20:37 | |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has joined #shogun | 22:58 | |
-!- PirosB3 [~pirosb3@host216-94-dynamic.12-79-r.retail.telecomitalia.it] has quit [Quit: PirosB3] | 23:43 | |
--- Log closed Sat Aug 22 00:00:46 2015 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!