[#8478] resolv.rb -- doc patch. — Hugh Sasse <hgs@...>
This is an attempt to get the RD format docs for resolv.rb into
[#8484] strptime fails to properly parse certain inputs — <noreply@...>
Bugs item #5263, was opened at 2006-08-01 23:14
Hi,
Hi,
nobu@ruby-lang.org wrote:
Why bother other languages? They are on their own. We should not
[#8497] Ruby Socket to support SCTP? — Philippe Langlois <philippelanglois@...>
Hi,
[#8504] TCPSocket: bind method missing — hadmut@... (Hadmut Danisch)
Hi,
[#8513] patches for the 1.8.5 deadline... — Hugh Sasse <hgs@...>
As far as I can tell the only patches which I've submitted which
On Aug 3, 2006, at 10:20 AM, Hugh Sasse wrote:
On Fri, 4 Aug 2006, Eric Hodel wrote:
[#8522] IRB change for RDoc workaround — Eric Hodel <drbrain@...7.net>
RDoc chokes on the following code:
[#8525] rdoc bug? — Steven Jenkins <steven.jenkins@...>
I think I've found a bug in rdoc's handling of C files. Specifically, it
[#8555] Process.gid= fails on OS X — <noreply@...>
Bugs item #5351, was opened at 2006-08-08 01:56
>>>>> On Tue, 8 Aug 2006 17:56:07 +0900
Hi,
Hi,
>>>>> On Wed, 9 Aug 2006 12:31:07 +0900
Hi,
[#8561] sandbox timers & block scopes — why the lucky stiff <ruby-core@...>
Two puzzles I am trying to solve:
On 8/8/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
On 8/16/06, Francis Cianfrocca <garbagecat10@gmail.com> wrote:
raise ThisDecayingInquisition, "anyone? anyone at all?"
On Wed, 2006-08-16 at 00:35 +0900, why the lucky stiff wrote:
On Wed, Aug 16, 2006 at 02:46:30AM +0900, MenTaLguY wrote:
On 8/15/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
On 8/15/06, Charles O Nutter <headius@headius.com> wrote:
On Wed, Aug 16, 2006 at 04:14:33AM +0900, Charles O Nutter wrote:
On 8/15/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
Hi,
[#8568] Pathname.to_a — Marc Haisenko <haisenko@...>
Hi folks,
[#8585] RDoc: extensions spread across multiple C files — Tilman Sauerbeck <tilman@...>
Hi,
Tilman Sauerbeck [2006-08-11 00:39]:
[#8593] ri problem with the latest ruby_1_8 — "Kent Sibilev" <ksruby@...>
Does anyone know why for some strange reason ri doesn't know about any
On Aug 11, 2006, at 10:55 AM, Kent Sibilev wrote:
[#8608] Another ri problem (ruby_1_8 branch) — "Kent Sibilev" <ksruby@...>
I've noticed that many builtin Ruby classes don't have descriptions:
On Aug 12, 2006, at 11:45 PM, Kent Sibilev wrote:
On 8/15/06, Eric Hodel <drbrain@segment7.net> wrote:
[#8609] Again Range=== bug — Ondrej Bilka <neleai@...>
Problem of discrete membership at Range#=== is that it returns unexpected
[#8616] invalid test in "sudo make install-doc"? — <noreply@...>
Bugs item #5415, was opened at 2006-08-14 12:01
[#8662] NODE_WHEN inside a case else body — "Dominik Bathon" <dbatml@...>
Hi,
[#8690] a ruby-core primer — why the lucky stiff <ruby-core@...>
Hello, all. I've been working on the ruby-core page for the new Ruby site.
On 8/22/06, why the lucky stiff <ruby-core@whytheluckystiff.net> wrote:
On 8/24/06, Dave Howell <groups+2006@howell.seattle.wa.us> wrote:
[#8709] More ri-problems (ruby_1_8 branch again) — Johan Holmberg <holmberg@...>
Hi!
[#8735] Legal operator symbols — "Nikolai Weibull" <now@...>
Why are :>, :>=, :<=, :< fine as symbols, while := isn't?
Hi --
[#8758] sandbox r50, here we go, loading conflicting gems — why the lucky stiff <ruby-core@...>
Checky.
Re: [ ruby-Bugs-5273 ] range ===
> ------------ Podnzpr疱a ------------
> Od: Yukihiro Matsumoto <matz@ruby-lang.org>
> Pdm踉: Re: [ ruby-Bugs-5273 ] range ===
> Datum: 03.8.2006 08:25:08
> ----------------------------------------
> Hi,
>
> In message "Re: [ ruby-Bugs-5273 ] range ==="
> on Thu, 3 Aug 2006 06:50:03 +0900, <noreply@rubyforge.org> writes:
>
> |Initial Comment:
> |method range#=== returns false when its begin or end aren't numeric
> |It breaks code like (?a...?z)===?c
> |Another enexpected behaviour is
> |case
> |when (Time.at(0)...Time.at(2))
>
> Right, it calls Object#=== which should be Enumerable#member?
> The fix was checked in.
>
> matz.
>
Enumerable#member? is very slow
And dont work anyway because time is stored as float. (Time.new...(Time.new+3)).member? Time.new
I would replace numeric restriction to something like
if val.is_a? String || ! val.comparable
member? val
else
cover? val
end
perhaps replace String with #pathologicalsucc?
I would change String#succ to eat leading whitespace and raise error when there isnt. This also helps avoid things like ("1.1"..."1.10").to_a
I changed that string.c and attach unified diff.
also succ! is faster because directly changes string. succ is clone,succ!
To use succ we need method like Range#each! which calls succ! istead succ
Attachments (1)
--- string.c 2006-08-03 13:50:07.629998624 +0200
+++ stringmod.c 2006-08-03 13:59:35.044738472 +0200
@@ -1322,38 +1322,21 @@
/*
* call-seq:
- * str.succ => new_str
- * str.next => new_str
+ * str.succ! => str
+ * str.next! => str
*
- * Returns the successor to <i>str</i>. The successor is calculated by
- * incrementing characters starting from the rightmost alphanumeric (or
- * the rightmost character if there are no alphanumerics) in the
- * string. Incrementing a digit always results in another digit, and
- * incrementing a letter results in another letter of the same case.
- * Incrementing nonalphanumerics uses the underlying character set's
- * collating sequence.
- *
- * If the increment generates a ``carry,'' the character to the left of
- * it is incremented. This process repeats until there is no carry,
- * adding an additional character if necessary.
- *
- * "abcd".succ #=> "abce"
- * "THX1138".succ #=> "THX1139"
- * "<<koala>>".succ #=> "<<koalb>>"
- * "1999zzz".succ #=> "2000aaa"
- * "ZZZ9999".succ #=> "AAAA0000"
- * "***".succ #=> "**+"
+ * Equivalent to <code>String#succ</code>, but modifies the receiver in
+ * place.
*/
static VALUE
-rb_str_succ(VALUE orig)
+rb_str_succ_bang(VALUE orig)
{
- VALUE str;
+ VALUE str=orig;
char *sbeg, *s;
int c = -1;
long n = 0;
- str = rb_str_new5(orig, RSTRING(orig)->ptr, RSTRING(orig)->len);
OBJ_INFECT(str, orig);
if (RSTRING(str)->len == 0) return str;
@@ -1375,12 +1358,13 @@
}
}
if (s < sbeg) {
- RESIZE_CAPA(str, RSTRING(str)->len + 1);
- s = RSTRING(str)->ptr + n;
- memmove(s+1, s, RSTRING(str)->len - n);
- *s = c;
- RSTRING(str)->len += 1;
- RSTRING(str)->ptr[RSTRING(str)->len] = '\0';
+ s=sbeg;
+ while (*s==' ')s++;
+ if (s==sbeg)rb_raise(rb_eRuntimeError, "cannot create next string");
+ if (*s=='0')
+ *(s-1)='1';
+ else
+ *(s-1)=*s;
}
return str;
@@ -1389,18 +1373,34 @@
/*
* call-seq:
- * str.succ! => str
- * str.next! => str
+ * str.succ => new_str
+ * str.next => new_str
*
- * Equivalent to <code>String#succ</code>, but modifies the receiver in
- * place.
+ * Returns the successor to <i>str</i>. The successor is calculated by
+ * incrementing characters starting from the rightmost alphanumeric (or
+ * the rightmost character if there are no alphanumerics) in the
+ * string. Incrementing a digit always results in another digit, and
+ * incrementing a letter results in another letter of the same case.
+ * Incrementing nonalphanumerics uses the underlying character set's
+ * collating sequence.
+ *
+ * If the increment generates a ``carry,'' the character to the left of
+ * it is incremented. This process repeats until there is no carry,
+ * adding an additional character if necessary.
+ *
+ * "abcd".succ #=> "abce"
+ * "THX1138".succ #=> "THX1139"
+ * "<<koala>>".succ #=> "<<koalb>>"
+ * "1999zzz".succ #=> "2000aaa"
+ * "ZZZ9999".succ #=> "AAAA0000"
+ * "***".succ #=> "**+"
*/
static VALUE
-rb_str_succ_bang(VALUE str)
+rb_str_succ(VALUE orig)
{
- rb_str_shared_replace(str, rb_str_succ(str));
-
+ VALUE str =rb_str_new5(str, RSTRING(orig)->ptr, RSTRING(orig)->len);
+ rb_str_succ_bang(str);
return str;
}