After browsing the documentation and the forum I still have some doubts regarding the best approach to modularization/isolation of code in order to prevent name clashes or unintended overwrites.
- Are the 16 slots for C callbacks global or per shared object?
e.g.: If I load two independent modules that load two unrelated .so but each one registers a callback on the same slot will they overwrite each other?
If this is the case is there any way around it? - In Writing software in modules it's suggested to create a context per module.
In the samples the contexts are named withing the modules.
Wouldn't it be more flexible to to let the user of the module manage the name-spaces instead of hard-coding them?
i.e.: not using contexts in the module file and using (load "module.lsp" 'WHATEVER-CTX) in the file that requires the module. - Is there a way to generate anonymous contexts? Is using UUIDs or a global counters the only way to avoid context name clashes?
I'm currently having fun with both, newLISP and PicoLisp
Thank you very much,
vlad