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/