[#68415] eval'ing a config file — Ian Macdonald <ian@...>

Hi,

19 messages 2003/04/01

[#68421] sharing objects between tests (revisited?) — Paul Brannan <pbrannan@...>

I don't know if I've asked this on this list before or only on irc (I

13 messages 2003/04/01

[#68436] April Fools. — Daniel Carrera <dcarrera@...>

Hey guys and gals,

24 messages 2003/04/01

[#68449] Newbie question:read file speed — "Greg Brondo" <greg@...>

Why is ruby (on windows) so much slower at reading lines in a file (as

36 messages 2003/04/01

[#68527] Any Hardware/EDA engineers out there? — ptkwt@...1.aracnet.com (Phil Tomson)

12 messages 2003/04/03

[#68605] keeping track of non-exported global variables — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

problem:

12 messages 2003/04/04

[#68623] To inherit or to include? That is the question. — Jim Freeze <jim@...>

Hi

11 messages 2003/04/04

[#68707] Call for standardised package installation procedure — google@... (Tom Payne)

I'm helping maintain Ruby and Ruby packages in Gentoo Linux.

57 messages 2003/04/06
[#68712] Re: Call for standardised package installation procedure — "James Britt" <james@...> 2003/04/06

> It would make my job a lot easier if just one were chosen, and perhaps

[#68729] Re: Call for standardised package installation procedure — "Hal E. Fulton" <hal9000@...> 2003/04/06

----- Original Message -----

[#68738] Re: Call for standardised package installation procedure — google@... (Tom Payne) 2003/04/07

John Johnson <jj5412@earthlink.net> wrote in message news:<1049655145.1847.10.camel@hppav.home.net>...

[#68779] Re: Call for standardised package installation procedure — Austin Ziegler <austin@...> 2003/04/07

On Mon, 7 Apr 2003 16:47:20 +0900, Tom Payne wrote:

[#68781] Re: Call for standardised package installation procedure — Mauricio Fern疣dez <batsman.geo@...> 2003/04/07

On Tue, Apr 08, 2003 at 02:34:26AM +0900, Austin Ziegler wrote:

[#68826] Re: Call for standardised package installation procedure — Gavin Sinclair <gsinclair@...> 2003/04/08

On Tuesday, April 8, 2003, 3:42:49 AM, Mauricio wrote:

[#68803] Having trouble getting iconv-0.5 working on OS X — Sam Roberts <sroberts@...>

I do a make, install, and then:

10 messages 2003/04/08
[#68806] Re: Having trouble getting iconv-0.5 working on OS X — Nobuyoshi Nakada <nobu.nokada@...> 2003/04/08

Hi,

[#68811] Array Sutraction — Jim Freeze <jim@...>

Ok, this has been discussed at length previously,

25 messages 2003/04/08
[#68820] Re: Array Sutraction — "Robert Klemme" <bob.news@...> 2003/04/08

[#68828] Re: Array Sutraction — Michael Campbell <michael_s_campbell@...> 2003/04/08

>

[#68843] Ruby for graphics — "Your Name Here" <jim@...>

I just learned of Ruby, and was wondering if its a good lang for

17 messages 2003/04/08
[#68844] Re: [Q] Ruby for graphics — Michael Campbell <michael_s_campbell@...> 2003/04/08

--- Your Name Here <jim@fivek.com> wrote:

[#68908] The "!" and "?" characters. — Daniel Carrera <dcarrera@...>

One of the things I like about Ruby is that it can use ! and ? in method

22 messages 2003/04/08

[#68929] embedding ruby — emilie3012@... (Steve Hart)

Please forgive the following if answers appear elsewhere but I have

13 messages 2003/04/09

[#68943] unknown node type 0 — Francois GORET <fg@...>

Hello,

12 messages 2003/04/09

[#68996] ANN: ri v1.8 — Dave Thomas <dave@...>

I'm releasing a very preliminary version of 'ri' for Ruby 1.8. This

21 messages 2003/04/09

[#69025] tutorial on embedding ruby (review) — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

What do you think about it ?

30 messages 2003/04/09

[#69054] PRIVATE AND CONFIDENTIAL — "Mr. John Eze" <mr_musa3@...>

16 messages 2003/04/10
[#69066] Re: PRIVATE AND CONFIDENTIAL — Peter Hickman <peter@...> 2003/04/10

As an aside not only would the origonal spam be removed by your rules,

[#69096] Need IO Optimization help — Jim Freeze <jim@...>

Hello:

69 messages 2003/04/10
[#69197] Re: Need IO Optimization help — ptkwt@...1.aracnet.com (Phil Tomson) 2003/04/11

In article <20030411115918.A35958@linnet.org>,

[#69239] Does dynamic typing make it easier to place an object in a container? — Mark Wilson <mwilson13@...> 2003/04/12

The following is from

[#69240] Re: Does dynamic typing make it easier to place an object in a container? — Joel VanderWerf <vjoel@...> 2003/04/12

Mark Wilson wrote:

[#69245] Re: Does dynamic typing make it easier to place an object in a container? — Ryan Pavlik <rpav@...> 2003/04/12

On Sat, 12 Apr 2003 13:40:07 +0900

[#69581] Re: Need IO Optimization help — David King Landrith <dave@...> 2003/04/17

In my experience, the fastest way to access files (by far) is mmap.

[#69583] Re: Need IO Optimization help — Jim Freeze <jim@...> 2003/04/17

On Thursday, 17 April 2003 at 19:29:16 +0900, David King Landrith wrote:

[#69591] Re: Need IO Optimization help — David King Landrith <dave@...> 2003/04/17

On Thursday, April 17, 2003, at 06:45 AM, Jim Freeze wrote:

[#69593] Re: Need IO Optimization help — Jim Freeze <jim@...> 2003/04/17

On Thursday, 17 April 2003 at 22:11:55 +0900, David King Landrith wrote:

[#69179] Two questions — "Steve Adams" <adamss@...>

What restrictions does the Ruby license place on the construction and sale

14 messages 2003/04/11

[#69194] splat question — "Chris Pine" <nemo@...>

(This question assumes that the unary `*' (used in arrays and such) is

13 messages 2003/04/11

[#69214] class documentation — "Bermejo, Rodrigo" <rodrigo.bermejo@...>

Hi all;

13 messages 2003/04/11

[#69271] Controlling an interactive program from Ruby — Daniel Carrera <dcarrera@...>

Hi,

12 messages 2003/04/13

[#69280] ruby_script() — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I am wondering what exactly ruby_script() is doing ?

15 messages 2003/04/13

[#69357] A class, that knows about it's instances + Sets — KONTRA Gergely <kgergely@...>

Hi!

11 messages 2003/04/14

[#69413] rb_class_new_instance behaves strange — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

My code is behaving different, when im doing this change:

23 messages 2003/04/15

[#69424] Urgent Assistance — "Victor Aloma" <victorloma@...>

12 messages 2003/04/15

[#69439] ANN: Debian packages of FreeRIDE, FOX, FXRuby, Ripper, FXScintilla, etc — Mauricio Fern疣dez <batsman.geo@...>

9 messages 2003/04/15

[#69470] regular expressions — "Chris Pine" <nemo@...>

When I first learned regular expressions, they were no problem. It was in a

27 messages 2003/04/15

[#69518] Roundoff problem with Float and Marshal — cilibrar@... (Rudi Cilibrasi)

The following small test program:

29 messages 2003/04/16

[#69536] Reg. Expressios with "\n" — Daniel Carrera <dcarrera@...>

Hello,

14 messages 2003/04/16

[#69585] extension - redirect a block — student_vienna@... (daniel)

hello,

11 messages 2003/04/17

[#69595] ANN: ri 1.8b — Dave Thomas <dave@...>

I've updated ri:

14 messages 2003/04/17

[#69645] avoiding the module name — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

11 messages 2003/04/17

[#69700] Biased weighted random? — "Hal E. Fulton" <hal9000@...>

Hi, all...

51 messages 2003/04/18

[#69762] Multi-Lingual Ruby — Jim Weirich <jweirich@...>

I was following a Java VS Perl discussion on a web board that I read.

12 messages 2003/04/20

[#69806] ASCII class inheritance tree generator — Simon Vandemoortele <deliriousNOSPAM@...>

I thought I might share this little piece of code that generates a

10 messages 2003/04/21

[#69830] Ruby in a university course — "Chad Fowler" <chadfowler@...>

Maybe this has already been covered here, but I found it interesting =

14 messages 2003/04/21

[#69931] Ruby.shop — "Hal E. Fulton" <hal9000@...>

Hello, all.

28 messages 2003/04/23

[#69956] grep and regular expressions in ruby — "Krishna Dole" <kpd@...>

I'm quite taken with ruby, but recently I ran into trouble using grep. I

15 messages 2003/04/23

[#69969] Subject: Re: [ANN] Ruby.shop — Jim Weirich <jweirich@...>

On Wed, 2003-04-23 at 18:16, Hal E. Fulton wrote:

18 messages 2003/04/24

[#70015] How to call an object instance's method? — Rene Tschirley <pooh@...>

Dear Ruby Experts,

28 messages 2003/04/24
[#70016] Re: How to call an object instance's method? — "Robert Klemme" <bob.news@...> 2003/04/24

[#70019] Re: How to call an object instance's method? — Rene Tschirley <pooh@...> 2003/04/24

Robert Klemme wrote:

[#70072] Re: How to call an object instance's method? — "Chris Pine" <nemo@...> 2003/04/24

----- Original Message -----

[#70017] MathN — Dave Thomas <dave@...>

I'm trying to get to grips with the 'mathn' library. I can see what it

12 messages 2003/04/24

[#70034] block.call vs. yield — "Orion Hunter" <orion2480@...>

I noticed that the use of block/yield differs slightly when a "break" is

44 messages 2003/04/24
[#70046] Re: block.call vs. yield — matz@... (Yukihiro Matsumoto) 2003/04/24

Hi,

[#70087] Re: block.call vs. yield — matz@... (Yukihiro Matsumoto) 2003/04/25

Hi,

[#70113] Re: block.call vs. yield — dblack@... 2003/04/25

Hi --

[#70182] Re: block.call vs. yield — "Hal E. Fulton" <hal9000@...> 2003/04/26

----- Original Message -----

[#70189] Re: block.call vs. yield — dblack@... 2003/04/26

Hi --

[#70039] Accessing Ruby class from C extention — ptkwt@...1.aracnet.com (Phil Tomson)

I know it's possible to write Ruby in C but is it possible to instantiate

16 messages 2003/04/24

[#70064] Hashes and Enumerable#each_with_index — Ryan Pavlik <rpav@...>

OK, looking at the archives I know this was discussed a few years ago,

16 messages 2003/04/24

[#70265] Generating a DLL file? — "Rich" <rich@...>

Let's start with:=20

22 messages 2003/04/27
[#70277] Re: Generating a DLL file? — "Rich" <rich@...> 2003/04/28

I don't know C - or C++... and I'd rather not learn.

[#70280] Re: Generating a DLL file? — Michael Campbell <michael_s_campbell@...> 2003/04/28

--- Rich <rich@lithinos.com> wrote:

[#70268] c++/ruby debugging advices — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

Im embedding ruby into c++ and im having a segfault problem which

11 messages 2003/04/27

[#70422] Pass-by reference VS encapsulation ? — Simon Vandemoortele <deliriousREMOVEUPPERCASETEXTTOREPLY@...>

34 messages 2003/04/30

Re: tutorial on embedding ruby (review)

From: emilie3012@... (Steve Hart)
Date: 2003-04-17 00:37:36 UTC
List: ruby-talk #69560
Tobias Peters <tpeters@invalid.uni-oldenburg.de> wrote in message news:<Pine.LNX.4.44.0304161308490.12480-100000@localhost.localdomain>...
> On 15 Apr 2003, Steve Hart wrote:
> > OK Here is an example
> > 
> > main()
> > {
> > 	ruby_init();
> > 	etc
> > 
> > 	test()
> > 	rb_gc();
> > }
> > 
> > void test()
> > {
> > 	VALUE v = create me a ruby obj i dont care how
> > }
> > 
> > So what happens to v?
> 
> v is a C variable on the stack and is of course removed when test() 
> returns.
> 
> I think you rather wanted to ask: "What happens to the ruby object pointed 
> to by v?"
> 
> Basically, 2 things happen:
> 1) When test returns, this object becomes _inaccessible_ for your code, 
> since there is no VALUE left that points to it.
> 2) The rb_gc() call will most likely delete the object (but no 100% 
> guarantee for that) (this uncertainty is caused by ruby's GC algorithm, 
> not by uncertainty of my mind)
> 
> You should now answer the question: Why would you want the object to stay 
> in memory after you lost any means of accessing it?
> 
> > 
> > or
> > 
> > main()
> > {
> > 
> > 	VALUE 	v;
> > 
> > 	ruby_init();
> > 	etc
> > 
> > 	test(&v)
> > 	rb_gc();
> > 
> > 	do some stuff that uses v
> > }
> > 
> > void test(
> > VALUE *v)
> > {
> > 	*v = create me a ruby obj i dont care how
> > }
> 
> After looking at ruby_init() and Init_stack(), I can tell that you've
> really found a problem here. But if you rewrite it as
> 
> > main()
> > {
> > 	ruby_init();
>      do_stuff()
> > }
>  do_stuff()
> > {
> > 	VALUE 	v;
> >
> > 	etc
> > 
> > 	test(&v)
> > 	rb_gc();
> > 
> > 	do some stuff that uses v
> > }
> 
> it will work fine and not delete the ruby object as long as v is on the 
> stack 
> 
>    T

Thanks v much for reply. However, Mauricio (prev reply) says v
definitly gets GC'd whilst you say it may not - which is correct?. I
guess the example is a bit banal so a slightly more intersting case
(and more relevant to me!)
{not necessarily syntactically correct}

ruby class inheriting swigged up cpp class:

class MyClass1 < MyModule::MyCPPBaseClass
   def initialize
      super

      @obj = self.createObjNode("obj1")

   end
end

swigged up cpp classes:

class ObjNode
{
public:
   ObjNode(string name){};
   ~ObjNode(){};

   string name;
};

class MyCPPBaseClass
{
public:
   static std::list<ObjNode *> objList;

   MyCPPBaseClass();
   ~MyCPPBaseClass();

   ObjNode   *createObjNode(string objName);

   VALUE  *scriptObj;
};

MyCPPBaseClass::MyCPPBaseClass()
{
}

MyCPPBaseClass::~MyCPPBaseClass()
{
   // will this work???
   obj = get ref to obj from std::list
   rb_gc_unregister_address(&obj);
}

ObjNode *MyCPPBaseClass::createObjNode(string objName)
{
   ObjNode                      *obj = NULL;
   list<ObjNode *>::iterator    result;

   result = find(MyCPPBaseClass::objList.begin(),
                 MyCPPBaseClass::objList.end(),
                 objName);

   if(result == MyCPPBaseClass::objList.end())
   {
      obj = new ObjNode(objName);
      MyCPPBaseClass::objList.push_back(obj);

      // do I need to do this???
      rb_gc_register_address(&obj);

      obj->v = rb_ary_new2();
   }
   else
   {
      obj = (ObjNode *)(*result);
   }

   return(obj);
}

vector<MyCPPBaseClass *> stack;

main()
{
   MyCPPBaseClass       *ptr = NULL;

   ruby_init();
   ruby_script("embedded");
   ruby_init_loadpath();

   // require swigged up dso
   rb_require("gm.so");

   // Methods from Simon's tutorial
   RUBY_CPP::Load("MyClass.rb");
   VALUE tObj = RUBY_CPP::New("MyClass",0);

   Data_Get_Struct(tObj,MyCPPBaseClass,ptr);
   ptr->scriptObj = tObj;
   
   // save on stack
   stack.push_back(ptr);

   // do I need to do this
   rb_gc_register_address(&(ptr->scriptObj));

   do some stuff - add more scripts to stack - run methods in scripts

   now need to get rid of scripts and objects

   
   rb_gc_unregister_address(&(ptr->scriptObj));
   
   // destructor for scriptObj gets called (above) ???
   rb_gc();

}

Sorry, this started out to be simple example but, by it's nature, it
gets complicated.
You see, I load ruby scripts from a 'menu' of ruby scripts in c++/Qt.
These scripts may share ObjNode's (hence the need to check if the obj
exists in createObjNode)
SWIG uses the Data_Wrap_Struct to handle ruby<=>cpp.I can use the mark
and free functions to handle obj->v but what about obj and what about
tObj?. Should I use rb_gc_register_address to let GC it's busy and
then use rb_gc_unregister_address
to free them off when the stack is cleared as I indicate above. It
would be great if this were tha case cause I've written most of the
code and it 'seems' to work - so far! I'm still debugging :-)
Or, perhaps there is a neater way of doing this?.
I guess that the point here is 2 fold 
1) to illicit answers for simons tutorial
2) confirm (definatively) that what I'm doing is correct

Thanks in advance for help and thanks for help so far
Steve

In This Thread