[#22637] [Bug #1240] parser bug in 1.8.7 and 1.9.1p0 — Thomer Gil <redmine@...>
Bug #1240: parser bug in 1.8.7 and 1.9.1p0
Issue #1240 has been updated by Yusuke Endoh.
[#22640] [Bug #1241] Segfault with Nokogiri 1.2.1 on Ruby 1.9.1p0 — Raven Ex <redmine@...>
Bug #1241: Segfault with Nokogiri 1.2.1 on Ruby 1.9.1p0
[#22646] [Bug #1243] 1 is prime — Yuki Sonoda <redmine@...>
Bug #1243: 1 is prime
Issue #1243 has been updated by Dave B.
[#22684] [Bug #1247] YAML::load converts some dates into strings — Matthew Wilson <redmine@...>
Bug #1247: YAML::load converts some dates into strings
Issue #1247 has been updated by Yusuke Endoh.
On Thu, Apr 08, 2010 at 10:22:57PM +0900, Yusuke Endoh wrote:
On 4/8/10, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
Hi,
[#22685] 1.9 conditional wait has no timeout support — Nasir Khan <rubylearner@...>
In ruby 1.8 we could use -
[#22687] [Bug #1248] e.exception(e) returns self — Tomas Matousek <redmine@...>
Bug #1248: e.exception(e) returns self
Hi,
Well the reason is that arg is supposed to be a message, right? A message can be an arbitrary object. So if I pass e as a message, why it doesn't become a value of the message property?
Hi,
[#22715] [Bug #1251] gsub problem — Alexander Pettelkau <redmine@...>
Bug #1251: gsub problem
[#22725] [Bug #1253] Fix MSVC Build Issues — Charlie Savage <redmine@...>
Bug #1253: Fix MSVC Build Issues
[#22727] Moving ruby 1.9.1 forward on windows — Charlie Savage <cfis@...>
Hi everyone,
On Sat, Mar 7, 2009 at 7:01 PM, Charlie Savage <cfis@savagexi.com> wrote:
> This works until you start linking third-party upstream source that
On Sun, Mar 8, 2009 at 3:45 PM, Charlie Savage <cfis@savagexi.com> wrote:
Hi Austin,
On Sun, Mar 8, 2009 at 4:26 PM, Charlie Savage <cfis@savagexi.com> wrote:
[#22731] [Bug #1255] += for large strings egrigiously slow — James Lee <redmine@...>
Bug #1255: += for large strings egrigiously slow
[#22736] Ruby 1.9.1 and tail recursion optimization — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <ed.odanow@...>
Moin, moin!
Wolfgang N疆asi-Donner schrieb:
Hi,
>
On Sun, Mar 8, 2009 at 16:57, James Coglan <jcoglan@googlemail.com> wrote:
2009/3/8 Nikolai Weibull <now@bitwi.se>
James Coglan wrote:
daz schrieb:
Wolfgang N叩dasi-Donner wrote:
Charles Oliver Nutter schrieb:
[#22748] [Feature #1256] Add constant TAILRECURSION to let a program recognize if tail recursion optimization is implemented — Wolfgang Nádasi-Donner <redmine@...>
Feature #1256: Add constant TAILRECURSION to let a program recognize if tail recursion optimization is implemented
Hi,
[#22803] Relegate 1.8.6 to Engine Yard, part II — Urabe Shyouhei <shyouhei@...>
Hello and sorry for my being slow for this issue. It's OK now for me to pass
Ryan Davis wrote:
Urabe Shyouhei wrote:
Hi,
Nobuyoshi Nakada wrote:
Urabe Shyouhei wrote:
[#22812] [Bug #1261] cross-compiling Ruby extensions using mkmf doesn't fully respect DESTDIR — Daniel Golle <redmine@...>
Bug #1261: cross-compiling Ruby extensions using mkmf doesn't fully respect DESTDIR
[#22859] [Bug #1277] Incorrect passing of file handle between runtime libraries in OpenSSL extension — Charlie Savage <redmine@...>
Bug #1277: Incorrect passing of file handle between runtime libraries in OpenSSL extension
[#22892] Ruby Time — valodzka <valodzka@...>
Got tired of current ruby Time limitation, I have written this -
In article <9e19ed87-9d12-4f98-af3c-bd49a71b0bd4@p11g2000yqe.googlegroups.com>,
valodzka wrote:
> I bet you'll get tired of updating that database. There's a major difference
valodzka wrote:
In article <b5d0a489-4613-4b63-9664-8627358b2dd9@g19g2000yql.googlegroups.com>,
> I found a discussion in PHP.
In article <deab6882-12ac-4aa1-a901-681795ed863b@z9g2000yqi.googlegroups.com>,
[#22893] [Feature #1291] O_CLOEXEC flag missing for Kernel::open — David Martin <redmine@...>
Feature #1291: O_CLOEXEC flag missing for Kernel::open
Issue #1291 has been updated by Motohiro KOSAKI.
[#22894] [Bug #1292] 1.8 compile time error with mingw gcc 4.3 — Roger Pack <redmine@...>
Bug #1292: 1.8 compile time error with mingw gcc 4.3
Hi,
[#22916] [Bug #1296] [trunk/22981] 64-bit issues on trunk in ext/zlib — Ollivier Robert <redmine@...>
Bug #1296: [trunk/22981] 64-bit issues on trunk in ext/zlib
[#22927] [Bug #1301] Poor RegExp Matching Performance — Andreas Grau <redmine@...>
Bug #1301: Poor RegExp Matching Performance
[#22935] 1.8.6 rdoc breaks when rdoc'ing 1.9 — James Britt <james.britt@...>
I'm running ruby 1.8.6 (2009-03-10 patchlevel 362) [i686-linux] and
[#22937] Ruby not to be a part of Google's 2009 Summer of Code? — Rocky Bernstein <rocky.bernstein@...>
The list of participating organizations for Google's 2009 Summer of Code has
[#22978] Ruby 1.9 bloc parameters — Vincent Isambart <vincent.isambart@...>
Hi,
[#22979] Ruby 1.9 bloc parameters — Vincent Isambart <vincent.isambart@...>
Hi,
[#22990] [Bug #1309] dl tests — Charlie Savage <redmine@...>
Bug #1309: dl tests
[#23026] [Bug #1317] Creating a range with strings — Ian Bailey <redmine@...>
Bug #1317: Creating a range with strings
[#23050] [Bug #1322] define_method scope bug — "coderrr ." <redmine@...>
Bug #1322: define_method scope bug
[#23051] [Bug #1323] Sockets broken on windows — Charlie Savage <redmine@...>
Bug #1323: Sockets broken on windows
[#23053] [Bug #1325] fiber tests kill windows — Charlie Savage <redmine@...>
Bug #1325: fiber tests kill windows
[#23054] [Bug #1326] Failing unit tests on windows — Charlie Savage <redmine@...>
Bug #1326: Failing unit tests on windows
[#23060] [Bug #1327] CSV unit test failures on windows — Charlie Savage <redmine@...>
Bug #1327: CSV unit test failures on windows
[#23063] [Bug #1332] Reading file on Windows is 500x slower then with previous Ruby version — Damjan Rems <redmine@...>
Bug #1332: Reading file on Windows is 500x slower then with previous Ruby version
Issue #1332 has been updated by Roger Pack.
Hello,
[#23075] [Bug #1336] Change in string representation of Floats — Brian Ford <redmine@...>
Bug #1336: Change in string representation of Floats
Issue #1336 has been updated by Roger Pack.
On Fri, Apr 3, 2009 at 11:49 PM, Roger Pack <redmine@ruby-lang.org> wrote:
Issue #1336 has been updated by Roger Pack.
Hi,
Hi,
Hi,
Gary Wright wrote:
[#23082] [Bug #1341] pthread_cond_timedwait failing in 1.9.1-p0 thread tests — Graham Agnew <redmine@...>
Bug #1341: pthread_cond_timedwait failing in 1.9.1-p0 thread tests
[ruby-core:23049] Extending binding and set_trace_func in 1.9
It's been quiet in ruby-core. Recently I've looking at introspection, tracing and writing a new debugger for Ruby 1.9. Here are two little extensions to some existing functions that I think will help in tracing and writing a debugger. 1. set_trace_func(). Right now set_trace_func() takes a function name. Internally though the C code sets a trace mask to an event type to trigger (TRACE_MASK_ALL). It is helpful sometimes to pass a more selective mask. One possible approach is to add this as an optional parameter. In the attached patch this is done. However in the patch the optional parameter is a Fixnum. I realize it might be nicer if the mask could be instead set or a list of string event names. Since the change is in C code, and I prefer to write Ruby, the way I'd suggest doing this is some outside Ruby code that accomplishes this. Perhaps it could be added to tracer.rb Not in the patch but something one may want to do is have a routine to change the mask. 2. binding() One of the things one wants to do in a debugger is to change the frame in which to evaluate expressions. For this, ruby-debug adds Kernel#binding_n. However, wouldn't it be nicer to just extend binding to allow an optional level parameter (defaulting to 0) that returns a binding for the context frame of the nth caller? Again this seems pretty simple to do in the existing C code.
Attachments (1)
---
test/trace.rb | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 49 insertions(+), 0 deletions(-)
create mode 100644 test/trace.rb
diff --git a/test/trace.rb b/test/trace.rb
new file mode 100644
index 0000000..4e5f558
--- /dev/null
+++ b/test/trace.rb
@@ -0,0 +1,49 @@
+require 'test/unit'
+
+def sqr(x)
+ return x*x
+end
+
+def something()
+ x=5
+ x=6.2 if x==6.1
+ x=7
+ sqr(5)
+end
+
+class TestTrace < Test::Unit::TestCase
+
+ @@msgs = []
+ def setup
+ @@msgs = []
+ end
+
+ def trace_func(event, file, line, id, binding, klass, *)
+ @@msgs << [event, file, line]
+ end
+
+ def test_trace_func_nil
+ assert_equal(nil, set_trace_func(nil), "set_trace_func(nil)")
+ end
+
+ def test_trace_mask_and_all
+ set_trace_func(method(:trace_func).to_proc, 0x0018)
+ something()
+ set_trace_func(nil)
+ assert_equal(true,
+ @@msgs.inject do |result, triple|
+ result && ['call', 'return'].member?(triple[0])
+ end,
+ "trace - only call/return events"
+ )
+ call_return_event_count = @@msgs.size
+ set_trace_func(method(:trace_func).to_proc)
+ something()
+ set_trace_func(nil)
+ assert_equal(true, @@msgs.size > call_return_event_count,
+ 'trace - all events')
+
+ end
+end
+
+
--
1.5.6.3
From 9b81ad951abcd5f0c70ee1b018468dfa28477561 Mon Sep 17 00:00:00 2001
From: rocky <rocky@sanchez.(none)>
Date: Thu, 26 Mar 2009 00:11:49 -0400
Subject: [PATCH] Add optional trace-event bit mask to filter trace events
---
thread.c | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/thread.c b/thread.c
index 3627811..aaad570 100644
--- a/thread.c
+++ b/thread.c
@@ -3502,8 +3502,9 @@ static void call_trace_func(rb_event_flag_t, VALUE data, VALUE self, ID id, VALU
/*
* call-seq:
- * set_trace_func(proc) => proc
- * set_trace_func(nil) => nil
+ * set_trace_func(proc) => proc
+ * set_trace_func(proc, mask) => proc
+ * set_trace_func(nil) => nil
*
* Establishes _proc_ as the handler for tracing, or disables
* tracing if the parameter is +nil+. _proc_ takes up
@@ -3517,6 +3518,8 @@ static void call_trace_func(rb_event_flag_t, VALUE data, VALUE self, ID id, VALU
* <code>line</code> (execute code on a new line), <code>raise</code>
* (raise an exception), and <code>return</code> (return from a Ruby
* method). Tracing is disabled within the context of _proc_.
+ * _mask_ is an optional bitmask of events to trigger on, See ruby.h
+ * for the integer values. If no mask is specified all events are triggered.
*
* class Test
* def test
@@ -3541,11 +3544,28 @@ static void call_trace_func(rb_event_flag_t, VALUE data, VALUE self, ID id, VALU
* line prog.rb:3 test Test
* line prog.rb:4 test Test
* return prog.rb:4 test Test
+ *
+ * set_trace_func(proc { |event, file, line, id, binding, classname|
+ * printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
+ * }, 0x018) # 0x018 == calls and returns only
+ * t = Test.new
+ * t.test
+ *
+ * call prog.rb:2 test Test
+ * return prog.rb:4 test Test
+
*/
static VALUE
-set_trace_func(VALUE obj, VALUE trace)
+set_trace_func(int argc, VALUE *argv)
{
+ VALUE vmask;
+ VALUE trace;
+ int mask=RUBY_EVENT_ALL;
+ if (2 == rb_scan_args(argc, argv, "11", &trace, &vmask)) {
+ mask = NUM2INT(vmask);
+ }
+
rb_remove_event_hook(call_trace_func);
if (NIL_P(trace)) {
@@ -3556,7 +3576,7 @@ set_trace_func(VALUE obj, VALUE trace)
rb_raise(rb_eTypeError, "trace_func needs to be Proc");
}
- rb_add_event_hook(call_trace_func, RUBY_EVENT_ALL, trace);
+ rb_add_event_hook(call_trace_func, mask, trace);
return trace;
}
@@ -3801,7 +3821,7 @@ Init_Thread(void)
rb_eThreadError = rb_define_class("ThreadError", rb_eStandardError);
/* trace */
- rb_define_global_function("set_trace_func", set_trace_func, 1);
+ rb_define_global_function("set_trace_func", set_trace_func, -1);
rb_define_method(rb_cThread, "set_trace_func", thread_set_trace_func_m, 1);
rb_define_method(rb_cThread, "add_trace_func", thread_add_trace_func_m, 1);
--
1.5.6.3
From e5a23cf5d135abe8420dad7f066a7127e34f6707 Mon Sep 17 00:00:00 2001
From: rocky <rocky@sanchez.(none)>
Date: Thu, 26 Mar 2009 05:54:30 -0400
Subject: [PATCH] Make sure test includes a "raise" event
---
test/trace.rb | 29 ++++++++++++++++++-----------
1 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/test/trace.rb b/test/trace.rb
index 4e5f558..fda610d 100644
--- a/test/trace.rb
+++ b/test/trace.rb
@@ -1,14 +1,16 @@
require 'test/unit'
-def sqr(x)
- return x*x
+def buggy(x, y)
+ return x / y * y
end
-def something()
- x=5
- x=6.2 if x==6.1
- x=7
- sqr(5)
+def something(c)
+ b=0 if c==6.1
+ begin
+ return buggy(5, b)
+ rescue
+ end
+ return 0
end
class TestTrace < Test::Unit::TestCase
@@ -19,6 +21,7 @@ class TestTrace < Test::Unit::TestCase
end
def trace_func(event, file, line, id, binding, klass, *)
+ puts "#{file}:#{line} - #{event}" if $DEBUG
@@msgs << [event, file, line]
end
@@ -27,8 +30,8 @@ class TestTrace < Test::Unit::TestCase
end
def test_trace_mask_and_all
- set_trace_func(method(:trace_func).to_proc, 0x0018)
- something()
+ set_trace_func(method(:trace_func).to_proc, 0x0018) # Calls/returns
+ something(6.1)
set_trace_func(nil)
assert_equal(true,
@@msgs.inject do |result, triple|
@@ -37,11 +40,15 @@ class TestTrace < Test::Unit::TestCase
"trace - only call/return events"
)
call_return_event_count = @@msgs.size
+ @@msgs = []
+ puts '=' * 20 if $DEBUG
set_trace_func(method(:trace_func).to_proc)
- something()
+ something(6.1)
set_trace_func(nil)
assert_equal(true, @@msgs.size > call_return_event_count,
- 'trace - all events')
+ 'trace - all events. Should record more events.')
+ assert_equal(1, @@msgs.select {|x| x[0] == 'raise'}.size,
+ 'trace - all events. Should get a raise event')
end
end
--
1.5.6.3