<div dir="ltr">Hi Ari,<div><br></div><div>Which SWIG version have you been testing with?</div><div><br></div><div>Converting IntPtr to string doesn't seem to be a good solution. We should do something like what we do for ReadRaster which also use A<span style="color:rgb(0,0,0);font-size:12.8000001907349px">ddrOfPinnedObject(). I'm trying to reproduce this.</span></div><div><span style="color:rgb(0,0,0);font-size:12.8000001907349px"><br></span></div><div><span style="color:rgb(0,0,0);font-size:12.8000001907349px">Best regards,</span></div><div><span style="color:rgb(0,0,0);font-size:12.8000001907349px"><br></span></div><div><span style="color:rgb(0,0,0);font-size:12.8000001907349px">Tamas</span></div><div><span style="color:rgb(0,0,0);font-size:12.8000001907349px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-05-29 9:11 GMT+02:00 Ari Jolma <span dir="ltr"><<a href="mailto:ari.jolma@gmail.com" target="_blank">ari.jolma@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
In my fork I've now added mono-mcs into the travis test machine and
"make test" to CSharp. The build & tests all work. <br>
<br>
<a href="https://travis-ci.org/OSGeo/gdal/builds/64450000" target="_blank">https://travis-ci.org/OSGeo/gdal/builds/64450000</a><br>
<br>
However, one fix I did for the CSharp bindings is most probably
wrong (convert return value of
handle.AddrOfPinnedObject() to char *)<br>
<br>
<a href="https://github.com/ajolma/gdal/commit/6509ef06d6f89d99c446300e4f4a63b65613911e" target="_blank">https://github.com/ajolma/gdal/commit/6509ef06d6f89d99c446300e4f4a63b65613911e</a><br>
<br>
Tamas, do you have an idea for this?<br>
<br>
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.<br>
<br>
<a href="https://github.com/swig/swig/issues/242" target="_blank">https://github.com/swig/swig/issues/242</a><br>
<br>
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.<br>
<br>
Best,<br>
<br>
Ari<span class=""><br>
<br>
<div>On 26.05.2015 13:53, Tamas Szekeres
wrote:<br>
</div>
</span><div><div class="h5"><blockquote type="cite">
<div dir="ltr">Is that a requirement that the bindings should work
well with all SWIG versions or that the generated wrappers
should work just fine?
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>Tamas</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-05-26 11:09 GMT+02:00 Ari Jolma <span dir="ltr"><<a href="mailto:ari.jolma@gmail.com" target="_blank">ari.jolma@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>26.05.2015, 11:38, Even Rouault kirjoitti:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Le mardi 26 mai 2015 10:13:49, Tamas Szekeres a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Ari,<br>
<br>
I haven't tried to compile that with mono for quite a
long time. I'll give<br>
it a try.<br>
<br>
However we did not follow the latest changes in the
SWIG implementation<br>
with the bindings, so I'd try with an earlier version
(ie. 1.3.39) to<br>
generate the wrappers.<br>
</blockquote>
I can confirm that I can compile the CSharp bindings on
Linux with SWIG 1.3.40<br>
(and run the tests), but I get the same error as Ari
with SWIG 2.0.X<br>
<br>
As far as I know, Java and Python bindings build and run
equaly well with SWIG<br>
1.3.40 or 2.0.X (although there's a Unix makefile hack
to have Python 3.2<br>
compat, conditionnaly applied with SWIG 1.3.40, that is
no longer needed with<br>
SWIG 2.0.4 or later)<br>
</blockquote>
<br>
</span>
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.<br>
<br>
However, 1.3.39 does *not* put the PVINVOKE() method twice
into the PVINVOKE.cs file.<span><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
May be we should consider including the generated<br>
wrappers in gdal instead of let the users to use
different versions with<br>
different results.<br>
</blockquote>
It would be good if we could have a common SWIG version
that works for all the<br>
bindings. So currently it seems to be 1.3.40 ?<br>
<br>
Regarding putting the generated wrappers in SVN, that's
already what we do for<br>
Python. We could also just include the generated
wrappers in the tarballs.<br>
</blockquote>
<br>
</span>
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.<br>
<br>
Ari<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Even<br>
<br>
</blockquote>
<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>