Hi, If you've found the Perl XS interface easy to work with, give Raku's NativeCall a try, you will find it amazing. Since you already know the C libraries, I guess you can cook an interface in no time.
On Wed, Apr 28, 2021 at 7:09 AM sisyphus <sisyphus...@gmail.com> wrote: > > > On Tue, Apr 27, 2021 at 12:23 AM sisyphus <sisyphus...@gmail.com> wrote: > > >> (I guess I could just use Inline::Perl5 ... not exactly my preferred >> option ... but a viable alternative, I would think.) >> >> > The following sort of works, but not in a very meaningful way. > All it really does is show that perl is seeing the 3 raku variables ($n, > $r1 and $r2) as being a 53-bit (double precision) representation of 0.1. > > use Math::GMPq:from<Perl5> ":mpq"; > > -------------------------------------------------- > my $n = 1e-1; > say "# ", Rmpq_get_str(Math::GMPq::new($n), 10); > > my Rat $r1 = 0.1; > say "# ", Rmpq_get_str(Math::GMPq::new($r1), 10); > > my Rat $r2 = 1/10; > ; > say "# ", Rmpq_get_str(Math::GMPq::new($r2), 10); > > # Wanted: > # 3602879701896397/36028797018963968 > # 1/10 > # 1/10 > > # Got: > # 3602879701896397/36028797018963968 > # 3602879701896397/36028797018963968 > # 3602879701896397/36028797018963968 > > =finish > use Devel::Peek:from<Perl5>; > # Shows that perl sees $n, $r1, and $r2 > # as being the double 0.1: > Devel::Peek::Dump($n); > Devel::Peek::Dump($r1); > Devel::Peek::Dump($r2); > > -------------------------------------------------- > > Cheers, > Rob > -- Fernando Santagata