Skip to content

Instantly share code, notes, and snippets.

View kronos's full-sized avatar
👨‍💻

Ivan Samsonov kronos

👨‍💻
View GitHub Profile
From 1efb8c813084d7a99576ba1677d13ad94eddda9c Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Mon, 1 Feb 2010 20:57:40 +0300
Subject: [PATCH] Speed up Array#pack
---
kernel/common/pack.rb | 405 +++++++++++++++++++++++--------------------------
1 files changed, 189 insertions(+), 216 deletions(-)
diff --git a/kernel/common/pack.rb b/kernel/common/pack.rb
diff --git a/kernel/delta/module.rb b/kernel/delta/module.rb
index 2885d63..cdfe234 100644
--- a/kernel/delta/module.rb
+++ b/kernel/delta/module.rb
@@ -99,7 +99,7 @@ class Module
while mod
# Check for a cyclic include
- if mod.equal? klass
+ if mod.equal?(klass) or (mod.kind_of?(Rubinius::IncludedModule) and mod.module.equal?(klass))
From 70bbac4dbbb7eca14b73557d9ea32fb8f6df58e5 Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Wed, 3 Feb 2010 02:23:51 +0300
Subject: [PATCH] Speed up Array#pack
Implement 'w' directive for String#unpack
Speed up String#rpartition
---
kernel/common/pack.rb | 425 ++++++++++++++--------------
kernel/common/string.rb | 39 ++-
From 4c41564ae6363cd028d5c446bf88ebebf7176c90 Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Fri, 5 Feb 2010 04:02:44 +0300
Subject: [PATCH] Update defined? spec for undefined methods
---
language/defined_spec.rb | 6 ++++++
language/fixtures/defined.rb | 18 ++++++++++++++++++
2 files changed, 24 insertions(+), 0 deletions(-)
create mode 100644 language/fixtures/defined.rb
From 5230be23327e670e4d33bfc40c7209145ab02b7b Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Fri, 5 Feb 2010 05:45:38 +0300
Subject: [PATCH] Repair $~ variable
---
kernel/common/string.rb | 1 +
kernel/delta/kernel.rb | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
From 82cf87a1338bfbbd9d78aa44d1bf6f951aa8adfe Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Fri, 5 Feb 2010 05:59:26 +0300
Subject: [PATCH] Repair $~ variable
---
kernel/common/string.rb | 1 +
kernel/delta/kernel.rb | 2 +-
spec/ruby/core/string/rpartition_spec.rb | 5 +++++
3 files changed, 7 insertions(+), 1 deletions(-)
meta = Class.new
meta.class_eval {define_method(:foo, Proc.new {||})}
meta.class_eval {define_method(:bar, Proc.new {|x|})}
meta.class_eval {define_method(:baz, Proc.new {|x, y|})}
p meta.new.method(:foo).arity == 0
p meta.new.method(:bar).arity == 1
p meta.new.method(:baz).arity == 2
p proc{|*|}.arity == -1
From e6c56f266af3e0ab6906d9b6ddc4c182f833375f Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Wed, 10 Feb 2010 01:09:53 +0300
Subject: [PATCH] Fix Block#arity
---
kernel/common/block_environment.rb | 2 +-
lib/compiler/ast/sends.rb | 4 ++++
2 files changed, 5 insertions(+), 1 deletions(-)
From eedc242373f4d00ed281aec231443ccf076d3e84 Mon Sep 17 00:00:00 2001
From: Ivan Samsonov <hronya@gmail.com>
Date: Thu, 11 Feb 2010 02:46:11 +0300
Subject: [PATCH] Updates specs for some cases method#arity and proc#arity
---
spec/ruby/core/method/arity_spec.rb | 6 ++++++
spec/ruby/core/method/fixtures/classes.rb | 4 ++++
spec/ruby/core/proc/arity_spec.rb | 3 +++
3 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/spec/ruby/core/array/shift_spec.rb b/spec/ruby/core/array/shift_spec.rb
index 1c9b773..9311cf8 100644
--- a/spec/ruby/core/array/shift_spec.rb
+++ b/spec/ruby/core/array/shift_spec.rb
@@ -143,4 +143,12 @@ describe "Array#shift" do
end
end
end
+
+ it "and shift(n) should work correct together" do