From a82d24aa8237d50a8c7d7178d0535327e7ec645c Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 11 Mar 2013 05:25:06 +0000 Subject: [PATCH] gen_dummy_probes.rb * tool/gen_dummy_probes.rb: remove empty lines and compact. * tool/gen_dummy_probes.rb: allow arbitrary number of arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- probes.d | 1 + tool/gen_dummy_probes.rb | 14 ++++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/probes.d b/probes.d index 89c254ca6f..dd7a7bfcd3 100644 --- a/probes.d +++ b/probes.d @@ -1,3 +1,4 @@ +/* -*- c -*- */ #include "vm_opts.h" provider ruby { diff --git a/tool/gen_dummy_probes.rb b/tool/gen_dummy_probes.rb index 91191f1918..c19f9d53cd 100755 --- a/tool/gen_dummy_probes.rb +++ b/tool/gen_dummy_probes.rb @@ -5,24 +5,22 @@ text = ARGF.read text.gsub!(/^(?!#)(.*)/){$1.upcase} # remove comments -text.gsub!(%r'/\*.*?\*/'m, '') +text.gsub!(%r'(?:^ *)?/\*.*?\*/\n?'m, '') # remove the pragma declarations -text.gsub!(/^#pragma.*$/, '') +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") # finish up the #ifndef sandwich -text.gsub!(/\};/, "#endif\t/* _PROBES_H */") +text.gsub!(/\};/, "\n#endif\t/* _PROBES_H */") text.gsub!(/__/, '_') -text.gsub!(/\([^,)]+\)/, '(arg0)') -text.gsub!(/\([^,)]+,[^,)]+\)/, '(arg0, arg1)') -text.gsub!(/\([^,)]+,[^,)]+,[^,)]+\)/, '(arg0, arg1, arg2)') -text.gsub!(/\([^,)]+,[^,)]+,[^,)]+,[^,)]+\)/, '(arg0, arg1, arg2, arg3)') -text.gsub!(/\([^,)]+,[^,)]+,[^,)]+,[^,)]+,[^,)]+\)/, '(arg0, arg1, arg2, arg3, arg4)') +text.gsub!(/\((.+?)(?=\);)/) { + "(arg" << (0..$1.count(',')).to_a.join(", arg") +} text.gsub!(/ *PROBE ([^\(]*)(\([^\)]*\));/, "#define RUBY_DTRACE_\\1_ENABLED() 0\n#define RUBY_DTRACE_\\1\\2\ do \{ \} while\(0\)") puts "/* -*- c -*- */"