Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > MMU-less systems and vfork.

Reply
Thread Tools

MMU-less systems and vfork.

 
 
Brian Mitchell
Guest
Posts: n/a
 
      05-02-2005
I have an upcoming project that will be on an MMU-less platform
(coldfire) running uClinux. I was possibly going to use ruby but it
seems that I cannot confirm if ruby supports vfork as an
implementation of forking or not. Is it possible at all?

Thanks,
Brian.



 
Reply With Quote
 
 
 
 
Luke Graham
Guest
Posts: n/a
 
      05-03-2005
On 5/3/05, Brian Mitchell <(E-Mail Removed)> wrote:
> I have an upcoming project that will be on an MMU-less platform
> (coldfire) running uClinux. I was possibly going to use ruby but it
> seems that I cannot confirm if ruby supports vfork as an
> implementation of forking or not. Is it possible at all?


You should probably do this in a c extension, you could pass in the execve
(or whatever) arg from ruby.

--
spooq



 
Reply With Quote
 
 
 
 
Brian Mitchell
Guest
Posts: n/a
 
      05-03-2005
On 5/2/05, Luke Graham <(E-Mail Removed)> wrote:
> On 5/3/05, Brian Mitchell <(E-Mail Removed)> wrote:
> > I have an upcoming project that will be on an MMU-less platform
> > (coldfire) running uClinux. I was possibly going to use ruby but it
> > seems that I cannot confirm if ruby supports vfork as an
> > implementation of forking or not. Is it possible at all?

>
> You should probably do this in a c extension, you could pass in the execve
> (or whatever) arg from ruby.
>


Sorry I should have been more clear on this.

My question was: Will ruby still run when fork is not available
(replacing fork with vfork or cutting out fork). The quick answer is
no. It will segfault if you add

#define fork vfork

to ruby and run "fork". Will it still work if I avoid fork in ruby and
use, like you said, a C extension to vfork for me? (I don't have my
hardware to run tests on yet).

In the end it looks like the answer is no but I am no expert so I
decided to ask this time around. This was all more of a curiosity. I
would love to be able to use a slim version of ruby to write higher
level code along with lower level C extensions. Anyone willing to
write a patch for me?

Thanks,
Brian.



 
Reply With Quote
 
Luke Graham
Guest
Posts: n/a
 
      05-03-2005
On 5/3/05, Brian Mitchell <(E-Mail Removed)> wrote:
> On 5/2/05, Luke Graham <(E-Mail Removed)> wrote:
> > On 5/3/05, Brian Mitchell <(E-Mail Removed)> wrote:
> > > I have an upcoming project that will be on an MMU-less platform
> > > (coldfire) running uClinux. I was possibly going to use ruby but it
> > > seems that I cannot confirm if ruby supports vfork as an
> > > implementation of forking or not. Is it possible at all?

> >
> > You should probably do this in a c extension, you could pass in the execve
> > (or whatever) arg from ruby.
> >

>
> Sorry I should have been more clear on this.
>
> My question was: Will ruby still run when fork is not available
> (replacing fork with vfork or cutting out fork). The quick answer is
> no. It will segfault if you add
>
> #define fork vfork


Agreed, theres no way thats going to work. vfork != fork.

> to ruby and run "fork". Will it still work if I avoid fork in ruby and
> use, like you said, a C extension to vfork for me? (I don't have my
> hardware to run tests on yet).


I dont see why it wouldnt work. You have to abide by the rules of vfork
though, which can be summarised as "nothing but exec or exit", so its
kind of pointless.

> In the end it looks like the answer is no but I am no expert so I
> decided to ask this time around. This was all more of a curiosity. I
> would love to be able to use a slim version of ruby to write higher
> level code along with lower level C extensions. Anyone willing to
> write a patch for me?
>
> Thanks,
> Brian.
>
>



--
spooq



 
Reply With Quote
 
Luke Graham
Guest
Posts: n/a
 
      05-03-2005
