On Sat, Apr 19, 2008 at 1:41 PM, Dirk Eddelbuettel <[EMAIL PROTECTED]> wrote:

>
> Duncan,
>
> On 20 April 2008 at 05:44, Duncan Temple Lang wrote:
> | ~  I've waited to see if there would be posts from others, but am
> | a little surprised to see only your two.  It would seem people aren't
> | using SWIG for R and I wonder why this community hasn't used or wanted
>
> AFAICT it is a classic chicken and egg problem.
>
> "Something" exists, but is not exactly mature, been used mostly just for a
> very large and rapidly changing codebase (ie Quantlib, which should
> stabilise
> after the 1.0 release 'real soon now') with moderate success and hence
> doesn't get off the ground for more.
>
> | such tools?  Do we not have a need for them, or are we not aware of
> them, ...?
> | or
>
> My conjecture is that it would take off rather forcefully if only there
> were
> one or two use cases for moderately-sized well-known libraries, providing
> both use cases and usage templates.
>

This may be somewhat off-topic but:

My personal interests have led me away from SWIG-generated bindings, because
SWIG does not incorporate the OOP semantics of GObject-based libraries. A
large number of C libraries  (at least for GUIs and visualization) are
implemented around GObject these days, so it's an unfortunate limitation.

The GObject introspection project (
http://live.gnome.org/GObjectIntrospection) is really starting to come
together. Their IDL, while GObject-focused, will be able to express
interfaces to non-GObject-based libraries as well, so it's somewhat of a
superset of SWIG. The IDL is XML-based and can be autogenerated from C
source using a real C parser (gcc-based). They also finally caught on to my
suggestion of embedding memory management, parameter directions, etc in
in-line comments (via gtk-doc), which should go a long way towards
stream-lining things, even in non-GObject libraries that use gtk-doc like
Cairo. The VAPI format from the Vala project (http://live.gnome.org/Vala) is
easily hand-edited in C#-ish syntax and will be convertible to the IDL.

There are a large number of languages that have some sort of binding to
GObject-based libraries (http://www.gtk.org/language-bindings.html),
including R of course, and I expect many of them will converge on using the
GObject introspection stuff as their input.

Anyway, I am not debating the general utility of a SWIG-R connection; just
explaining things from my perspective.

Michael


> | ~  So what to do?  Firstly, I don't get that crash on load on my Linux
> | box.  So we would have to investigate further, but at least it does work
> | somewhere.  And such extreme failures are actually less worrying than
> the
> | potential lack of functionality in the bindings.
> |
> | ~  Soeren has already been in touch with me and indeed the
> | code in the SWIG distribution comes origially from the RSWIG source on
> the
> | omegahat repository. Unfortunately, the person who took that code
> | and put into the SWIG distribution did by himself and didn't seem
> | to want to work together to improve it add get it beyond the
> experimental state
> | it was in.  Futher, he apparently listed me as the contributor,
> | but haven't communicated at all with the SWIG developers and so I do not
> have
>
> I think that is not true. Joe Wang had me CCed on a few email he had with
> the
> Swig maintainers. He either has or had write access to the Swig repo, and
> that seems to make sense as he was, afaik, the only one showing up there.
>  Or
> did you ever offer your code for inclusion there?
>
> But all that is spilled milk now.  Soeren has an _actual_ issue _right
> now_
> so what can we do to get a proven tool (ie Swig) working and integrated
> with
> R for him to get his work done and R and Shogun integrated ?
>
> | access to the SWIG repository and cannot change the code.
> | So we have a little bit of a problem that might have been better dealt
> with if
> | code had continued to be developed outside of SWIG by the R community.
> |
> | ~ If there is nobody interested in using SWIG in R, then there is little
> point
> | in fixing it.  I have been working on an alternative way to generate
> bindings using
> | output from GCC (gcc & g++) and exploring how the bindings should work
>
> Sure, that is very well for you as a research project, but Swig is there,
> is
> rather mature, understood and widel y used -- just not as much with R as
> it
> could be.  IMHO we'd better off focussing on getting Swig working.
>
> | generally.  Most of the ideas I think would be able to go back into SWIG
> | and that _might_ be an easier tool for people to use who don't want more
> control
> | over the code generation or to do analysis on the code itself.
> | But if nobody other than the two of us is interested in using a general
> interface code
> | generation mechanism, then perhaps we shouldn't waste too much time on
> such
> | general resources.  However, I think it is of value and I think
> | we can fix up the SWIG module with a little collaboration.
>
> There is definitely interest.  Eg from the Quantlib angle, a few people
> expressed interest a few months ago to revive the R/Quantlib integration
> via
> Swig but nothing much has come of it yet. We're all too busy it seems.
>
> Dirk
>
> | ~  D.
> |
> |
> | Michael Lawrence wrote:
> | | I am not sure what is included with swig, but have you seen this?
> | |
> | | http://www.omegahat.org/RSWIG/
> | |
> | | I'm not sure if it's actively maintained, but at the very least it
> might
> | | help in your efforts at getting an R swig driver working.
> | |
> | | Michael
> | |
> | | On Fri, Apr 18, 2008 at 3:49 AM, Soeren Sonnenburg <[EMAIL PROTECTED]>
> wrote:
> | |
> | |> Dear all,
> | |>
> | |> I was trying to use the R swig wrapper with R 2.7 and shogun
> | |> ( http://www.shogun-toolbox.org ) but it fails completely, as in
> doesn't
> | |> even compile and even after patching then though compiling -
> crashes...
> | |>
> | |> So I asked on swig-users/swig-devel CC'ing the potential R maintainer
> | |> but I never received a reply. I now wonder if anyone here could help
> or
> | |> would be willing to maintain R+swig.
> | |>
> | |> The compile fix for R 2.7 is here
> | |>
> | |> http://article.gmane.org/gmane.comp.programming.swig/12697
> | |>
> | |> and the crash I am now that it compiles see is
> | |>
> | |> #0  0xb804e201 in _dl_debug_state () from /lib/ld-linux.so.2
> | |> #1  0xb8051608 in dl_open_worker () from /lib/ld-linux.so.2
> | |> #2  0xb804d5d6 in _dl_catch_error () from /lib/ld-linux.so.2
> | |> #3  0xb8050f5e in _dl_open () from /lib/ld-linux.so.2
> | |> #4  0xb74c3c19 in dlopen_doit () from /lib/i686/cmov/libdl.so.2
> | |> #5  0xb804d5d6 in _dl_catch_error () from /lib/ld-linux.so.2
> | |> #6  0xb74c42bc in _dlerror_run () from /lib/i686/cmov/libdl.so.2
> | |> #7  0xb74c3b51 in dlopen@@GLIBC_2.1 () from /lib/i686/cmov/libdl.so.2
> | |> #8  0xb7efd036 in loadLibrary (path=0xbfa5650c
> | |>
> "/home/sonne/Documents/work/fml/repositories/shogun/trunk/src/features/Features.so",
> | |> asLocal=1, now=1, search=0x9a81f20 "") at dynload.c:92
> | |> #9  0xb7d6efb3 in AddDLL (path=0xbfa5650c
> | |>
> "/home/sonne/Documents/work/fml/repositories/shogun/trunk/src/features/Features.so",
> | |> asLocal=1, now=1, DLLsearchpath=0x9a81f20 "") at Rdynload.c:543
> | |> #10 0xb7d6f657 in do_dynload (call=0x9e23998, op=0x9a91e44,
> | |> args=0xa60d5e0, env=0xa60d650) at Rdynload.c:904
> | |> #11 0xb7e43dba in do_internal (call=0x9e239d0, op=0x9a8798c,
> | |> args=0xa60d5e0, env=0xa60d650) at names.c:1129
> | |> #12 0xb7e0df21 in Rf_eval (e=0x9e239d0, rho=0xa60d650) at eval.c:463
> | |> #13 0xb7e11a3c in Rf_applyClosure (call=0xa60d74c, op=0x9e23a94,
> | |> arglist=0xa60d6dc, rho=0x9a9a720, suppliedenv=0x9a9a73c) at
> eval.c:669
> | |> #14 0xb7e0de19 in Rf_eval (e=0xa60d74c, rho=0x9a9a720) at eval.c:507
> | |> #15 0xb7e31a00 in Rf_ReplIteration (rho=0x9a9a720, savestack=0,
> | |> browselevel=0, state=0xbfa589a8) at main.c:257
> | |> #16 0xb7e31ddc in run_Rmainloop () at main.c:306
> | |> #17 0xb7e31e1c in Rf_mainloop () at main.c:974
> | |> #18 0x08048776 in main (ac=1, av=0xb805b668) at Rmain.c:35
> | |> #19 0xb7be8450 in __libc_start_main () from /lib/i686/cmov/libc.so.6
> | |> #20 0x08048691 in _start ()
> | |>
> | |> To reproduce
> | |>
> | |> wget http://nn7.de/debugging/shogun-0.6.1+svn2882.tar.bz2
> | |> tar xjf shogun-0.6.1+svn2882.tar.bz2
> | |> cd shogun-0.6.1+svn2882/src
> | |> ./configure --interface=R-modular
> | |> make
> | |>
> | |> (wait a few minutes)
> | |>
> | |> R
> | |> dyn.load('features/Features.so')
> | |> #source("features/Features.R") # not even necessary.
> | |>
> | |> Note that shogun works for both python and octave nicely...
> | |>
> | |> So the question for me is, will this be better maintained in the
> future
> | |> or should I stop investing time on getting R supported?
> | |>
> | |> Desperate,
> | |> Soeren
> | |>
> | |> ______________________________________________
> | |> R-devel@r-project.org mailing list
> | |> https://stat.ethz.ch/mailman/listinfo/r-devel
> | |>
> | |
> | |     [[alternative HTML version deleted]]
> | |
> | |
> | |
> | |
> ------------------------------------------------------------------------
> | |
> | | ______________________________________________
> | | R-devel@r-project.org mailing list
> | | https://stat.ethz.ch/mailman/listinfo/r-devel
> |
> | -----BEGIN PGP SIGNATURE-----
> | Version: GnuPG v1.4.7 (Darwin)
> | Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> |
> | iD8DBQFICi9m9p/Jzwa2QP4RAv6qAJ9Ov/0ZrzXxQutS86fk/VgdH09G3wCdG2v5
> | p/XgqF2ZakrmJzZtHSb7ZLY=
> | =RPiM
> | -----END PGP SIGNATURE-----
> |
> | ______________________________________________
> | R-devel@r-project.org mailing list
> | https://stat.ethz.ch/mailman/listinfo/r-devel
>
> --
> Three out of two people have difficulties with fractions.
>

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to