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?

I don't know about formal policy, There's nothing in

http://trac.osgeo.org/gdal/wiki/rfc8_devguide nor
http://trac.osgeo.org/gdal/wiki/HowToContribute

IMO that's quite much up to the developer(s) of the bindings in question.

Maybe we need a few rules in two above files. I would like to have some rules, which would help keeping the common interface files free of #if's.

FWIW, I haven't have much problems with different Swig versions with Perl bindings.

Ari


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.jo...@gmail.com <mailto:ari.jo...@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




_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to