diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-12 08:38:09 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-01-12 08:38:09 +0000 |
commit | f6ea376317ad94a6cde01a47d0e94d709b5ab43d (patch) | |
tree | b2d2a927d72af30b1d6bc9adada8f7ab7101f758 /tool/insns2vm.rb | |
parent | 9456f88f00292d202ba9910b26fdb1cd0a499d93 (diff) | |
download | ruby-f6ea376317ad94a6cde01a47d0e94d709b5ab43d.tar.gz |
delete tool/instruction.rb (2nd try)
Previous commit changed insns.def format. Now is the time for its
generators. In doing so I chose to modernize the system, not just
patch. My attempt includes
- extensive use of Onigumo regular expressions
- split from one big file (instruction.rb) into separated MVC
- partial view
Also, let me take this opportunity to kill old unused features
such as
- stack caching
- minsns / yasmdata which are never seriously used
- yarvarch document generation (moved to doc/)
- vast majority of unused arguments to insns2vm.rb
This commit generates VM source codes that cleanly compile, and
the generated binary passes tests. At least for me.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool/insns2vm.rb')
-rwxr-xr-x | tool/insns2vm.rb | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/tool/insns2vm.rb b/tool/insns2vm.rb index ecbbb52643..e6fe64d189 100755 --- a/tool/insns2vm.rb +++ b/tool/insns2vm.rb @@ -3,16 +3,11 @@ # This is used by Makefile.in to generate .inc files. # See Makefile.in for details. -require 'optparse' - -Version = %w$Revision: 11626 $[1..-1] - -require "#{File.join(File.dirname(__FILE__), 'instruction')}" +require_relative 'ruby_vm/scripts/insns2vm' if $0 == __FILE__ - opts = ARGV.options - maker = RubyVM::SourceCodeGenerator.def_options(opts) - files = opts.parse! - generator = maker.call - generator.generate(files) + router(ARGV).each do |(path, generator)| + str = generator.generate path + path.write str, mode: 'wb:utf-8' + end end |