[#33161] Call/CC and Ruby iterators. — olczyk@... (Thaddeus L Olczyk)

Reading about call/cc in Scheme I get the impression that it is very

11 messages 2002/02/05

[#33242] favicon.ico — Dave Thomas <Dave@...>

19 messages 2002/02/06
[#33256] Re: favicon.ico — Leon Torres <leon@...> 2002/02/06

[#33435] Reg: tiny contest: who's faster? (add_a_gram) — grady@... (Steven Grady)

> My current solution works correctly with various inputs.

17 messages 2002/02/08

[#33500] Ruby Embedded Documentation — William Djaja Tjokroaminata <billtj@...>

Hi,

24 messages 2002/02/10
[#33502] Re: Ruby Embedded Documentation — "Lyle Johnson" <ljohnson@...> 2002/02/10

> Now, I am using Ruby on Linux, and I have downloaded Ruby version

[#33615] Name resolution in Ruby — stern@... (Alan Stern)

I've been struggling to understand how name resolution is supposed to

16 messages 2002/02/11

[#33617] choice of HTML templating system — Paul Brannan <paul@...>

I am not a web developer, nor do I pretend to be one.

23 messages 2002/02/11

[#33619] make first letter lowercase — sebi@... (sebi)

hello,

20 messages 2002/02/11
[#33620] Re: [newbie] make first letter lowercase — Tobias Reif <tobiasreif@...> 2002/02/11

sebi wrote:

[#33624] Re: [newbie] make first letter lowercase — "Jeff 'japhy' Pinyan" <jeffp@...> 2002/02/11

On Feb 11, Tobias Reif said:

[#33632] Re: [newbie] make first letter lowercase — Mathieu Bouchard <matju@...> 2002/02/12

[#33731] simple XML parsing (greedy / non-greedy — Ron Jeffries <ronjeffries@...>

Suppose I had this text

14 messages 2002/02/13

[#33743] qualms about respond_to? idiom — David Alan Black <dblack@...>

Hi --

28 messages 2002/02/13
[#33751] Re: qualms about respond_to? idiom — Dave Thomas <Dave@...> 2002/02/13

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

[#33754] Re: qualms about respond_to? idiom — David Alan Black <dblack@...> 2002/02/13

Hi --

[#33848] "Powered by Ruby" banner — Yuri Leikind <YuriLeikind@...>

Hello Ruby folks,

78 messages 2002/02/14
[#33909] Re: "Powered by Ruby" banner — Leon Torres <leon@...> 2002/02/14

On Thu, 14 Feb 2002, Yuri Leikind wrote:

[#33916] RE: "Powered by Ruby" banner — "Jack Dempsey" <dempsejn@...> 2002/02/15

A modest submission:

[#33929] Re: "Powered by Ruby" banner — yet another bill smith <bigbill.smith@...> 2002/02/15

Kent Dahl wrote:

[#33932] OT Netscape 4.x? was Re: "Powered by Ruby" banner — Chris Gehlker <gehlker@...> 2002/02/15

On 2/15/02 5:54 AM, "yet another bill smith" <bigbill.smith@verizon.net>

[#33933] RE: OT Netscape 4.x? was Re: "Powered by Ruby" banner — "Jack Dempsey" <dempsejn@...> 2002/02/15

i just don't understand why it didn't show up! dhtml/javascript, ok, but a

[#33937] Re: OT Netscape 4.x? was Re: "Powered by Ruby" banner — Chris Gehlker <gehlker@...> 2002/02/15

On 2/15/02 7:16 AM, "Jack Dempsey" <dempsejn@georgetown.edu> wrote:

[#33989] Re: OT OmniWeb [was: Netscape 4.x?] — Sean Russell <ser@...> 2002/02/16

Chris Gehlker wrote:

[#33991] Re: OT OmniWeb [was: Netscape 4.x?] — Rob Partington <rjp@...> 2002/02/16

In message <3c6e5e01_1@spamkiller.newsgroups.com>,

[#33993] Re: OT OmniWeb [was: Netscape 4.x?] — Thomas Hurst <tom.hurst@...> 2002/02/16

* Rob Partington (rjp@browser.org) wrote:

[#33925] Re: "Powered by Ruby" banner — Martin Maciaszek <mmaciaszek@...> 2002/02/15

In article <3C6CFCCA.5AD5CA67@scnsoft.com>, Yuri Leikind wrote:

[#33956] Re: "Powered by Ruby" banner — Leon Torres <leon@...> 2002/02/15

On Fri, 15 Feb 2002, Martin Maciaszek wrote:

[#33851] Ruby and .NET — Patrik Sundberg <ps@...>

I have been reading a bit about .NET for the last couple of days and must say

53 messages 2002/02/14

[#34024] Compiled companion language for Ruby? — Erik Terpstra <erik@...>

Hmmm, seems that my previous post was in a different thread, I'll try

12 messages 2002/02/16

[#34036] The GUI Returns — "Horacio Lopez" <vruz@...>

Hello all,

33 messages 2002/02/17

[#34162] Epic4/Ruby — Thomas Hurst <tom.hurst@...>

Rejoice, for you no longer have to put up with that evil excuse for a

34 messages 2002/02/18

[#34185] Operator overloading and multiple arguments — ptkwt@...1.aracnet.com (Phil Tomson)

I'm trying to overload the '<=' operator in a class in order to use it for

10 messages 2002/02/18

[#34217] Ruby for web development — beripome@... (Billy)

Hi all,

21 messages 2002/02/19

[#34350] FAQ for comp.lang.ruby — "Hal E. Fulton" <hal9000@...>

RUBY NEWSGROUP FAQ -- Welcome to comp.lang.ruby! (Revised 2001-2-18)

15 messages 2002/02/20

[#34375] Setting the Ruby continued — <jostein.berntsen@...>

Hi,

24 messages 2002/02/20
[#34384] Re: Setting the Ruby continued — Paulo Schreiner <paulo@...> 2002/02/20

Also VERY important:

[#34467] recursive require — Ron Jeffries <ronjeffries@...>

I'm having a really odd thing happen with two files that mutually

18 messages 2002/02/21

[#34503] special characters — Tobias Reif <tobiasreif@...>

Hi all,

13 messages 2002/02/22

[#34517] Windows Installer Ruby 166-0 available — Andrew Hunt <andy@...>

16 messages 2002/02/22

[#34597] rdoc/xml questions — Dave Thomas <Dave@...>

24 messages 2002/02/23

[#34631] Object/Memory Management — "Sean O'Dell" <sean@...>

I'm new to Ruby and the community here (I've been learning Ruby for a grand

44 messages 2002/02/23

[#34682] duplicate method name — Ron Jeffries <ronjeffries@...>

I just found a case in a test file where i had two tests of the same

16 messages 2002/02/24
[#34687] Re: duplicate method name — s@... (Stefan Schmiedl) 2002/02/24

Hi Ron.

[#34791] Style Question — Ron Jeffries <ronjeffries@...>

So I'm building this set theory library. The "only" object is supposed

13 messages 2002/02/25

[#34912] RCR?: parallel to until: as_soon_as — Tobias Reif <tobiasreif@...>

Hi,

18 messages 2002/02/26

[#34972] OT A Question on work styles — Chris Gehlker <gehlker@...>

As a Mac baby I just had to step through ruby in GDB *from the command line*

20 messages 2002/02/28

[#35015] Time Comparison — "Sean O'Dell" <sean@...>

I am using the time object to compare times between two files and I'm

21 messages 2002/02/28

Re: Object/Memory Management

From: Thomas Hurst <tom.hurst@...>
Date: 2002-02-24 02:56:00 UTC
List: ruby-talk #34671
* Sean O'Dell (sean@celsoft.com) wrote:

> "Jim Weirich" <jweirich@one.net> wrote in message
> news:m2wux3bys2.fsf@skaro.access.one.net...

[SNIP]

> I just know that being able to call a finalize method *before* the
> object is one of the great things about OOP.  You can encapsulate
> activities inside an object without the outside world knowing
> everything going on inside, and they can use it safely.

Look at http://www.rubygarden.org/ruby?DiscussionOnUsingFinalizers for
how finalizers work in the Ruby scheme of things.

Basically you define finalizers for resources inside your object, not
your object itself; if you need to do a @file.close, you define a
finalizer for @file itself, rather than for your object, which then
needs to access self.file, which of course no longer exists (yes, I know
that's a really, really bad example, never mind, it's 3am :)

Also it appears Matz had some trouble implimenting it, so he made it
ugly to discourage it ;)

> >  1) To recover memory
> >  2) To release non-memory resources
> >  3) To use the "resource allocation is acquisition" idiom (RAIA)

> > With GC, (1) isn't much of a motivator.  A good GC collector will
> > generally outperform most manual allocation/destruction schemes.
> > With the inherit dangers involved with explicit destruction
> > (dangling pointers, etc), it just doesn't seem worth it.
>
> I don't know enough about garbage collection, but that's what everyone
> is saying so I'm accepting that on faith right now.

Well, the thing with 1) is you don't gain much destroying objects
aggressively (i.e. deleting them explicitly) since Ruby's process size
never shrinks (that's a common feature of malloc()/free() anyway,
maybe that's why, *shrug*); all you gain is being able to release a few
external resources slightly earlier.

Otherwise you're just asking the system to destroy your objects, having
them gc'd straight away (after a nice run around the system to make sure
nobody references it) and getting nothing but a few extra entries on the
free list in Ruby.

So all you end up doing with explicit object deleting is some wasted CPU
and maybe dropping a few external resources; not a big motivator
concidering the complexities involved in implimenting it with the GC and
the performance hit it produces.

> > If (2) is your concern, there is nothing stopping you from doing an
> > explicit release of your non-memory resources.  For example, if you
> > want to make sure a file is closed when you are done with it, then
> > close it.  Don't depend on object destruction to close the file.

I'd recommend this anyway; if you want your object to save it's state on
exit, wrap access to it's state in blocks and have a begin .. yield ..
ensure <save state> .. end block, or have an explicit call to commit the
state of the object.  Better to have these things fail when the object
is in a healthy state and be able to do anything with it, such as maybe
Marshal it to disk if your original state saving stuff failed, than be
inside a finalizer and have to avoid talking about the object itself.

-- 
Thomas 'Freaky' Hurst  -  freaky@aagh.net  -  http://www.aagh.net/
-
The hidden flaw never remains hidden.

In This Thread