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

ruby-changes:42227

From: nobu <ko1@a...>
Date: Sun, 27 Mar 2016 10:18:18 +0900 (JST)
Subject: [ruby-changes:42227] nobu:r54300 (trunk): gen_dummy_probes.rb: argument names

nobu	2016-03-27 10:18:10 +0900 (Sun, 27 Mar 2016)

  New Revision: 54300

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=54300

  Log:
    gen_dummy_probes.rb: argument names
    
    * tool/gen_dummy_probes.rb: preserve macro argument names.

  Modified files:
    trunk/tool/gen_dummy_probes.rb
Index: tool/gen_dummy_probes.rb
===================================================================
--- tool/gen_dummy_probes.rb	(revision 54299)
+++ tool/gen_dummy_probes.rb	(revision 54300)
@@ -2,7 +2,6 @@ https://github.com/ruby/ruby/blob/trunk/tool/gen_dummy_probes.rb#L2
 # -*- coding: us-ascii -*-
 
 text = ARGF.read
-text.gsub!(/^(?!#)(.*)/){$1.upcase}
 
 # remove comments
 text.gsub!(%r'(?:^ *)?/\*.*?\*/\n?'m, '')
@@ -11,18 +10,20 @@ text.gsub!(%r'(?:^ *)?/\*.*?\*/\n?'m, '' https://github.com/ruby/ruby/blob/trunk/tool/gen_dummy_probes.rb#L10
 text.gsub!(/^#pragma.*\n/, '')
 
 # replace the provider section with the start of the header file
-text.gsub!(/PROVIDER RUBY \{/, "#ifndef\t_PROBES_H\n#define\t_PROBES_H\n#define DTRACE_PROBES_DISABLED 1\n")
+text.gsub!(/provider ruby \{/, "#ifndef\t_PROBES_H\n#define\t_PROBES_H\n#define DTRACE_PROBES_DISABLED 1\n")
 
 # finish up the #ifndef sandwich
 text.gsub!(/\};/, "\n#endif\t/* _PROBES_H */")
 
-text.gsub!(/__/, '_')
-
-text.gsub!(/\((.+?)(?=\);)/) {
-  "(arg" << (0..$1.count(',')).to_a.join(", arg")
+# expand probes to DTRACE macros
+text.gsub!(/^ *probe ([^\(]*)\(([^\)]*)\);/) {
+  name, args = $1, $2
+  name.upcase!
+  name.gsub!(/__/, '_')
+  args.gsub!(/(\A|, *)[^,]*\b(?=\w+(?=,|\z))/, '\1')
+  "#define RUBY_DTRACE_#{name}_ENABLED() 0\n" \
+  "#define RUBY_DTRACE_#{name}(#{args}) do {} while (0)"
 }
 
-text.gsub!(/ *PROBE ([^\(]*)(\([^\)]*\));/, "#define RUBY_DTRACE_\\1_ENABLED() 0\n#define RUBY_DTRACE_\\1\\2\ do \{ \} while\(0\)")
 puts "/* -*- c -*- */"
 print text
-

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

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