Up to now my impression is that the approach of xml to name-spaces is provably the most effective one:
Using a URL to define a unique global name-space and a symbol that references it as a prefix to cut down on the verbosity.
e.g.: in the module file:
(context 'example.com/library-name/module-name)
; code...
(context)
in the MAIN file:
; since (context) is the las evaluated expression it can be assigned to a symbol
(define xx (load "/home/vlad/newlisp/example.com/library-name/module-name.lsp"))
I thought of creating a library to add more features, but adding another dependency creates a barrier to sharing code.
i.e.: if every developer has his own unique way of managing name-spaces interoperability tends to suffer.
But I'll check out your library before settling on this.
I haven't looked into the other two problems mentioned in my original post:
* avoiding slot clashes when using multiple libraries that use c-callbacks (a global manager is the only solution I can think of so far, but it has the same sort of dependency/sharing drawbacks)
* creating anonymous contexts to pass around as references without name clashes. (I still haven't looking into FOOP, so there might be a solution there)
Again, thank you for sharing.