[#14696] Inconsistency in rescuability of "return" — Charles Oliver Nutter <charles.nutter@...>

Why can you not rescue return, break, etc when they are within

21 messages 2008/01/02

[#14738] Enumerable#zip Needs Love — James Gray <james@...>

The community has been building a Ruby 1.9 compatibility tip list on =20

15 messages 2008/01/03
[#14755] Re: Enumerable#zip Needs Love — Martin Duerst <duerst@...> 2008/01/04

Hello James,

[#14772] Manual Memory Management — Pramukta Kumar <prak@...>

I was thinking it would be nice to be able to free large objects at

36 messages 2008/01/04
[#14788] Re: Manual Memory Management — Marcin Raczkowski <mailing.mr@...> 2008/01/05

I would only like to add that RMgick for example provides free method to

[#14824] Re: Manual Memory Management — MenTaLguY <mental@...> 2008/01/07

On Sat, 5 Jan 2008 15:49:30 +0900, Marcin Raczkowski <mailing.mr@gmail.com> wrote:

[#14825] Re: Manual Memory Management — "Evan Weaver" <evan@...> 2008/01/07

Python supports 'del reference', which decrements the reference

[#14838] Re: Manual Memory Management — Marcin Raczkowski <mailing.mr@...> 2008/01/08

Evan Weaver wrote:

[#14911] Draft of some pages about encoding in Ruby 1.9 — Dave Thomas <dave@...>

Folks:

24 messages 2008/01/10

[#14976] nil encoding as synonym for binary encoding — David Flanagan <david@...>

The following just appeared in the ChangeLog

37 messages 2008/01/11
[#14977] Re: nil encoding as synonym for binary encoding — Yukihiro Matsumoto <matz@...> 2008/01/11

Hi,

[#14978] Re: nil encoding as synonym for binary encoding — Dave Thomas <dave@...> 2008/01/11

[#14979] Re: nil encoding as synonym for binary encoding — David Flanagan <david@...> 2008/01/11

Dave Thomas wrote:

[#14993] Re: nil encoding as synonym for binary encoding — Dave Thomas <dave@...> 2008/01/11

[#14980] Re: nil encoding as synonym for binary encoding — Gary Wright <gwtmp01@...> 2008/01/11

[#14981] Re: nil encoding as synonym for binary encoding — Yukihiro Matsumoto <matz@...> 2008/01/11

Hi,

[#14995] Re: nil encoding as synonym for binary encoding — David Flanagan <david@...> 2008/01/11

Yukihiro Matsumoto writes:

[#15050] how to "borrow" the RDoc::RubyParser and HTMLGenerator — Phlip <phlip2005@...>

Core Rubies:

17 messages 2008/01/13
[#15060] Re: how to "borrow" the RDoc::RubyParser and HTMLGenerator — Eric Hodel <drbrain@...7.net> 2008/01/14

On Jan 13, 2008, at 08:54 AM, Phlip wrote:

[#15062] Re: how to "borrow" the RDoc::RubyParser and HTMLGenerator — Phlip <phlip2005@...> 2008/01/14

Eric Hodel wrote:

[#15073] Re: how to "borrow" the RDoc::RubyParser and HTMLGenerator — Eric Hodel <drbrain@...7.net> 2008/01/14

On Jan 13, 2008, at 20:35 PM, Phlip wrote:

[#15185] Friendlier methods to compare two Time objects — "Jim Cropcho" <jim.cropcho@...>

Hello,

10 messages 2008/01/22

[#15194] Can large scale projects be successful implemented around a dynamic programming language? — Jordi <mumismo@...>

A good article I have found (may have been linked by slashdot, don't know)

8 messages 2008/01/24

[#15248] Symbol#empty? ? — "David A. Black" <dblack@...>

Hi --

24 messages 2008/01/28
[#15250] Re: Symbol#empty? ? — Yukihiro Matsumoto <matz@...> 2008/01/28

Hi,

Re: IRHG - GC Memory Fragmentation?

From: Charles Thornton <ceo@...>
Date: 2008-01-01 23:22:31 UTC
List: ruby-core #14680
Thnaks for the input !

I have continued to dig inside Ruby GC, which by the way
IS a modified "Bohem/Demers collector".  One thing I have
discovered, and pulling out whats left of hair, is that  that the
GC seems to allocate in two different areas?
----------------------------------------------------
I stopped here because I had a thought "if there was nothing
in the Ruby code to explain it -- What about 'malloc' ?? "

Well, experimentally it  obviously  does put different  SIZES
of allocation in DIFFERENT LOCATIONS in the heap memory!

That of course make sense!  I have never looked at malloc
that close!   I have been programming for 30 years - assembly
and 'C' - and the Ruby Core List keeps me reading tech books.

You would think I would know it all at this point, sigh  :-).

Kurt Stephens wrote:
>
> Charles Thornton wrote:
>> While working on Chapter 05  and referencing various works
>> on Garbage Collection, I keep seeing that Mark & Sweep are
>> considered to have a problem with memory fragmentation.
>>
>> Since I have not seen any complaints on this subject on the core
>> list, I am wondering if there is something inherent about Ruby
>> that prevents major fragmentation.
>>
>> For example, since all basic ruby objects are the same size, does
>> this help reduce fragmentation of the GC space?
>>
>>                 Chuck
>>                 ceo@hawthorne-press.com
>>
> My $0.03:
>
> Ruby objects, like Strings and Vectors, explicitly allocate
> dynamically-sized regions, well as the hash tables underneath all the
> basic object structures.  Mark and sweep collectors always suffer from
> fragmentation because order of allocation and reclamation does not imply
> locality; page utilization can become sparser overtime, esp if page
> allocations are not segmented by object size and free regions are not
> aggressively scanned for best-fit during reallocation or scavenging.
>
> Ruby (appears to) allocate its memory from the OS via malloc(), which
> can lead to two levels of fragmentation, depending on the implementation
> of malloc();  power-of-two allocators have notoriously poor actual
> memory utilization.  Given the lack of comments in Ruby's gc.c, its hard
> to tell if Ruby's GC does anything special about the fragmentation
> issues with mark-sweep.
>
> I recommend reading the proceedings from the ISMM
> (http://www.cs.kent.ac.uk/people/staff/rej/ismm2008/) over the last ten
> years and other papers on Lisp system design over the last 20 years.
> http://www.memorymanagement.org/ has some helpful information.
>
> There's a great book called "Topics in Advanced Language Implementation"
> MIT Press, 1991 that provides a good overview of different automatic
> memory managers and their context in programming languages.
>
> My money is on the developments of efficient write barriers that allow
> the allocate, mark, scan, reclaim phases to occur concurrently with very
> minimal stopping of the world .
>
> http://kurtstephens.com/pub/tredmill/current/src/tredmill/ is a
> prototype implementation of a Treadmill allocator that uses color- and
> size-segmented lists to concurrently allocate, mark, scan and reclaim
> objects in the same thread.  It requires compiler-generated (or
> hand-written) calls to a write-barrier to recolor mutated objects that
> have been previous marked or scanned.  OS pages are segmented by
> allocation size,  making the write-barrier computation reasonably simple.
>
> Unfortunately, it would be difficult to use with Ruby due to Ruby's C
> foreign-function interface.  FFIs to C greatly complicate modern memory
> management techniques.  SUN's first Java implementations used mark-sweep
> until it was clear that it does not perform well for long-running server
> processes.  I believe Sun's Java now uses indirection handles to hide a
> generational, copying collector from FFI C code. (I could be wrong on
> this, I dislike Java too much to care about it :)
>
> I'd like to see how well Ruby would perform using the Bohem/Demers
> collector.  Don't get me started about Ruby using a 0x01 type tag for
> Fixnums. :)
>
> Kurt Stephens
> http://kurtstephens.com
>
>
>
>
>
>


In This Thread