* tool/compile_prelude.rb: replaces "require" with in-place evaluation
so that copy & paste for lib/rubygems/default.rb is not necessary. * gem_prelude.rb: removes copied codes from lib/rubygems/defaults.rb. uses require instead. * common.mk (prelude.c): adds dependency for lib/rubygems/defaults.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
045136d475
commit
e60463034a
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
Thu Jul 30 22:28:04 2009 Yuki Sonoda (Yugui) <yugui@yugui.jp>
|
||||||
|
|
||||||
|
* tool/compile_prelude.rb: replaces "require" with in-place evaluation
|
||||||
|
so that copy & paste for lib/rubygems/default.rb is not necessary.
|
||||||
|
|
||||||
|
* gem_prelude.rb: removes copied codes from lib/rubygems/defaults.rb.
|
||||||
|
uses require instead.
|
||||||
|
|
||||||
|
* common.mk (prelude.c): adds dependency for lib/rubygems/defaults.rb.
|
||||||
|
|
||||||
Thu Jul 30 21:56:18 2009 Yusuke Endoh <mame@tsg.ne.jp>
|
Thu Jul 30 21:56:18 2009 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
* test/ruby/test_rand.rb: add tests for Random class.
|
* test/ruby/test_rand.rb: add tests for Random class.
|
||||||
|
@ -696,7 +696,7 @@ known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_
|
|||||||
miniprelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb
|
miniprelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb
|
||||||
$(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@
|
$(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@
|
||||||
|
|
||||||
prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(PRELUDE_SCRIPTS) $(PREP)
|
prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(srcdir)/lib/rubygems/defaults.rb $(PRELUDE_SCRIPTS) $(PREP)
|
||||||
$(COMPILE_PRELUDE) $(PRELUDE_SCRIPTS) $@
|
$(COMPILE_PRELUDE) $(PRELUDE_SCRIPTS) $@
|
||||||
|
|
||||||
golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(PREP)
|
golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(PREP)
|
||||||
|
108
gem_prelude.rb
108
gem_prelude.rb
@ -1,6 +1,5 @@
|
|||||||
# depends on: array.rb dir.rb env.rb file.rb hash.rb module.rb regexp.rb
|
# depends on: array.rb dir.rb env.rb file.rb hash.rb module.rb regexp.rb
|
||||||
# vim: filetype=ruby
|
# vim: filetype=ruby
|
||||||
# THIS FILE WAS AUTOGENERATED, DO NOT EDIT
|
|
||||||
|
|
||||||
# NOTICE: Ruby is during initialization here.
|
# NOTICE: Ruby is during initialization here.
|
||||||
# * Encoding.default_external does not reflects -E.
|
# * Encoding.default_external does not reflects -E.
|
||||||
@ -91,112 +90,11 @@ if defined?(Gem) then
|
|||||||
end
|
end
|
||||||
|
|
||||||
# begin rubygems/defaults
|
# begin rubygems/defaults
|
||||||
|
# NOTE: this require will be replaced with in-place eval before compilation.
|
||||||
@post_install_hooks ||= []
|
require 'lib/rubygems/defaults.rb'
|
||||||
@post_uninstall_hooks ||= []
|
|
||||||
@pre_uninstall_hooks ||= []
|
|
||||||
@pre_install_hooks ||= []
|
|
||||||
|
|
||||||
##
|
|
||||||
# An Array of the default sources that come with RubyGems
|
|
||||||
|
|
||||||
def self.default_sources
|
|
||||||
%w[http://gems.rubyforge.org/]
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Default home directory path to be used if an alternate value is not
|
|
||||||
# specified in the environment
|
|
||||||
|
|
||||||
def self.default_dir
|
|
||||||
if defined? RUBY_FRAMEWORK_VERSION then
|
|
||||||
File.join File.dirname(ConfigMap[:sitedir]), 'Gems',
|
|
||||||
ConfigMap[:ruby_version]
|
|
||||||
elsif RUBY_VERSION >= '1.9.2' then
|
|
||||||
File.join(ConfigMap[:rubylibprefix], 'gems',
|
|
||||||
ConfigMap[:ruby_version])
|
|
||||||
# only Ruby 1.9.1 has a peculiar feature
|
|
||||||
elsif RUBY_VERSION > '1.9' and
|
|
||||||
File.join(ConfigMap[:libdir], ConfigMap[:ruby_install_name], 'gems',
|
|
||||||
ConfigMap[:ruby_version])
|
|
||||||
else
|
|
||||||
File.join(ConfigMap[:libdir], ruby_engine, 'gems',
|
|
||||||
ConfigMap[:ruby_version])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Path for gems in the user's home directory
|
|
||||||
|
|
||||||
def self.user_dir
|
|
||||||
File.join(Gem.user_home, '.gem', ruby_engine,
|
|
||||||
ConfigMap[:ruby_version])
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Default gem load path
|
|
||||||
|
|
||||||
def self.default_path
|
|
||||||
if File.exist?(Gem.user_home)
|
|
||||||
[user_dir, default_dir]
|
|
||||||
else
|
|
||||||
[default_dir]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# Deduce Ruby's --program-prefix and --program-suffix from its install name
|
|
||||||
|
|
||||||
def self.default_exec_format
|
|
||||||
exec_format = ConfigMap[:ruby_install_name].sub('ruby', '%s') rescue '%s'
|
|
||||||
|
|
||||||
unless exec_format =~ /%s/ then
|
|
||||||
raise Gem::Exception,
|
|
||||||
"[BUG] invalid exec_format #{exec_format.inspect}, no %s"
|
|
||||||
end
|
|
||||||
|
|
||||||
exec_format
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# The default directory for binaries
|
|
||||||
|
|
||||||
def self.default_bindir
|
|
||||||
if defined? RUBY_FRAMEWORK_VERSION then # mac framework support
|
|
||||||
'/usr/bin'
|
|
||||||
else # generic install
|
|
||||||
ConfigMap[:bindir]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# The default system-wide source info cache directory
|
|
||||||
|
|
||||||
def self.default_system_source_cache_dir
|
|
||||||
File.join Gem.dir, 'source_cache'
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# The default user-specific source info cache directory
|
|
||||||
|
|
||||||
def self.default_user_source_cache_dir
|
|
||||||
File.join Gem.user_home, '.gem', 'source_cache'
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
|
||||||
# A wrapper around RUBY_ENGINE const that may not be defined
|
|
||||||
|
|
||||||
def self.ruby_engine
|
|
||||||
if defined? RUBY_ENGINE then
|
|
||||||
RUBY_ENGINE
|
|
||||||
else
|
|
||||||
'ruby'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# end rubygems/defaults
|
# end rubygems/defaults
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Methods before this line will be removed when QuickLoader is replaced
|
# Methods before this line will be removed when QuickLoader is replaced
|
||||||
# with the real RubyGems
|
# with the real RubyGems
|
||||||
|
@ -23,6 +23,10 @@ C_ESC_PAT = Regexp.union(*C_ESC.keys)
|
|||||||
def c_esc(str)
|
def c_esc(str)
|
||||||
'"' + str.gsub(C_ESC_PAT) { C_ESC[$&] } + '"'
|
'"' + str.gsub(C_ESC_PAT) { C_ESC[$&] } + '"'
|
||||||
end
|
end
|
||||||
|
def prelude_name(*path_nests)
|
||||||
|
prelude = path_nests.map{|prelude_path| File.basename(prelude_path, ".rb") }.join(":")
|
||||||
|
"<internal:" + prelude + ">"
|
||||||
|
end
|
||||||
|
|
||||||
mkconf = nil
|
mkconf = nil
|
||||||
setup_ruby_prefix = nil
|
setup_ruby_prefix = nil
|
||||||
@ -47,6 +51,16 @@ lines_list = preludes.map {|filename|
|
|||||||
"nil"
|
"nil"
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
line.gsub!(/require\s*(\(?)\s*(["'])(.*?)\2\s*\1/) {
|
||||||
|
orig, path = $&, $3
|
||||||
|
srcdir = File.expand_path("../..", __FILE__)
|
||||||
|
path = File.expand_path(path, srcdir)
|
||||||
|
if File.exist?(path)
|
||||||
|
"eval(%s, TOPLEVEL_BINDING, %s, %d)" % [ File.read(path).dump, prelude_name(filename, path).dump, 1]
|
||||||
|
else
|
||||||
|
orig
|
||||||
|
end
|
||||||
|
}
|
||||||
lines << c_esc(line)
|
lines << c_esc(line)
|
||||||
}
|
}
|
||||||
setup_lines = []
|
setup_lines = []
|
||||||
@ -60,11 +74,16 @@ lines_list = preludes.map {|filename|
|
|||||||
require 'erb'
|
require 'erb'
|
||||||
|
|
||||||
tmp = ERB.new(<<'EOS', nil, '%').result(binding)
|
tmp = ERB.new(<<'EOS', nil, '%').result(binding)
|
||||||
|
/* -*-c-*-
|
||||||
|
THIS FILE WAS AUTOGENERATED BY tool/compile_prelude.rb. DO NOT EDIT.
|
||||||
|
|
||||||
|
soruces: <%= preludes.join(', ') %>
|
||||||
|
*/
|
||||||
#include "ruby/ruby.h"
|
#include "ruby/ruby.h"
|
||||||
#include "vm_core.h"
|
#include "vm_core.h"
|
||||||
|
|
||||||
% preludes.zip(lines_list).each_with_index {|(prelude, (setup_lines, lines)), i|
|
% preludes.zip(lines_list).each_with_index {|(prelude, (setup_lines, lines)), i|
|
||||||
static const char prelude_name<%=i%>[] = <%=c_esc("<internal:" + File.basename(prelude, ".rb") + ">")%>;
|
static const char prelude_name<%=i%>[] = <%=c_esc(prelude_name(prelude))%>;
|
||||||
static const char prelude_code<%=i%>[] =
|
static const char prelude_code<%=i%>[] =
|
||||||
% (setup_lines+lines).each {|line|
|
% (setup_lines+lines).each {|line|
|
||||||
<%=line%>
|
<%=line%>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user