[#111121] [Ruby master Bug#19165] Method (with no param) delegation with *, **, and ... is slow — "matsuda (Akira Matsuda)" <noreply@...>

Issue #19165 has been reported by matsuda (Akira Matsuda).

9 messages 2022/12/01

[#111135] [Ruby master Bug#19167] Object#inspect does not correctly show NilClass TrueClass and FalseClass stored in instance variables — "tompng (tomoya ishida)" <noreply@...>

Issue #19167 has been reported by tompng (tomoya ishida).

7 messages 2022/12/01

[#111183] [Ruby master Misc#19178] How does CRuby handle CVE issues in stdlib gems which get patched? — "Segaja (Andreas Schleifer)" <noreply@...>

Issue #19178 has been reported by Segaja (Andreas Schleifer).

14 messages 2022/12/03

[#111220] [Ruby master Bug#19187] Ruby 3.1.3 testsuite fails after timezone 2022g update is applied — "coolo (Stephan Kulow)" <noreply@...>

Issue #19187 has been reported by coolo (Stephan Kulow).

11 messages 2022/12/06

[#111264] [Ruby master Feature#19197] Add Exception#root_cause — "AMomchilov (Alexander Momchilov)" <noreply@...>

Issue #19197 has been reported by AMomchilov (Alexander Momchilov).

8 messages 2022/12/12

[#111272] [Ruby master Bug#19231] Integer#step and Float::INFINITY - inconsistent behaviour when called with and without a block — "andrykonchin (Andrew Konchin)" <noreply@...>

Issue #19231 has been reported by andrykonchin (Andrew Konchin).

7 messages 2022/12/13

[#111279] [Ruby master Bug#19233] Failed to install sqlite3 gem since 7f1ca666424849134990d022266bcd4d6636465f using Docker — "yahonda (Yasuo Honda)" <noreply@...>

Issue #19233 has been reported by yahonda (Yasuo Honda).

9 messages 2022/12/14

[#111306] [Ruby master Feature#19236] Allow to create hashes with a specific capacity from Ruby — "byroot (Jean Boussier)" <noreply@...>

Issue #19236 has been reported by byroot (Jean Boussier).

15 messages 2022/12/15

[#111318] [Ruby master Misc#19240] DevMeeting-2023-01-19 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

Issue #19240 has been reported by mame (Yusuke Endoh).

14 messages 2022/12/16

[#111339] [Ruby master Feature#19245] Strict mode for Array#pack that doesn't silently truncate numbers that are too large for the given directive — "byroot (Jean Boussier) via ruby-core" <ruby-core@...>

Issue #19245 has been reported by byroot (Jean Boussier).

8 messages 2022/12/20

[#111342] [Ruby master Bug#19246] Rebuilding the loaded feature index much slower in Ruby 3.1 — "thomthom (Thomas Thomassen) via ruby-core" <ruby-core@...>

Issue #19246 has been reported by thomthom (Thomas Thomassen).

22 messages 2022/12/20

[#111361] [Ruby master Bug#19248] TestGCCompact#test_moving_objects_between_size_pools test failure — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

Issue #19248 has been reported by vo.x (Vit Ondruch).

25 messages 2022/12/21

[#111400] [Ruby master Bug#19254] Enabling YJIT configuration option breaks rspec-core test suite — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

Issue #19254 has been reported by vo.x (Vit Ondruch).

7 messages 2022/12/23

[#111448] [Ruby master Bug#19266] URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER — "gareth (Gareth Adams) via ruby-core" <ruby-core@...>

Issue #19266 has been reported by gareth (Gareth Adams).

9 messages 2022/12/26

[#111456] [Ruby master Bug#19271] irb ignores rbs and debug with YJIT enabled — "olivierlacan (Olivier Lacan) via ruby-core" <ruby-core@...>

Issue #19271 has been reported by olivierlacan (Olivier Lacan).

9 messages 2022/12/27

[#111461] [Ruby master Feature#19272] Hash#merge: smarter protocol depending on passed block arity — "zverok (Victor Shepelev) via ruby-core" <ruby-core@...>

Issue #19272 has been reported by zverok (Victor Shepelev).

9 messages 2022/12/27

[#111465] [Ruby master Bug#19273] [Regexp] regexp does not does not match expected — "taichi730 (Taichi Ishitani) via ruby-core" <ruby-core@...>

Issue #19273 has been reported by taichi730 (Taichi Ishitani).

8 messages 2022/12/28

[#111477] [Ruby master Bug#19275] Bundled gems extensions are not installed with 3.2.0 release tarball — "xtkoba (Tee KOBAYASHI) via ruby-core" <ruby-core@...>

Issue #19275 has been reported by xtkoba (Tee KOBAYASHI).

8 messages 2022/12/28

[#111480] [Ruby master Misc#19276] It is not possible to reply to emails from rubymine — "graywolf (Gray Wolf) via ruby-core" <ruby-core@...>

Issue #19276 has been reported by graywolf (Gray Wolf).

8 messages 2022/12/28

[#111484] [Ruby master Bug#19278] Constructing subclasses of Data with positional arguments — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #19278 has been reported by tenderlovemaking (Aaron Patterson).

16 messages 2022/12/28

[#111485] [Ruby master Bug#19279] Allow `Coverage.supported?` to recognize oneshot lines mode — "kevin-j-m (Kevin Murphy) via ruby-core" <ruby-core@...>

SXNzdWUgIzE5Mjc5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtldmluLWotbSAoS2V2aW4gTXVycGh5

7 messages 2022/12/28

[#111526] [Ruby master Bug#19288] Ractor JSON parsing significantly slower than linear parsing — "maciej.mensfeld (Maciej Mensfeld) via ruby-core" <ruby-core@...>

Issue #19288 has been reported by maciej.mensfeld (Maciej Mensfeld).

24 messages 2022/12/30

[#111529] [Ruby master Bug#19289] RbConfig::CONFIG["STRIP"] should keep `rb_abi_version` and `rb_abi_version` should always be part of Ruby — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #19289 has been reported by Eregon (Benoit Daloze).

8 messages 2022/12/30

[ruby-core:111114] [Ruby master Feature#19138] `SyntaxError#path` for syntax_suggest

From: "matz (Yukihiro Matsumoto)" <noreply@...>
Date: 2022-12-01 08:05:03 UTC
List: ruby-core #111114
Issue #19138 has been updated by matz (Yukihiro Matsumoto).


Sounds reasonable.

Matz.


----------------------------------------
Feature #19138: `SyntaxError#path` for syntax_suggest
https://bugs.ruby-lang.org/issues/19138#change-100386

* Author: nobu (Nobuyoshi Nakada)
* Status: Open
* Priority: Normal
* Target version: 3.2
----------------------------------------
Currently syntax_suggest searches the path name from the exception message.
But extracting the info from messages for humans is fragile, I think.
So proposing a new method `SyntaxError#path`, similar to `LoadError#path`.

```patch
commit 986da132002af1cdb75c0c89ca2831fe51e6ce69
Author:     Nobuyoshi Nakada <nobu@ruby-lang.org>
AuthorDate: 2022-11-20 22:59:52 +0900
Commit:     Nobuyoshi Nakada <nobu@ruby-lang.org>
CommitDate: 2022-11-20 23:44:27 +0900

    Add `SyntaxError#path`

diff --git a/error.c b/error.c
index 0ff4b8d6d8e..ad1bc6ee8dc 100644
--- a/error.c
+++ b/error.c
@@ -125,6 +125,8 @@ err_vcatf(VALUE str, const char *pre, const char *file, int line,
     return str;
 }
 
+static VALUE syntax_error_with_path(VALUE, VALUE, VALUE*, rb_encoding*);
+
 VALUE
 rb_syntax_error_append(VALUE exc, VALUE file, int line, int column,
                        rb_encoding *enc, const char *fmt, va_list args)
@@ -138,15 +140,7 @@ rb_syntax_error_append(VALUE exc, VALUE file, int line, int column,
     }
     else {
         VALUE mesg;
-        if (NIL_P(exc)) {
-            mesg = rb_enc_str_new(0, 0, enc);
-            exc = rb_class_new_instance(1, &mesg, rb_eSyntaxError);
-        }
-        else {
-            mesg = rb_attr_get(exc, idMesg);
-            if (RSTRING_LEN(mesg) > 0 && *(RSTRING_END(mesg)-1) != '\n')
-                rb_str_cat_cstr(mesg, "\n");
-        }
+        exc = syntax_error_with_path(exc, file, &mesg, enc);
         err_vcatf(mesg, NULL, fn, line, fmt, args);
     }
 
@@ -2353,6 +2347,25 @@ syntax_error_initialize(int argc, VALUE *argv, VALUE self)
     return rb_call_super(argc, argv);
 }
 
+static VALUE
+syntax_error_with_path(VALUE exc, VALUE path, VALUE *mesg, rb_encoding *enc)
+{
+    if (NIL_P(exc)) {
+        *mesg = rb_enc_str_new(0, 0, enc);
+        exc = rb_class_new_instance(1, mesg, rb_eSyntaxError);
+        rb_ivar_set(exc, id_i_path, path);
+    }
+    else {
+        if (rb_attr_get(exc, id_i_path) != path) {
+            rb_raise(rb_eArgError, "SyntaxError#path changed");
+        }
+        VALUE s = *mesg = rb_attr_get(exc, idMesg);
+        if (RSTRING_LEN(s) > 0 && *(RSTRING_END(s)-1) != '\n')
+            rb_str_cat_cstr(s, "\n");
+    }
+    return exc;
+}
+
 /*
  *  Document-module: Errno
  *
@@ -3011,9 +3024,14 @@ Init_Exception(void)
     rb_eSyntaxError = rb_define_class("SyntaxError", rb_eScriptError);
     rb_define_method(rb_eSyntaxError, "initialize", syntax_error_initialize, -1);
 
+    ID id_path = rb_intern_const("path");
+
+    /* the path failed to parse */
+    rb_attr(rb_eSyntaxError, id_path, TRUE, FALSE, FALSE);
+
     rb_eLoadError   = rb_define_class("LoadError", rb_eScriptError);
     /* the path failed to load */
-    rb_attr(rb_eLoadError, rb_intern_const("path"), TRUE, FALSE, FALSE);
+    rb_attr(rb_eLoadError, id_path, TRUE, FALSE, FALSE);
 
     rb_eNotImpError = rb_define_class("NotImplementedError", rb_eScriptError);
 
```

With this method, syntax_suggest/core_ext.rb will no longer need `PathnameFromMessage`.

```patch
diff --git i/lib/syntax_suggest/core_ext.rb w/lib/syntax_suggest/core_ext.rb
index 40f5fe13759..616a6ed9839 100644
--- i/lib/syntax_suggest/core_ext.rb
+++ w/lib/syntax_suggest/core_ext.rb
@@ -25,15 +25,12 @@
       require "syntax_suggest/api" unless defined?(SyntaxSuggest::DEFAULT_VALUE)
 
       message = super
-      file = if highlight
-        SyntaxSuggest::PathnameFromMessage.new(super(highlight: false, **kwargs)).call.name
-      else
-        SyntaxSuggest::PathnameFromMessage.new(message).call.name
-      end
-
-      io = SyntaxSuggest::MiniStringIO.new
+      file = path
 
       if file
+        file = Pathname.new(file)
+        io = SyntaxSuggest::MiniStringIO.new
+
         SyntaxSuggest.call(
           io: io,
           source: file.read,
```

Since we have not released with `SyntaxError#detailed_message` yet, there should not be a compatibility issue.

@schneems How do you think?





-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/

In This Thread

Prev Next