[#29233] [Bug #3085] Time dumping/loading using Psych — Tomo Kazahaya <redmine@...>
Bug #3085: Time dumping/loading using Psych
Issue #3085 has been updated by Aaron Patterson.
2010/4/4 Aaron Patterson <redmine@ruby-lang.org>:
[#29247] [Bug:trunk] matrix test failures — Tanaka Akira <akr@...>
matrix test fails as follows.
[#29255] [Bug #3092] IO Broken with Latest Windows — Charlie Savage <redmine@...>
Bug #3092: IO Broken with Latest Windows
[#29270] Proposal: Module#thunk_method — Charles Oliver Nutter <headius@...>
Many people use define_method solely so they can define a new method
On Apr 5, 2010, at 5:42 PM, Charles Oliver Nutter wrote:
Joshua Ballanco wrote:
Because often the pattern is to do the calculation and then define a
On Apr 6, 2010, at 4:17 PM, Charles Oliver Nutter wrote:
[#29287] [Bug #3102] Rubygems should avoid deprecated yaml api — Aaron Patterson <redmine@...>
Bug #3102: Rubygems should avoid deprecated yaml api
[#29291] [Bug #3104] Random: seeding issues — Marc-Andre Lafortune <redmine@...>
Bug #3104: Random: seeding issues
[#29293] URI.(un)escape deprecated? — Marc-Andre Lafortune <ruby-core-mailing-list@...>
Hi.
2010/4/7 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:
On Thu, Apr 8, 2010 at 5:22 PM, Tanaka Akira <akr@fsij.org> wrote:
> So, Yui, could you please tell us what motivated this change and what
2010/4/9 NARUSE, Yui <naruse@airemix.jp>:
On Thu, Apr 8, 2010 at 10:31 PM, Tanaka Akira <akr@fsij.org> wrote:
2010/4/9 Austin Ziegler <halostatue@gmail.com>:
Hi,
[#29295] [Bug #3105] seg faults and bus errors with ruby 1.8.7 p249 — Greg Ferguson <redmine@...>
Bug #3105: seg faults and bus errors with ruby 1.8.7 p249
[#29313] [Bug #3112] require "yaml" doesn't use psych as default — Usaku NAKAMURA <redmine@...>
Bug #3112: require "yaml" doesn't use psych as default
Issue #3112 has been updated by Yui NARUSE.
On Thu, Apr 08, 2010 at 02:06:55PM +0900, Yui NARUSE wrote:
On 4/8/10, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
First of all, people want compatibility.
I found Aaron added YAML.quick_emit to Psych, thank.
On Sat, Apr 10, 2010 at 07:11:28PM +0900, NARUSE, Yui wrote:
(2010/04/11 8:48), Aaron Patterson wrote:
On Sun, Apr 11, 2010 at 09:20:15AM +0900, NARUSE, Yui wrote:
Issue #3112 has been updated by Anshul Khandelwal.
[#29427] [Bug #3124] SocketError on SnowLeopard (during make test-all) — Aaron Patterson <redmine@...>
Bug #3124: SocketError on SnowLeopard (during make test-all)
[#29447] [RubySpec #3128] Randomness specs — Marc-Andre Lafortune <redmine@...>
RubySpec #3128: Randomness specs
[#29462] [Feature #3131] add Kernel#Hash() method like Kernel#Array() — Suraj Kurapati <redmine@...>
Feature #3131: add Kernel#Hash() method like Kernel#Array()
[#29464] [Bug #3132] …/nokogiri-1.4.1/ext/nokogiri/nokogiri.bundle: [BUG] Bus Error — Ashley Williams <redmine@...>
Bug #3132: …/nokogiri-1.4.1/ext/nokogiri/nokogiri.bundle: [BUG] Bus Error
[#29486] [Bug #3140] gem activation has changed between 1.8 and 1.9 — Aaron Patterson <redmine@...>
Bug #3140: gem activation has changed between 1.8 and 1.9
Issue #3140 has been updated by Aaron Patterson.
Hi,
We are about to ship a version of Ruby with a built in package manager with
On Fri, Jul 2, 2010 at 6:19 PM, Yehuda Katz <wycats@gmail.com> wrote:
On Sat, Jul 03, 2010 at 07:48:04AM +0900, Luis Lavena wrote:
After a brief discussion with Eric Hodel about this, there are a few questions before we can figure out how to solve this:
Is there any comment on this? This is a big bug in 1.9.2 that we'd like to get fixed as soon as we can, but I need some input on it.
I wrote this original code in gem_prelude.
Hi,
See comment on patch below. Other than my comments, I'm fine with this.
Since no one has responded, nobu, can you go ahead and commit it?
Issue #3140 has been updated by Yusuke Endoh.
Issue #3140 has been updated by Yusuke Endoh.
> I've commited the patch to trunk.
Hi,
> Roger, could you re-try to build from scratch? ould you apply
> I'll try with 1_9_2 next.
2010/7/14 Roger Pack <rogerdpack2@gmail.com>:
On Sun, Jul 11, 2010 at 10:23 AM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
Uh-oh, rc2 has been released.
On Sun, Jul 11, 2010 at 12:26 PM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
Issue #3140 has been updated by Yehuda Katz.
Hi,
Hi,
> If you 'gem install mongrel' on 1.9, it will fail (for a valid reason). The directory is not removed because that would prevent users from debugging the build process by reading 'gem_make.out' that is left there for this purpose.
[#29528] [Bug #3150] net/https peer verification doesn't do anything — Hongli Lai <redmine@...>
Bug #3150: net/https peer verification doesn't do anything
[#29578] [Bug #3163] SyntaxError when using variable which is also a method in current scope with a Symbol argument — Benoit Daloze <redmine@...>
Bug #3163: SyntaxError when using variable which is also a method in current scope with a Symbol argument
Issue #3163 has been updated by caleb clausen.
On 18 April 2010 02:06, caleb clausen <redmine@ruby-lang.org> wrote:
On 4/17/10, Benoit Daloze <eregontp@gmail.com> wrote:
On 18.04.10 04:34, Caleb Clausen wrote:
On 4/17/10, Kornelius Kalnbach <murphy@rubychan.de> wrote:
On 17.04.10 20:26, Benoit Daloze wrote:
>as in a ? b : c.
On 18.04.10 16:10, Benoit Daloze wrote:
[#29601] [Bug #3167] RDoc issues in interactive mode — Benoit Daloze <redmine@...>
Bug #3167: RDoc issues in interactive mode
[#29608] [Bug #3169] RDoc crossref confused by instance and class methods having same name — Marc-Andre Lafortune <redmine@...>
Bug #3169: RDoc crossref confused by instance and class methods having same name
Issue #3169 has been updated by Eric Hodel.
On 19.04.10 05:36, Eric Hodel wrote:
On Apr 18, 2010, at 21:28, Kornelius Kalnbach wrote:
[#29641] [Feature #3176] Thread#priority= should actually do something — caleb clausen <redmine@...>
Feature #3176: Thread#priority= should actually do something
Issue #3176 has been updated by Yusuke Endoh.
> Issue #3176 has been updated by Yusuke Endoh.
On 5/15/10, KOSAKI Motohiro <kosaki.motohiro@gmail.com> wrote:
Issue #3176 has been updated by caleb clausen.
> I tried to make it use pthread_setschedparam on linux. That would seem to be
Issue #3176 has been updated by caleb clausen.
Issue #3176 has been updated by caleb clausen.
[#29670] "include X; include Y" vs "include X, Y" — Daniel Berger <djberg96@...>
Hi,
[#29677] anonymous Module#name returns nil in 1.9 — Ryan Davis <ryand-ruby@...>
Is this intentional?
[#29710] [Bug #3185] File.expand_path repeats forward slashes at the beginning of the path — Brian Ford <redmine@...>
Bug #3185: File.expand_path repeats forward slashes at the beginning of the path
Issue #3185 has been updated by Brian Ford.
[#29745] [Bug #3191] imap exits on login with invalid credentials — Karl Baum <redmine@...>
Bug #3191: imap exits on login with invalid credentials
[#29812] identifying process of show stoppers for 1.9.2 release — Yusuke ENDOH <mame@...>
Hi, all
Yusuke ENDOH wrote:
[#29835] [Bug #3212] ConditionVariable may become inconsistent for interrupted threads — Sylvain Joyeux <redmine@...>
Bug #3212: ConditionVariable may become inconsistent for interrupted threads
Issue #3212 has been updated by Sylvain Joyeux.
Hi,
On 5/5/10, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
On 5/6/10, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
[#29845] [Bug #3215] Windows: IO.popen returns "handle is invalid" — Christian Höltje <redmine@...>
Bug #3215: Windows: IO.popen returns "handle is invalid"
[#29863] [Bug #3216] #join in thwait.rb only waits for first thread — Roger Pack <redmine@...>
Bug #3216: #join in thwait.rb only waits for first thread
[#29868] [Bug:trunk] assert now passes non-boolean result — Nobuyoshi Nakada <nobu@...>
Hi,
Issue #3219 has been updated by caleb clausen.
[#29874] [Bug #3220] bug in gc.c — Aaron Patterson <redmine@...>
Bug #3220: bug in gc.c
[ruby-core:29787] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9
Hi,
At Fri, 16 Apr 2010 03:08:27 +0900,
Evan Phoenix wrote in [ruby-core:29537]:
> This moves the RubyGem custom require into the prelude and
> triggers the full loading of RubyGems itself if the normal
> require raises a LoadError. It fixes the problem because the
> highest version gems are no longer pushed on $LOAD_PATH,
> allowing RubyGems to activate gems and the proper
> dependencies.
I don't like the duplication, so changed to keep #require
staying in custom_require.rb and introduce Gem.try_activate.
diff --git c/common.mk i/common.mk
index 36174c3..30b31c8 100644
--- c/common.mk
+++ i/common.mk
@@ -733,7 +733,9 @@ known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_
miniprelude.c: $(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) $(srcdir)/lib/rubygems/defaults.rb $(PRELUDE_SCRIPTS) $(PREP)
+prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) \
+ $(srcdir)/lib/rubygems/defaults.rb $(srcdir)/lib/rubygems/custom_require.rb \
+ $(PRELUDE_SCRIPTS) $(PREP)
$(COMPILE_PRELUDE) $(PRELUDE_SCRIPTS) $@
golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(PREP)
diff --git c/gem_prelude.rb i/gem_prelude.rb
index 71f30bd..09b8f3a 100644
--- c/gem_prelude.rb
+++ i/gem_prelude.rb
@@ -1,4 +1,3 @@
-# depends on: array.rb dir.rb env.rb file.rb hash.rb module.rb regexp.rb
# vim: filetype=ruby
# NOTICE: Ruby is during initialization here.
@@ -13,7 +12,8 @@ if defined?(Gem) then
module Kernel
def gem(gem_name, *version_requirements)
- Gem.push_gem_version_on_load_path(gem_name, *version_requirements)
+ Gem::QuickLoader.load_full_rubygems_library
+ gem gem_name, *version_requirements
end
private :gem
end
@@ -133,29 +133,27 @@ if defined?(Gem) then
end
module QuickLoader
-
- @loaded_full_rubygems_library = false
-
def self.load_full_rubygems_library
- return if @loaded_full_rubygems_library
+ return @loaded_full_rubygems_library if defined?(@loaded_full_rubygems_library)
- @loaded_full_rubygems_library = true
+ @loaded_full_rubygems_library = false
class << Gem
undef_method(*Gem::GEM_PRELUDE_METHODS)
- undef_method :const_missing
- undef_method :method_missing
- end
-
- Kernel.module_eval do
- undef_method :gem if method_defined? :gem
end
$".delete path_to_full_rubygems_library
if $".any? {|path| path.end_with?('/rubygems.rb')}
raise LoadError, "another rubygems is already loaded from #{path}"
end
+
+ verbose, debug = $VERBOSE, $DEBUG
+ $VERBOSE = $DEBUG = nil
+
require 'rubygems'
+ @loaded_full_rubygems_library = true
+ ensure
+ $VERBOSE, $DEBUG = verbose, debug
end
def self.fake_rubygems_as_loaded
@@ -177,95 +175,6 @@ if defined?(Gem) then
end
end
- GemPaths = {}
- GemVersions = {}
-
- def push_gem_version_on_load_path(gem_name, *version_requirements)
- if version_requirements.empty?
- unless GemPaths.has_key?(gem_name) then
- raise Gem::LoadError, "Could not find RubyGem #{gem_name} (>= 0)\n"
- end
-
- # highest version gems already active
- return false
- else
- if version_requirements.length > 1 then
- QuickLoader.load_full_rubygems_library
- return gem(gem_name, *version_requirements)
- end
-
- requirement, version = version_requirements[0].split
- requirement.strip!
-
- if loaded_version = GemVersions[gem_name] then
- case requirement
- when ">", ">=" then
- return false if
- (loaded_version <=> Gem.integers_for(version)) >= 0
- when "~>" then
- required_version = Gem.integers_for version
-
- return false if loaded_version.first == required_version.first
- end
- end
-
- QuickLoader.load_full_rubygems_library
- gem gem_name, *version_requirements
- end
- end
-
- def integers_for(gem_version)
- numbers = gem_version.split(".").collect {|n| n.to_i}
- numbers.pop while numbers.last == 0
- numbers << 0 if numbers.empty?
- numbers
- end
-
- def push_all_highest_version_gems_on_load_path
- Gem.path.each do |path|
- gems_directory = File.join(path, "gems")
-
- if File.exist?(gems_directory) then
- Dir.entries(gems_directory).each do |gem_directory_name|
- next if gem_directory_name == "." || gem_directory_name == ".."
-
- next unless gem_name = gem_directory_name[/(.*)-(.*)/, 1]
- new_version = integers_for($2)
- current_version = GemVersions[gem_name]
-
- if !current_version or (current_version <=> new_version) < 0 then
- GemVersions[gem_name] = new_version
- GemPaths[gem_name] = File.join(gems_directory, gem_directory_name)
- end
- end
- end
- end
-
- require_paths = []
-
- GemPaths.each_value do |path|
- if File.exist?(file = File.join(path, ".require_paths")) then
- paths = File.read(file).split.map do |require_path|
- File.join path, require_path
- end
-
- require_paths.concat paths
- else
- require_paths << file if File.exist?(file = File.join(path, "bin"))
- require_paths << file if File.exist?(file = File.join(path, "lib"))
- end
- end
-
- # "tag" the first require_path inserted into the $LOAD_PATH to enable
- # indexing correctly with rubygems proper when it inserts an explicitly
- # gem version
- unless require_paths.empty? then
- require_paths.first.instance_variable_set(:@gem_prelude_index, true)
- end
- # gem directories must come after -I and ENV['RUBYLIB']
- $:[$:.index{|e|e.instance_variable_defined?(:@gem_prelude_index)}||-1,0] = require_paths
- end
-
def const_missing(constant)
QuickLoader.load_full_rubygems_library
@@ -285,10 +194,15 @@ if defined?(Gem) then
extend QuickLoader
+ def self.try_activate(path) # :nodoc:
+ QuickLoader.load_full_rubygems_library
+ end
+
end
begin
- Gem.push_all_highest_version_gems_on_load_path
+ require 'lib/rubygems/custom_require.rb'
+
Gem::QuickLoader.fake_rubygems_as_loaded
rescue Exception => e
puts "Error loading gem paths on load path in gem_prelude"
diff --git c/lib/rubygems.rb i/lib/rubygems.rb
index d2214f6..29dd815 100644
--- c/lib/rubygems.rb
+++ i/lib/rubygems.rb
@@ -1020,8 +1020,6 @@ end
module Kernel
- undef gem if respond_to? :gem # defined in gem_prelude.rb on 1.9
-
##
# Use Kernel#gem to activate a specific version of +gem_name+.
#
@@ -1098,13 +1096,34 @@ end
require 'rubygems/config_file'
+class << Gem
+ verbose, debug = $VERBOSE, $DEBUG
+ $VERBOSE = $DEBUG = nil
+
+ ##
+ #
+ # Called from the custom_require to attempt to activate +path+
+ # Internal use only.
+
+ def try_activate(path) # :doc:
+ spec = Gem.searcher.find(path)
+ return false unless spec
+
+ Gem.activate(spec.name, "= #{spec.version}")
+ return true
+ end
+
+ensure
+ $VERBOSE, $DEBUG = verbose, debug
+end
+
##
# Enables the require hook for RubyGems.
#
# Ruby 1.9 allows --disable-gems, so we require it when we didn't detect a Gem
# constant at rubygems.rb load time.
-require 'rubygems/custom_require' if gem_disabled or RUBY_VERSION < '1.9'
+require 'rubygems/custom_require'
Gem.clear_paths
diff --git c/lib/rubygems/custom_require.rb i/lib/rubygems/custom_require.rb
index 43b3136..343ad31 100644
--- c/lib/rubygems/custom_require.rb
+++ i/lib/rubygems/custom_require.rb
@@ -4,8 +4,6 @@
# See LICENSE.txt for permissions.
#++
-require 'rubygems'
-
module Kernel
##
@@ -31,8 +29,7 @@ module Kernel
gem_original_require path
rescue LoadError => load_error
if load_error.message.end_with?(path) and
- spec = Gem.searcher.find(path) then
- Gem.activate(spec.name, "= #{spec.version}")
+ Gem.try_activate(path) then
gem_original_require path
else
raise load_error
@@ -42,5 +39,5 @@ module Kernel
private :require
private :gem_original_require
-end
+end unless Kernel.private_method_defined?(:gem_original_require)
--
Nobu Nakada