--- Log opened Wed Apr 03 00:00:20 2019 | ||
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 01:38 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 04:57 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host] | 04:57 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 04:57 | |
-!- mode/#shogun [+o wiking] by ChanServ | 04:57 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 05:22 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 06:26 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host] | 06:26 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 06:26 | |
-!- mode/#shogun [+o wiking] by ChanServ | 06:26 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 06:33 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 06:48 | |
-!- mode/#shogun [+o wiking] by ChanServ | 06:48 | |
-!- ikka [0e8bb8d7@gateway/web/freenode/ip.14.139.184.215] has joined #shogun | 06:58 | |
-!- ikka [0e8bb8d7@gateway/web/freenode/ip.14.139.184.215] has quit [Quit: Page closed] | 07:09 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 07:52 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 08:02 | |
-!- mode/#shogun [+o wiking] by ChanServ | 08:02 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 08:44 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 08:50 | |
-!- mode/#shogun [+o wiking] by ChanServ | 08:50 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 246 seconds] | 08:55 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:24 | |
-!- mode/#shogun [+o wiking] by ChanServ | 09:24 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 250 seconds] | 09:28 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:38 | |
-!- mode/#shogun [+o wiking] by ChanServ | 09:38 | |
-!- geektoni [c1cdd24a@gateway/web/freenode/ip.193.205.210.74] has joined #shogun | 09:54 | |
@wiking | geektoni: yo | 10:04 |
---|---|---|
@wiking | i have some questions | 10:04 |
@wiking | https://github.com/shogun-toolbox/shogun/pull/4590/files#diff-1689b0bd3ceb28355cc3c05ed7ffe4f0R996 | 10:05 |
@wiking | do we really need that? | 10:05 |
@wiking | and can we merge this into a feature branch | 10:05 |
@wiking | this whole sgobject.h bloating is super annoying | 10:05 |
@wiking | see https://github.com/shogun-toolbox/shogun/pull/4590/files#diff-1689b0bd3ceb28355cc3c05ed7ffe4f0R1133 and down | 10:05 |
geektoni | wiking: yes, we need that get_step() method, unless we find another way to pass a step parameter to the observe() call. | 10:07 |
geektoni | I also know that the ObservedValue inside SGObject is kinda ugly | 10:07 |
-!- gf712 [905208cf@gateway/web/freenode/ip.144.82.8.207] has joined #shogun | 10:08 | |
geektoni | but it is the less painful way to do things | 10:08 |
@wiking | no | 10:08 |
@wiking | its less painful for u | 10:08 |
@wiking | for others who are developing shogun is more painful | 10:08 |
@wiking | as sgobject.h changes fucks up ccache | 10:08 |
@wiking | sorry :) | 10:08 |
@wiking | i'm not so sure if i understand correctly | 10:08 |
@wiking | but why the get_step is not part of the ObserveValue | 10:09 |
@wiking | i mean that value should be set to anything | 10:09 |
@wiking | when the value is being emited | 10:09 |
@wiking | it shouldn't depend on a class tag | 10:09 |
@wiking | now that sometimes you can tie that value | 10:09 |
@wiking | to a class tag that's another story | 10:09 |
@wiking | but by default that should not be the case | 10:09 |
geektoni | the issue is that when we call put(), there is an observe() call inside it. However, we have no way to set the "step" param because there is no proper "step" happening within put. | 10:13 |
@wiking | yeah | 10:13 |
@wiking | that's another story | 10:13 |
geektoni | so we needed a way to specify it automatically instead of using a fixed value like -1 | 10:13 |
geektoni | and since IterativeMachine implements a m_current_iteration | 10:13 |
@wiking | yeah | 10:13 |
@wiking | but i dont care about iterative machine | 10:13 |
@wiking | :) | 10:13 |
geektoni | lol kk | 10:13 |
@wiking | i just have objectA | 10:13 |
@wiking | and i wanna observe its values | 10:13 |
@wiking | and objectA wants to send it the way it wants to send | 10:13 |
@wiking | howeever it makes sense | 10:14 |
@wiking | now you say that in that case i'm forced to use IterativeMachine | 10:14 |
@wiking | etc etc? | 10:14 |
@wiking | if i wanna be able to observe values | 10:14 |
@wiking | any sort of values | 10:14 |
geektoni | nono, you can still used directly observe() and emit whatever you want | 10:15 |
@wiking | yes | 10:15 |
@wiking | then why the fuck is this in SGObject? :) | 10:15 |
@wiking | if this is iterative machine related stuff | 10:15 |
@wiking | i mean the get_step() | 10:15 |
@wiking | else i dont get it | 10:16 |
@wiking | current_iteration = a member of iterative machine or? | 10:16 |
@wiking | indeed | 10:16 |
@wiking | line 38 | 10:16 |
@wiking | so why is this here? | 10:16 |
geektoni | because we wanted to use it within put() and if we placed it somewhere else we would have to override somehow SGObject() put. | 10:16 |
@wiking | yeah | 10:16 |
@wiking | do it | 10:16 |
@wiking | :) | 10:16 |
@wiking | sgobject is a general object | 10:17 |
@wiking | lets not put *planet* into that | 10:17 |
@wiking | as its already happening | 10:17 |
@wiking | i mean this is a not | 10:17 |
@wiking | *note | 10:17 |
@wiking | i'm super not fine merging this into develop | 10:17 |
@wiking | if you wanna get unblocked | 10:17 |
@wiking | then lets do a feature branch | 10:17 |
@wiking | and wanna handle this later that's fine | 10:18 |
@wiking | i'm just saying that this enforces a lot of things | 10:18 |
@wiking | for SGObject and observeables | 10:18 |
@wiking | but if you wanna have like a more sophisticated reasoning | 10:19 |
@wiking | "the encapsulation principal gets broken here" | 10:19 |
@wiking | :) | 10:19 |
@wiking | see what i mean? | 10:20 |
geektoni | I see your point. I'm in favour of doing this kind of things in a feature branch then, so I can keep going. In the meantime I'll try to come up with a more correct solution. | 10:21 |
geektoni | :) | 10:21 |
@wiking | sure | 10:21 |
@wiking | name of the branch? | 10:21 |
@wiking | can u write to shogun directly | 10:21 |
@wiking | no? | 10:21 |
geektoni | wiking: nope, I can't | 10:21 |
@wiking | horrible | 10:21 |
@wiking | lemme fix | 10:21 |
geektoni | ahaha | 10:21 |
@wiking | invite sent | 10:22 |
@wiking | you should be able to create a feature branch and just change the target of the pr | 10:23 |
@wiking | or simply just put these commits on top of that branch :) | 10:23 |
@wiking | and this is super nitpikcing but | 10:23 |
@wiking | ObservedValue(int64_t step) | 10:23 |
@wiking | is this because of -1 magic value? | 10:23 |
@wiking | as otherwise uint64_t | 10:24 |
@wiking | just coz it's a step | 10:24 |
@wiking | which should always be 0 indexed i presume | 10:24 |
geektoni | invite received! thanks :) I guess I'll keep the PR and just change its target | 10:24 |
@wiking | yep that should work | 10:25 |
@wiking | note if u wanna have quick CIs | 10:25 |
@wiking | you should add something and get the CI running | 10:25 |
@wiking | so that the ccache is being created | 10:25 |
@wiking | as initially unfortunately it starts with no ccache | 10:25 |
@wiking | so sooner or later do something :) | 10:25 |
geektoni | mmh I though about the step as just an index and nothing prevents me to have a negative index, even if it seems to be strange. | 10:25 |
@wiking | preventing is one thing | 10:26 |
geektoni | I mean, I have no hard feeling about it | 10:26 |
geektoni | if we wanna enfornce a step >= o it's fine | 10:26 |
@wiking | the question is does it make sense to define the index relative to another position other than 0? | 10:26 |
@wiking | i mean this way it would make sense | 10:26 |
@wiking | say that you could seek in this | 10:26 |
@wiking | and then u put the current position to N | 10:27 |
@wiking | and then you wanna have the -50th element relative to current position | 10:27 |
geektoni | wiking: I need to think about a proper use case of it | 10:35 |
@wiking | ok | 10:42 |
@wiking | so i revised | 10:42 |
@wiking | my point | 10:42 |
@wiking | geektoni: why do we need the sgobject overhead of a simple observed value? | 10:43 |
@wiking | i mean i'm working with observables now | 10:43 |
@wiking | and even for a simple 2d stupid regression problem with 100 elements | 10:43 |
@wiking | there's a lot of iterations | 10:43 |
@wiking | i.e. a lot of observevalues | 10:43 |
@wiking | right? | 10:43 |
@wiking | the point is that i'm not so sure that this whole ObserveValue has to be SGObject | 10:44 |
@wiking | i mean this should be a simple struct in my point of view | 10:45 |
geektoni | mostly because since it is exposed to the final user (and not an interal structure) we wanted to give a uniform interface to extract the value. | 10:47 |
geektoni | moreover, one could also decide to serialize to file those observations (does serialization works now btw? ;) ) | 10:48 |
@wiking | geektoni: is this what you emit for each observed value do i get it right? https://github.com/shogun-toolbox/shogun/pull/4590/files#diff-1689b0bd3ceb28355cc3c05ed7ffe4f0R1283 | 10:54 |
geektoni | yes, exactly. | 10:54 |
@wiking | btw some of these func args could be const or? https://github.com/shogun-toolbox/shogun/pull/4590/files#diff-1689b0bd3ceb28355cc3c05ed7ffe4f0R1273 | 10:54 |
@wiking | geektoni: re serialization: https://github.com/shogun-toolbox/shogun/pull/4573 | 10:55 |
geektoni | yeah, most of the them definitely could be const | 10:55 |
@wiking | regarding interface: get? | 10:56 |
geektoni | yup | 10:57 |
@wiking | ok that's not a reason for sgobject like | 10:58 |
@wiking | :D | 10:58 |
@wiking | that could be any function anywhere | 10:58 |
@wiking | and jsut add it to both sgobject and this obj | 10:58 |
@wiking | geektoni: just saying that for 1000 iterations (not too much right?) if you observe 4 elements that's already 1 megz of overhead in mem | 11:00 |
@wiking | btw any of the observe functions you've added to SGObject changes actually the object? | 11:01 |
@wiking | geektoni: and i'm just saying that not having ObserveValue inherit from CGObject you already have your solution how not to bloat sgobject.h | 11:06 |
@wiking | right? | 11:06 |
@wiking | this is in re: the cyclic include | 11:06 |
-!- braceletboy [67157d54@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.84] has joined #shogun | 11:08 | |
geektoni | wiking: yeah, that's how it was working before. However, we were storing Any back then and there was the problem of getting those any from the SWIG interface since we would have need to add a bunch of new templated getter and that was not nice either | 11:09 |
@wiking | no | 11:10 |
@wiking | before it was CGObject as well | 11:10 |
@wiking | i mean i dont know when ObserveValue has changed to : public CSGObject | 11:10 |
@wiking | but i've seen this lately only like that | 11:10 |
@wiking | yeah i do understand the problematics of getter for Any in SWIG | 11:11 |
@wiking | but that's solved right ?:) | 11:11 |
geektoni | it was changed with a PR I did last week | 11:11 |
@wiking | i mean now its tied to SGObject | 11:11 |
@wiking | but that's really unnecessary | 11:11 |
geektoni | before it was just plain SGObject | 11:11 |
@wiking | you mean plain Object | 11:11 |
geektoni | yes yes | 11:11 |
@wiking | ok so i mean you are saying | 11:11 |
@wiking | you need the SWIG magic from the any you have in ObserveValue | 11:11 |
@wiking | right? | 11:11 |
@wiking | just coz you have an any in the objc | 11:12 |
@wiking | or? | 11:12 |
geektoni | I needed a way to cast the any inside the ObservedValue to its proper type without adding more "get_*" inside the SWIG interfaces :) | 11:13 |
@wiking | yes | 11:13 |
@wiking | but that's becauase that thing is now in SGObject | 11:13 |
geektoni | there is still a get_any() because it is needed for some observers, but I was trying to find a way to remove it | 11:13 |
@wiking | those *magic shit | 11:13 |
@wiking | that is now tied to SGObject | 11:13 |
@wiking | but this is more like Any problem | 11:13 |
@wiking | or? | 11:13 |
@wiking | using Any in SWIG | 11:14 |
@wiking | or i'm still lost | 11:14 |
geektoni | ideally, the new ObservedValue should not store any "Any", since everything would be accessible from put()/get(). | 11:14 |
@wiking | yeah but that's because you store it in Self of SGObject | 11:15 |
@wiking | i mean it's the very same story | 11:15 |
@wiking | you have an any somewhere | 11:15 |
geektoni | yes, indeed, but at least I have already some method to cast it back without adding a new one. | 11:15 |
@wiking | but this is not a new one | 11:15 |
@wiking | i mean its some syntactic sugar around any | 11:16 |
@wiking | right? | 11:16 |
@wiking | has nothing to do with sgobject | 11:16 |
@wiking | per se | 11:16 |
geektoni | I mean, the point is, why would I need to add a templated get() method to the ObservedValue class to extract back its any, while I can simply make ObservedValue inherith from SGObject and have everything basically for free (and already working with all the interfaces)? | 11:17 |
@wiking | i've just described above my reasons | 11:18 |
@wiking | shall i repeat? | 11:18 |
@wiking | and you dont need to add it | 11:18 |
@wiking | just factor out that get from SGObject | 11:18 |
@wiking | and then simply use it from both parts | 11:18 |
@wiking | and in fact | 11:18 |
@wiking | it's not for free | 11:18 |
@wiking | you pay for that | 11:18 |
@wiking | i've just told you what | 11:18 |
@wiking | and if you factor out the very same code from SGObject | 11:19 |
@wiking | then it should still work with all the interfaces | 11:19 |
@wiking | or? | 11:19 |
@wiking | "everything basically for free" this is a vast downplaying all the things that are actually negative with this solution | 11:19 |
@wiking | like a fucking 1500+ lines of code header file :) | 11:20 |
@wiking | and that's really just tip of the iceberg | 11:20 |
geektoni | okay, so basically it is like copy-paste code from SGObject to the ObservedValue? :) because I would rather not doing that. | 11:20 |
@wiking | no it's not copy paste | 11:20 |
geektoni | but yeah, I understand your concerns about the overhead | 11:21 |
@wiking | why is this copy paste what i'm saying | 11:21 |
@wiking | i'm saying | 11:21 |
@wiking | since this ANYWAYS | 11:21 |
@wiking | and any related stuff | 11:21 |
@wiking | things should not reside because SGObject uses it atm any like as is | 11:21 |
@wiking | we could put this functionality into somewhere else | 11:21 |
@wiking | and use it from both places | 11:21 |
@wiking | there's multiple good things with this | 11:21 |
geektoni | I see I see | 11:22 |
@wiking | a) less code in sgobject (see all the get/set bullshit) b) reusable code (you will just use it in another place) c) observe value doesn't need to be a bloated object when anyways it's just a wrapper around a payload | 11:22 |
geektoni | okay, now I get what you meant :) | 11:23 |
@wiking | i mean dont get me wrong | 11:23 |
@wiking | do what you want | 11:23 |
@wiking | but i think this is not a good way to solve things | 11:23 |
@wiking | that we just put everything into one place | 11:23 |
@wiking | because it's convenient | 11:23 |
@wiking | this will just call for more and more shit getting into the same place | 11:23 |
@wiking | you can even do this with CRTP | 11:23 |
@wiking | to add the interface/functionality | 11:24 |
@wiking | .... just got a weather warning that it's gonna be heavy snowfall in the next 24h | 11:24 |
@wiking | \o/ | 11:24 |
geektoni | wiking: I will see what I can do then, because you are right indeed | 11:25 |
geektoni | I may do it in another refactor iteration | 11:25 |
@wiking | i mean you dont have to do this right away | 11:27 |
@wiking | i'm just saying that on the end this should be refactored | 11:27 |
@wiking | if you wanna see through the whoel thing | 11:27 |
@wiking | fine just do a PoC for all this in a feature branch | 11:27 |
@wiking | and once you are feeling good with the solution then it's time to refactor a bit | 11:27 |
@wiking | and then we should merge it into develop | 11:27 |
geektoni | yeah, that was my point. That will be done in a future round of refactor, just to keep going with the other tasks. | 11:28 |
@wiking | sure thing | 11:28 |
@wiking | but then dont merge stuff into develop | 11:28 |
@wiking | that's the point | 11:28 |
@wiking | + that this is not good atm :) | 11:28 |
@wiking | but that's just imo | 11:29 |
@wiking | you can ignore | 11:29 |
@wiking | but i'll definitely will keep raising my concern with this when u wanna merge it into develop | 11:29 |
geektoni | sure sure nw | 11:29 |
geektoni | wiking: btw do you have enough supplies to survive the storm? ;) | 11:30 |
@wiking | noup :) | 11:30 |
geektoni | LoL good luck then | 11:31 |
@wiking | ok time to go back to typescript | 11:32 |
@wiking | btw i'm using the current way | 11:32 |
@wiking | if (v.value().get_string("name") == "bias") { | 11:33 |
@wiking | console.log(`${step}: ${v.value().get_any().asDouble()}`); | 11:33 |
@wiking | this is how i use it from js | 11:33 |
@wiking | yes it's a pain | 11:33 |
@wiking | and yes it would be cool to have the wrappers :) | 11:33 |
@wiking | although i still feel a pain when i see the if/else for figuring out what's the current emitted value | 11:34 |
@wiking | geektoni: in the refactor it's still the same story with subscribe? | 11:34 |
@wiking | i mean using ParameterObserverInterface? | 11:35 |
@wiking | as maybe then having a way to register/subscribe a ParameterObserverInterface to a specific list/set of params (or namely just one) | 11:35 |
@wiking | see what i mean? | 11:36 |
@wiking | so that the dispatching actually happening within source not that the observer have to filter out the stuff he/she is interested in | 11:37 |
geektoni | wiking: you should be able to pass a list of names to the ParameterObserver and only ObservedValue with one of those names will be passed to the on_next method. | 11:45 |
@wiking | ah you mean ParameterObserverInterface(std::vector<std::string>& parameters); ? | 11:48 |
@wiking | kk gotcha | 11:48 |
@wiking | so it's already there i just wasn't aware of it thnx | 11:48 |
-!- Apoorv [db4153d2@gateway/web/freenode/ip.219.65.83.210] has joined #shogun | 11:57 | |
-!- Apoorv [db4153d2@gateway/web/freenode/ip.219.65.83.210] has quit [Ping timeout: 256 seconds] | 12:15 | |
-!- geektoni [c1cdd24a@gateway/web/freenode/ip.193.205.210.74] has quit [Quit: Page closed] | 12:28 | |
gf712 | wiking: are you still working on https://github.com/shogun-toolbox/shogun/pull/4594 ? | 13:11 |
@wiking | ah no | 13:12 |
@wiking | but that needs to be finished | 13:12 |
gf712 | aight! | 13:12 |
gf712 | btw I am not sure I understand why you don't want to display the bitmask as the position that is shifted? | 13:13 |
gf712 | don't you end up with a repr with huge integers? | 13:13 |
@wiking | i'd like to have a fast enum -> string | 13:13 |
@wiking | that would be the best | 13:13 |
@wiking | but since that isn't at hand | 13:13 |
gf712 | nope, not coming anytime soon to cpp :/ | 13:14 |
@wiking | i was just whatever | 13:14 |
gf712 | you can keep a map though? | 13:14 |
gf712 | just has to be updated manually | 13:14 |
@wiking | yeah that's way shitty\ | 13:14 |
gf712 | and then have an assertion to check it has been updated each time a flag is added | 13:14 |
@wiking | i really dont like those :) | 13:14 |
gf712 | but then you know what the bits represent? | 13:15 |
gf712 | I am not fussed tbh, was just wondering why :) | 13:15 |
@wiking | man it was a quick shit | 13:15 |
@wiking | just needed SOMETHING | 13:15 |
@wiking | :) | 13:15 |
@wiking | i'm open for any suggestions | 13:15 |
@wiking | but note i haven't touched the code since i've pushed | 13:16 |
@wiking | so i had no plan for anything | 13:16 |
gf712 | btw how does the iterator btw? | 13:16 |
@wiking | what do you mean? | 13:16 |
gf712 | how do you know which ints in the enum are used? | 13:17 |
gf712 | i.e. +enum | 13:17 |
gf712 | ++enum | 13:17 |
gf712 | does it go from first to HYPER | 13:17 |
@wiking | yep | 13:19 |
@wiking | but the problem is of course | 13:19 |
@wiking | it checkes values that are totally foobar | 13:19 |
gf712 | so you go from 0 to max? | 13:19 |
@wiking | as enum++ is ((underlyingvalue)enum_val)+1 | 13:19 |
@wiking | as you can see | 13:19 |
gf712 | ahh | 13:19 |
@wiking | and it goes till Last | 13:19 |
gf712 | oh well, at least it's just for debugging | 13:20 |
@wiking | EnumIterator& operator++() noexcept(true) {value = (T)(under(value) + 1); return *this;} | 13:20 |
@wiking | so i mean i'm not so sure what happens with that explicit cast tbh | 13:21 |
@wiking | because that's like | 13:21 |
@wiking | (ParameterProperties)(std::int32_t +1) | 13:21 |
@wiking | right? :) | 13:21 |
gf712 | yea | 13:22 |
gf712 | but its static cast so no cost | 13:22 |
gf712 | but still incrementing 0 to max in a loop is costly | 13:22 |
@wiking | yeah | 13:22 |
gf712 | at some point can implement a better enum | 13:23 |
@wiking | although its to_string | 13:23 |
@wiking | so there it should not matter too much | 13:23 |
gf712 | yea, I'm sure it's fine | 13:23 |
gf712 | and don't need to iterate anywhere else | 13:23 |
gf712 | just finished writing all grid search parameter tree | 13:24 |
@wiking | yey | 13:24 |
@wiking | still reacting | 13:24 |
@wiking | :D | 13:24 |
gf712 | so getting closer to deleting parameter.h | 13:24 |
@wiking | managed to create a drop down menu | 13:24 |
@wiking | :)))) | 13:24 |
gf712 | haha | 13:24 |
gf712 | what did you do for the parameter value selection in the end? | 13:24 |
@wiking | it's now shitty as there's no way to get it programatically | 13:36 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 13:57 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 14:05 | |
-!- mode/#shogun [+o wiking] by ChanServ | 14:05 | |
gf712 | wiking: is it possible to write a meta example for a class that is not derived from CSGObject? | 14:22 |
@wiking | nou :( | 14:22 |
gf712 | ah that's annoying! | 14:22 |
@wiking | indeed | 14:22 |
gf712 | the issue I have is that everything is wrapped with wrap | 14:22 |
@wiking | but i mean if u follow sgobject interface | 14:22 |
@wiking | then it should be fine | 14:22 |
@wiking | :))) | 14:22 |
gf712 | but I am create stuff on the stack | 14:22 |
@wiking | hahaha | 14:22 |
@wiking | ok | 14:22 |
@wiking | yeah | 14:22 |
@wiking | sure that's super annoying indeed | 14:23 |
gf712 | is 'new' a thing in the sg parser? | 14:23 |
@wiking | mmm good q | 14:23 |
gf712 | let me try | 14:23 |
gf712 | nope | 14:24 |
-!- braceletboy [67157d54@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.84] has quit [Ping timeout: 246 seconds] | 14:24 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 14:37 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 14:47 | |
-!- mode/#shogun [+o wiking] by ChanServ | 14:47 | |
-!- braceletboy [67157d54@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.84] has joined #shogun | 14:50 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 14:51 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 15:09 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host] | 15:09 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:09 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:09 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 268 seconds] | 15:14 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:38 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:38 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Connection reset by peer] | 15:38 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 15:38 | |
-!- mode/#shogun [+o wiking] by ChanServ | 15:38 | |
-!- braceletboy [67157d54@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.84] has quit [Ping timeout: 245 seconds] | 15:39 | |
-!- HeikoS [~heiko@149.pool85-52-163.static.orange.es] has joined #shogun | 15:48 | |
-!- mode/#shogun [+o HeikoS] by ChanServ | 15:48 | |
-!- geektoni [973e38b0@gateway/web/freenode/ip.151.62.56.176] has joined #shogun | 16:04 | |
geektoni | ping HeikoS | 16:04 |
-!- braceletboy [67157d53@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.83] has joined #shogun | 16:11 | |
gf712 | wiking: I added new to sg syntax | 16:20 |
gf712 | and then translate that to make_shared<T>(args) | 16:20 |
gf712 | that would be better than keeping raw pointers right? I am thinking raw pointer doesn't cause memory leaks because you hand back memory management to os after main is done, but I don't like not deallocating raw pointers.. | 16:22 |
-!- HeikoS1 [~heiko@192.pool85-52-163.static.orange.es] has joined #shogun | 16:42 | |
-!- HeikoS [~heiko@149.pool85-52-163.static.orange.es] has quit [Ping timeout: 250 seconds] | 16:43 | |
-!- braceletboy [67157d53@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.83] has quit [Ping timeout: 255 seconds] | 16:46 | |
HeikoS1 | wiking: yo! | 17:14 |
HeikoS1 | gf712: yoyo | 17:14 |
HeikoS1 | lisitsyn: yoyoyo | 17:15 |
gf712 | HeikoS1: hey | 17:16 |
gf712 | I messed around with sg meta language generator to get an example of the parameter tree building working | 17:17 |
gf712 | the PR is getting out of control I think :D | 17:18 |
HeikoS1 | hehe | 17:22 |
HeikoS1 | what did you change for the generator? | 17:22 |
HeikoS1 | make it accept chained operators? | 17:22 |
gf712 | I added 'new' as a reserved keyword | 17:23 |
gf712 | which is a memory alloc keyword | 17:23 |
gf712 | which then is replaced with std::make_shared in cpp | 17:23 |
gf712 | the other languages don't do anything different with it | 17:24 |
HeikoS1 | let me check the PR | 17:25 |
HeikoS1 | why do you need that? | 17:25 |
gf712 | because otherwise the generator wraps the code with wrap | 17:25 |
gf712 | and the class does not inherit from SGObject | 17:26 |
HeikoS1 | ah I see | 17:29 |
HeikoS1 | but the type is visible to swig? | 17:29 |
HeikoS1 | I see, makes sense | 17:29 |
HeikoS1 | so that is for instantiating things that are not sgobject | 17:30 |
HeikoS1 | couldnt we use a factory? | 17:30 |
gf712 | yes | 17:33 |
gf712 | I thought about the factory | 17:33 |
gf712 | but wasn't sure it is really needed? | 17:33 |
-!- braceletboy [67157d53@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.83] has joined #shogun | 17:36 | |
HeikoS1 | gf712: it is a good way to avoid things like make_shared | 17:39 |
HeikoS1 | gf712: but then wrap wont work for that either I guess | 17:40 |
HeikoS1 | gf712: was really only the "wrap" the problem? Because that is just temporary anyways, and hopefully will be removed soon | 17:40 |
gf712 | yes, the cpp example works fine locally | 17:40 |
gf712 | CI complained with gcc | 17:41 |
gf712 | I think it is fixed now | 17:41 |
gf712 | I am using clang locally and it works fine | 17:41 |
-!- braceletboy [67157d53@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.83] has quit [Ping timeout: 245 seconds] | 17:47 | |
-!- HeikoS1 [~heiko@192.pool85-52-163.static.orange.es] has quit [Read error: Connection reset by peer] | 17:56 | |
-!- braceletboy [67157d53@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.83] has joined #shogun | 18:00 | |
-!- gf712 [905208cf@gateway/web/freenode/ip.144.82.8.207] has quit [Ping timeout: 256 seconds] | 18:26 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 18:43 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Connection reset by peer] | 18:43 | |
-!- wiking_ [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Remote host closed the connection] | 18:54 | |
-!- geektoni [973e38b0@gateway/web/freenode/ip.151.62.56.176] has quit [Quit: Page closed] | 19:01 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has joined #shogun | 19:30 | |
-!- wiking [~wiking@c-185-45-237-122.customer.ggaweb.ch] has quit [Changing host] | 19:30 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 19:30 | |
-!- mode/#shogun [+o wiking] by ChanServ | 19:30 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 19:41 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 19:57 | |
-!- mode/#shogun [+o wiking] by ChanServ | 19:57 | |
-!- durovo [~durovo@99.b3.3da9.ip4.static.sl-reverse.com] has quit [Remote host closed the connection] | 20:05 | |
-!- durovo [~durovo@99.b3.3da9.ip4.static.sl-reverse.com] has joined #shogun | 20:05 | |
-!- braceletboy [67157d53@gateway/web/cgi-irc/kiwiirc.com/ip.103.21.125.83] has quit [Remote host closed the connection] | 20:18 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Remote host closed the connection] | 20:46 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 20:47 | |
-!- mode/#shogun [+o wiking] by ChanServ | 20:47 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Ping timeout: 244 seconds] | 20:52 | |
-!- witness [uid10044@gateway/web/irccloud.com/x-uojbrffvsnoiptkd] has joined #shogun | 21:11 | |
-!- witness [uid10044@gateway/web/irccloud.com/x-uojbrffvsnoiptkd] has quit [Quit: Connection closed for inactivity] | 23:21 | |
--- Log closed Thu Apr 04 00:00:21 2019 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!