竹広さま,みなさま 畔野です.私の経験では,GPhys に依存するものもすべてインストールし直す必要がありま した.
スクリプトとパッチ一式をお送りしますので,参考になれば幸いです. On 2020/06/05 0:04, Shin-ichi Takehiro wrote:
竹広です. GPhys 使って大規模データ処理したくてあがいてます. narray の代わりに numru-narray を使えば良いのでしょうが, これを使った GPhys をインストールするにはどうすればいいのか 教えていただけませんか. gem install に -- --with-narray-inculde といったオプションで numru-narray を指定すればいいかと思い, 試行錯誤してみましたが, うまくいってません. どうぞよろしくお願いします.
-- ------------------------ 畔野 貴弘 (BANNO Takahiro) banno@xxxxxxxxxxxxxxxxxx banno.takahiro.h79@xxxxxxxxxx ------------------------
diff --git a/Rakefile b/Rakefile index 2342f10..c4546c3 100644 --- a/Rakefile +++ b/Rakefile @@ -9,7 +9,7 @@ rescue LoadError puts 'If you want to create gem, You must install Bundler' end -Bundler::GemHelper.install_tasks(name: "gphys") +Bundler::GemHelper.install_tasks(name: "gphys-bigmem") require './lib/numru/gphys/version.rb' def version diff --git a/ext/numru/gphys/extconf.rb b/ext/numru/gphys/extconf.rb index 37cdcca..ade3810 100644 --- a/ext/numru/gphys/extconf.rb +++ b/ext/numru/gphys/extconf.rb @@ -17,7 +17,8 @@ else end dir_config('narray', narray_include, narray_lib) -require "narray" +require "numru/narray" +NArray = NumRu::NArray if NArray.const_defined?(:SUPPORT_BIGMEM) && NArray::SUPPORT_BIGMEM case RbConfig::CONFIG["CC"] diff --git a/gphys-bigmem.gemspec b/gphys-bigmem.gemspec index eaebc15..c331ee6 100644 --- a/gphys-bigmem.gemspec +++ b/gphys-bigmem.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'numru/gphys/version' Gem::Specification.new do |spec| - spec.name = "gphys-bigmem" + spec.name = "gphys" spec.version = NumRu::GPhys::VERSION spec.authors = ["Takeshi Horinouchi", "Ryo Mizuta",\ "Daisuke Tsukahara", "Seiya Nishizawa", "Shin-ichi Takehiro"] @@ -30,13 +30,13 @@ Gem::Specification.new do |spec| spec.required_ruby_version = Gem::Requirement.new(">= 1.8") - spec.add_runtime_dependency(%q<narray-bigmem>) - spec.add_runtime_dependency(%q<narray_miss-bigmem>) - spec.add_runtime_dependency(%q<numru-misc-bigmem>) + spec.add_runtime_dependency(%q<numru-narray>) + spec.add_runtime_dependency(%q<narray_miss>) + spec.add_runtime_dependency(%q<numru-misc>) spec.add_runtime_dependency(%q<numru-units>, [">= 1.7"]) - spec.add_runtime_dependency(%q<ruby-netcdf-bigmem>) - spec.add_runtime_dependency(%q<ruby-dcl-bigmem>) - spec.add_runtime_dependency(%q<ruby-fftw3-bigmem>) + spec.add_runtime_dependency(%q<ruby-netcdf>) + spec.add_runtime_dependency(%q<ruby-dcl>) + spec.add_runtime_dependency(%q<ruby-fftw3>) #spec.add_runtime_dependency(%q<gsl>, [">= 1.14"]) #spec.add_runtime_dependency(%q<rb-gsl>, [">= 1.14"]) #spec.add_runtime_dependency(%q<ruby-lapack>, [">= 1.5"]) diff --git a/lib/numru/derivative.rb b/lib/numru/derivative.rb index ca1ce43..cc7a2e4 100644 --- a/lib/numru/derivative.rb +++ b/lib/numru/derivative.rb @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) ############################################################ diff --git a/lib/numru/gphys/assoccoords.rb b/lib/numru/gphys/assoccoords.rb index 2d2eea4..827d4ae 100644 --- a/lib/numru/gphys/assoccoords.rb +++ b/lib/numru/gphys/assoccoords.rb @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) #require "numru/gphys_ext" module NumRu diff --git a/lib/numru/gphys/attribute.rb b/lib/numru/gphys/attribute.rb index 8f8d910..6ea05a2 100644 --- a/lib/numru/gphys/attribute.rb +++ b/lib/numru/gphys/attribute.rb @@ -1,4 +1,5 @@ -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) module NumRu =begin diff --git a/lib/numru/gphys/coordmapping.rb b/lib/numru/gphys/coordmapping.rb index ceb95ac..36e86e7 100644 --- a/lib/numru/gphys/coordmapping.rb +++ b/lib/numru/gphys/coordmapping.rb @@ -1,4 +1,5 @@ -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) =begin = class CoordMapping diff --git a/lib/numru/gphys/mdstorage.rb b/lib/numru/gphys/mdstorage.rb index 60d6e36..bf5b229 100644 --- a/lib/numru/gphys/mdstorage.rb +++ b/lib/numru/gphys/mdstorage.rb @@ -1,4 +1,5 @@ -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) module NumRu class MDStorage diff --git a/lib/numru/gphys/narray_ext.rb b/lib/numru/gphys/narray_ext.rb index 741cc2a..76a5b21 100644 --- a/lib/numru/gphys/narray_ext.rb +++ b/lib/numru/gphys/narray_ext.rb @@ -1,4 +1,5 @@ -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) class NArray diff --git a/lib/numru/gphys/subsetmapping.rb b/lib/numru/gphys/subsetmapping.rb index 33966c3..44b03ac 100644 --- a/lib/numru/gphys/subsetmapping.rb +++ b/lib/numru/gphys/subsetmapping.rb @@ -1,4 +1,5 @@ -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) module NumRu diff --git a/lib/numru/gphys/unumeric.rb b/lib/numru/gphys/unumeric.rb index 8375d4d..8a2acb0 100644 --- a/lib/numru/gphys/unumeric.rb +++ b/lib/numru/gphys/unumeric.rb @@ -546,7 +546,8 @@ end # module NumRu ###################################### if $0 == __FILE__ - require "narray" + require "numru/narray" + NArray = NumRu::NArray unless defined?(NArray) include NumRu a = UNumeric[ 10.0, Units['m/s'] ]
Attachment:
install.sh
Description: Bourne shell script
diff --git a/narray_miss.gemspec b/narray_miss.gemspec index 4e17098..83bd16f 100644 --- a/narray_miss.gemspec +++ b/narray_miss.gemspec @@ -31,6 +31,6 @@ Gem::Specification.new do |s| # specify any dependencies here; for example: #s.add_development_dependency "rspec" - s.add_runtime_dependency "narray" - #s.add_runtime_dependency "numru-narray" + #s.add_runtime_dependency "narray" + s.add_runtime_dependency "numru-narray" end
diff --git a/Rakefile b/Rakefile index 6797be2..c20987c 100644 --- a/Rakefile +++ b/Rakefile @@ -21,8 +21,8 @@ def version end # manual calls of install_tasks to support multiple gemspec files -Bundler::GemHelper.install_tasks(name: "numru-misc") -#Bundler::GemHelper.install_tasks(name: "numru-misc-bigmem") +#Bundler::GemHelper.install_tasks(name: "numru-misc") +Bundler::GemHelper.install_tasks(name: "numru-misc-bigmem") =begin task :default => :test diff --git a/lib/numru/misc/misc.rb b/lib/numru/misc/misc.rb index 81da853..06bcd91 100644 --- a/lib/numru/misc/misc.rb +++ b/lib/numru/misc/misc.rb @@ -1,4 +1,5 @@ -require "narray" +require "numru/narray" +NArray = NumRu::NArray unless defined?(NArray) module NumRu diff --git a/numru-misc-bigmem.gemspec b/numru-misc-bigmem.gemspec index 97ae35e..dd54e38 100644 --- a/numru-misc-bigmem.gemspec +++ b/numru-misc-bigmem.gemspec @@ -6,7 +6,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "numru/misc" Gem::Specification.new do |spec| - spec.name = "numru-misc-bigmem" + spec.name = "numru-misc" spec.version = NumRu::Misc::VERSION spec.authors = ["Takeshi Horinouchi"] spec.email = ["horinout@xxxxxxxxxxxxxx"] @@ -21,5 +21,5 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.required_ruby_version = Gem::Requirement.new(">= 1.6") - spec.add_runtime_dependency(%q<narray-bigmem>) + spec.add_runtime_dependency(%q<numru-narray>) end
diff --git a/GenWrapper/dcl_rb_heading b/GenWrapper/dcl_rb_heading index dc5b075..2c40e05 100644 --- a/GenWrapper/dcl_rb_heading +++ b/GenWrapper/dcl_rb_heading @@ -1,7 +1,7 @@ require "numru/dcl/narray_type.rb" if NumRu::DCL::SUPPORT_BIGMEM - if Object.const_defined?(:NArray) + if Object.const_defined?(:NArray) && !defined?(NumRu::NArray) raise "Incompatibility found. The loaded NumRu::DCL was compiled to " + "use NumRu::NArray, but here NArray has already been loaded." end diff --git a/Rakefile b/Rakefile index c4fab7f..7883cd2 100644 --- a/Rakefile +++ b/Rakefile @@ -9,7 +9,7 @@ rescue LoadError end # manual calls of install_tasks to support multiple gemspec files -Bundler::GemHelper.install_tasks(name: "ruby-dcl") +Bundler::GemHelper.install_tasks(name: "ruby-dcl-bigmem") require './lib/numru/dcl/version.rb' def version diff --git a/ruby-dcl-bigmem.gemspec b/ruby-dcl-bigmem.gemspec index e69de29..e690436 100644 --- a/ruby-dcl-bigmem.gemspec +++ b/ruby-dcl-bigmem.gemspec @@ -0,0 +1,39 @@ +# coding: utf-8 +require "rubygems" unless defined?(Gem) + +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'numru/dcl/version' + +#old# filelist = `git ls-files | egrep -v '^GenWrapper|^.git|^ToDo'`.split("\n") +#old# filelist.concat(Dir::glob('ext/**/*.c')) +#old# filelist.concat(Dir::glob('lib/**/*.rb')) + +filelist = %w!ChangeLog Gemfile LICENSE.txt Rakefile ruby-dcl.gemspec! +filelist.concat( Dir::glob("ext/**/*.c\0ext/**/*.rb\0ext/**/*.default") ) +filelist.concat( Dir::glob('lib/**/*.rb') ) +filelist.concat( Dir::glob("demo/**/*.rb\0demo/**/*.dat") ) +filelist.uniq! + +Gem::Specification.new do |spec| + spec.name = "ruby-dcl" + spec.version = NumRu::DCL::VERSION + spec.authors = ["T. Horinouchi", "K. Kuroi", "K. Goto"\ + ,"S. Nishizawa", "T. Koshiro",'GFD Dennou Club'] + spec.email = ["eriko@xxxxxxxxxxxxxx"] + + spec.summary = %q{one-to-one interface to the DCL graphic library} + spec.description = %q{RubyDCL is a ruby interface to the scientific graphic library DCL. It supports all the subroutines and functions in DCL on a one-to-one basis. } + spec.homepage = 'http://www.gfd-dennou.org/arch/ruby/products/ruby-dcl/' + spec.licenses = ["BSD-2-Clause"] + + spec.files = filelist + spec.test_files = spec.files.grep(%r{^demo/}) + spec.require_paths = ["ext","lib"] + spec.extensions << "ext/numru/extconf.rb" + + spec.required_ruby_version = Gem::Requirement.new(">= 1.6") + spec.add_runtime_dependency(%q<numru-narray>, [">= 1.0.3"]) + spec.add_runtime_dependency(%q<narray_miss>, [">= 0"]) + spec.add_development_dependency(%q<gtk2>, [">= 0"]) +end
diff --git a/Rakefile b/Rakefile index 6e5e6d1..23df4c4 100644 --- a/Rakefile +++ b/Rakefile @@ -9,8 +9,8 @@ rescue LoadError puts 'If you want to create gem, You must install Bundler' end -Bundler::GemHelper.install_tasks(name: "ruby-fftw3") -##Bundler::GemHelper.install_tasks(name: "ruby-fftw3-bigmem") +#Bundler::GemHelper.install_tasks(name: "ruby-fftw3") +Bundler::GemHelper.install_tasks(name: "ruby-fftw3-bigmem") require './lib/numru/fftw3/version.rb' def version diff --git a/lib/numru/fftw3.rb b/lib/numru/fftw3.rb index 2ced096..c193e3a 100644 --- a/lib/numru/fftw3.rb +++ b/lib/numru/fftw3.rb @@ -7,7 +7,7 @@ require "numru/fftw3/version" require "numru/fftw3/fftw3" if NumRu::FFTW3::SUPPORT_BIGMEM - if Object.const_defined?(:NArray) + if Object.const_defined?(:NArray) && !defined?(NumRu::NArray) raise "Incompatibility found. The loaded NumRu::FFTW3 was compiled to " + "use NumRu::NArray, but here NArray has already been loaded." end diff --git a/ruby-fftw3-bigmem.gemspec b/ruby-fftw3-bigmem.gemspec index e69de29..ba59f5e 100644 --- a/ruby-fftw3-bigmem.gemspec +++ b/ruby-fftw3-bigmem.gemspec @@ -0,0 +1,28 @@ +# coding: utf-8 +lib = File.expand_path('../lib', __FILE__) +$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) +require 'numru/fftw3/version' + +filelist = %w!ChangeLog .ChangeLog.until20110419 Gemfile LICENSE.txt Rakefile ruby-fftw3.gemspec! +filelist.concat(Dir::glob("ext/**/*.c\0ext/**/*.rb\0lib/**/*.rb\0test/**/*.rb")) + +Gem::Specification.new do |spec| + spec.name = "ruby-fftw3" + spec.version = NumRu::FFTW3::VERSION + spec.authors = ["Takeshi Horinouchi"] + spec.email = ['eriko@xxxxxxxxxxxxxx'] + + spec.summary = %q{The Ruby interface of the FFTW (ver 3) library} + spec.description = %q{The Ruby interface of the FFTW3, Fast Fourier Transform library FFTW Ver.3. Since ver.1, ruby-fftw3 supports all kinds of FFTs in FFTW3. Works with NArray (or NumRu::NArray).} + spec.homepage = 'http://www.gfd-dennou.org/arch/ruby/products/ruby-fftw3/' + spec.licenses = ["BSD-2-Clause"] + + spec.files = filelist + spec.test_files = spec.files.grep(%r{^test/}) + spec.require_paths = ["ext","lib"] + + spec.required_ruby_version = Gem::Requirement.new(">= 1.8") + spec.add_runtime_dependency(%q<numru-narray>, [">= 0"]) + + spec.extensions << "ext/numru/fftw3/extconf.rb" +end
diff --git a/Rakefile b/Rakefile index e457f52..f3dfb0f 100644 --- a/Rakefile +++ b/Rakefile @@ -10,8 +10,8 @@ rescue LoadError end # manual calls of install_tasks to support multiple gemspec files -Bundler::GemHelper.install_tasks(name: "ruby-netcdf") -#Bundler::GemHelper.install_tasks(name: "ruby-netcdf-bigmem") +#Bundler::GemHelper.install_tasks(name: "ruby-netcdf") +Bundler::GemHelper.install_tasks(name: "ruby-netcdf-bigmem") require './lib/numru/netcdf/version' def version diff --git a/lib/numru/netcdf.rb b/lib/numru/netcdf.rb index 4e68f01..24fe06e 100644 --- a/lib/numru/netcdf.rb +++ b/lib/numru/netcdf.rb @@ -1,6 +1,7 @@ -require 'narray' +require 'numru/narray' require 'numru/netcdf/version' require 'numru/netcdfraw' +NArray = NumRu::NArray unless defined?(NArray) if NArray.const_defined?(:SUPPORT_BIGMEM) && NArray::SUPPORT_BIGMEM unless NumRu::NetCDF::SUPPORT_BIGMEM diff --git a/ruby-netcdf-bigmem.gemspec b/ruby-netcdf-bigmem.gemspec index ec7076d..8312b77 100644 --- a/ruby-netcdf-bigmem.gemspec +++ b/ruby-netcdf-bigmem.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'numru/netcdf/version' Gem::Specification.new do |spec| - spec.name = "ruby-netcdf-bigmem" + spec.name = "ruby-netcdf" spec.version = NumRu::NetCDF::VERSION spec.authors = ["Takeshi Horinouchi", "Tsuyoshi Koshiro",\ "Shigenori Otsuka", "Seiya Nishizawa", "T Sakakima"] @@ -22,7 +22,7 @@ Gem::Specification.new do |spec| spec.extensions << "ext/numru/extconf.rb" spec.required_ruby_version = Gem::Requirement.new(">= 1.8") - spec.add_runtime_dependency(%q<narray-bigmem>, [">= 0"]) - spec.add_runtime_dependency(%q<narray_miss-bigmem>, [">= 0"]) + spec.add_runtime_dependency(%q<numru-narray>, [">= 0"]) + spec.add_runtime_dependency(%q<narray_miss>, [">= 0"]) end