[#42344] [ruby-trunk - Feature #5964][Open] Make Symbols an Alternate Syntax for Strings — Tom Wardrop <tom@...>

23 messages 2012/02/03

[#42443] [ruby-trunk - Bug #5985][Open] miniruby skews "make benchmark" results — Eric Wong <normalperson@...>

21 messages 2012/02/08

[#42444] [ruby-trunk - Bug #5986][Open] Segmentation Fault — Luis Matta <levmatta@...>

16 messages 2012/02/08

[#42471] [ruby-trunk - Feature #5995][Open] calling io_advise_internal() in read_all() — Masaki Matsushita <glass.saga@...>

20 messages 2012/02/10

[#42560] [ruby-trunk - Bug #6011][Open] ruby-1.9.3-p0/lib/webrick/utils.rb:184: [BUG] Segmentation fault — Vit Ondruch <v.ondruch@...>

12 messages 2012/02/13

[#42579] [ruby-trunk - Bug #6012][Open] Proc#source_location also return the column — Roger Pack <rogerpack2005@...>

14 messages 2012/02/14

[#42685] [ruby-trunk - Bug #6036][Open] Test failures in Fedora Rawhide/17 — Bohuslav Kabrda <bkabrda@...>

14 messages 2012/02/16

[#42697] [ruby-trunk - Bug #6040][Open] Transcoding test failure: Big5 to UTF8 not defined (MinGW) — Luis Lavena <luislavena@...>

10 messages 2012/02/16

[#42813] [ruby-trunk - Feature #6065][Open] Allow Bignum marshalling/unmarshalling from C API — Martin Bosslet <Martin.Bosslet@...>

22 messages 2012/02/23

[#42815] [ruby-trunk - Bug #6066][Open] Fix "control may reach end of non-void function" warnings for clang — Eric Hodel <drbrain@...7.net>

15 messages 2012/02/23

[#42857] [ruby-trunk - Feature #6074][Open] Allow alias arguments to have a comma — Thomas Sawyer <transfire@...>

20 messages 2012/02/24

[#42891] [ruby-trunk - Feature #6083][Open] Hide a Bignum definition — Koichi Sasada <redmine@...>

23 messages 2012/02/25

[#42906] [ruby-trunk - Bug #6085][Open] Treatment of Wrong Number of Arguments — Marc-Andre Lafortune <ruby-core@...>

14 messages 2012/02/25

[#42949] [ruby-trunk - Bug #6089][Open] Test suite fails with OpenSSL 1.0.1 — Vit Ondruch <v.ondruch@...>

13 messages 2012/02/26

[ruby-core:42879] Re: [ruby-trunk - Feature #6065] Allow Bignum marshalling/unmarshalling from C API

From: Tanaka Akira <akr@...>
Date: 2012-02-25 01:26:15 UTC
List: ruby-core #42879
2012/2/25 Martin Bosslet <Martin.Bosslet@googlemail.com>:
>
> One comment, which is also in reply to why I believe it
> could be dangerous to simply promote rb_big_(un)pack to
> public API: rhey are tightly coupled to our internal
> representation of Bignums. We should probably explicitly
> define the format to be expected of the long array. This
> way we'll separate our internal representation from the
> format that is actually exchanged. This would allow us to
> change the representation internally without breaking
> compatibility in the API layer each time we do so.

I don't think rb_big_pack/rb_big_unpack is tightly coupled to
internal of Bignum.

What the points they expose internal of Bignum?

Note that the format is written in a comment in bignum.c.

  /*
   * buf is an array of long integers.
   * buf is ordered from least significant word to most significant word.
   * buf[0] is the least significant word and
   * buf[num_longs-1] is the most significant word.
   * This means words in buf is little endian.
   * However each word in buf is native endian.
   * (buf[i]&1) is the least significant bit and
   * (buf[i]&(1<<(SIZEOF_LONG*CHAR_BIT-1))) is the most significant bit
   * for each 0 <= i < num_longs.
   * So buf is little endian at whole on a little endian machine.
   * But buf is mixed endian on a big endian machine.
   *
   * The buf represents negative integers as two's complement.
   * So, the most significant bit of the most significant word,
   * (buf[num_longs-1]>>(SIZEOF_LONG*CHAR_BIT-1)),
   * is the sign bit: 1 means negative and 0 means zero or positive.
   *
   * If given size of buf (num_longs) is not enough to represent val,
   * higier words (including a sign bit) are ignored.
   */
  void
  rb_big_pack(VALUE val, unsigned long *buf, long num_longs)

  /* See rb_big_pack comment for endianness and sign of buf. */
  VALUE
  rb_big_unpack(unsigned long *buf, long num_longs)
-- 
Tanaka Akira

In This Thread