[#36679] [Ruby 1.9 - Bug #4814][Open] minitest 2.2.x and test/unit do not get along — Ryan Davis <ryand-ruby@...>
[#36707] [Ruby 1.9 - Feature #4818][Open] Add method marshalable? — Joey Zhou <yimutang@...>
[#36711] [Ruby 1.9 - Bug #4821][Open] Random Segfaults (in start_thread?) — Ivan Bortko <b2630639@...>
[#36714] [Ruby 1.9 - Feature #4822][Open] String#capitalize improvements — Anurag Priyam <anurag08priyam@...>
[#36720] Direct modifications to RubyGems in trunk? — Luis Lavena <luislavena@...>
Hello,
[#36730] [Ruby 1.9 - Feature #4824][Open] Provide method Kernel#executed? — Lazaridis Ilias <ilias@...>
On Fri, Jun 10, 2011 at 07:20:32AM +0900, Rocky Bernstein wrote:
On Fri, Jun 10, 2011 at 10:03 AM, Cezary <cezary.baginski@gmail.com> wrote:
On Sat, Jun 11, 2011 at 11:20:31AM +0900, Rocky Bernstein wrote:
On Mon, Jun 6, 2011 at 7:09 AM, Rodrigo Rosenfeld Rosas
[#36741] [Ruby 1.9 - Bug #4828][Open] crash in test_thread_instance_variable — Motohiro KOSAKI <kosaki.motohiro@...>
[#36750] [Ruby 1.9 - Feature #4830][Open] Provide Default Variables for Array#each and other iterators — Lazaridis Ilias <ilias@...>
[#36764] [Ruby 1.9 - Feature #4831][Open] Integer#prime_factors — Yusuke Endoh <mame@...>
[#36785] [Ruby 1.9 - Feature #4840][Open] Allow returning from require — Rodrigo Rosenfeld Rosas <rr.rosas@...>
On Jun 6, 2011, at 10:11 AM, Rodrigo Rosenfeld Rosas wrote:
On 07/06/2011, at 12:18 AM, Michael Edgar wrote:
Hello,
Hi,
Em 23-07-2012 10:12, mame (Yusuke Endoh) escreveu:
(2012/07/24 0:44), alexeymuranov (Alexey Muranov) wrote:
[#36787] [Ruby 1.9 - Bug #4841][Open] WEBrick threading leads to infinite loop — Peak Xu <peak.xu+ruby@...>
[#36799] [Ruby 1.9 - Feature #4845][Open] Provide Class#cb_object_instantiated_from_literal(object) — Lazaridis Ilias <ilias@...>
[#36834] [Ruby 1.9 - Feature #3905] rb_clear_cache_by_class() called often during GC for non-blocking I/O — Charles Nutter <headius@...>
Charles Nutter <headius@headius.com> wrote:
On Wed, Jun 8, 2011 at 4:00 PM, Eric Wong <normalperson@yhbt.net> wrote:
Charles Oliver Nutter <headius@headius.com> wrote:
[#36863] Object#trust vs Object#taint — Aaron Patterson <aaron@...>
Hi,
Hi,
On Thu, Jun 09, 2011 at 07:49:06AM +0900, Yukihiro Matsumoto wrote:
On Wed, Jun 8, 2011 at 8:19 PM, Aaron Patterson
Hi,
On Thu, Jun 9, 2011 at 12:46 AM, Shugo Maeda <shugo@ruby-lang.org> wrote:
Hi,
[#36996] [Ruby 1.9 - Bug #4869][Open] 2206368128.chr(Encoding::UTF_8) fails strangely — Hal Brodigan <postmodern.mod3@...>
[#37071] [Ruby 1.9 - Feature #4877][Open] Unify Variable Expansion within Strings — Lazaridis Ilias <ilias@...>
[#37106] ruby core tutorials location — Roger Pack <rogerdpack2@...>
Hello all.
> Hello all.
> Rather than adding links to source code, I would prefer the wikibooks link and others under a new Tutorials section of http://www.ruby-lang.org/en/documentation/ as well as adding http://ruby.runpaint.org/ to the existing Getting Started section.
> > Rather than adding links to source code, I would prefer the wikibooks link and others under a new Tutorials section of http://www.ruby-lang.org/en/documentation/ as well as adding http://ruby.runpaint.org/ to the existing Getting Started section.
> I like what you're trying to do and see how great that tutorial connectio=
> > I like what you're trying to do and see how great that tutorial connect=
> My feedback was specific to the suggestion of embedding links into the Ru=
[#37139] [Bug: ruby-1.9] test-all on without openssl system — SASADA Koichi <ko1@...>
Hi,
[#37144] Ruby 1.8.6 status — Tanaka Akira <akr@...>
Hi.
[#37164] [Ruby 1.9 - Feature #4890][Open] Enumerable#lazy — Yutaka HARA <redmine@...>
[#37170] [Ruby 1.9 - Bug #4893][Open] Literal Instantiation breaks Object Model — Lazaridis Ilias <ilias@...>
[#37192] rb_w32_add_socket / rb_w32_remove_socket — ghazel@...
Hello,
[#37206] [Ruby 1.9 - Feature #4896][Open] Add newpad() support to Curses — Eric Hodel <drbrain@...7.net>
[#37207] [Ruby 1.9 - Feature #4897][Open] Define Math::TAU and BigMath.TAU. The "true" circle constant, Tau=2*Pi. See http://tauday.com/ — Simon Baird <simon.baird@...>
Issue #4897 has been updated by Nobuyoshi Nakada.
[#37217] coerce — Ondřej Bílka <neleai@...>
Hello
2011/6/18 Ond=C5=99ej B=C3=ADlka <neleai@seznam.cz>:
On Tue, Jun 21, 2011 at 04:06:05PM +0900, Robert Klemme wrote:
2011/6/21 Ond=C5=99ej B=C3=ADlka <neleai@seznam.cz>:
[#37265] Re: Welcome to our (ruby-core ML) You are added automatically — "Anthony Crognale" <anthony@...>
mget last:10 mp
[#37286] [Ruby 1.9 - Bug #4916][Open] [BUG] Segmentation fault - dyld: lazy symbol binding failed: Symbol not found: _ASN1_put_eoc — Hiroshi NAKAMURA <nakahiro@...>
[#37288] [Ruby 1.9 - Bug #4917][Open] NilClass#to_ary — Jay Feldblum <y_feldblum@...>
[#37289] [Ruby 1.9 - Feature #4918][Assigned] Make all core tests inherit from Test::Unit::TestCase — Martin Bosslet <Martin.Bosslet@...>
[#37336] I have imported Rake 0.9.2 to trunk — Eric Hodel <drbrain@...7.net>
I asked Jim if he would like me to import rake 0.9.2 to trunk, so I have.
[#37401] [Ruby 1.9 - Bug #3784] Seg fault in webrick — Yui NARUSE <redmine@...>
[#37463] [Ruby 1.9 - Bug #4480][Assigned] Thread-local variables issue: Thread#[] returns nil when called first time — Yui NARUSE <redmine@...>
[#37546] [Ruby 1.9 - Bug #4934][Open] winsock listen backlog may only be set once, and is set to 5 — Greg Hazel <ghazel@...>
[#37551] [ANN] Ruby Weekly Report — "Shota Fukumori (sora_h)" <sorah@...>
Hi,
[#37576] [Ruby 1.9 - Feature #4938][Open] Add Random.bytes [patch] — Marc-Andre Lafortune <ruby-core@...>
[#37588] CI? — Ryan Davis <ryand-ruby@...>
Is this an official CI for ruby?
(2011/06/28 6:28), Ryan Davis wrote:
[#37612] [Ruby 1.9 - Bug #4941][Open] cannot load such file -- rubygems.rb (LoadError) — Lazaridis Ilias <ilias@...>
[ruby-core:36661] [Ruby 1.9 - Feature #4766][Rejected] Range#bsearch
Issue #4766 has been updated by Yukihiro Matsumoto.
Status changed from Open to Rejected
I seriously considered about the issue, but I feel something wrong about this feature proposal. Binary search requires the target to be ordered. In that sense, Arrays in general are not ordered, ranges are appeared to be ordered. But "order" is in the eyes of beholder. Once you supply the block, the ordered attribute of a range does not mean anything. Besides that, as the example in the document shows, Range#bsearch is more indirect than say, Array#bsearch.
If we have to assume ordered status of the target anyway,
min = ary.bsearch{|i| i > 4}
is much better than
n = (0..ary.size).bsearch{|i| ary[i] > 4}
min = ary[n]
isn't it?
matz.
----------------------------------------
Feature #4766: Range#bsearch
http://redmine.ruby-lang.org/issues/4766
Author: Yusuke Endoh
Status: Rejected
Priority: Normal
Assignee: Yukihiro Matsumoto
Category:
Target version: 1.9.3
Hello,
I propose Range#bsearch for binary search:
ary = [0, 4, 7, 10, 12]
p (0..4).bserach {|i| ary[i] >= 4 } #=> 1
p (0..4).bserach {|i| ary[i] >= 6 } #=> 2
p (0.0...Float::INFINITY).bsearch {|x| Math.log(x) >= 0 } #=> 1.0
Rdoc:
* call-seq:
* rng.bsearch {|obj| block } -> element
*
* Returns the minimum value in range which meets the block by binary search.
* The block must be monotone for arguments; in other words, it must have any
* following properties:
*
* - there is a value so that the block returns false for any smaller value
* than the value, and that the block returns true for any bigger (or
* equal) value than the value,
* - the block always return true, or
* - the block always return false.
*
* If the block is not monotone, the behavior is not unspecified.
*
* Returns nil when there is no value that meets the block..
*
*
* ary = [0, 4, 7, 10, 12]
* (0...ary.size).bsearch {|i| ary[i] >= 4 } #=> 1
* (0...ary.size).bsearch {|i| ary[i] >= 6 } #=> 2
* (0...ary.size).bsearch {|i| ary[i] >= 8 } #=> 3
* (0...ary.size).bsearch {|i| ary[i] >= 100 } #=> nil
*
* (0.0...Float::INFINITY).bsearch {|x| Math.log(x) >= 0 } #=> 1.0
*
*
* Note that this method does not stop search immediately when the block
* returns true. This is because this method find the *minimum* value:
*
* ary = [0, 100, 100, 100, 200]
* (0..4).bsearch {|i| p ary[i]; ary[i] >= 100 }
* # may output "100" more than once
Discussion:
You might think Array#bsearch is better. But Array#bsearch has some problems:
- Binary search is usable for not only an array but also a function.
(See the above example for Math.log)
Nevertheless, Array#bsearch can be used only for an array.
Range#bsearch covers both. You can use it for an array as follows:
ary.sort!
i = (0...ary.size).bsearch {|i| condition(ary[i]) }
p ary[i]
- matz hated Array#bsearch because its precondition (Array must be sorted)
seems too strong (to him). [ruby-dev:17125]
Range#bsearch has the same precondition in effect (the block must be
monotone), but there is a difference that this condition is for "code",
not "state". In fact, Array#sort has a similar condition.
I think there is demand for this feature because similar feature requests
are often proposed: [ruby-dev:17122] [ruby-core:30892] [ruby-dev:38545]
More importantly, this feature is often required in many programming
contests :-)
A patch is attached. Thank you for your consideration.
--
Yusuke Endoh <mame@tsg.ne.jp>
--
http://redmine.ruby-lang.org