[#46918] [ruby-trunk - Bug #6820][Open] Time#to_s on NEWS — "no6v (Nobuhiro IMAI)" <nov@...>
8 messages
2012/08/01
[#46922] [ruby-trunk - Bug #6822][Open] Race Condition with Fiber and Process — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
8 messages
2012/08/02
[#46973] [ruby-trunk - Bug #6829][Open] Failure using Win32ole (happens in 1.8.7 and 1.9 — "mvanduyn (Mitch VanDuyn)" <mitch@...>
6 messages
2012/08/03
[#46974] [ruby-trunk - Bug #6830][Assigned] test failure test_constants(OpenSSL::TestConfig) [/ruby/test/openssl/test_config.rb:27] on Mac + homebrew — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...>
17 messages
2012/08/04
[#46978] [ruby-trunk - Bug #6832][Open] Module#instance_method and Module#method_defined? act inconsistently w.r.t #respond_to_missing? — "myronmarston (Myron Marston)" <myron.marston@...>
6 messages
2012/08/04
[#46996] [ruby-trunk - Bug #6836][Assigned] Improve File.expand_path performance in Windows — "luislavena (Luis Lavena)" <luislavena@...>
15 messages
2012/08/04
[#47021] [ruby-trunk - Bug #6836] Improve File.expand_path performance in Windows
— "luislavena (Luis Lavena)" <luislavena@...>
2012/08/06
[#47045] [ruby-trunk - Bug #6836] Improve File.expand_path performance in Windows
— "h.shirosaki (Hiroshi Shirosaki)" <h.shirosaki@...>
2012/08/07
[#47036] [ruby-trunk - Feature #6841][Open] Shorthand for Assigning Return Value of Method to Self — "wardrop (Tom Wardrop)" <tom@...>
18 messages
2012/08/07
[#52968] [ruby-trunk - Feature #6841] Shorthand for Assigning Return Value of Method to Self
— "wardrop (Tom Wardrop)" <tom@...>
2013/02/27
[#47050] [ruby-trunk - Feature #6842][Open] Add Optional Arguments to String#strip — "wardrop (Tom Wardrop)" <tom@...>
10 messages
2012/08/07
[#47091] [ruby-trunk - Feature #6847][Open] Hash#extract — "citizen428 (Michael Kohl)" <citizen428@...>
10 messages
2012/08/09
[#47094] [ruby-trunk - Bug #6849][Open] Psych.load_file throws TypeError for empty file — "BrandonMathis (Brandon Mathis)" <BeMathis@...>
4 messages
2012/08/09
[#47103] [ruby-trunk - Bug #6851][Open] Result of File.stat("c:/...") is different from 1.9.3 — "phasis68 (Heesob Park)" <phasis@...>
8 messages
2012/08/10
[#47108] [ruby-trunk - Feature #6852][Open] [].transpose should behave specially — "boris_stitnicky (Boris Stitnicky)" <boris@...>
13 messages
2012/08/10
[#47138] [ruby-trunk - Bug #6861][Open] ERB::Util.escape_html is not escaping single quotes — "spastorino (Santiago Pastorino)" <santiago@...>
14 messages
2012/08/12
[#47199] [ruby-trunk - Bug #6872][Open] Array does not specify how it determines uniqueness of values — "agrimm (Andrew Grimm)" <andrew.j.grimm@...>
8 messages
2012/08/15
[#47243] [ruby-trunk - Feature #6895][Open] TracePoint API — "ko1 (Koichi Sasada)" <redmine@...>
27 messages
2012/08/20
[#47277] [ruby-trunk - Feature #6895] TracePoint API
— "trans (Thomas Sawyer)" <transfire@...>
2012/08/22
[#47254] [ruby-trunk - Feature #6895] TracePoint API
— "trans (Thomas Sawyer)" <transfire@...>
2012/08/20
[#47257] Re: [ruby-trunk - Feature #6895] TracePoint API
— SASADA Koichi <ko1@...>
2012/08/21
(2012/08/21 6:11), trans (Thomas Sawyer) wrote:
[#47287] [ruby-trunk - Feature #6910][Assigned] Loading syck's broken yaml with psych — "naruse (Yui NARUSE)" <naruse@...>
5 messages
2012/08/23
[#47309] [ruby-trunk - Bug #6929][Open] Documentation for Ripper — "zzak (Zachary Scott)" <zachary@...>
16 messages
2012/08/25
[#47322] Re: [ruby-cvs:43987] luislavena:r36811 (trunk): Improve require/File.expand_path performance on Windows — Urabe Shyouhei <shyouhei@...>
Hello Luis,
4 messages
2012/08/27
[#47345] [ruby-trunk - Feature #6946][Open] FIPS support? — "vo.x (Vit Ondruch)" <v.ondruch@...>
35 messages
2012/08/28
[#51002] [ruby-trunk - Feature #6946] FIPS support?
— "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>
2012/12/20
[#51004] Re: [ruby-trunk - Feature #6946] FIPS support?
— SASADA Koichi <ko1@...>
2012/12/20
After that, I got the following error.
[#51006] Re: [ruby-trunk - Feature #6946] FIPS support?
— Martin Bo煬et <martin.bosslet@...>
2012/12/20
2012/12/20 SASADA Koichi <ko1@atdot.net>
[#47350] No tag for 1.8.7p370 on Github? — Charles Oliver Nutter <headius@...>
I was about to update JRuby's 1.8.7 stdlib, but there's no tag for
3 messages
2012/08/28
[#47367] [ruby-trunk - Bug #6950][Open] ruby-mode: comint-previous-input does not work — "cinsk (Seong-Kook Shin)" <cinsky@...>
6 messages
2012/08/30
[#47369] [ruby-trunk - Bug #6950] ruby-mode: comint-previous-input does not work
— "drbrain (Eric Hodel)" <drbrain@...7.net>
2012/08/30
[ruby-core:46907] Re: (Half-baked DRAFT) new `require' framework
From:
Clifford Heath <clifford.heath@...>
Date:
2012-08-01 01:25:29 UTC
List:
ruby-core #46907
Happy that the discussion is started. Pull requests are welcome, of course. I'm not trying to divert people's efforts, just to direct them to the seat of the fire. One good integrated system would be better than five partial solutions! Sorry I can't comment further on your questions yet - at work. But I'm sure that the 60 LOC of Polyglot is not preventing you to answer your questions by yourself either :). Clifford Heath. On 01/08/2012, at 10:38 AM, Eric Hodel wrote: > On Jul 31, 2012, at 14:02, Clifford Heath <clifford.heath@gmail.com> wrote: >> My "polyglot" gem is already a very widely-used solution to this problem >> as well, with over 8 million downloads - the 11th most-downloaded gem. >> It's used by Treetop, which is pulled in by Cucumber and Rails' mailer. >> Far from being complicated and big, it's just 60 lines of Ruby. No C >> extension is needed. > > RubyGems is even more widely used and downloaded than polyglot. After my years of experience with altering ruby's ability to load features I can only conclude that the current API is highly inadequate. > > Here's the entire API we have: > > https://github.com/cjheath/polyglot/blob/1197a108/lib/polyglot.rb#L60 > > Sure, this works, but it's difficult to define a #require override that occurs at a specific point relative to other overrides. Polyglot wants to defer to $LOAD_PATH and $LOADED_FEATURES and only invoke its custom loader after everyone else. This is the easiest way to implement a require override, but it's also only one, narrow use case. > > Unlike polyglot, RubyGems needs to decide whether to load from the existing $LOAD_PATH or to activate a gem. Unlike polyglot, RubyGems needs to check $LOADED_FEATURES to decide whether to activate a gem or not. The current API does not make this easy or simple to do. > > There are also common pitfalls with the current API, and polyglot is a victim of one of the most common pitfall. > > With polyglot, the behavior of a program may change depending upon whether files are missing or not. Koichi's proposals can help eliminate this through a proper API. > > Consider: > > a.rb: > require 'b' > > b.rb: > require 'missing' > > $ ruby -d -I. -rpolyglot -ra -e0 2>&1 | grep Polyglot > Exception `Polyglot::PolyglotLoadError' at /Users/drbrain/tmp/gems/gems/polyglot-0.3.3/lib/polyglot.rb:53 - Failed to load missing using extensions rb > Exception `Polyglot::PolyglotLoadError' at /Users/drbrain/tmp/gems/gems/polyglot-0.3.3/lib/polyglot.rb:53 - Failed to load b using extensions rb > Exception `Polyglot::PolyglotLoadError' at /Users/drbrain/tmp/gems/gems/polyglot-0.3.3/lib/polyglot.rb:53 - Failed to load a using extensions rb > > Why is polyglot trying to load features that were already loaded? > > $ touch missing.rb > $ ruby -d -I. -rpolyglot -ra -e0 2>&1 | grep Polyglot > $ > > Why doesn't polyglot attempt to load b.rb or a.rb in this case? > > One of these behaviors is wrong, likely the first. Polyglot should check load_error on line 65 to see if it matches the feature the user was trying to require like RubyGems does: > > https://github.com/rubygems/rubygems/blob/c1fd10db/lib/rubygems/custom_require.rb#L102-103 > > Polyglot is not the only require override that has fallen victim to this problem. I hope a better API than an alias will eliminate the possibility.