[#6954] Why isn't Perl highly orthogonal? — Terrence Brannon <brannon@...>

27 messages 2000/12/09

[#7022] Re: Ruby in the US — Kevin Smith <kevinbsmith@...>

> Is it possible for the US to develop corporate

36 messages 2000/12/11
[#7633] Re: Ruby in the US — Dave Thomas <Dave@...> 2000/12/19

tonys@myspleenklug.on.ca (tony summerfelt) writes:

[#7636] Re: Ruby in the US — "Joseph McDonald" <joe@...> 2000/12/19

[#7704] Re: Ruby in the US — Jilani Khaldi <jilanik@...> 2000/12/19

> > first candidates would be mysql and postgressql because source is

[#7705] Code sample for improvement — Stephen White <steve@...> 2000/12/19

During an idle chat with someone on IRC, they presented some fairly

[#7750] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

Stephen White wrote:

[#7751] Re: Code sample for improvement — David Alan Black <dblack@...> 2000/12/20

Hello --

[#7755] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

David Alan Black wrote:

[#7758] Re: Code sample for improvement — Stephen White <steve@...> 2000/12/20

On Wed, 20 Dec 2000, Guy N. Hurst wrote:

[#7759] Next amusing problem: talking integers (was Re: Code sample for improvement) — David Alan Black <dblack@...> 2000/12/20

On Wed, 20 Dec 2000, Stephen White wrote:

[#7212] New User Survey: we need your opinions — Dave Thomas <Dave@...>

16 messages 2000/12/14

[#7330] A Java Developer's Wish List for Ruby — "Richard A.Schulman" <RichardASchulman@...>

I see Ruby as having a very bright future as a language to

22 messages 2000/12/15

[#7354] Ruby performance question — Eric Crampton <EricCrampton@...>

I'm parsing simple text lines which look like this:

21 messages 2000/12/15
[#7361] Re: Ruby performance question — Dave Thomas <Dave@...> 2000/12/15

Eric Crampton <EricCrampton@worldnet.att.net> writes:

[#7367] Re: Ruby performance question — David Alan Black <dblack@...> 2000/12/16

On Sat, 16 Dec 2000, Dave Thomas wrote:

[#7371] Re: Ruby performance question — "Joseph McDonald" <joe@...> 2000/12/16

[#7366] GUIs for Rubies — "Conrad Schneiker" <schneik@...>

Thought I'd switch the subject line to the subject at hand.

22 messages 2000/12/16

[#7416] Re: Ruby IDE (again) — Kevin Smith <kevins14@...>

>> >> I would contribute to this project, if it

17 messages 2000/12/16
[#7422] Re: Ruby IDE (again) — Holden Glova <dsafari@...> 2000/12/16

-----BEGIN PGP SIGNED MESSAGE-----

[#7582] New to Ruby — takaoueda@...

I have just started learning Ruby with the book of Thomas and Hunt. The

24 messages 2000/12/18

[#7604] Any corrections for Programming Ruby — Dave Thomas <Dave@...>

12 messages 2000/12/18

[#7737] strange border-case Numeric errors — "Brian F. Feldman" <green@...>

I haven't had a good enough chance to familiarize myself with the code in

19 messages 2000/12/20

[#7801] Is Ruby part of any standard GNU Linux distributions? — "Pete McBreen, McBreen.Consulting" <mcbreenp@...>

Anybody know what it would take to get Ruby into the standard GNU Linux

15 messages 2000/12/20

[#7938] Re: defined? problem? — Kevin Smith <sent@...>

matz@zetabits.com (Yukihiro Matsumoto) wrote:

26 messages 2000/12/22
[#7943] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

Kevin Smith <sent@qualitycode.com> writes:

[#7950] Re: defined? problem? — Stephen White <steve@...> 2000/12/22

On Fri, 22 Dec 2000, Dave Thomas wrote:

[#7951] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

On Fri, 22 Dec 2000, Stephen White wrote:

[#7954] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

David Alan Black <dblack@candle.superlink.net> writes:

[#7975] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

Hello --

[#7971] Hash access method — Ted Meng <ted_meng@...>

Hi,

20 messages 2000/12/22

[#8030] Re: Basic hash question — ts <decoux@...>

>>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:

15 messages 2000/12/24
[#8033] Re: Basic hash question — "David A. Black" <dblack@...> 2000/12/24

On Sun, 24 Dec 2000, ts wrote:

[#8178] Inexplicable core dump — "Nathaniel Talbott" <ntalbott@...>

I have some code that looks like this:

12 messages 2000/12/28

[#8196] My first impression of Ruby. Lack of overloading? (long) — jmichel@... (Jean Michel)

Hello,

23 messages 2000/12/28

[#8198] Re: Ruby cron scheduler for NT available — "Conrad Schneiker" <schneik@...>

John Small wrote:

14 messages 2000/12/28

[#8287] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>

> -----Original Message-----

12 messages 2000/12/29

[ruby-talk:6906] Re: xmalloc(), xfree()

From: Mathieu Bouchard <matju@...>
Date: 2000-12-07 18:08:26 UTC
List: ruby-talk #6906
On Fri, 10 Nov 2000, Yukihiro Matsumoto wrote:
> Hi,

Hi (4 weeks later)

> In message "[ruby-talk:6192] Re: xmalloc(), xfree()"
>     on 00/11/09, Mathieu Bouchard <matju@cam.org> writes:
> |No-one replied. I'm trying again with another question: what do you think
> |is best:
> |	* leave malloc/free as-is, make ruby use xmalloc/xfree;
> Tell me the detail for this.

This means that xmalloc must be used with xfree and malloc with free. The
two wouldn't mix. This allows Ruby to use a custom allocator, which in
turn can use malloc(). 

> |	* make ruby use our own malloc/free;
> Do you mean re-implementing malloc/free by ourselves?  I think it's
> too tough job to achieve time/space efficiency like system's own.  I
> don't think it's worth it.

This could start by getting either the GLIBC one or the Perl one. Another
possibility is to try to reuse the one of the available C library
using a dynamic symbol lookup trick so that C's malloc() does not conflict
with Ruby's malloc().

> |size_t xmsize (void *ptr);
> |"returns the number of bytes allocated by the malloc
> |operation that returned ptr. might be larger than the size
> |originally asked for."
> Is this REALLY worth it?  It might introduce potential crash by
> free()'ing xmalloc()'ed memory.  I'm afraid to dream a nightmare.

The optimisation I wanted to add was to make basic classes aware of how
much memory they did allocate. This takes into account the fact
that several allocators have fixed sizes for allocation (for
example, based on powers of two or smaller numbers; or based on
fibonacci and related series; or even just multiples of 16)

That way you can avoid bogus reallocs (that might not do anything) and the
general waste of memory because of sync issues between requested sizes and
available sizes. For example, Ruby commonly has array sizes in powers of
two. There is an allocator (Perl's optional allocator) has alloc sizes in
powers of two minus a word size, which means on average you use 40% of the
space instead of 70% (and waste the rest).

This is however not a pressing matter right now. 

Another thing I had planned is to remove the "capacity" field from Array,
because it can be get with xmsize(). this frees up a field which could
have been used to make shift/unshift in O(1) average time instead of O(n).
(Doing so without removing capacity means relacing two fields by a pointer
to an array of two fields, kind of ugly).

But as you see I don't consider these to be of incredible importance. I
wanted to tell those reasons to you in case it gives you some ideas. I'll
reconsider once Ruby 1.8 is out.

OTOH, I had a patch that prepared the way for a future change. it
included:

static long rb_ary_capa(ary);
static long rb_ary_realloc(ary,capacity,offset);

where the latter is interesting because it cleans up array.c a bit
(without changing behaviour). My idea was to put reallocation code in one
place, so that it is more configurable (instead of hardcoding *2, *3 all
over). My patch does half of it. I don't know how much array.c has changed
since 1.6.2 though.

matju

In This Thread

Prev Next