On 5/3/05, Luke Graham <(E-Mail Removed)> wrote:
> On 5/3/05, Brian Mitchell <(E-Mail Removed)> wrote:
> > On 5/2/05, Luke Graham <(E-Mail Removed)> wrote:
> > > On 5/3/05, Brian Mitchell <(E-Mail Removed)> wrote:
> > > > I have an upcoming project that will be on an MMU-less platform
> > > > (coldfire) running uClinux. I was possibly going to use ruby but it
> > > > seems that I cannot confirm if ruby supports vfork as an
> > > > implementation of forking or not. Is it possible at all?
> > >
> > > You should probably do this in a c extension, you could pass in the execve
> > > (or whatever) arg from ruby.
> > >

> >
> > Sorry I should have been more clear on this.
> >
> > My question was: Will ruby still run when fork is not available
> > (replacing fork with vfork or cutting out fork). The quick answer is
> > no. It will segfault if you add
> >
> > #define fork vfork

>
> Agreed, theres no way thats going to work. vfork != fork.
>
> > to ruby and run "fork". Will it still work if I avoid fork in ruby and
> > use, like you said, a C extension to vfork for me? (I don't have my
> > hardware to run tests on yet).

>
> I dont see why it wouldnt work. You have to abide by the rules of vfork
> though, which can be summarised as "nothing but exec or exit", so its
> kind of pointless.


Just to explain what I meant by this... For most (ruby) applications,
having vfork
is not better than having no fork. Having ruby running on mmu-less hw,
even with that caveat, is not useless If defining fork to vfork is enough to
get it working, then go with it.

--
spooq



 
Reply With Quote
 
Tim Sutherland
Guest
Posts: n/a
 
      05-05-2005
In article <(E-Mail Removed)>, Brian Mitchell wrote:
[...]
>My question was: Will ruby still run when fork is not available
>(replacing fork with vfork or cutting out fork). The quick answer is
>no.

[...]

The usual build of Ruby on Windows does not use fork - Ruby does not require
fork to operate.

If everything goes well, ./configure will notice that fork isn't available,
and will not set HAVE_FORK in config.h.
 
Reply With Quote
 
Brian Mitchell
Guest
Posts: n/a
 
      05-05-2005
On 5/4/05, Tim Sutherland <(E-Mail Removed)> wrote:
> In article <(E-Mail Removed)>, Brian Mitchell wrote:
> [...]
> >My question was: Will ruby still run when fork is not available
> >(replacing fork with vfork or cutting out fork). The quick answer is
> >no.

> [...]
>
> The usual build of Ruby on Windows does not use fork - Ruby does not require
> fork to operate.
>
> If everything goes well, ./configure will notice that fork isn't available,
> and will not set HAVE_FORK in config.h.


This is what I needed to know. thanks. I should have looked harder but
my tinker time on this is limited. I do not yet have my toolchain
completely done yet but I should be able to test this setting. BTW, I
did get it partially working with certain forms of fork (vfork
implementation swapped in) but as was said and as I knew, vfork is
quite an different beast but does the trick in some cases.

Now to figure out if I can slim it down anymore than using the right
compiler flags.

Thanks,
Brian.



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Maybe C is the perfect language for really good systems programmers, but unfortunately not-so-good systems and applications programmers are using it and they shouldn’t be. Casey Hawthorne C Programming 18 11-06-2009 05:05 AM
Voip PBX,Private Phone Systems,PBX Telephone Systems, Business Phone Systems broadbandera@gmail.com UK VOIP 9 07-24-2006 03:44 PM
Re: Voip PBX,Private Phone Systems,PBX Telephone Systems, Bu George Orwell UK VOIP 0 07-23-2006 05:35 PM
Any computer systems match good home systems? Richard DVD Video 7 08-24-2004 02:54 AM
java as a systems administration/systems programming language? Mike Java 2 06-17-2004 03:33 PM



Advertisments