[#98645] [Ruby master Misc#16933] DevelopersMeeting20200618Japan — mame@...

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

14 messages 2020/06/04

[#98663] [Ruby master Bug#16936] `make check TESTS="-n !/Foo#method/"` not skipping the test case — jaruga@...

Issue #16936 has been reported by jaruga (Jun Aruga).

13 messages 2020/06/05

[#98772] [Ruby master Bug#16959] Weakmap has specs and third-party usage despite being a private API — headius@...

Issue #16959 has been reported by headius (Charles Nutter).

13 messages 2020/06/12

[#98826] [Ruby master Feature#16963] Remove English.rb from Ruby 2.8/3.0 — hsbt@...

Issue #16963 has been reported by hsbt (Hiroshi SHIBATA).

9 messages 2020/06/16

[#98920] [Ruby master Bug#16978] Ruby should not use realpath for __FILE__ — v.ondruch@...

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

24 messages 2020/06/23

[#98947] [Ruby master Feature#16986] Anonymous Struct literal — ko1@...

Issue #16986 has been reported by ko1 (Koichi Sasada).

66 messages 2020/06/26

[#98964] [Ruby master Feature#16989] Sets: need ♥️ — marcandre-ruby-core@...

Issue #16989 has been reported by marcandre (Marc-Andre Lafortune).

33 messages 2020/06/26

[#98965] [Ruby master Feature#16990] Sets: operators compatibility with Array — marcandre-ruby-core@...

Issue #16990 has been reported by marcandre (Marc-Andre Lafortune).

11 messages 2020/06/26

[#98968] [Ruby master Feature#16993] Sets: from hash keys using Hash#key_set — marcandre-ruby-core@...

Issue #16993 has been reported by marcandre (Marc-Andre Lafortune).

10 messages 2020/06/26

[#98997] [Ruby master Feature#17000] 2.7.2 turns off deprecation warnings by deafult — mame@...

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

16 messages 2020/06/30

[ruby-core:98757] [Ruby master Bug#16941] MJIT doesn't identify Struct kind of instruction

From: takashikkbn@...
Date: 2020-06-12 00:42:56 UTC
List: ruby-core #98757
Issue #16941 has been updated by k0kubun (Takashi Kokubun).


> I didn't understand the need to compile the block every time it is being called.

Good point. If there's only one block definition, only one JIT compilation attempt should happen regardless of how Struct is handled in it. I think I was a little bit confused, and I need more information to understand your problem more.

Could you provide a single script and a command which reproduces "it attempts every time" a method is called? In your current script and logs in the description, `my_script` is called only once and it's compiled once, and I don't see the "it attempts every time" problem there.

> Can you refer me to some documentation for understanding execution with JIT?

The only official documentation of JIT available right now is https://bugs.ruby-lang.org/projects/ruby/wiki/MJIT, but I think your problem seems a little bit complicated. So let me figure out what the problem is first to revise my explanation of it for you.

----------------------------------------
Bug #16941: MJIT doesn't identify Struct kind of instruction
https://bugs.ruby-lang.org/issues/16941#change-86114

* Author: abhsha (Abhishek Sharma)
* Status: Feedback
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* ruby -v: 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
MJIT does not identify Struct instructions and gives a warning while compiling to C.

Example: 
def my_method
    1.times do
        a_struct = Struct.new(:a).new
        a_struct.a = "a"
    end
end

my_method

$: ruby --jit-save-temps --jit-min-calls=1 --disable-gems --jit --jit-verbose=2 --jit-wait test.rb

output:
start compilation: a=@test.rb:3 -> /tmp/_ruby_mjit_p30696u2.c
MJIT warning: Skipped to compile unsupported instruction: opt_call_c_function
JIT failure (0.0ms): a=@test.rb:3 -> /tmp/_ruby_mjit_p30696u2.c

Are structs not recognised by JIT compiler? 
We have this call in our programs many number of times (~ 10^6), it attempts every time and fails. Can this be a cause of programs to get slower with --jit enabled ? 



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread