You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 12, 2019. It is now read-only.
Basically what has come up as part of adding ircv3 support among other things is that there is no real good way to have functions defined in one module be available to another module without putting them into the core. This has caused many issues when trying to clean up the core, things like core/m_message.so and other annoyingly large code files.
A naiive way to implement this would be to abuse hooks in ways they should not be abused. However this is 2015 and we have better ways of doing things.
Create a generic char* -> void* hashmap and a vtable-like global for modules to introduce and remove functions they provide to other modules.
Create a way for modules to declare and require functions from other modules, failing module load if they cannot find the required symbols.
Begin to migrate features that would depend on this to the cross-module linking system.
This is gonna be a bit of a doozy.
Basically what has come up as part of adding ircv3 support among other things is that there is no real good way to have functions defined in one module be available to another module without putting them into the core. This has caused many issues when trying to clean up the core, things like
core/m_message.so
and other annoyingly large code files.A naiive way to implement this would be to abuse hooks in ways they should not be abused. However this is 2015 and we have better ways of doing things.
char*
->void*
hashmap and a vtable-like global for modules to introduce and remove functions they provide to other modules.MONITOR
Move MONITOR out of the core #188Extra credit:
The text was updated successfully, but these errors were encountered: