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]
