Package: libdpkg-ruby1.8
Version: 0.3.2
Severity: wishlist

compare-versions is a very slow process requiring fork; and it is a
bottleneck when applied to apt-listbugs.


How about using something like a C wrapper over C++ library, and
using libapt-pkg ?


irb(main):001:0> require 'dl/import'
=> true
irb(main):002:0> module DEBIAN
irb(main):003:1> extend DL::Importable
irb(main):004:1> dlload "./a.so"
irb(main):005:1> extern "int debian_compare_versions(const char*, const char*)"
irb(main):006:1> end
=> #<DL::Symbol:0x0x5a22f0 func=0x0x2b4f51bb9be0 'int 
debian_compare_versions(const char *, const char *);'>
irb(main):007:0> DEBIAN.debian_compare_versions("1.2","3.4")
=> -2


[23:47:34]dancer64:examples> cat libapt-pkg-version.c
//  g++ -shared libapt-pkg-version.c  -o a.so -fPIC -lapt-pkg
//
#include <apt-pkg/debversion.h>
using namespace std;
extern "C" //int debian_compare_versions(const char* a, const char* b);

int debian_compare_versions(const char* a, const char* b)
{
        return debVS.CmpVersion(a,b);
}





regards,
        junichi
-- 
[EMAIL PROTECTED],netfort.gr.jp}   Debian Project



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to