hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/ | GSoD: https://developers.google.com/season-of-docs/
<Yorlik> The error persists. The vcpkg toolchain file is obviously used, since all packages are found, but HPX doesn't find the boost libraries
<Yorlik> I used cmake directly now and got the same error
<Yorlik> Anyone here having success using HPX from vcpkg? If yes: How did you use it?
<hkaiser> Yorlik: I'll try tomorrow
<Yorlik> Thanks !
hkaiser has quit [Quit: bye]
hkaiser has joined #ste||ar
<Yorlik> hkaiser: Just checked pointing to my own HPX build and it compiled.
<Yorlik> I just added: SET(HPX_DIR "C:/__A/arc_2017/_INSTALL/hpx/stable/Debug/lib/cmake/HPX")
<Yorlik> My guess is, there might be an issue with the vcpkg HPX version / cmake script
<Yorlik> hkaiser: yt?
<Yorlik> My remaining linking error comes down to: error C2923: 'hpx::traits::is_action': 'agns::game::lua::run_lua' is not a valid template type argument for parameter 'Action'
<Yorlik> Where run_lua is: (inthe namespace) sol::unsafe_function_result run_lua( std::string code );
<Yorlik> Being triggered by: HPX_REGISTER_ACTION_DECLARATION( agns::game::lua::run_lua, run_lua_a );
<Yorlik> Am I missing something like what functions can be actions?
nikunj has joined #ste||ar
<hkaiser> that is not a linker error
<hkaiser> Yorlik: this does work for the example I gave you yesterday, no?
<Yorlik> The example from yesterday workd with VS2019
<Yorlik> This non-linker error is a problem in my own code ofc
<hkaiser> so why does your code doesn't work?
<hkaiser> what's different there?
<Yorlik> My problem is, that obviously I cannot make an action out of that free function
<hkaiser> why not?
<Yorlik> For a reason i do not understand
<hkaiser> it worked in the example
<Yorlik> I am getting this wrong template argument error
<hkaiser> so something is different in your code
<Yorlik> It doesn't like my function
<hkaiser> well, I need to see the code to understand more
<hkaiser> or a small example reproducing the issue
<Yorlik> It's that gist from yesterday
<Yorlik> wro0ngly labelled as linker error
<hkaiser> Yorlik: the first error is causing you issues, not the second one
<hkaiser> the one mentioning get_action_name
<Yorlik> OK. Still - I don't understand the issue
<Yorlik> I thought the first error was a consequence of the second
<hkaiser> and that tells me that the compiler has not seen this: https://github.com/STEllAR-GROUP/hpx/blob/master/hpx/runtime/actions/basic_action_fwd.hpp#L30-L31
<Yorlik> hpx/hpx.hpp is included
<hkaiser> anyways, I need to see the code
<Yorlik> So - is that not complete?
<hkaiser> hpx/hpx.hpp should be fine, if it's include such that the compiler sees the lines above before seeing your code
<Yorlik> The first line in the file is #include <hpx/hpx.hpp>
<hkaiser> Yorlik: shrug
<hkaiser> show me the code or it didn't happen
<Yorlik> I wonder what'd be the best way - huge gist or screenshare?
<hkaiser> small example reproducing the problem would be easiest
<hkaiser> Yorlik: note that all HPX macros (except HPX_DEFINE_PLAIN_ACTION) have to be in global namespace
<Yorlik> They are.
<hkaiser> ok
<hkaiser> then I don't know what could cause this without seeing things
<Yorlik> I'll complete the gist with the full files
<Yorlik> Making a full example is not just little work
<hkaiser> so hpx/hpx.hpp is included in the first line of luaengine.hpp ?
<Yorlik> Yes
<hkaiser> Yorlik: what do you expect
<hkaiser> if you give me all of your code I will have to create the small example
<Yorlik> It involves lua and sol
<hkaiser> your example can be as minimal as the one I created yesterday
<hkaiser> no need to pull in all of your stuff
<hkaiser> the function you wrap in the action can be empty
<hkaiser> that removes all of the dependencies
<Yorlik> Thats the full files
<hkaiser> can I compile this?
<Yorlik> No
<hkaiser> shrug
<Yorlik> I need to setup a project for it .... moment
<hkaiser> please create a minimal, self-contained example I can try
<hkaiser> I don't need the build system
<hkaiser> all I need is one file that reproduces the issue and that I can compile
<hkaiser> remove everything that is unrelated
<hkaiser> all IO, all lua, all everything
<Yorlik> Working on it
<Yorlik> testcase done
<Yorlik> same error
<Yorlik> The dropbox link is a zip with the files
<Yorlik> Making this case kinda felt like disemboweling an animal ...
<Yorlik> There are other additional errors, because of the ripping out of stuff, but the main error shows up
<hkaiser> Yorlik: why is it so many files?
<hkaiser> rip out more!
<hkaiser> one file is usually sufficient
<Yorlik> Argh ..
<Yorlik> OK
<Yorlik> hkaiser: Update with one file less: https://www.dropbox.com/s/dlojznmrauakgsm/testcase1.zip?dl=0
<Yorlik> Also shorter files
<hkaiser> which file fails compiling?
<hkaiser> Yorlik: ^^
<Yorlik> controller.cpp
<hkaiser> so I don't need luanengine.cpp and testcase.cpp?
<Yorlik> this line: auto l_fut = hpx::async<run_lua_a>( hpx::find_here( ), "print('Hello from controller init()')" );
<Yorlik> luaengine defines the action
<hkaiser> its a compiler error
<Yorlik> Yes - we already had that.
<hkaiser> so I don't need those files, do I?
<Yorlik> run_lua_a is declared in luaengine.hpp
<hkaiser> I can't download the files from dropbox without signing in, I have no account
<Yorlik> I can ddc them to you really quick
<Yorlik> If you accept the DCC file transfer
<Yorlik> Or I update the gist - as you wish
<Yorlik> Did you ever consider using Discord instead of IRC?
<hkaiser> gist would be fine
<hkaiser> irc is just fine
<hkaiser> next year somebody wants to use yet another discord, so why bother
<Yorlik> hkaiser: ^
<Yorlik> Well - Discord allows easy file transfer, screenshot sharing, code highlighting for snippets, voice chat and screensharing ... It has something.
<Yorlik> I think it's more than just a fad.
<hkaiser> sure, but next year everything else is hyped
<hkaiser> or even tomorrow
<Yorlik> It's not a hype.
<Yorlik> It's functionality.
<hkaiser> irc lives on for more than 40 years and will do so for a while
<zao> Bleh.
<Yorlik> And integration.
<Yorlik> Sure ... C was great too. And why not assembler?
<hkaiser> last year everybody wanted to move to slack, now its discrod
<Yorlik> You decide - just asking.
<Yorlik> mailing lists also work nicely
* Yorlik too remembers a time where mobile phones, Laptops and PCs were not really a thing.
<hkaiser> Yorlik: here is the minimal test that reproduces the issue: https://gist.github.com/hkaiser/f3a1c0f0f67f11138d106f5d7f24e6cd
<Yorlik> Nice! (Never said I'm experienced in creating minimal testcases ;) )
<hkaiser> Yorlik: just so you see it for the next time
<Yorlik> Yes - definitely a learning experience!
<hkaiser> and no, I have no idea yet what's going on ;-)
<Yorlik> That'S good.
<Yorlik> I feel less stupid now :P
<Yorlik> I always have these nightmares about submitting HPX bugs and suddenly a two-horned hkaiser appearing showing me a trivial bug in my code ...
<hkaiser> lol
<Yorlik> :)
<hkaiser> Yorlik: and yes, it's a stupi error on your end
<Yorlik> What did you find?
<hkaiser> it has to be: HPX_REGISTER_ACTION_DECLARATION(agns::game::lua::run_lua_a, run_lua_a);
<hkaiser> pass the action as the first argument, not the function
<hkaiser> sam for the register macro
<Yorlik> FFS lol
<Yorlik> The good thing is: you took a while to see it either ;)
<Yorlik> Thanks - testing now !
<Yorlik> Consequence should be: We need a good documentation for all the macros
<Yorlik> Including an explanation what they do and why
<Yorlik> I added it to my list
<Yorlik> Stuff should really lose it'S black magic quality for end users like me.
<Yorlik> SO - HPX_REGISTER_ACTION essentially is a using for actions, right?
<hkaiser> register_action defines all the boilerplate to make the remote execution possible
<Yorlik> I am not getting an undeclared identifier for run_lua_a in auto l_fut = hpx::async<run_lua_a>( hpx::find_here( ), "print('Hello from controller init()')" );
<Yorlik> But luaengine is included
<Yorlik> In luaengine.hpp I have: HPX_REGISTER_ACTION_DECLARATION( agns::game::lua::run_lua_a, run_lua_a );
<Yorlik> Should it be the other way around?
<hkaiser> I have no idea what you are talking about
<Yorlik> This: C:\repos\sim\src\core\controller.cpp(72): error C2065: 'run_lua_a': undeclared identifier
<Yorlik> From this line: auto l_fut = hpx::async<run_lua_a>( hpx::find_here( ), "print('Hello from controller init()')" );
<hkaiser> the action is defined in your namespace, so it should be fully qualified: async<agns::game::lua::run_lua_a>(...)
<Yorlik> Isee - so the register doesn't put it out of it?
<Yorlik> Trying ...
<Yorlik> It finally compiled ....
<Yorlik> :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)
<Yorlik> Thanks a ton !!!
<Yorlik> Seemy my nightmares were ... reality ... lol
<Yorlik> Creating actions really has a bunch of variables which need documentation / tutorials: Component Methods versus Free Functions, Namespaces, DLL Linkage ...
<Yorlik> I'll pester you about it next time.
<hkaiser> ok
<hkaiser> thanks for your patience!
<Yorlik> Yours too :)
* Yorlik tosses cookies at everyone involved.
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 272 seconds]
K-ballo1 is now known as K-ballo
<Yorlik> Just counted like 631 "HPX_ ..." macros in the source tree ...
<hkaiser> Yorlik: most of those are probably header guards
<Yorlik> Actually not. I extracted them from the doxygen documentation. But most of them are ofc not targeting end users.
<hkaiser> ok
<Yorlik> Still working on formatting ...
<hkaiser> Yorlik: the HPX_xxx_HAVE macros are pure configuration helpers
<hkaiser> the macros ending with _<digit> are internal only
<Yorlik> I'm not saying you are having too many macros ;)
<Yorlik> I was just extracting stuff to see what I might have to learn
<Yorlik> hjaiser: Seems the site is now working: https://mckillroy.github.io/hpx_snippets/index.html
<Yorlik> hkaiser: ^
aserio has joined #ste||ar
aserio has quit [Quit: aserio]
<hkaiser> cool!
<hkaiser> that's great!
<Yorlik> :)
<Yorlik> I wonder what you'd think about my newbie blurb on concurrency and parallelism. I wrote it when I started to try understanding some basic concepts.
<Yorlik> I hope it's not too horrible - lol
<hkaiser> sounds good to me