[#8787] Literal inconsistency — Calamitas <calamitates@...>
Hi,
Calamitas <calamitates@gmail.com> writes:
On 9/4/06, Christian Neukirchen <chneukirchen@gmail.com> wrote:
[#8794] bignums — Ondrej Bilka <neleai@...>
I want ask how look integration of faster bignums.
[#8798] okay, threading & sandbox r70 -- the latest patch — why the lucky stiff <ruby-core@...>
We have previously talked about getting the sandbox to obey thread switching on
Hi,
[#8802] WEBrick::Cookie support for multiple cookies per set-cookie — Aaron Patterson <aaron_patterson@...>
WEBrick's cookie class has a method for parsing Set-Cookie headers, but
[#8813] ruby-1.8.5 loads fox16.so more than once — <noreply@...>
Bugs item #5701, was opened at 2006-09-08 20:59
[#8815] Segfault in libc strlen, via rb_str_new2 — "Sean E. Russell" <ser@...>
Howdy,
On Sep 8, 2006, at 10:10 PM, Sean E. Russell wrote:
On Saturday 09 September 2006 01:42, Eric Hodel wrote:
On Sep 9, 2006, at 7:16 PM, Sean E. Russell wrote:
On Sunday 10 September 2006 22:57, Eric Hodel wrote:
[#8826] OptionParser < Hash — "greg weber" <eegreg@...>
Hi,
[#8828] REXML fails to parse UTF-16 XML. — <noreply@...>
Bugs item #5711, was opened at 2006-09-11 01:25
Hi,
[#8861] new changes in strings+symbols — Mathieu Bouchard <matju@...>
On Wed, 13 Sep 2006, matz wrote:
[#8864] documentation of ruby internals — Deni George <denigeorge@...>
Hello
On Thursday 14 September 2006 11:30, Deni George wrote:
[#8885] numeric.c fails to build on 64-bit platforms (Fedora Core 5 x86_64 gcc 4.1.1) — <noreply@...>
Patches item #5774, was opened at 2006-09-16 12:19
Hi,
[#8897] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly — <noreply@...>
Bugs item #5822, was opened at 2006-09-20 11:13
Hi,
[#8904] patch bignums — Ondrej Bilka <neleai@...>
I am so far with implementing faster bignums:
[#8920] rdoc capture output (help message) — "greg weber" <eegreg@...>
Hi,
The simplest command line would be
greg weber wrote:
It looks like you could seperate this out into a rake task, but then
On Sep 29, 2006, at 5:52 AM, greg weber wrote:
[#8929] Re: RDoc patch, possible bug in socket.c for TCPSocket.new — gwtmp01@...
[#8948] socket (and many others) not building on osx? — Ryan Davis <ryand-ruby@...>
I'm stumped. A brand new clean build doesn't build socket.
[#8954] The %? .. ? Operator — James Edward Gray II <james@...>
I'm needing to know the full list of characters that can (or cannot)
On Sep 29, 2006, at 9:56 AM, James Edward Gray II wrote:
bignums
I want ask how look integration of faster bignums.
It was mentioned at this ml 2 years ago where it seemed that MBignum
will be integrated but isn't.
GMP: There is problem how replace bignum with it otherwise it will be
slower with small numbers.
And problem with license(Unofficial patch | GMP taints ruby :-)
With GMP benchmark I discovered that multipling 2 fixnums into bignum is
slow because it multiplies 2 temporary bignums. Without heavy magic its unsolvable.
Addition and substraction use same technique. But because Fixnum has
one byte less than long result will fit into long. So LONG2NUM would work too.
I tried add Karatsuba multiplication to bignums and when debugging I
discovered that rb_big_pow computing doesn't normalize temps. Its not problem
with big numbers but computing power of 2 temporary variable has x these
lengths:
2**2 :1
2**4 :3
2**8 :7
2**32 31
)
Index: numeric.c
===================================================================
RCS file: /src/ruby/numeric.c,v
retrieving revision 1.142
diff -w -u -r1.142 numeric.c
--- numeric.c 2 Sep 2006 14:42:07 -0000 1.142
+++ numeric.c 4 Sep 2006 15:33:10 -0000
@@ -1908,11 +1908,8 @@
a = FIX2LONG(x);
b = FIX2LONG(y);
c = a + b;
- r = LONG2FIX(c);
+ r = LONG2NUM(c);
- if (FIX2LONG(r) != c) {
- r = rb_big_plus(rb_int2big(a), rb_int2big(b));
- }
return r;
}
switch (TYPE(y)) {
@@ -1944,11 +1941,8 @@
a = FIX2LONG(x);
b = FIX2LONG(y);
c = a - b;
- r = LONG2FIX(c);
+ r = LONG2NUM(c);
- if (FIX2LONG(r) != c) {
- r = rb_big_minus(rb_int2big(a), rb_int2big(b));
- }
return r;
}
switch (TYPE(y)) {
Index: bignum.c
===================================================================
RCS file: /src/ruby/bignum.c,v
retrieving revision 1.134
diff -w -u -r1.134 bignum.c
--- bignum.c 31 Aug 2006 10:47:37 -0000 1.134
+++ bignum.c 4 Sep 2006 15:37:43 -0000
@@ -1553,6 +1553,7 @@
while (yy % 2 == 0) {
yy /= 2;
x = rb_big_mul0(x, x);
+ if ( !BDIGITS(x)[RBIGNUM(x)->len-1])RBIGNUM(x)->len--;
}
z = rb_big_mul0(z, x);
+ if ( !BDIGITS(z)[RBIGNUM(z)->len-1])RBIGNUM(z)->len--;
}