C embed assistance

S

Schala Zeal

I was wondering if there was a site with reliable documentation covering
the C embed API? The one on ruby-lang.org is near useless as it was
simply generated without commentary. I could have sworn there was
another site with documentation that explained the stuff and not just
display the declarations. I forgot which site that was and I forgot what
terms I put in Google to find it.
 
C

Christoph Kappel

Schala said:
I was wondering if there was a site with reliable documentation covering
the C embed API? The one on ruby-lang.org is near useless as it was
simply generated without commentary. I could have sworn there was
another site with documentation that explained the stuff and not just
display the declarations. I forgot which site that was and I forgot what
terms I put in Google to find it.

The word 'reliable' is a bit problematic in this case, no docs I found
so far are something I would like to call that. I had a hard time to
figuring the stuff out to embed ruby into my window manager
(http://subtle.subforge.org).

During the time I learned a lot from following urls:

http://www.eqqon.com/index.php/Ruby/Ruby_V1.9_C_Extension
http://metaeditor.sourceforge.net/embed/
http://banisterfiend.wordpress.com/

I started to write down common pitfalls with embedding ruby today
(http://subforge.org/blogs) and will also help if you have any questions
I can answer.
 
¼

¼ÖèÉ

I think the book Programming Ruby 1.9 from the pragmatic programmers
will help a lot.

And from my own experience, it is important to understand that writing
ruby extensions and embedding ruby interpreter are the same in
reality.
 
S

Schala Zeal

贾枭 said:
I think the book Programming Ruby 1.9 from the pragmatic programmers
will help a lot.

And from my own experience, it is important to understand that writing
ruby extensions and embedding ruby interpreter are the same in
reality.

2010/2/8 Christoph Kappel <[email protected]>:

I guessed that much. I mean if a language can be extended by C, C should
be able to use it embedded.
 
B

Brian Candler

Schala said:
I was wondering if there was a site with reliable documentation covering
the C embed API? The one on ruby-lang.org is near useless as it was
simply generated without commentary. I could have sworn there was
another site with documentation that explained the stuff and not just
display the declarations. I forgot which site that was and I forgot what
terms I put in Google to find it.

This one?

http://www.ruby-doc.org/docs/ProgrammingRuby/html/ext_ruby.html

That's from a very old version of the book (covering ruby 1.6.8) but the
fundamentals are the same. Or you can buy a later version as PDF or dead
tree.
 
T

Tony Arcieri

[Note: parts of this message were removed to make it a legal post.]

Unless there's a magic API I'm not aware of, Ruby doesn't have anything like
this. MRI uses globals which can make embedding difficult and will
certainly prevent you from running multiple copies of the same VM within a
single process image.

I know people using an embedded Ruby interpreter, and the general take is:
not fun.

If you really want to use Ruby within your application, I'd suggest starting
a copy of the Ruby interpreter in another process and talking over pipes.
 
S

Schala Zeal

You know... I was considering right now about using C# instead of C/C++.
My main target audience use Windows. For Linux/Mac, perhaps Mono, but
I've only used version 1.0 of that for development several years ago and
it was rather slow, compiling and running.

Does anyone have an opinion on this?
 
S

Seebs

You know... I was considering right now about using C# instead of C/C++.
My main target audience use Windows. For Linux/Mac, perhaps Mono, but
I've only used version 1.0 of that for development several years ago and
it was rather slow, compiling and running.

Does anyone have an opinion on this?

I would not consider C# to be portable past Windows, which for me would
be a dealbreaker. (Also, if I had my choice of companies on whose code
base and API to bet my future, it would not be Microsoft. They have too
often said "here is the One True API, code to this and we'll support it
forever" and then killed it a year or two later.)

-s
 
T

Tony Arcieri

[Note: parts of this message were removed to make it a legal post.]

You know... I was considering right now about using C# instead of C/C++.
My main target audience use Windows. For Linux/Mac, perhaps Mono, but
I've only used version 1.0 of that for development several years ago and
it was rather slow, compiling and running.

Does anyone have an opinion on this?

I hear IronRuby's fairly good (i.e. Ruby for .NET), and it would make
integration a hell of a lot easier than trying to integrate MRI into your
C/C++ code.
 
S

Schala Zeal

Seebs said:
I would not consider C# to be portable past Windows, which for me would
be a dealbreaker. (Also, if I had my choice of companies on whose code
base and API to bet my future, it would not be Microsoft. They have too
often said "here is the One True API, code to this and we'll support it
forever" and then killed it a year or two later.)

-s

MFC, Win32, and DirectX have been around for a while, no?
 
S

Schala Zeal

Tony said:
I hear IronRuby's fairly good (i.e. Ruby for .NET), and it would make
integration a hell of a lot easier than trying to integrate MRI into
your
C/C++ code.

Nice! Uhm... I used Allegro (http://alleg.sf.net) for my gaming API, and
well... what would be a good choice for .NET? There's likely no DirectX
for Mono, and Allegro's .NET binding is outdated.
 
S

Seebs

MFC, Win32, and DirectX have been around for a while, no?

Win32 is old news, it's been .NET for a while. Before that it was OS/2 that
was the next target that all MS-platform developers should be looking at.
And I think there's been more shifts than that, but some are not especially
visible from the outside.

-s
 
M

Marnen Laibow-Koser

Schala said:
You know... I was considering right now about using C# instead of C/C++.
My main target audience use Windows. For Linux/Mac, perhaps Mono, but
I've only used version 1.0 of that for development several years ago and
it was rather slow, compiling and running.

Does anyone have an opinion on this?

Use something portable. It will make it easier to provide other
versions later. That probably means not C#, unless Mono will work for
what you're doing.

Best,
-- 
Marnen Laibow-Koser
http://www.marnen.org
(e-mail address removed)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top