Hi!

I think many people is aware that current swig bindings generation is
creating way too big modules, that take loads of ram to build and in
some systems arent even linkable due to too many symbols. The problem is
already very visible from python and a lot of people is complaining
(either that they cant build the module or it takes too long).

I'd like to find a solution, but for this i really would need some
insight for the other scripting interfaces and from people with
experience, as im not sure if a possible solution would apply equally to
all of them.

Im thiking in a solution that would involve generating several modules
instead of only one, so instead of cspace module, we could have csgeom,
csutil, cstool, engine... I'm still not sure what modules would be
necessary. Please lets not discuss what modules would be done or what
names they would have at this point, i'd like to address the high level
problems first :) (ie, first design a solution independent of these).

I'll talk about how it would work from python so old ways would still be
supported, id need to know how similar could be done for java and perl
at least. Ideally some talk could be done with maintainers of other
scripting interfaces, regrettably i dont know who you are :)

Thing is python allows to have a module in a folder, so the following
structure could be used:

cspace/__init__.py
cspace/csgeom.py
cspace/_csgeom.so or .pyd
cspace/csutil.py
cspace/_csutil.so or .pyd
...

There is already an example of how additional modules can be made to
work together in pycscegui, pycsextra or blcelc (pycscegui and pycsextra
being better examples of this).

Then with the following code in __init__.py all would still work the
same as now:
from csgeom import *
from csutil import *
...

This way people could still do "from cspace import *". Although it
wouldnt allow to import the modules separately, not sure wether that
would be an objective, but the solution could be designed also for this
(by naming the new bindings differently and creating a cspace.py file to
support old syntax).

So, this said, the other problem is build system would have to be
changed, as having the modules in cs main folder would no longer help,
they really would have to end in the commented cspace folder. I'm
totally not sure about what the best way to do this would be, but i
thought the best would be to build this in some out/bindings/language/
folder (instead of main folder) so they can be frozen inside their
language dirs under scripts/language/cspace/

Then also there is a detail that could be attacked at the same time,
right now cspython links in the _cspace swig generated library, also
cel's blcelc is linking in _cspace and _blcelc libraries. This is
convenient for distribution but i'm not sure about whether its best
approach, in any case i'd like to know if other languages are doing
similar or they use the swig generated dlls. (in python the dlls are
only used from pure python apps, if using embedded code the versions
linked in are used instead).

Please make your comments, ideas or critics on the subject :)

Greetings

 Pablo


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Crystal-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crystal-main
Unsubscribe: mailto:[EMAIL PROTECTED]

Reply via email to