I have been trying to reach Arantor for the last 4 days, but it seems I can't reach him no matter how many private messages I send nor how many times he logs in this forum.
I am writing here to report that I have succeeded in embedding Falcon VM in my local copy of Emerald Editor. The skeleton embedding consists only in a "script" menu entry by which it is possible to load a Falcon script. The script can have arbitrary content and is run sequentially.
I have also written a skeleton "application module" that provides a function that allows falcon scripts to write strings at current position in the editor. Of course, it's a very rudimentary integration, but there's everything to start the embedding process.
All the changes I have made are protected under an #ifdef directive; I have added a separate gnu makefile that enables the compilation with Falcon libraries. The code is isomorphic with the repository prior to my work. In other words, normal users not explicitly willing to test this embedding feature won't even notice it's there.
I have still not committed it because I am waiting for confirmation from Arantor for a "clear to go", and I am not planning to go further into the work without a prior planning with the community, yet I think it would be useful to see how this skeleton embedding works as a basic idea.
If my proposal gets definitely accepted I will work to provide a generic scripting engine, that would be capable to accept any other scripting language integration. Just as an example, there is the need to abstract the search & replace interface that is now bound with the widgets actually performing the operations. The abstract layer could then be used by any scripting facility.
Theoretically, scripting facilities could be also plugged with dlls. There may be a dll plugin for Falcon scripting, one for Python scripting, and one for who-knows scripting; compilation requirements (i.e. script libraries) would then only be needed to compile a single DLL. However, this would require an extra abstraction layer and may actually add little or none value to the flexibility of the scriptability itself: the script support would still require to be written somewhere. Having it linked in the app or plugged as a dll is just a "structural" choice. The extra indirection layer and inter-module communication would add a bit of overhead; it may or may not be worth.
I would however help in doing what is needed for one thing or the other, provided Falcon is one of the scripting options. Actually, I strongly believe in abstraction and interfaces can make a better software even if they are used only once, so it would really be no extra effort for me...
So, I wait for a nod (and private account confirmation) to check in the skeleton embedding.