| | scores | comments |
test | wt. | B | Si | Sw | Boost | SIP | SWIG |
basic | 1 | 8 | 6 | 7 | very simple input; single file output file; long compile time; link dependency on Boost | copy and modify header as input; .py and .so output | input fairly simple (can probably make it simpler in this case?); .py and .so output |
overload | 3 | 5 | 6 | 10 | Fails to resolve double and int, but compiles without warning. | Refuses to compile if double and int both requested | Gets it all right |
virtual functions | 5 | 10 | 0 | 5 | Quite messy in raw Boost, but absolutely trivial in Pyste. | | Callbacks into python-overriden virtual functions don't work (at least by default ... still looking whether a solution exists). |
template | 5 | 10 | 0 | 10 | Looks good at first blush | ? | Looks good at first blush |
std::string | 3 | 10 | 0 | 0 | Just Works | ? | ? |
operators |
STL |
in-out args |
default args | 3 | 6 | 0 | 9 | No Pyste support; relatively tedious, but works. Default values must be in header. | ? | default values must be in the header. |
return-value ownership |
module interdependency |
interoperability 1 |
interoperability 2 |
excepiton translation |
namespaces |
iterators |
threads |
speed |
sub-total: | | 171 | 24 | 139 |
general impression |
verbosity of input | 7 | 10 | 0 | 7 | With pyste, it's excellent | Looks tedious, but need more experience with it | Must make sure to understand when SWIG can get all it needs from the header without any help. |
edit-debug-test cycle | 7 | 0 | 6 | 6 | Extremely slow to compile, error messages are pure noise | no basis for firm opinion yet | no basis for firm opinion yet |
tidyness of output | 1 | 7 | 5 | 6 | single .so, but must link boost library | lots of .py and .so | .py and .so, lots of extra stuff in the python namespaces |
configurability |
documentation | 10 | 6 | 1 | 5 | Actively growing | Essentially non-existent, and no real sign of progress. | Outdated?, C++/Python sections not exhaustive? |
Total: | | 308 | 81 | 286 |