[gdal-dev] CSharp bindings question
Ari Jolma
ari.jolma at gmail.com
Fri May 29 00:11:18 PDT 2015
In my fork I've now added mono-mcs into the travis test machine and
"make test" to CSharp. The build & tests all work.
https://travis-ci.org/OSGeo/gdal/builds/64450000
However, one fix I did for the CSharp bindings is most probably wrong
(convert return value of handle.AddrOfPinnedObject() to char *)
https://github.com/ajolma/gdal/commit/6509ef06d6f89d99c446300e4f4a63b65613911e
Tamas, do you have an idea for this?
There are a lot of #if ... #endif's in for example ogr.i to limit
%feature("kwargs"), this is due to a swig bug, which is fixed in 3.03 so
we need to leave them in for now.
https://github.com/swig/swig/issues/242
There's a lot still to do to cleanup the common interface files but how
do you feel, is there a chance that this is accepted into the trunk (and
2.1)? I'd also love to have a policy for developing the bindings and
working test codes for all maintained languages. A rule could be that
the use of #if ... #endif in common files needs a good justification and
commits, which do not cause test codes to fail are ok per se.
Best,
Ari
On 26.05.2015 13:53, Tamas Szekeres wrote:
> Is that a requirement that the bindings should work well with all SWIG
> versions or that the generated wrappers should work just fine?
>
> Formerly I have been thinking that we should support all versions, but
> it took large amount of extra efforts to work around all incompatible
> changes what SWIG introduces all the time even with the minor
> releases. Regarding to SWIG C# the earlier versions produced
> definitely wrong code and I had implement quite some generic stuff in
> the bindings (for example to work around the early garbage collection
> issues). I see some enhancements in the recent versions in this
> regard, but I'm not sure if I can completely remove these additions to
> get a stable and consistent build.
>
> Tamas
>
>
>
> 2015-05-26 11:09 GMT+02:00 Ari Jolma <ari.jolma at gmail.com
> <mailto:ari.jolma at gmail.com>>:
>
> 26.05.2015, 11:38, Even Rouault kirjoitti:
>
> Le mardi 26 mai 2015 10:13:49, Tamas Szekeres a écrit :
>
> Hi Ari,
>
> I haven't tried to compile that with mono for quite a long
> time. I'll give
> it a try.
>
> However we did not follow the latest changes in the SWIG
> implementation
> with the bindings, so I'd try with an earlier version (ie.
> 1.3.39) to
> generate the wrappers.
>
> I can confirm that I can compile the CSharp bindings on Linux
> with SWIG 1.3.40
> (and run the tests), but I get the same error as Ari with SWIG
> 2.0.X
>
> As far as I know, Java and Python bindings build and run
> equaly well with SWIG
> 1.3.40 or 2.0.X (although there's a Unix makefile hack to have
> Python 3.2
> compat, conditionnaly applied with SWIG 1.3.40, that is no
> longer needed with
> SWIG 2.0.4 or later)
>
>
> Swig 1.3.39 seems questionable. Just look at the download amounts
> at sourceforge. 1.3.39 one download and 1.3.40 148 downloads per week.
>
> However, 1.3.39 does *not* put the PVINVOKE() method twice into
> the PVINVOKE.cs file.
>
>
> May be we should consider including the generated
> wrappers in gdal instead of let the users to use different
> versions with
> different results.
>
> It would be good if we could have a common SWIG version that
> works for all the
> bindings. So currently it seems to be 1.3.40 ?
>
> Regarding putting the generated wrappers in SVN, that's
> already what we do for
> Python. We could also just include the generated wrappers in
> the tarballs.
>
>
> IMO "users" = people who use ready-made packages. Developers and
> packagers should be intelligent enough to use development tools. I
> don't like the idea of having generated files in source
> repositories. I'm also of the opinion that there should be a
> really good reason to use an old version of a common tool. And at
> least in my Linux (Mint, Maya - hmm, that seems already pretty
> old, I should upgrade) swig 2.0.11 is the current. But that's just
> me I guess.
>
> Ari
>
>
> Even
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20150529/81bb7704/attachment.html>
More information about the gdal-dev
mailing list