00:00
ct_clmsn_ has joined #ste||ar
00:01
taeguk[m] has joined #ste||ar
01:00
parsa has joined #ste||ar
01:09
rod_t has left #ste||ar [#ste||ar]
01:10
parsa has quit [Quit: Zzzzzzzzzzzz]
01:16
eschnett has joined #ste||ar
02:15
ct_clmsn_ has quit [Ping timeout: 240 seconds]
02:21
patg has joined #ste||ar
02:30
<
patg >
wash[m]: yt?
02:30
daissgr has quit [Remote host closed the connection]
03:11
parsa has joined #ste||ar
03:13
hkaiser has joined #ste||ar
03:38
<
patg >
hkaiser: wash[m] wash I made reservation
03:38
<
hkaiser >
patg: yah, thanks a lot
03:39
<
hkaiser >
how long takes the drive from ABQ?
03:39
<
patg >
depends on where you are and the traffic
03:39
<
hkaiser >
we're directly at I40
03:42
<
patg >
so you have to get to I 25 then go North, probably 1 hr and 15 or 30 minutes
03:48
<
patg >
Bryce has my phone number have him text me when you leave
03:48
<
patg >
I'll probably leave about the same time
03:53
EverYoung has quit [Ping timeout: 250 seconds]
03:54
<
parsa >
hkaiser: i've been waiting on appveyor forever... but other than that #99 is ready
03:55
<
hkaiser >
parsa: ok, tks - will look
03:55
<
hkaiser >
parsa: what's next?
03:55
<
parsa >
pfx counters
04:14
hkaiser has quit [Quit: bye]
04:22
patg has quit [Quit: See you later]
06:14
parsa has quit [Quit: Zzzzzzzzzzzz]
07:08
jbjnr has quit [Quit: ChatZilla 0.9.93 [Firefox 56.0.2/20171024165158]]
07:37
jaafar_ has quit [Ping timeout: 258 seconds]
07:55
jbjnr has joined #ste||ar
07:58
jbjnr has quit [Client Quit]
08:12
jbjnr has joined #ste||ar
08:17
<
jbjnr >
heller: yt?
08:17
<
heller >
jbjnr: hey
08:18
<
jbjnr >
you're not araound any more? too much job hunting?
08:18
<
jbjnr >
question ...
08:18
<
heller >
jbjnr: I am always around
08:19
<
jbjnr >
it turns out that my dataflow stuff is using a mixture of futures and shared_futures
08:19
<
jbjnr >
what wouold be the best way (IYHO) to handle the case of mixed future<> and shared_future<> in my specializations?
08:20
<
heller >
but there is a trait, is_future
08:20
<
heller >
so you'd need to use that
08:26
<
heller >
or in other words: don't spell out the concrete future type
08:46
david_pfander has joined #ste||ar
09:38
gedaj_ has quit [Ping timeout: 260 seconds]
09:40
gedaj has joined #ste||ar
09:44
gentryx has joined #ste||ar
10:08
<
github >
hpx/gh-pages 5bac6c4 StellarBot: Updating docs
10:40
<
msimberg >
jbjnr: I'm trying to run the throttle test with multiple pools, but am failing to get the number of threads of my added pool
10:40
<
msimberg >
setting up the pool seems okay
10:41
<
msimberg >
I get the "resource partitioner does not own a thread pool named 'pool-2'" when I do get_num_threads
10:41
<
jbjnr >
so what is incorrect?
10:41
<
msimberg >
am I allowed to access details of pools that I'm not running on?
10:42
<
jbjnr >
what is failing?
10:42
<
msimberg >
and according to the debugger the vector which is supposed to have two pools has only the default one
10:42
<
msimberg >
hpx::resource::get_num_threads
10:42
<
msimberg >
second time around
10:42
<
msimberg >
i.e. not for the default pool
10:43
<
jbjnr >
2nd time around? you mean all is ok on the first hpx::init but not the second?
10:43
<
jbjnr >
check that when hip::init returns, it doesn't wipe the RP or something
10:44
<
jbjnr >
could be that on the 2nd hpx::init, the RP is empty
10:44
<
msimberg >
ah good point
10:44
<
msimberg >
at least I'm setting up the rp correctly for the first time?
10:44
<
jbjnr >
and we should fix it to not do that if that's what is happening.
10:44
<
jbjnr >
looks ok. I presume its a cut'n'paste job
10:44
<
msimberg >
more or less, from one of the rp examples
10:44
<
jbjnr >
jugglers in a moment - you watching it?
10:45
<
msimberg >
it's lunch time
10:45
<
jbjnr >
free lunch here :) gtg
10:45
<
msimberg >
thanks!Q
11:44
<
msimberg >
jbjnr: that was indeed it, but I think the current behaviour is perfectly ok
12:33
hkaiser has joined #ste||ar
12:38
<
heller >
hkaiser: ha! I got rid of the factory create functions now ;)
12:39
<
hkaiser >
g'morning
12:39
<
heller >
good morning
12:39
<
hkaiser >
yah, th epools are centralized now after th eone_size_heap patch
12:39
<
heller >
but almost
12:40
<
hkaiser >
ok, let's see
12:42
<
heller >
turns out we had lots of multiple heaps around, especially for promise
12:42
<
heller >
not sure why it never hit us before
12:43
<
heller >
all in all, I am able to flesh out a lot of duplicated code we had
12:45
jbjnr has quit [Quit: ChatZilla 0.9.93 [Firefox 56.0.2/20171024165158]]
12:45
jbjnr has joined #ste||ar
12:46
<
heller >
reduced the binary size by 15MB already ;) (started from 365MB)
12:47
<
heller >
for libhpxd
12:53
jbjnr has quit [Quit: ChatZilla 0.9.93 [Firefox 56.0.2/20171024165158]]
12:53
jbjnr has joined #ste||ar
12:56
jbjnr has quit [Client Quit]
12:57
jbjnr has joined #ste||ar
13:01
hkaiser has quit [Quit: bye]
13:16
hkaiser has joined #ste||ar
13:19
<
heller >
hkaiser: another big question to me right now is wether to fix the disabling/enabling of components
13:19
<
heller >
hkaiser: local_new completely circumvents it atm
13:19
<
heller >
or if we shouldn't get rid of it entirely
13:19
<
hkaiser >
heller: I don't think we should get rid of it
13:20
<
heller >
then I'll reenable it ;)
13:20
<
hkaiser >
local_new circumvents it, yes - you initial fix to use the factories for this as well would have made it work again
13:21
<
heller >
using the factories made the local_new unit test fail
13:21
<
hkaiser >
why do you want to get rid of factories?
13:22
<
heller >
there is no way to fix it
13:22
<
heller >
for this particular use case
13:22
<
hkaiser >
what is the problem?
13:22
<
heller >
it tries to move an object, but the test case explicitly tests that it is passed on by reference
13:23
<
heller >
we can't use perfect forwarding in the factories, because of virtual functions
13:24
<
hkaiser >
FWIW, I doubt that we can get rid of the factories
13:24
<
heller >
where we try to circumvent that limitation by moving the passed parameters into a function object and use that to call the ctor
13:24
<
heller >
why do you think so?
13:25
<
hkaiser >
there was a reason why we introduced them in the first place
13:26
<
hkaiser >
being able to anonymously create an object without knowing its type
13:26
<
hkaiser >
components are plugins
13:27
<
heller >
right now, you have to at least know the component ID
13:27
<
hkaiser >
I meant the c++ type
13:28
<
heller >
but without the C++ type, you can't really do a lot with the GID you get back
13:28
<
hkaiser >
not sure, we might not need this particular feature, but can we really get rid of dynamic component type discovery etc.?
13:29
<
heller >
you mean if a component is present on a given locality or not?
13:29
<
hkaiser >
we iterate over all shared libraries to discover which components are present
13:30
<
hkaiser >
but this might be unrelated - need to look closer
13:30
<
heller >
we currently have two seperate entities for that: the registry and the factory
13:31
<
heller >
the registry provides the ini config, the factory is responsible for type ID assignment, creation and destruction
13:31
<
heller >
I am not saying we should get rid of all those features
13:33
<
heller >
the anonymously creation of components is not used at all in our code base, btw
13:34
<
heller >
dynamic enabling/disabling, I'm not sure wether to keep it or not ... I am tending towards no though
13:35
<
hkaiser >
heller: you're always quick in discarding existing functionalities
13:35
<
heller >
with the reason being, that it is not really a common use case, which means that the majority has to pay for something that's not used
13:35
<
heller >
I am here to discuss it with you, no?
13:35
<
hkaiser >
the price is relatively small, though
13:36
<
heller >
at runtime, yes
13:36
<
heller >
the price you pay is with the compile time
13:36
<
hkaiser >
this feature is used by the tests: special components needed for testing/debugging only do not get in the way for production cases
13:37
<
heller >
yes, I know that it is used there
13:37
<
hkaiser >
what is the compile-time cost? an additional if(enabled) statement?
13:38
<
heller >
no. the static objects with fairly long symbols and high instantiation costs
13:40
<
heller >
I'm wrapping up what I have now first though, without removing functionality
13:40
<
hkaiser >
shrug, I'd leave this in
13:40
<
hkaiser >
call me oldfashioned
13:42
<
heller >
I want a world where we don't need all this boilerplate to have components :P
13:42
<
hkaiser >
sure, you loose fine-control however - and I'm not sure if this would be good
13:43
<
heller >
I hear you
13:43
<
heller >
I am wondering if this fine control isn't achievable otherwise
13:43
<
heller >
baby steps...
13:45
<
heller >
one thing is certain however, without the factory, the runtime_support will be much, much more lightweight
13:45
<
hkaiser >
heller: ok - if you can still maintain proper memory management
13:45
<
hkaiser >
jbjnr: wazz'up?
13:45
<
heller >
hkaiser: yes, that's what I have right now
13:46
<
jbjnr >
how do I match nested parameter packs
13:46
<
jbjnr >
I need to specialize on future<p1>, future<p2>, shared_future<p3> ...
13:46
<
jbjnr >
I need the Ps, so I can't just say future and ignore the internal types
13:47
<
jbjnr >
so it has to match a list of futures on types, but they might be shared or normal futures
13:47
<
heller >
line 7 sounds wrong
13:47
<
jbjnr >
what about line 3?
13:47
<
heller >
you essentially say: tuple<false/true>
13:48
<
heller >
I can't parse you wrote here...
13:48
<
jbjnr >
yes, it shoud have the types of each
13:48
<
heller >
break it up into smaller pieces
13:48
<
heller >
first, you have your outer Future
13:49
<
jbjnr >
shit. I forgot the pouter future.
13:49
<
heller >
no need for it be a template-template
13:49
<
jbjnr >
that is not important for now. let me clean up and retry
13:49
<
heller >
you can extract the value type of a Future
13:50
<
jbjnr >
yes. I need value types of all inner futures
13:51
<
heller >
so: Future -> is_future<Future> && is_tuple<future_traits<Future>::result_type> && all_of<is_future<future_traits<Future>::result_type>...>
13:51
<
heller >
more or less
13:51
<
jbjnr >
more or less
13:56
<
jbjnr >
useful thanks
14:00
eschnett has quit [Quit: eschnett]
14:01
<
heller >
hkaiser: btw, the special components we have for testing, which are disabled by default, are suspect of the local_new improvements to circumvent the factory
14:07
K-ballo has quit [Remote host closed the connection]
14:07
K-ballo has joined #ste||ar
14:08
<
jbjnr >
it should expand into future1<p1>, future2<p2>, future3<p3> ???
14:12
<
jbjnr >
omg. future_traits lets me do it more easily.
14:19
<
jbjnr >
thanks heller - seeing the future_traits made me realize there was an easier way of doing it.
14:28
<
hkaiser >
heller: sure, local_new optimization I introduced is broken and needs fixing
14:36
eschnett has joined #ste||ar
14:44
<
heller >
hkaiser: almost there...