[#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: "Sean O'Dell" <sean@...>
Date: 2002-02-24 21:02:38 UTC
List: ruby-talk #34721
"Sean Middleditch" <elanthis@awesomeplay.com> wrote in message
news:1014566071.13609.2.camel@stargrazer...
> > "Sean Middleditch" <elanthis@awesomeplay.com> wrote in message > On Sat,
> >
> > Because, generally speaking, I create objects on the stack, which in
turn
> > dynamically allocate the memory they actually use internally (and free
on
> > destruction).  I generally don't use new to create objects I use within
> > functions because functions don't have reliable cleanup routines.  C++
can
> > catch exceptions, but there is no equivalent to "finally" or "ensure."
> > Creating the objects on the stack ensures that they get cleaned up
properly
> > when they go out of scope.  I've had tremendous success with this way of
> > doing things.  It's intuitive, it's dependable and best of all you can
have
> > a bad day coding and still not create anything terribly funky.
>
> The stack has that one advantage, yes.  There are a number of ways
> around it (you just mentioned one yourself).  However, the stack is just
> an ugly hack for bad design.  The stack does *not* in any way guarantee
> that those objects are cleaned up.  You can leave functions without
> cleaning up (destroying) objects on the stack.  Errors or exceptions can
> occur during stack cleanup that you can't catch or deal with.  The order
> of object destruction is (in many compilers) not guaranteed.  When you
> have multiple objects that use/reference each other all destroyed on the
> same fucntion cleanup, you'll start *really* seeing some problems.

The order of object destruction *is* guaranteed and works correctly on every
compiler I've worked with since Turbo C++.

I don't have troubles at all with C++ and I've been programming with it
heavily for 10 years.

I don't believe the stack in C/C++ is an ugly hack for bad design.  It's
been a fantastic way to help manage memory.

> I believe you mentioned earlier that you are unsure of your code's error
> handling and stability, yes?  Well, you have to make some sacrifices
> (add three lines of code) in order to make that error handling better.

That was in Perl, not C++.  Perl's error handling is terrible and I have a
quite a bit of code that I don't trust because I didn't add error checking
everywhere possible.

> C++ destructors weren't intended to do anything other than clear up
> resources - letting them do otherwise is bad C++ design; too many things
> can go wrong during destructors to let sensitive/complex code run in
> them.  That's why true destructors don't exist in Ruby... it would make
> it too easy for Ruby code to cause the interpreter to crash, which
> should never ever ever happen.  ~,^

C++ was designed to provide wrappers for resources.  C++ provides for
object-oriented design.  Resource management is just one of its features.
There are no official recommendations as to what you use C++ destructors
for, and I have seen them used for lots of different things with excellent
results.

> As I stated above, if your code depends on destructors of objects to do
> tasks like opening, writing to, and closing a file, in addition to
> memory cleanup, I'd expect your application would break down very easily
> if an I/O error occured.

No, because when exceptions occur, the specification is to unwind the stack,
not longjmp out.  If I have a file object with an open file and something
throws an exception, when the file object leaves the try block, its
destructor will get called allowing the file to be closed properly.

> Ruby is contagious.  Give yourself a week or two, and you'll be dying to
> write C++ code with blocks passed to functions, or memory leak free..
>
> Honestly, the stack method of being lazy and letting the compiler do
> your cleanup for you shouldn't even be used in C++ programs that require
> any kind of stability or dependibility.  Ruby simplifies all that so
> much.  It puts the cleanup back in *your* hands, under your control,
> where it should have been the whole time.  If you need a file saved, you
> control when it is done, and how the errors are handled.

Stability is what C++ is very, very good at.  I program with C++ heavily,
and all the features you are saying cause problems have actually *solved* a
lot of problems for myself and everyone I've ever coded with.

> I'm sorry if I sounded like I was attacking your programming style; I'm
> not.  It's just that after some 7 years of C++, It's hard-coded into my
> head which parts of it I steer clear of, and all its numerous
> short-comings.  I used to like programming in nothing but C++, now I
> only touch it on projects that are already in C++.  C is even prettier
> in that it doesn't lend itself to making too many shortcuts, and you
> avoid "bugs" like stack-based object destruction.  ~,^

7 years seems like a long time to have missed so much in C++.  I don't doubt
you didn't enjoy programming in it.

    Sean


In This Thread