Maurice-
Will that work with  Ruby MRI as well?

Thanks
Yaron


On Tue, Jan 27, 2009 at 12:16 PM, Diamantini Maurice <
[email protected]> wrote:

> Bonjour à tous,
>
> I'm trying to test a new extension provide with jruby which allows
> to write a binding for a C library directly in ruby without
> writing a C line of code.
> This (ffi) extension is now part of the standard Jruby version.
> That allows to use mixing of java library (like choco constraint
> solver), C extensions (like glpk) directly in (j)ruby code.
>
> As Pierre asked (on the Glpk list) for a java or other binding
> for Glpk, I write this "pseudo-annonce" although ffi-glpk is just
> a demonstrator for now.
> But it allows to write the glpk documentation minimal example
> in **full (j)ruby** code!
>
> The demonstrator is available at :
>    
> http://www.ensta.fr/~diam/ruby/online/pub/<http://www.ensta.fr/%7Ediam/ruby/online/pub/>
>
> The code provided is the mimimum for writing the glpk doc mini
> example in ruby.
>
> Hope this help,
> -- Maurice Diamantini
>
> Here is the README :
> ==============================================================
> ## what is it
>
> This directory contains a test exemple to validate Glpk interface to
> (J)Ruby
> thanks to the new ffi Ruby package.
>
>    - Glpk is the Gnu Library tookit for Linear Programming written in C
>      by Andrew Makhorin,
>         http://www.gnu.org/software/glpk/
>
>    - Ruby is a wonderfull true objet oriented programming scripting
> language
>      written in C
>
>    - JRuby is a Ruby (100% compatible) version written in Java and fully
>      supported by Sun. It is also fully integrated with the java world and
> is
>      as fast as the new native Ruby-1.9 version
>        http://jruby.org/
>
>    - FFI is a new package which allow to write 100% Ruby interface to C
>      library!! FFI is currently fully integrated with JRuby language.
>      and can be installed for Ruby native language.
>        http://kenai.com/projects/ruby-ffi/pages/Home
>
> ## The provided exemple allow to solve the following problem :
>
>    max z = 10x1 + 6x2 + 4x3
>    s.c.
>       x1 +  x2 +  x3 <= 100
>     10x1 + 4x2 + 5x3 <= 600
>      2x1 + 2x2 + 6x3 <= 300
>
>      x1 >= 0
>      x2 >= 0
>      x3 >= 0
>
>
> This directory contains :
> - a file "miniglpk.c" which is exactly the glpk exemple provide with the
> glpk
>  documentation.
>  You should be able to test this programme to make sure glpk is installed
> on
>  your system, but a compilator is not required for using glpk from (J)ruby
>
> - a file "ffi-glpk.rb" wich contains the minimum for writing the low level
>  API used in the tutorial example,
>
> - the file "mini_glpk.rb" which is the the ruby version of the tutorial.
>
>
> ## Execution of the test the C version
>
> For compiling and running the C exemple, you should set two environment
> variables :
>
> - GLPK_LIB should be set the path were the library file libglpk.so or
>  libglpk.dylib is located,
>  For sample
>    export GLPK_LIB=/usr/local/lib
>
> - GLPK_INCLUDE should be set the path were the library file glpk.h
>  is located
>  For sample
>    export GLPK_LIB=/usr/local/lib
>
> Then compile by:
>    gcc -I$GLPK_INCLUDE -L$GLPK_LIB -l glpk -o mini_glpk mini_glpk.c
> and run by:
>    ./mini_glpk
> The following result should appear:
>
>    *     0: obj =   0.000000000e+00  infeas =  0.000e+00 (0)
>    *     2: obj =   7.333333333e+02  infeas =  0.000e+00 (0)
>    OPTIMAL SOLUTION FOUND
>    z = 733.333; x1 = 33.3333; x2 = 66.6667; x3 = 0
>
>
> ## Execution the jruby test
>
> You should have the last jruby version (jruby-1.6) which contains
> FFI out of the box, or ruby and install ffi with
>   gem install ffi (not tested)
>
> Also, the glpk lib should be discover aumoticaly on osx leopard or recent
> linux distrib, but for now, you can specify the path path (i.e. bu
> using the  previous GLPK_LIB variable.
> See the start "ffi-glpk.rb" if you have problems
>
>   then run
>   ./mini_glpk.rb
>
> It's all !
>
> ## Remark about the "ffi-glpk.rb" interface file
>
> This kind of file could become the low level interface to the glpk
> library.
>
> It seems that the FFI community converge to the idea that there should
> be one standard **low** level interface to a C library. It is essentialy
> a sort of mapping of the include file and should be easy to maintain
> (ideally automically generated from the include file).
>
> Then it could exist several higher level API to make this interface more
> Object Oriented ou more Ruby frendly.
>
> ## ./
>
>
>
>
> _______________________________________________
> Help-glpk mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/help-glpk
>
_______________________________________________
Help-glpk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to