[#13161] hacking on the "heap" implementation in gc.c — Lloyd Hilaiel <lloyd@...>
Hi all,
Hi,
On Fri, Nov 02, 2007 at 04:09:53AM +0900, Lloyd Hilaiel wrote:
On Tue, Nov 06, 2007 at 03:15:52AM +0900, Lloyd Hilaiel wrote:
Paul Brannan wrote:
[#13182] Thinking of dropping YAML from 1.8 — Urabe Shyouhei <shyouhei@...>
Hello all.
On 11/3/07, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
On Nov 3, 2007, at 3:47 PM, Alexey Verkhovsky wrote:
where to start ... to fix the YAML code bugs
Ujwal Reddy Malipeddi wrote:
[#13196] Subscribe to list w/o email — Trans <transfire@...>
I'm now using the ruby-core-google interface to this list, rather then
[#13198] Ruby's Standard Library could use a lead maintainer — "Gregory Brown" <gregory.t.brown@...>
Hi folks,
On Nov 4, 2007, at 11:22 AM, Gregory Brown wrote:
James Edward Gray II wrote:
On 11/4/07, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:
[#13206] guessutf 1.0.0 released — Wolfgang Nádasi-Donner <ed.odanow@...>
Dear Ruby designers, developers, and testers!
[#13215] Auto-translating gateway between ruby-core and ruby-dev? — Charles Oliver Nutter <charles.nutter@...>
I for one feel left out of conversations on ruby-dev. Barring my
[#13221] Re: Ruby's Standard Library could use a lead maintainer — Brent Roman <brent@...>
Brent Roman schrieb:
On 11/5/07, Wolfgang N=E1dasi-Donner <ed.odanow@wonado.de> wrote:
Gregory Brown schrieb:
[#13238] performance problem in 1.9 — Paul Brannan <pbrannan@...>
Checked latest 1.9 out of svn last week to run this test.
Paul Brannan wrote:
[#13248] Re: performance problem in 1.9 — Wolfgang Nádasi-Donner <ed.odanow@...>
Is it possible that it has a relationship with my remark about identifying
[#13254] send can't call protected methods, but invoke_method can — David Flanagan <david@...>
Hi,
[#13259] Frightening retry behavior should be deprecated and removed — Charles Oliver Nutter <charles.nutter@...>
Witness:
Hi,
[#13288] Unrecovered memory leak thoughts. — "Roger Pack" <rogerpack2005@...>
So it seems from my trivial analysis that there are instances when
On 11/8/07, Roger Pack <rogerpack2005@gmail.com> wrote:
On Thu, Nov 08, 2007 at 09:13:34PM +0900, Rick DeNatale wrote:
[#13289] Proposal of a new operator for Method and Proc — Jordi <mumismo@...>
Hello, this email is long but I hope you to read it. I think it is worth it.
Jordi wrote:
On Nov 8, 2007 7:03 PM, Gonzalo Garramu=F1o <ggarra@advancedsl.com.ar> wrot=
[#13292] Leak with regexp in method with no local vars. — "Jonas Pfenniger" <zimbatm@...>
The rubyforge -> ml link seems to be down so here is the link :
Also reproducible with
2007/11/9, Ryan Davis <ryand-ruby@zenspider.com>:
[#13305] The document of random algorithm? — sishen <yedingding@...>
Hi, guys. I want to know the detailed algorithm of random number.
[#13315] primary encoding and source encoding — David Flanagan <david@...>
I've got a couple of questions about the handling of primary encoding.
Hi,
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
In article <E1IqOZI-0001t7-LT@x31>,
Hi,
[#13347] http compression, zlib agnostic, for 1.9 — Hugh Sasse <hgs@...>
I have revised my http compression (gzip, deflate) patch such that
On Sat, Nov 10, 2007 at 05:28:01AM +0900, Hugh Sasse wrote:
[#13351] Keyword Arguments — Trans <transfire@...>
Peter Vanbroekhoven mentioned this to me and I have to agree. I'd
[#13362] RubyGems imported into 1.9 trunk — Eric Hodel <drbrain@...7.net>
There are a few tests breaking due to rbconfig.rb not matching what ./
On Nov 10, 2007 4:53 PM, Eric Hodel <drbrain@segment7.net> wrote:
On Nov 10, 2007, at 01:21 , Jordi wrote:
Eric,
On Nov 10, 2007, at 15:44 , David Flanagan wrote:
Eric Hodel wrote:
On Nov 11, 2007, at 22:34 , David Flanagan wrote:
[#13363] IO.read, IO#read (and similar methods) - Length Parameter Usage for Non One-Byte Encodings — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning dear Ruby folks!
[#13368] method names in 1.9 — "David A. Black" <dblack@...>
Hi --
Hi,
Hi --
Yukihiro Matsumoto wrote:
On 11/11/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
Austin Ziegler wrote:
David Flanagan wrote:
Hi --
Quoting dblack@rubypal.com, on Mon, Nov 12, 2007 at 06:45:42AM +0900:
Hi -
On Tue, Nov 13, 2007 at 09:40:22PM +0900, David A. Black wrote:
Hi --
Summing it up:
Hi --
On Nov 12, 2007 8:42 PM, David A. Black <dblack@rubypal.com> wrote:
On 12/11/2007, David A. Black <dblack@rubypal.com> wrote:
On Sun, Nov 11, 2007 at 05:50:18PM +0900, Trans wrote:
On Nov 11, 2007 7:01 PM, Matthew Boeh <mboeh@desperance.net> wrote:
On Nov 11, 2007 5:01 AM, Matthew Boeh <mboeh@desperance.net> wrote:
[#13377] Link errors for trunk on Mac OS X — "Lyle Johnson" <fxrubyguy@...>
Apologies in advance if this is a FAQ, but I'm trying to build the
[#13448] Time#== bug? — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13457] mingw rename — "Roger Pack" <rogerpack2005@...>
Currently for different windows' builds, the names for RUBY_PLATFORM
On Nov 12, 2007 10:13 PM, Roger Pack <rogerpack2005@gmail.com> wrote:
[#13470] trunk's parse.c fails to compile — "Laurent Sansonetti" <laurent.sansonetti@...>
Hi,
Laurent Sansonetti wrote:
Charles Oliver Nutter wrote:
[#13485] Proposal: Array#walker — Wolfgang Nádasi-Donner <ed.odanow@...>
Good morning all together!
A nicer version may be...
On Wed, 14 Nov 2007, Trans wrote:
Hugh Sasse wrote:
There is one big difference between the actual proposals and my original
[#13498] state of threads in 1.9 — Jordi <mumismo@...>
Are Threads mapped to threads on the underlying operating system in
On Nov 14, 2007, at 11:18 , Bill Kelly wrote:
On Nov 15, 2007 7:33 AM, Eric Hodel <drbrain@segment7.net> wrote:
Jordi wrote:
[#13513] Proc#hash returns different values for same body — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
[#13528] test/unit and miniunit — Ryan Davis <ryand-ruby@...>
When is the 1.9 freeze?
On Nov 14, 2007, at 18:43 , Trans wrote:
[#13536] mswin32-vc6 segmentation fault due ruby_in_eval wrong definition — "Luis Lavena" <luislavena@...>
Summary:
Hi,
On Nov 15, 2007 12:44 PM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
[#13542] Iconv#iconv returning wrong object — "Dirk Traulsen" <dirk.traulsen@...>
c:\>ri Iconv#iconv
Hi,
Am 15 Nov 2007 um 21:58 hat Nobuyoshi Nakada geschrieben:
Hi,
Am 16 Nov 2007 um 17:07 hat Nobuyoshi Nakada geschrieben:
[#13564] Thoughts about Array#compact!, Array#flatten!, Array#reject!, String#strip!, String#capitalize!, String#gsub!, etc. — Wolfgang Nádasi-Donner <ed.odanow@...>
Good evening all together!
Matz has added Object.tap to Ruby 1.9 which is intended for use in
On Nov 15, 2007 8:14 PM, Wolfgang N=E1dasi-Donner <ed.odanow@wonado.de> wro=
Nikolai Weibull schrieb:
Nikolai Weibull schrieb:
Hi --
Hi --
On Nov 16, 2007 3:19 PM, David A. Black <dblack@rubypal.com> wrote:
Hi --
On Nov 16, 2007 12:40 PM, David A. Black <dblack@rubypal.com> wrote:
On Nov 16, 2007 3:40 AM, David A. Black <dblack@rubypal.com> wrote:
David A. Black wrote:
Hi --
On Nov 16, 2007 12:40 PM, David A. Black <dblack@rubypal.com> wrote:
Rick DeNatale wrote:
murphy schrieb:
Hi --
On 11/16/07, Trans <transfire@gmail.com> wrote:
On Nov 16, 2007, at 8:43 PM, Austin Ziegler wrote:
[#13600] Re: [PATCH] CGI::Session::PStore partitioned directories — Tanaka Akira <akr@...>
In article <473D827F.10909@gmail.com>,
[#13614] Suggestion for native thread tests — "Eust痃uio Rangel" <eustaquiorangel@...>
Hi!
Eust痃uio Rangel wrote:
On Nov 17, 2007 2:02 PM, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
On Nov 17, 2007 2:25 PM, Eust=E1quio Rangel <eustaquiorangel@gmail.com> wro=
[#13618] segfault in ostruct with 1.8.6, where to get help? — "andrew taylor" <aktxyz@...>
Hello folks, not sure if this is the right place...
run it in gdb, see if it gives you a better backtrace (?)
[#13676] Failing to compile trunk under Ubuntu — Brian Candler <B.Candler@...>
I tried compiling trunk yesterday and today, on two different Ubuntu 6.06
[#13685] Problems with \M-x in utf-8 encoded strings — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
At 22:01 07/11/18, Wolfgang N〓dasi-Donner wrote:
Martin Duerst schrieb:
[#13688] base64.c vs. base64.rb — Trans <transfire@...>
Hi--
[#13704] Build failure trying to use rb_define_alias on rb_mKernel — "Berger, Daniel" <Daniel.Berger@...>
Hi,
[#13709] Change in system() behaviour — Dave Thomas <dave@...>
In 1.8, system("badcmd") returned false.
[#13741] retry semantics changed — Dave Thomas <dave@...>
In 1.8, I could write:
On Nov 23, 2007 12:06 PM, Dave Thomas <dave@pragprog.com> wrote:
Hi,
Hi,
Dave Thomas wrote:
Dave Thomas wrote:
Charles Oliver Nutter wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Hi,
Chiming in again on this...
In article <10A28D45-97EE-47EB-B98A-1B197F30C0E9@fallingsnow.net>,
In article <6168A472-3688-4D85-AAE1-49A2F376B908@fallingsnow.net>,
[#13781] C-Core-Questions — <saladin.mundi@...>
Hi guys, sorry that I'm posting into the core mailinglist, but in the =
[#13787] Syntax error when using comment between two lines in new method chain syntax — Wolfgang Nádasi-Donner <ed.odanow@...>
Hi!
[#13792] Anyone tried -r debug on OSX? — Dave Thomas <dave@...>
It hangs for me here. I have to kill -9 to stop it.
[#13805] Socket.gethostbyname and Reverse Lookups: A Strange and Terrible Saga — "Bill Kelly" <billk@...>
(with apologies to Hunter Thompson ;)
Re: Unrecovered memory leak thoughts.
> >> First, it's pretty inefficient in that it imposes an overhead on every > >> variable assignment to adjust reference counts. Not an extremely big (code-wide) amount of overhead: the equivalent of ptr->as.whatever.count++ probably not too expensive, though it does dirty the memory ...but since it's in cache anyway, the write expense will probably be low (compared to the benefits of not marking the entire heap as the GC does). Second, it can easily > >> leave permanently noncollectable constellations of unreachable > >> objects which form reference cycles. Looks like to avoid those you need to require 'container objects' (those that can contain references to others) to provide a method that returns a list of objects they point to (so you can traverse them and stomp out those cycles). This means that the Ruby C containers would need to provide those, and also (as you noted), extensions that create objects that reference others (in their C code) would need to provide the same. Basically any extension that could reference itself somehow would need to provide them. So the problem is that classes can reference themselves, too, in Ruby, so we'd need to think about it for awhile. We would also need to create traverse methods for ruby's container classes (can an array reference itself? I think it can). I didn't say it would be easy :) > > I question how significant reference counting would be compared to > > everything else going on in the interpreter. Python uses reference > > counting and seems to have decent performance compared to Ruby. > > > > The bigger issue is that extension writers would have to rewrite their > > extensions to increment the reference count when they do an assignment. Yeah--if they do assignment. Most assignment calls are probably made by Ruby, so tweaking that to increment assignment would probably do most of the dirty work. I could be wrong, being familiar only with gc.c, and not eval.c (and not with extensions). My guess is that most extensions just use their own object types, which aren't theoretically self referencing, so they wouldn't have to change too much. Could be wrong. Normal assignments call (ruby's) = (you can't override it) so I think that modifying that would kill most assignment probs. Maybe :) Extensions themselves for their own personal objects usually use ruby_x_malloc or whatever it is, which isn't tracked by the GC, and isn't a Ruby object, and extensions already provide their own finalizers, but yeah, they may need to change. Their finalizers would need to call 'dec' on contained (Ruby) objects. I'm not sure what the implication is, and to what extent real code changes would be necessary. > So my challenge to the Ruby community is to come up with test suites for > the garbage collector. Maybe I'm asking on the wrong list, though -- > should I be asking for this on the Rails list? > > <ducking> I know that when I run rails the GC collects like 3x per page request, which is...not good (at least in development mode) <swinging> :) > P.S.: I hear implementing reference counting is so non-trivial that it > would literally have to have a *compelling* performance advantage to be > worth the effort. Again, someone needs to come up with the test suites. Ruby's GC fires 'every 8MB of alloc'ed Ruby objects' (current 1.8.6 SVN version), so say you have a prog that uses...500MB of memory, on purpose, and then it's going to fluctuate, stably, between 500 and 600MB. That means that ever 8MB of alloc'ed memory, it is going to traverse all ~500MB of heap space, marking and traversing happily, then sweeping the entire thing, most of which is not freed. I've heard complaints of people who use large amounts of memory (>1GB) that the GC takes up to 50 seconds to complete. That makes Ruby unsuitable for large memory real-time apps. Also note that for large apps with a large heap, collecting will be pulling every page from virtual memory, accessing it, and marking it dirty. So the current GC basically requires the entire heap to fit into memory (regardless of whether it's actually being used). If you run out of RAM that would really hurt you as every GC has to thrash for each collection. It also resets the L2 cache and then you get to start over and wait for the ominous next GC. Only a problem for large memory use, however. Unfortunately this seems quite common for current Ruby apps :) Your point is well taken, however: for most cases, the GC doesn't hurt us, so why bother :) > P.P.S: If your Ruby application is spending a lot of time in the garbage > collector, you may be doing something wrong at the Ruby code level. Believe it or not almost any ruby app that is 'chugging' (running and processing something) is most likely alloc'ing tons of mem and calling the GC frequently, which GC is doing most of its work redundantly (it's doing the same work over and over again). If it is legitimately using a lot of heap (as mentioned above), then that means it is most likely operating very slowly :) So it is possible for the code to be legit. TODO However, as pointed out by a recent email to this list, there may be some Or > you might need to allocate a bigger heap (assuming that's possible > without changing the interpreter at the source level -- I haven't looked > at this yet.) It is indeed possible at the C source level. It's a commonly applied band-aid :) I have thought of changing it so users can dynamically set their own levels of frequency for the GC. Again that feels like a band-aid, with expensive GC's still occuring, and still randomly, but with less frequency. Every had momentary lag in a game...? Anyway back to the memory leak hunt. Thanks for reading! -Roger