IRC logs of Freenode #BZFlag for Sunday, 2021-01-10

BZNotifybzflag.org: allejo synchronized pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd)01:28
BZNotifybzflag.org: allejo synchronized pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd)01:33
ZehraWhile trying a manual compile of a plug-in, I get this error: undefined symbol: _ZN12PluginConfigC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE01:36
ZehraCompile command is basically this: g++ -I /pathToDeps/ -shared -fPIC -o plugin.so plugin.cpp01:37
ZehraAnd in the pathToDeps, it includes the files from 'plugin_utils' as well as 'bzfsAPI.h'.01:38
ZehraAlso to note, error is when attempting to loadplugin and start server at debug level '-ddd'.01:39
Zehra"bzfs: symbol lookup error: /pathToPlug/plugin.so" is before error message as well.01:40
allejowhy are you compiling a plugin manually?01:40
ZehraIt's easy for me, I only need to change a single line and my script compiles them.01:41
ZehraAlso most of the time, I generally simply test/run plug-ins in a write/test cycle, so it works well in that regard.01:42
Zehraor all the time*01:42
allejolooks to me like you're not linking the built plugin_utils. because that's where PluginConfig is defined01:44
BZNotifybzflag.org: allejo review_requested pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd)01:44
FlashZehra: I assume that was a typo, that the -G flag was omitted?01:45
ZehraFlash: I didn't include the -G option, should I include it?01:47
FlashI guess it is -shared for g++01:47
Flashsorry01:47
Flashthat's what comes of being a dinosaur ... your brain is littered with useless obsolete info01:47
Zehranp, happens to the best.01:48
Flashwhat version of g++?01:49
Flashand what version of bzfs?01:50
Zehrag++ version: g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, bzfs version: 2.4.2001:52
BZNotifybzflag.org: allejo synchronized pull request #38 "Documentation for server permissions" by The-Noah (https://git.io/JLNLd)01:53
BZNotifybzflag.org: The-Noah commented on pull request #38 "Documentation for server permissions" (https://git.io/JLhyb): I'm glad I could help, and thank you @allejo for making this 10x be...01:56
blast007Zehra: you really should just build the plugin with our build system01:56
blast007you'd already have it working by now if you just did that01:57
blast007if you're just adding a new plugin to an existing build of the source, it doesn't have to recompile everything.  just had to re-run autogen, configure, and then it'll build just the new/changed stuff (in this case, the plugin)01:58
BZNotifybzflag.org: allejo opened issue #39 "Migrate documentation for groups and permissions" (https://git.io/JLhSf)02:00
Zehrablast007: Thanks. I'll be looking into autogen and the configuration stuff.02:02
FlashI'm having trouble digging into bzfs, but the error it is giving you says PluginConfig::PluginConfig(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) is missing02:04
Flashin C++11, they changed the name mangling for std::string, to allow pre-11 and post-11 implementations to coexist02:04
allejohttps://forums.bzflag.org/viewtopic.php?f=79&t=1910402:05
Flashyou aren't compiling with -std=c++11 (or later); that may be why the symbol isn't found02:05
allejoan unfound symbol like that means something wasn't linked correctly, no? plugin_utils.a (or whatever extension) isn't being linked in that command02:05
allejobut regardless, compiling as part of the bzfs build system is 10x easier02:06
Flashand always safer02:06
FlashI have had to troubleshoot so many issues coworkers have caused by building "just what I need" and they don't understand why things don't work02:07
FlashThat said, it might be nice not to tie plugins to the project build, since we are supposedly isolated behind the API ... unless the issue is exactly what you said before, about not linking plugin_utils02:09
blast007what is the problem with having it tied to the project build?02:10
FlashThe plugin isn't really part of the server02:10
Flashso I should be able to configure/build a plugin completely independently of the server02:11
blast007I see no point in supporting that02:11
Flashsee https://wiki.gnuradio.org/index.php/OutOfTreeModules for an example of how this can be done02:11
blast007people seem to act like it such a huge hassle to build plugins, but it's not02:12
blast007it doesn't take long to rebuild the entire source tree, and it certainly doesn't take long to copy in a plugin folder, add a line to a file, and autogen/configure/make to build the extra plugin02:14
blast007the configure script has a --enable-custom-plugins-file argument (or --enable-custom-plugins if you just want to pass the names on the command line)02:15
Flashthat it works (the way you describe) is not the same as it couldn't be improved02:15
blast007doing it separately just causes problems02:16
blast007the server and plugins end up out of sync and then stuff goes badly02:17
blast007an improvement would be getting rid of C++ plugins and moving to a scripting language like lua, angel script, or squirrel02:19
Flashthe ability to support scripting plugins (a good idea) would require a sufficiently rigid API boundary that you could also support independently compiled C++ (or Fortran, or COBOL) plugins also02:25
Flashthat there is any dependency between the server and the plugins, to get out of sync, is evidence of a blurry API line02:25
JeffM[m]I made the api with the intent of it being possible to write plug-ins that can implement scripting language plug-ins02:30
JeffM[m]The plug-in can register plug-in loaders for other extensions, so you can do a python or lua plug-in02:31
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has quit IRC (Quit: Quit)02:36
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer)09:58
*** Delusional <Delusional!~delusiona@unaffiliated/delusional> has quit IRC (Quit: Textual IRC Client: www.textualapp.com)11:12
*** Delusional <Delusional!~delusiona@unaffiliated/delusional> has joined #bzflag11:14
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has joined #bzflag17:11
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag17:35
*** Sgeo_ <Sgeo_!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag17:43
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Ping timeout: 260 seconds)17:45
*** Sgeo_ <Sgeo_!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer)20:07
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag20:09
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer)20:32
*** Sgeo <Sgeo!~Sgeo@ool-18b98aa4.dyn.optonline.net> has joined #bzflag20:34
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has quit IRC (Quit: Quit)23:54

Generated by irclog2html.py 2.17.3.dev0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!