[#4734] Possible regex bug? — hal9000@...
OK, I'm trying to match an optional comma followed by
[#4744] Piping in Ruby? — Stephen White <steve@...>
There's one construct I miss from shell scripts... The ability to pipe the
[#4766] Wiki — "Glen Stampoultzis" <trinexus@...>
Hi, Glen,
Howdy,
> I asked him/her. He/She opened the new site using tiki-1.0.4.
Hi, Glen,
Howdy,
[#4769] unix 'time' in Ruby? — Robert Feldt <feldt@...>
Hi.
[#4774] Module vs. Class — Jilani Khaldi <jilanik@...>
Hi,
[#4776] Listing methods in a module — DaVinci <bombadil@...>
Hi all. I need a little help :)
[#4792] closures — Stuart Zakon <zakons@...>
Can somebody please explain what a closure is within the context of
[#4809] Some questions — Friedrich Dominicus <frido@...>
[#4849] FEATURE REQUEST: Fixnum bitfields — Wayne Scott <wscott@...>
Hi,
[#4883] Re-binding a block — Dave Thomas <Dave@...>
matz@zetabits.com (Yukihiro Matsumoto) writes:
[#4916] Re: [TOY] FL — Andrew Hunt <andy@...>
> I still don't understand sorry.
[#4930] Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions — Conrad Schneiker <schneik@...>
Hi,
[#4936] Ruby Book Eng. translation editor's questions — Jon Babcock <jon@...>
Nobody cares about this but me,
Thanks very much for the input.
SugHimsi.
,
[#4951] What do I need to compile 1.4? — "Glen Stampoultzis" <trinexus@...>
Platform is Windows 98
[#4987] Ruby Book Ch 2 English -- arguments/parameters/options? — Jon Babcock <jon@...>
Once again, I must impose on your good graces.
[#4992] Re: Perl 6 rumblings -- RFC 225 (v1) Data: S uperpositions (fwd) — Aleksi Niemel<aleksi.niemela@...>
Michael dared to suggest, and was probably right:
[#5009] Re: Ruby Book Ch 2 English -- arguments/parameters/options? — "Dat Nguyen" <thucdat@...>
[#5011] Changes in 1.6.0 — matz@... (Yukihiro Matsumoto)
Hi,
[#5013] A QuantumSuperposition Proposal for Ruby — Huayin Wang <wang@...>
# I have been play around the QuantumSuperpositions idea today and
[#5028] A Tru64 problem and ruby-talkietiquette — Aleksi Niemel<aleksi.niemela@...>
I just saw this (the little I could see in English)
[#5033] Having problems with Net::HTTP::do_finish — Dan Schmidt <dfan@...>
I just started using Ruby yesterday, and I'm having trouble with my
[#5045] Proposal: Add constants to Math — Robert Feldt <feldt@...>
Hi,
On Sat, 23 Sep 2000, Yukihiro Matsumoto wrote:
Hi,
On Fri, 22 Sep 2000, Masahiro Tanaka wrote:
>From: Robert Feldt <feldt@ce.chalmers.se>
[#5061] Proposal: Add rubycpp.h or include in ruby.h — Robert Feldt <feldt@...>
[#5070] Ruby Book 2.18, Eng.tl, kesaran pasaran? — Jon Babcock <jon@...>
From Ruby Book 2.18:
[#5077] Crazy idea? infix method calls — hal9000@...
This is a generalization of the "in" operator idea which I
[#5082] Application Error in 1.6.0 on Win2K — "Kevin Burge" <kcbspam@...>
I've created a 1.6.0 ruby extension (1.6.0 (2000-09-19) [i586-mswin32]),
[#5092] RE: Hanging require — Aleksi Niemel<aleksi.niemela@...>
> ruby -v a.rb
[#5114] Types and === — hal9000@...
<sigh> I imagine Yoda behind me, shaking his little green head
[#5157] Compile Problem with 1.6.1 — Scott Billings <aerogems@...>
When I try to compile Ruby 1.6.1, I get the following error:
[#5161] Re: Types and === — schneik@...
[#5175] Compiling 1.6.1 problem — Tony Reed <Callus@...>
Compiling Ruby 1.6.1 fails:
Hi,
On 9/29/00, Yukihiro Matsumoto wrote:
From: Tony Reed <Callus@Sympatico.CA>
[ruby-talk:5173] Re: methods w/ ! giving nil
> Actually Ruby does have its own qsort routine in C (in util.c), which
> is compatible with original qsort(3). Only problem left is re-design
> and hack the routine. I'm afraid it's a tough task, for me at least.
Changing swap does not work since swap can be invoked also for equal
values and it one has to be careful in defining if the list is changed or
not. The only other solution (I can think of) is checking if the array is
already sorted. The check is already present in the ruby_sort code so this
small change does not affect performances.
In any case, the *average* cost of checking if an array is sorted is a
*small* constant number of comparisons.
The following patch should do the job:
for util.h:
--------------------------------
39c39
< void ruby_qsort _((void*, int, int, int (*)()));
---
> int ruby_qsort _((void*, int, int, int (*)()));
--------------------------------
for util.c:
--------------------------------
617c617,618
< void ruby_qsort (base, nel, size, cmp) void* base; int nel; int size; int (*cmp)();
---
> int ruby_qsort (base, nel, size, cmp)
> void* base; int nel; int size; int (*cmp)();
619,620c620,621
< register char *l, *r, *m; /* l,r:left,right group m:median point */
< register int t, eq_l, eq_r; /* eq_l: all items in left group are equal to S */
---
> register char *l, *r, *m; /* l,r,m: left,right,median point */
> register int t, eq_l, eq_r; /* eq_l: items in left group are equal to S */
623c624
< int chklim = 63; /* threshold of ordering element check */
---
> int chkord = 1; /* check ordering of elements */
626c627
< if (nel <= 1) return; /* need not to sort */
---
> if (nel <= 1) return 1; /* need not to sort */
627a629,631
> if (nel == 2) {
> if ((*cmp)(L,R) > 0) {mmswap(L,R); return 0;} else return 1;
> }
631c635
< if (stack == top) return; /* return if stack is empty */
---
> if (stack == top) return 0; /* return if stack is empty */
636c640,641
< if (L + size == R) {if ((*cmp)(L,R) > 0) mmswap(L,R); goto nxt;}/* 2 elements */
---
> if (L + size == R) /* 2 elements */
> {if ((*cmp)(L,R) > 0) mmswap(L,R); goto nxt;}
665,682c670
< if ((t = (*cmp)(l,m)) < 0) { /*3-5-?*/
< if ((t = (*cmp)(m,r)) < 0) { /*3-5-7*/
< if (chklim && nel >= chklim) { /* check if already ascending order */
< char *p;
< chklim = 0;
< for (p=l; p<r; p+=size) if ((*cmp)(p,p+size) > 0) goto fail;
< goto nxt;
< }
< fail: goto loopA; /*3-5-7*/
< }
< if (t > 0) {
< if ((*cmp)(l,r) <= 0) {mmswap(m,r); goto loopA;} /*3-5-4*/
< mmrot3(r,m,l); goto loopA; /*3-5-2*/
< }
< goto loopB; /*3-5-5*/
< }
<
< if (t > 0) { /*7-5-?*/
---
> if ((t = (*cmp)(l,m)) > 0) { /*7-5-?*/
684c672
< if (chklim && nel >= chklim) { /* check if already ascending order */
---
> if (chkord) { /* check if already descending order */
686,687c674,675
< chklim = 0;
< for (p=l; p<r; p+=size) if ((*cmp)(p,p+size) < 0) goto fail2;
---
> chkord = 0;
> for (p=l; p<r; p+=size) if ((*cmp)(p,p+size) < 0) goto fail;
691c679
< fail2: mmswap(l,r); goto loopA; /*7-5-3*/
---
> fail: mmswap(l,r); goto loopA; /*7-5-3*/
698a687,704
>
> if (t < 0) { /*3-5-?*/
> if ((t = (*cmp)(m,r)) > 0) {
> if ((*cmp)(l,r) <= 0) {mmswap(m,r); goto loopA;} /*3-5-4*/
> mmrot3(r,m,l); goto loopA; /*3-5-2*/
> }
> if (chkord) { /* check if already ascending order */
> char *p;
> chkord = 0;
> for (p=l; p<r; p+=size) if ((*cmp)(p,p+size) > 0) goto fail2;
> if ((l == base) && (r == (char *)base + size*(nel - 1)))
> return 1;
> goto nxt;
> }
> fail2:
> if (t < 0) goto loopA; /*3-5-7*/
> goto loopB; /*3-5-5*/
> }
700,701c706,716
< if ((t = (*cmp)(m,r)) < 0) {goto loopA;} /*5-5-7*/
< if (t > 0) {mmswap(l,r); goto loopB;} /*5-5-3*/
---
> if ((t = (*cmp)(m,r)) > 0) {mmswap(l,r); goto loopB;} /*5-5-3*/
> if (chkord) { /* check if already ascending order */
> char *p;
> chkord = 0;
> for (p=l; p<r; p+=size) if ((*cmp)(p,p+size) > 0) goto fail3;
> if ((l == base) && (r == (char *)base + size*(nel - 1)))
> return 1;
> goto nxt;
> }
> fail3:
> if (t < 0) {goto loopA;} /*5-5-7*/
711c726
< loopA: eq_l = 1; eq_r = 1; /* splitting type A */ /* left <= median < right */
---
> loopA: eq_l = 1; eq_r = 1; /* splitting type A: left <= median < right */
730c745
< loopB: eq_l = 1; eq_r = 1; /* splitting type B */ /* left < median <= right */
---
> loopB: eq_l = 1; eq_r = 1; /* splitting type B: left < median <= right */
----------------------------------------
Best Regards,
Davide