--- Log opened Tue Apr 16 00:00:38 2019 | ||
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 03:16 | |
-!- mode/#shogun [+o wiking] by ChanServ | 03:16 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 268 seconds] | 03:21 | |
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has quit [Read error: Connection reset by peer] | 03:32 | |
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has joined #shogun | 03:34 | |
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has quit [Read error: Connection reset by peer] | 04:05 | |
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has joined #shogun | 04:07 | |
-!- sighingnow [~sighingno@2001:da8:203:81:1c3a:5657:47d3:aafb] has joined #shogun | 05:03 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 05:43 | |
-!- mode/#shogun [+o wiking] by ChanServ | 05:43 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 07:30 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 07:40 | |
-!- mode/#shogun [+o wiking] by ChanServ | 07:40 | |
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has quit [Remote host closed the connection] | 08:45 | |
-!- gf712 [90520815@gateway/web/freenode/ip.144.82.8.21] has joined #shogun | 08:51 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 09:26 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:37 | |
-!- mode/#shogun [+o wiking] by ChanServ | 09:37 | |
gf712 | wiking: ping | 10:53 |
---|---|---|
@wiking | pong | 10:53 |
gf712 | wiking: do you know what the error in the CI is about? | 10:54 |
gf712 | I got the same after pushing some code yesterday in a PR | 10:54 |
@wiking | where which | 10:54 |
@wiking | dunno what excatly you are talking about :) | 10:54 |
gf712 | wiking: https://dev.azure.com/shogunml/shogun/_build/results?buildId=1210 | 10:55 |
@wiking | ah no idea | 10:55 |
gf712 | on the develop branch | 10:55 |
gf712 | hmm seems like UB to me | 10:55 |
gf712 | but I can't replicate locally | 10:56 |
@wiking | dunno what caused this | 10:56 |
@wiking | i'm trying to add move ctor to sgobj | 10:57 |
gf712 | hmm but isn't it trivially moveable? | 11:16 |
@wiking | unique | 11:29 |
@wiking | :) | 11:29 |
@wiking | that is self and param obs list | 11:29 |
@wiking | i mean i had to add to unique the support for moving things (i.e. rvalue support) | 11:30 |
gf712 | ah I see | 11:36 |
gf712 | btw why not use unique_ptr? | 11:36 |
@wiking | dontask | 11:39 |
@wiking | gf712 i guess the idea was to add swig wrapper | 11:40 |
@wiking | gf712: btw you worked on swig python extensions | 11:40 |
@wiking | so i'm having trouble atm with this | 11:40 |
@wiking | https://github.com/shogun-toolbox/shogun/pull/4573/files#r275666730 | 11:40 |
@wiking | although this looks like this in the generated code | 11:41 |
@wiking | __setstate__(CSGObject *self, PyObject*state){ .... self = obj.get();} | 11:42 |
@wiking | when i do this with python | 11:42 |
@wiking | and then do print(obj) | 11:42 |
@wiking | basically it's an empty object of type obj | 11:42 |
@wiking | which is weird as this would just set the pointer to somewhere else or? | 11:43 |
gf712 | obj.get()->to_string() returns what expect> | 11:48 |
gf712 | ?* | 11:48 |
gf712 | or obj->to_string() | 11:48 |
@wiking | ok so that is the right obj | 11:49 |
@wiking | so the deser part works good | 11:49 |
@wiking | if i change | 11:49 |
@wiking | self = obj.get(); | 11:49 |
@wiking | to *self = std::move(*obj.get()); | 11:50 |
@wiking | then actually i've got to the point that the right param map is in it | 11:50 |
@wiking | but i dont see the point doing this actually :D | 11:50 |
@wiking | and even more funny | 11:51 |
gf712 | *obj.get() ? | 11:51 |
@wiking | yes because it's a ptr | 11:51 |
@wiking | right? :) | 11:51 |
gf712 | what is the order of resolution? | 11:51 |
gf712 | oh right | 11:51 |
gf712 | but *obj.get() dereferences obj and then calls get of the pointer? | 11:51 |
@wiking | no | 11:51 |
@wiking | but anyhow | 11:51 |
gf712 | ah ok | 11:51 |
@wiking | dont get hanged on things | 11:51 |
@wiking | that are not important | 11:52 |
@wiking | :) | 11:52 |
@wiking | so say that i have managed to move the object (and setting the pointer is not working... dunno why that should actually work instead of moving) | 11:52 |
@wiking | even in this case | 11:52 |
@wiking | i get | 11:52 |
@wiking | SystemError: [ERROR] In file /home/wiking/shogun/src/shogun/machine/Machine.cpp line 54: SVMLight@0x5572feb21510: No labels given | 11:52 |
@wiking | which is then WTF | 11:53 |
@wiking | because | 11:53 |
@wiking | this is the output of to_string: | 11:53 |
@wiking | SVMLight(C1=2,C2=2,custom_kernel=null,data_locked=false,epsilon=1e-05,kernel=GaussianKernel(...),kernel_backup=null,labels=BinaryLabels(...),linear_term=Vector(0): [],m_alpha=Vector(16): [-2,-2,-2,-2,-2,-2,-2,-2,2,2,2,2,2,2,2,2],m_bias=-0.0305009,m_svs=Vector(16): [0,1,2,3,6,7,8,9,10,11,13,14,15,16,17,18],max_train_time=0,mkl=null,nu=0.5,objective=-22.8759,qpsize=41,solver_type=ST_AUTO,store_model_features=false,svm_loaded=false,tube_epsil | 11:53 |
@wiking | on=0.01,use_batch_computation=true,use_bias=true,use_linadd=true,use_shrinking=true) | 11:53 |
@wiking | as you can see labels is actually set | 11:54 |
@wiking | although!!! | 11:54 |
@wiking | funny enough | 11:54 |
@wiking | if i call svm.get_labels() | 11:54 |
@wiking | then that's a null | 11:54 |
@wiking | :D | 11:54 |
@wiking | so the error is correct | 11:54 |
@wiking | the param map is there | 11:54 |
@wiking | so wtf :D | 11:55 |
@wiking | and even better even the C1 if i get it with get_C1() it's the default 1 | 11:56 |
@wiking | instead of 2 | 11:56 |
@wiking | but of course if i do svm.get("C1") then = 2 | 11:56 |
@wiking | so the whole thing went totally inconsistent | 11:56 |
@wiking | :D | 11:56 |
@wiking | so i guess doing a simple this->self = std::move(orig.self) is not enough | 11:59 |
@wiking | and actually things need to be put manually | 11:59 |
@wiking | :S | 11:59 |
@wiking | since the referenced object members are not set :) | 12:00 |
@wiking | they are still pointing to the old self | 12:00 |
@wiking | there's no explanation for this | 12:00 |
@wiking | so anyhow... it's shitty :) | 12:05 |
gf712 | wiking: i don't get it... because the to_string uses the map? | 12:05 |
@wiking | yes | 12:05 |
@wiking | it uses visitor | 12:05 |
@wiking | that is self->map | 12:05 |
gf712 | yes, and self is moved | 12:05 |
@wiking | yeah | 12:06 |
gf712 | I don't get it | 12:06 |
@wiking | any obj parameter | 12:06 |
@wiking | with SG_ADD | 12:06 |
@wiking | is a ref to the self->map.... | 12:06 |
@wiking | right? | 12:06 |
@wiking | so you have for example | 12:06 |
@wiking | double C1 | 12:06 |
@wiking | as an object member | 12:06 |
gf712 | other way no, anything is self->map is a ref to a class member? | 12:06 |
@wiking | that is being stored as a ref in self->map | 12:07 |
gf712 | yes | 12:07 |
@wiking | so then | 12:07 |
@wiking | so say i have an empty object | 12:07 |
@wiking | SVMLight | 12:07 |
@wiking | and then if i just do | 12:07 |
@wiking | replace the this->self with another object's self | 12:08 |
@wiking | the map is gonna be correct | 12:08 |
gf712 | yes, I would expect to be | 12:08 |
@wiking | but the actual member variables of SVMLight are not going to be updated | 12:08 |
gf712 | as in this->self->map will be the same map | 12:08 |
gf712 | oh | 12:08 |
@wiking | they are still holding the original values | 12:08 |
gf712 | right | 12:08 |
@wiking | which in case of labels = nullptr | 12:08 |
@wiking | so moving an sgobject is gonna be funny | 12:09 |
@wiking | :))) | 12:09 |
@wiking | anyhow | 12:09 |
@wiking | now there's a bigger problem | 12:09 |
@wiking | i have the same problem in java swig | 12:09 |
@wiking | with externalizable | 12:09 |
@wiking | but there i actually have to work in jvm space | 12:10 |
@wiking | sooo the current serialization api | 12:10 |
@wiking | is not the best in this case :) | 12:10 |
@wiking | coz there the api is like a factory method | 12:10 |
@wiking | Deserializer->read() -> SGObject | 12:11 |
@wiking | argh | 12:11 |
gf712 | wiking: can you move it fine after casting? | 12:17 |
@wiking | casting? | 12:17 |
@wiking | what casting? | 12:17 |
gf712 | cast to machine for example | 12:17 |
gf712 | just out of curiosity | 12:17 |
gf712 | but then you can't acmes all members | 12:18 |
gf712 | hmm | 12:18 |
gf712 | not sure how to solve thatn | 12:18 |
@wiking | mmm dont thing that has anything to do with anothing | 12:18 |
@wiking | *anything | 12:18 |
@wiking | casging | 12:18 |
@wiking | because the move operator is atm in CSGObject | 12:18 |
@wiking | not in Machine | 12:18 |
@wiking | or else... | 12:18 |
gf712 | yes | 12:18 |
@wiking | if i wanna change more stuff | 12:18 |
@wiking | i mean support move for CMachine | 12:18 |
gf712 | but you can't move the class members because you are operating on the base class right? | 12:18 |
@wiking | then i need to define that as well | 12:19 |
@wiking | yes | 12:19 |
gf712 | but yea, you would have to cast to the correct class back | 12:19 |
gf712 | and then move it | 12:19 |
gf712 | right? | 12:19 |
@wiking | yeah but this is getting way to crazy | 12:21 |
gf712 | yea, I know, was just wondering if that works | 12:22 |
-!- wuwei[m] [wuweilinma@gateway/shell/matrix.org/x-yggstkvhbmmossoq] has joined #shogun | 13:48 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 15:02 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:04 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:04 | |
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-zdielqxkyaugodwj] has joined #shogun | 15:05 | |
-!- besser82 [~besser82@fedora/besser82] has quit [Quit: Freedom, Friends, Features, First [fedoraproject.org]] | 15:29 | |
@wiking | gf712: plz narrow your -j to 8-10 max | 15:29 |
@wiking | thnx | 15:29 |
@wiking | gf712: cannot use the machine with -j24 | 15:30 |
gf712 | sorry, thought it was cached | 15:30 |
@wiking | thnx | 15:31 |
gf712 | wiking: there is an issue with the REQUIRE macro | 15:35 |
@wiking | yey | 15:35 |
gf712 | it seems to cause a segfault | 15:35 |
gf712 | kernel = sg.kernel("GaussianKernel") | 15:35 |
gf712 | kernel.get("a") | 15:35 |
gf712 | terminate called after throwing an instance of 'shogun::ShogunException' | 15:35 |
gf712 | what(): [ERROR] In file /home/gil/shogun/src/shogun/base/SGObject.h line 1116: Parameter GaussianKernel::a does not exist. | 15:35 |
gf712 | Aborted | 15:35 |
gf712 | but replacing it with an if and then a SG_SERROR works fine.... | 15:36 |
gf712 | as in it fails with grace | 15:36 |
-!- Moatman [~Moatman@pool-96-255-151-151.washdc.fios.verizon.net] has joined #shogun | 15:43 | |
-!- besser82 [~besser82@fedora/besser82] has joined #shogun | 15:53 | |
-!- mode/#shogun [+o besser82] by ChanServ | 15:53 | |
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-zdielqxkyaugodwj] has quit [Remote host closed the connection] | 16:06 | |
-!- wuwei[m] [wuweilinma@gateway/shell/matrix.org/x-yggstkvhbmmossoq] has quit [Remote host closed the connection] | 16:06 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 16:07 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 16:09 | |
-!- mode/#shogun [+o wiking] by ChanServ | 16:09 | |
-!- wuwei[m] [wuweilinma@gateway/shell/matrix.org/x-lcojdnvwprsrjxqq] has joined #shogun | 16:32 | |
-!- ussdd95[m] [ussdd95mat@gateway/shell/matrix.org/x-temggrlukylyjcny] has joined #shogun | 16:42 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 16:58 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 17:08 | |
-!- mode/#shogun [+o wiking] by ChanServ | 17:08 | |
gf712 | wiking: found the origin of the bug | 17:12 |
gf712 | of REQUIRE | 17:12 |
gf712 | it wasn't require :p | 17:12 |
gf712 | there was a noexcept function throwing an exception | 17:13 |
@wiking | \o/ | 17:13 |
gf712 | but I found an issue with ShogunException | 17:13 |
gf712 | https://wiki.sei.cmu.edu/confluence/display/cplusplus/ERR60-CPP.+Exception+objects+must+be+nothrow+copy+constructible | 17:13 |
gf712 | wiking: exceptions should be nothrow copy constructible | 17:14 |
@wiking | lets add noexcept and actually make it constexpr | 17:17 |
@wiking | :) | 17:17 |
@wiking | ShogunException i mean | 17:17 |
@wiking | althouh that would mean to put everything in .h | 17:17 |
@wiking | so just have it noexcept | 17:17 |
@wiking | i've managed to find amazing bug in an integration test | 17:18 |
@wiking | assert abs(out[i] - out2[i] < 0.000001) | 17:18 |
@wiking | :D | 17:18 |
gf712 | loooooooool :D | 17:18 |
@wiking | i guess u see as well :) | 17:18 |
gf712 | btw ShogunException is noexcept | 17:19 |
gf712 | wiking: the issue is std::string | 17:19 |
gf712 | which is not noexcept | 17:19 |
gf712 | and should be replaced with std::runtime_error | 17:20 |
gf712 | and the copy constructor should go away | 17:20 |
gf712 | and I also added a static_assert like in the link to make sure this is enforced | 17:20 |
gf712 | when an error is thrown using SGIO::error | 17:20 |
@wiking | great | 17:30 |
@wiking | btw | 17:30 |
@wiking | in the patch | 17:30 |
@wiking | why not inherit from std::runtime_error? | 17:30 |
gf712 | it was easier to replace std::string :D | 17:32 |
gf712 | but I can change it to inherit from runtime_error | 17:32 |
@wiking | :D | 17:32 |
@wiking | damn i've managed to uncover more serialization problems :S | 17:33 |
gf712 | does the rabbit hole continue? | 17:35 |
@wiking | yep | 17:36 |
@wiking | gets deeper and deeper | 17:36 |
@wiking | but lets see | 17:36 |
@wiking | maybe this is the last push that i need to do | 17:37 |
@wiking | so then deadbeef should be mergable | 17:37 |
gf712 | haha famous last words :D | 17:37 |
@wiking | heheh yeah | 17:37 |
@wiking | but the factory thing is merged | 17:37 |
@wiking | so small win but that's cool | 17:37 |
gf712 | yea I saw | 17:37 |
@wiking | and we shouldnt leak anymore | 17:37 |
gf712 | so no more leaks? | 17:37 |
gf712 | cool | 17:37 |
@wiking | (or at least not that crazy) | 17:37 |
gf712 | yea, there were always at least as many leaks as factory calls :D | 17:38 |
@wiking | indeed :) | 17:38 |
@wiking | that should be cool now | 17:38 |
gf712 | should get a valgrind check running | 17:38 |
@wiking | yeah | 17:38 |
@wiking | there was a nightly job | 17:38 |
gf712 | on CI? | 17:38 |
@wiking | not on CI | 17:38 |
@wiking | but on buildbot | 17:38 |
@wiking | need to get buildbot back and working nnicely | 17:38 |
@wiking | :) | 17:38 |
gf712 | is CI overkill? | 17:39 |
@wiking | yeah | 17:39 |
@wiking | nightly was good enough | 17:39 |
@wiking | dont want to check it like every pr/push | 17:39 |
gf712 | yea, can work on that when you're at the ati | 17:39 |
gf712 | because I have no idea how to use it | 17:39 |
gf712 | and would be good to learn | 17:39 |
gf712 | anyway I'm off | 17:39 |
gf712 | ttyl | 17:39 |
@wiking | ttyk | 17:40 |
@wiking | l | 17:40 |
-!- gf712 [90520815@gateway/web/freenode/ip.144.82.8.21] has quit [Quit: Page closed] | 17:40 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 17:46 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 19:23 | |
-!- mode/#shogun [+o wiking] by ChanServ | 19:23 | |
-!- durovo [~durovo@a3.c8.2fa9.ip4.static.sl-reverse.com] has joined #shogun | 19:47 | |
-!- durovo3 [~durovo@99.b3.3da9.ip4.static.sl-reverse.com] has quit [Remote host closed the connection] | 19:47 | |
-!- HeikoS [~heiko@87.pool85-48-187.static.orange.es] has joined #shogun | 19:51 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 19:51 | |
@wiking | HeikoS: yo | 20:20 |
@wiking | i have a q | 20:20 |
@HeikoS | yo | 20:20 |
@HeikoS | I am just writing a project proposal for this GSoD | 20:20 |
@wiking | have u seen a case when obj.equals(obj2) is true | 20:20 |
@wiking | but | 20:20 |
@wiking | it does not produce the same output | 20:20 |
@wiking | :D | 20:20 |
@HeikoS | same output = ? | 20:20 |
@HeikoS | a machine? | 20:20 |
@wiking | well as a matter of fact its a machine | 20:20 |
@HeikoS | ah ok | 20:20 |
@HeikoS | yeah | 20:20 |
@HeikoS | I have | 20:20 |
@wiking | so yeah machine.apply() is getting different stuff | 20:20 |
@HeikoS | when parameters were not registered | 20:20 |
@wiking | which scenario? | 20:21 |
@HeikoS | so they were skipped in equals | 20:21 |
@wiking | yeah i'm suspecting the same | 20:21 |
@wiking | or that there's a random somewhere | 20:21 |
@HeikoS | yes that is the other case I can think of | 20:21 |
@wiking | although, it worked with the old serialization fw | 20:21 |
@HeikoS | although not sure we have such a machine? | 20:21 |
@wiking | so random should not be the case | 20:21 |
@HeikoS | ah ok | 20:21 |
@HeikoS | yeah so then missing registration | 20:21 |
@wiking | it's a legacy python stuff | 20:22 |
@HeikoS | ah I see | 20:22 |
@HeikoS | which machine? | 20:22 |
@wiking | svmlight | 20:22 |
@wiking | with combinedfeatures/kernels | 20:22 |
@HeikoS | ah | 20:22 |
@wiking | where stringkernels are being lalala | 20:22 |
@wiking | anyhow... some things it revealed that were correct | 20:22 |
@wiking | but now i'm like ok | 20:22 |
@HeikoS | combined kernel is that handled correctly with new params | 20:22 |
@wiking | equals is equals | 20:22 |
@HeikoS | it had a raw array iirc | 20:22 |
@wiking | so something is not registered then | 20:22 |
@HeikoS | yeah | 20:23 |
@HeikoS | there are calls | 20:23 |
@HeikoS | m_parameters->add in there | 20:23 |
@wiking | this is the last haxor i have to fix for deadbeef | 20:23 |
@wiking | + pipeline serialization | 20:23 |
@HeikoS | ah wait | 20:23 |
@HeikoS | it is also watched | 20:23 |
@wiking | yeah | 20:23 |
@wiking | stuff are watched there | 20:23 |
@wiking | so that's why i'm now going through | 20:23 |
@HeikoS | not sure | 20:23 |
@wiking | what is what | 20:23 |
@HeikoS | probably some detail | 20:23 |
@HeikoS | but that is the only reason I can think of | 20:24 |
@HeikoS | cool that the deadbeef is almost alive :) | 20:24 |
@wiking | yeah | 20:24 |
@wiking | i'm not sure | 20:24 |
@wiking | if we want support of pipeline | 20:24 |
@wiking | to be added as SG_ADD | 20:24 |
@wiking | i mean std::variant | 20:24 |
@wiking | as currently clone works | 20:24 |
@wiking | and if i override serialization interface | 20:24 |
@wiking | then that'd work as well | 20:24 |
@wiking | i guess the 'only' advantage there | 20:25 |
@wiking | is param search no? | 20:25 |
@wiking | (SG_ADD(variant)) | 20:25 |
@wiking | which is huge :) | 20:25 |
@wiking | but currently i dont see a good way extending any with variant support | 20:25 |
@HeikoS | mmmh | 20:27 |
@HeikoS | yeah model selection doesnt work if it is not registered | 20:27 |
@wiking | there is an .equals on the old parameter fw? | 20:27 |
@HeikoS | I mean we want to clone/equals/save or? | 20:27 |
@HeikoS | there was | 20:28 |
@wiking | clone/equals/save can work with overriding functionns | 20:28 |
@HeikoS | yep | 20:28 |
@HeikoS | that is fine imo | 20:28 |
@wiking | so that's not necessary to register params into the tags | 20:28 |
@HeikoS | I am not sure in a pipeline we want to auto-learn parameters | 20:28 |
@wiking | well | 20:28 |
@wiking | would be good | 20:28 |
@wiking | :) | 20:28 |
@HeikoS | but idk how that would play out | 20:28 |
@HeikoS | yeah of course | 20:28 |
@wiking | and other fws do it | 20:28 |
@wiking | anyhow lemme check the equals thing for that | 20:28 |
@wiking | that should show me what we dont have registered | 20:29 |
@wiking | :) | 20:29 |
@wiking | mmmm Parameter does not have | 20:29 |
@wiking | only TParameter | 20:29 |
@HeikoS | well that is the issue with using these out-of-shogun concepts like variant | 20:30 |
@HeikoS | even though it is better | 20:30 |
@HeikoS | but it means problems with the parameter framework | 20:30 |
@wiking | mmm iut's not outof shougn concept | 20:30 |
@wiking | it's simple c++17 | 20:30 |
@wiking | it's fully ok to use such thinng | 20:30 |
@wiking | :) | 20:30 |
@HeikoS | i agree | 20:31 |
@HeikoS | but then no parameters thats what I meant | 20:31 |
@wiking | AttributeError: 'SwigPyObject' object has no attribute 'get_num_parameters' | 20:32 |
@wiking | arg | 20:32 |
@wiking | Parameter is not swiged? | 20:33 |
@HeikoS | nope | 20:33 |
@HeikoS | iirc there is some stuff in sgobject to interface with the parameters | 20:34 |
-!- HeikoS [~heiko@87.pool85-48-187.static.orange.es] has quit [Ping timeout: 246 seconds] | 20:40 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 21:02 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 21:09 | |
-!- mode/#shogun [+o wiking] by ChanServ | 21:09 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 21:13 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 21:36 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host] | 21:36 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 21:36 | |
-!- mode/#shogun [+o wiking] by ChanServ | 21:36 | |
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has joined #shogun | 22:39 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 22:39 | |
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has quit [Quit: Leaving.] | 23:20 | |
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has joined #shogun | 23:20 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 23:20 | |
-!- HeikoS [~heiko@11.pool85-48-187.static.orange.es] has quit [Client Quit] | 23:25 | |
--- Log closed Wed Apr 17 00:00:39 2019 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!