[前][次][番号順一覧][スレッド一覧]

ruby-changes:73416

From: Nobuyoshi <ko1@a...>
Date: Mon, 5 Sep 2022 11:16:53 +0900 (JST)
Subject: [ruby-changes:73416] 68a092a469 (master): Set fake.rb variables by command line arguments

https://git.ruby-lang.org/ruby.git/commit/?id=68a092a469

From 68a092a4691efc8aba9a8ae7b27c2ad51c840bf9 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Mon, 5 Sep 2022 11:00:20 +0900
Subject: Set fake.rb variables by command line arguments

Then fallbacks to preprocessed version.h.
---
 template/fake.rb.in | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/template/fake.rb.in b/template/fake.rb.in
index 9177fb10c5..67eb6dcec0 100644
--- a/template/fake.rb.in
+++ b/template/fake.rb.in
@@ -9,19 +9,23 @@ while /\A(\w+)=(.*)/ =~ ARGV[0] https://github.com/ruby/ruby/blob/trunk/template/fake.rb.in#L9
 end
 if inc = arg['i']
   src = inc == '-' ? STDIN.read : File.read(inc)
-  def src.value(name)
-    eval(self[/\bruby_#{name}(?:\[\])?\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*(?=;)|[^{};]+)/m, 1].
-           gsub(/#/, '\\#').
-           gsub(/((?:\G|[^\\])(?:\\\\)*)\n/, '\1'))
-  end
-  arg['versions'] = version = {}
-  File.read(File.join(arg['srcdir'], 'version.c')).
-    scan(/rb_define_global_const\("(RUBY_\w+)",[^;]*?\bMK(?:INT|STR)\(([^()]*)\)/m) do |n, v|
-    version[n] = src.value(v)
+else
+  src = ""
+end
+def src.value(name)
+  unless val = self[/\bruby_#{name}(?:\[\])?\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*(?=;)|[^{};]+)/m, 1]
+    return
   end
-  arg['RUBY_DESCRIPTION_WITH_MJIT'] = src.value('description_with_mjit')
-  arg['RUBY_DESCRIPTION_WITH_YJIT'] = src.value('description_with_yjit')
+  eval(val.gsub(/#/, '\\#').gsub(/((?:\G|[^\\])(?:\\\\)*)\n/, '\1'))
+end
+version = Hash.new {|h, v| h[v] || src.value(v)}
+arg['versions'] = version
+File.read(File.join(arg['srcdir'], 'version.c')).
+  scan(/rb_define_global_const\("(RUBY_\w+)",[^;]*?\bMK(?:INT|(STR))\(([^()]*)\)/m) do |n, s, v|
+  version[n] = arg[v] || (s ? "" : 0)
 end
+arg['RUBY_DESCRIPTION_WITH_MJIT'] = arg['description_with_mjit'] || ""
+arg['RUBY_DESCRIPTION_WITH_YJIT'] = arg['description_with_yjit'] || ""
 %>baseruby="<%=arg['BASERUBY']%>"
 _\
 =begin
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]