Nick Coghlan wrote: > Jeffrey Yasskin wrote: >> (b) could be a problem if we depend on LLVM as a shared library on one >> of these platforms (and, of course, if LLVM's JIT supports these >> systems at all). The obvious answers are: 1) --without-llvm on these >> systems, 2) link statically on these systems, 3) eliminate the static >> constructors. There may also be less obvious answers. > > Could the necessary initialisation be delayed until the Py_Initialize() > call? (although I guess that is just a particular implementation > strategy for option 3).
Exactly. The convenience of constructors is that you don't need to know what all your global objects. If you arrange it so that you can trigger initialization, you must have already eliminated them. The question now is what state they carry: if some of them act as dynamic containers, e.g. for machine code, it would surely be desirable to have them constructed with Py_Initialize and destroyed with Py_Finalize (so that the user sees the memory being released). If they are merely global flags of some kind, they don't matter much. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com