[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>

Before the release of Ruby 1.9.2 it was decided that Ruby releases

59 messages 2011/09/04
[#39276] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/05

2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:

[#39325] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/07

I'll jump in with some context from the JRuby perspective.

[#39335] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/07

2011/9/7 Charles Oliver Nutter <headius@headius.com>:

[#39365] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39366] Re: RubySpec vs CRuby's test/... — Yukihiro Matsumoto <matz@...> 2011/09/08

Hi,

[#39370] Re: RubySpec vs CRuby's test/... — Michael Klishin <michael.s.klishin@...> 2011/09/08

Yukihiro Matsumoto:

[#39374] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/08

(2011/09/09 1:29), Michael Klishin wrote:

[#39376] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39379] Re: RubySpec vs CRuby's test/... — Masaya TARUI <tarui@...> 2011/09/08

Hello Luis,

[#39382] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <tarui@prx.jp> wrote:

[#39386] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <luislavena@gmail.com> wrote:

[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>

14 messages 2011/09/04

[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>

27 messages 2011/09/09

[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>

13 messages 2011/09/13

[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>

26 messages 2011/09/14

[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <drbrain@...7.net>

18 messages 2011/09/19

[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>

10 messages 2011/09/20

[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>

13 messages 2011/09/22

[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>

20 messages 2011/09/25

[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>

18 messages 2011/09/27
[#39743] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Aaron Patterson <aaron@...> 2011/09/27

On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:

[#39754] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...> 2011/09/27

On 27/09/2011 19:46, Aaron Patterson wrote:

[#39807] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Eric Hodel <drbrain@...7.net> 2011/10/01

On Sep 27, 2011, at 6:52 PM, Alex Young wrote:

[#39751] [Ruby 1.9 - Bug #5375][Open] [mingw32] segfault on WinXP SP3 with 1.9.3dev@33347 — Jon Forums <redmine@...>

26 messages 2011/09/27

[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>

Hi,

13 messages 2011/09/29
[#39774] Re: ObjectSpace.reference_form(obj) #=> references_array — Nobuyoshi Nakada <nobu@...> 2011/09/29

Hi,

[#39796] [Ruby 1.9 - Bug #5384][Open] Ruby 1.9.3-RC1 Fails to Compile on Solaris — Cyrus Lopez <cyrus@...>

11 messages 2011/09/30

[ruby-core:39591] Ripper#yydebug and friends don't work

From: Eric Hodel <drbrain@...7.net>
Date: 2011-09-16 19:44:42 UTC
List: ruby-core #39591
Ripper#yydebug, #yydebug=3D, #end_seen? and #encoding all fail to work =
with a TypeError due to using a different parser_data_type.

The attached patch fixes this by defining static implementations:

ripper_end_seen_p
ripper_encoding
ripper_get_yydebug
ripper_set_yydebug

I don't know if it's the right patch, though.  I tried making =
parser_data_type an exported symbol but had no luck.

The attached test file adds tests for each of these methods to ensure =
they work.

PS: redmine is down

Attachments (2)

parser.y.ripper_yydebug.patch (3.4 KB, text/x-diff)
Index: parse.y
===================================================================
--- parse.y	(revision 33272)
+++ parse.y	(working copy)
@@ -10382,12 +10382,6 @@ rb_parser_new(void)
     return TypedData_Wrap_Struct(0, &parser_data_type, p);
 }
 
-/*
- *  call-seq:
- *    ripper#end_seen?   -> Boolean
- *
- *  Return true if parsed source ended by +\_\_END\_\_+.
- */
 VALUE
 rb_parser_end_seen_p(VALUE vparser)
 {
@@ -10397,12 +10391,6 @@ rb_parser_end_seen_p(VALUE vparser)
     return ruby__end__seen ? Qtrue : Qfalse;
 }
 
-/*
- *  call-seq:
- *    ripper#encoding   -> encoding
- *
- *  Return encoding of the source.
- */
 VALUE
 rb_parser_encoding(VALUE vparser)
 {
@@ -10412,12 +10400,6 @@ rb_parser_encoding(VALUE vparser)
     return rb_enc_from_encoding(parser->enc);
 }
 
-/*
- *  call-seq:
- *    ripper.yydebug   -> true or false
- *
- *  Get yydebug.
- */
 VALUE
 rb_parser_get_yydebug(VALUE self)
 {
@@ -10427,12 +10409,6 @@ rb_parser_get_yydebug(VALUE self)
     return yydebug ? Qtrue : Qfalse;
 }
 
-/*
- *  call-seq:
- *    ripper.yydebug = flag
- *
- *  Set yydebug.
- */
 VALUE
 rb_parser_set_yydebug(VALUE self, VALUE flag)
 {
@@ -10508,6 +10484,67 @@ rb_parser_free(struct parser_params *par
 #endif
 
 #ifdef RIPPER
+/*
+ *  call-seq:
+ *    ripper.yydebug   -> true or false
+ *
+ *  Get yydebug.
+ */
+static VALUE
+ripper_get_yydebug(VALUE self)
+{
+    struct parser_params *parser;
+
+    TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
+    return yydebug ? Qtrue : Qfalse;
+}
+
+/*
+ *  call-seq:
+ *    ripper.yydebug = flag
+ *
+ *  Set yydebug.
+ */
+VALUE
+ripper_set_yydebug(VALUE self, VALUE flag)
+{
+    struct parser_params *parser;
+
+    TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
+    yydebug = RTEST(flag);
+    return flag;
+}
+
+/*
+ *  call-seq:
+ *    ripper.end_seen?   -> Boolean
+ *
+ *  Return true if parsed source ended by +\_\_END\_\_+.
+ */
+VALUE
+ripper_end_seen_p(VALUE vparser)
+{
+    struct parser_params *parser;
+
+    TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
+    return ruby__end__seen ? Qtrue : Qfalse;
+}
+
+/*
+ *  call-seq:
+ *    ripper.encoding   -> encoding
+ *
+ *  Return encoding of the source.
+ */
+VALUE
+ripper_encoding(VALUE vparser)
+{
+    struct parser_params *parser;
+
+    TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
+    return rb_enc_from_encoding(parser->enc);
+}
+
 #ifdef RIPPER_DEBUG
 extern int rb_is_pointer_to_heap(VALUE);
 
@@ -10974,10 +11011,10 @@ Init_ripper(void)
     rb_define_method(Ripper, "column", ripper_column, 0);
     rb_define_method(Ripper, "filename", ripper_filename, 0);
     rb_define_method(Ripper, "lineno", ripper_lineno, 0);
-    rb_define_method(Ripper, "end_seen?", rb_parser_end_seen_p, 0);
-    rb_define_method(Ripper, "encoding", rb_parser_encoding, 0);
-    rb_define_method(Ripper, "yydebug", rb_parser_get_yydebug, 0);
-    rb_define_method(Ripper, "yydebug=", rb_parser_set_yydebug, 1);
+    rb_define_method(Ripper, "end_seen?", ripper_end_seen_p, 0);
+    rb_define_method(Ripper, "encoding", ripper_encoding, 0);
+    rb_define_method(Ripper, "yydebug", ripper_get_yydebug, 0);
+    rb_define_method(Ripper, "yydebug=", ripper_set_yydebug, 1);
 #ifdef RIPPER_DEBUG
     rb_define_method(rb_mKernel, "assert_Qundef", ripper_assert_Qundef, 2);
     rb_define_method(rb_mKernel, "rawVALUE", ripper_value, 1);
test_ripper.rb (749 Bytes, text/x-ruby-script)
begin
  require 'ripper'
  require 'test/unit'
  ripper_test = true
  module TestRipper; end
rescue LoadError
end

class TestRipper::Ripper < Test::Unit::TestCase

  def setup
    @ripper = Ripper.new '1 + 1'
  end

  def test_column
    assert_nil @ripper.column
  end

  def test_encoding
    assert_equal Encoding::US_ASCII, @ripper.encoding
  end

  def test_end_seen_eh
    refute @ripper.end_seen?
  end

  def test_filename
    assert_equal '(ripper)', @ripper.filename
  end

  def test_lineno
    assert_nil @ripper.lineno
  end

  def test_parse
    refute @ripper.parse
  end

  def test_yydebug
    refute @ripper.yydebug
  end

  def test_yydebug_equals
    @ripper.yydebug = true

    assert @ripper.yydebug
  end

end if ripper_test

In This Thread

Prev Next