[#89088] More questions about =~ — GGarramuno@... (GGarramuno)

irb(main):006:1* class String

14 messages 2004/01/01

[#89119] Loop/Iterator questions — GGarramuno@... (GGarramuno)

1) Is there anything like Perl's continue block available? This is

15 messages 2004/01/02

[#89189] Best way to send mail in ruby — Bauduin Raphael <rb@...>

Hi,

11 messages 2004/01/03

[#89193] Simple Ruby DB apps/programs ... — Useko Netsumi <usenets@...>

I was wondering if there are some example of small Ruby(1.8.1) Database

14 messages 2004/01/03

[#89261] class Time doesn't pass year 2038? — Jean-Baptiste <temuphaey0@...>

15 messages 2004/01/05

[#89339] Compression (besides Huffman) and Ruby — "Josef 'Jupp' SCHUGT" <jupp@...>

Hi!

14 messages 2004/01/07

[#89367] Database applications and OOness — Tim Bates <tim@...>

People,

63 messages 2004/01/07
[#89455] Re: Database applications and OOness — "dhtapp" <dhtapp@...> 2004/01/08

I've been watching this thread with a great deal of interest. I'm

[#89456] block delimiting — Pete Yadlowsky <pmy@...> 2004/01/08

[#89465] Re: block delimiting — Austin Ziegler <austin@...> 2004/01/08

On Fri, 9 Jan 2004 04:33:15 +0900, Pete y wrote:

[#89453] ruby 1.8.1 windows installer — KONTRA Gergely <kgergely@...>

Hi!

26 messages 2004/01/08
[#89716] Re: ruby 1.8.1 windows installer — intc_ctor@... (Phil Tomson) 2004/01/12

>

[#89860] Re: ruby 1.8.1 windows installer — Alan Davies <NOSPAMcs96and@...> 2004/01/14

> Since the first edition of the Pickaxe book didn't exactly fly off the

[#89460] Re: block delimiting — "Mike Wilson" <wmwilson01@...>

21 messages 2004/01/08

[#89590] regex to NOT match? — Ruby Baby <ruby@...>

Sorry it seems like the smallest thing, but I'm stuck on this.

16 messages 2004/01/10

[#89611] Converting a string to an array of tokens — "John W. Long" <ws@...>

Is there a fast way to convert a string into a list of tokens?

17 messages 2004/01/11

[#89672] faster integer arithmetics & arbitrary precision floating number — David Garamond <lists@...6.isreserved.com>

1. Is there a way in Ruby to speed up 32bit integer arithmetics (only

43 messages 2004/01/12
[#89686] Re: faster integer arithmetics & arbitrary precision floating number — Ara.T.Howard@... 2004/01/12

On Tue, 13 Jan 2004, David Garamond wrote:

[#89709] Re: faster integer arithmetics & arbitrary precision floating number — Charles Mills <boson@...> 2004/01/12

What abouts Rubys design would make integer arithmetic slower than integer

[#89710] Re: faster integer arithmetics & arbitrary precision floating number — Dave Thomas <dave@...> 2004/01/12

[#89711] Re: faster integer arithmetics & arbitrary precision floating number — Charles Mills <boson@...> 2004/01/12

On Tue, 13 Jan 2004, Dave Thomas wrote:

[#89718] Getting the tail of a list? — Carsten Eckelmann <careck@...42.com>

Hi everybody,

19 messages 2004/01/12

[#89796] Ruby OS mentioned on /. — intc_ctor@... (Phil Tomson)

http://developers.slashdot.org/developers/04/01/13/0123250.shtml?tid=185&tid=190

20 messages 2004/01/13
[#89805] Re: Ruby OS mentioned on /. — Paul William <maillist@...> 2004/01/13

./ normally does not have vaporware... are a bunch of ruby (a very high

[#89806] Re: Ruby OS mentioned on /. — "Zach Dennis" <zdennis@...> 2004/01/13

Somehow i have this strange feeling that not all ruby peeps are strictly

[#89975] drb, firewall, ssh tunneling, and yield — Joel VanderWerf <vjoel@...>

14 messages 2004/01/16
[#89976] Re: drb, firewall, ssh tunneling, and yield — Nathaniel Talbott <nathaniel@...> 2004/01/16

On Jan 15, 2004, at 19:10, Joel VanderWerf wrote:

[#90013] Fighting Ruby's bad fame — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

42 messages 2004/01/16
[#90097] Re: Fighting Ruby's bad fame — ptkwt@... (Phil Tomson) 2004/01/18

In article <af53b0ba.0401171921.7cf9b9b7@posting.google.com>,

[#90023] Installing a program Unix-like — Malte Milatz <malteDELETETHIS@...>

Users of Linux, FreeBSD etc. are used to downloading an archive,

13 messages 2004/01/16

[#90077] long expression syntax — rick.hu@... (Rick Hu)

why do I get a syntax error for

13 messages 2004/01/17

[#90086] is Ruby the right language for these projects? — Ruby Baby <ruby@...>

Please forgive my self-centered question. I've been learning all about Ruby

16 messages 2004/01/18

[#90139] segfaults on mandrake... — Ferenc Engard <ferenc@...>

Hello,

16 messages 2004/01/18

[#90200] regex help — Chris Morris <chrismo@...>

I need a re such that:

18 messages 2004/01/19

[#90228] Re: New to Python: my impression v. Perl/Ruby — ptkwt@... (Phil Tomson)

In article <mailman.493.1074484056.12720.python-list@python.org>,

36 messages 2004/01/20
[#90292] Re: New to Python: my impression v. Perl/Ruby — Ville Vainio <ville.spamstermeister.vainio@...> 2004/01/20

>>>>> "Phil" == Phil Tomson <ptkwt@aracnet.com> writes:

[#90294] Re: New to Python: my impression v. Perl/Ruby — "Zach Dennis" <zdennis@...> 2004/01/20

Ville>Though "sending messages" to int literals is a syntax error.

[#90332] Re: New to Python: my impression v. Perl/Ruby — GGarramuno@... (GGarramuno) 2004/01/21

"Zach Dennis" <zdennis@mktec.com> wrote in message news:<AKEKIKLMCFIHPEAHKAAICEOHHFAA.zdennis@mktec.com>...

[#90333] Re: New to Python: my impression v. Perl/Ruby — Gregory Millam <walker@...> 2004/01/21

Received: Wed, 21 Jan 2004 16:59:59 +0900

[#90317] Re: Proposal for programming language of the year — "Volkmann, Mark" <Mark.Volkmann@...>

I think one of the main points of learning a new language each year is that

18 messages 2004/01/21

[#90354] Modules as namespace — gm@... (George Moschovitis)

Hello everyone,

16 messages 2004/01/21

[#90405] Very basic Ruby docs/books/tutorial? — Robert Feldt <feldt@...>

Hello,

12 messages 2004/01/22

[#90472] Ruby/Extensions v0.3 released — Gavin Sinclair <gsinclair@...>

A new version of Ruby/Extensions, a suite of useful methods added to

17 messages 2004/01/23

[#90505] Why is to_a going to be obsolete? — Patrick Bennett <patrick.bennett@...>

I find it immensely useful when dealing with arrays to be able to

25 messages 2004/01/23
[#90507] Re: Why is to_a going to be obsolete? — Gennady <gfb@...> 2004/01/23

Patrick Bennett wrote:

[#90510] Re: Why is to_a going to be obsolete? — Patrick Bennett <patrick.bennett@...> 2004/01/23

Hmmm, thanks, but it's a bit 'non-obvious' to casual Ruby programmers

[#90512] Re: Why is to_a going to be obsolete? — Gennady <gfb@...> 2004/01/23

[#90524] Re: Why is to_a going to be obsolete? — "T. Onoma" <transami@...> 2004/01/23

On Friday 23 January 2004 06:43 pm, Gennady wrote:

[#90598] perl bug File::Basename and Perl's nature — xah@... (Xah Lee)

Just bumped into another irresponsibility in perl.

19 messages 2004/01/25

[#90667] ruby-math and "why is ** not abelian?" — vanjac12@... (Van Jacques)

I was reading the 1st thread in the ruby-math discussion at

11 messages 2004/01/26

[#90750] choosing ruby? — Piergiuliano Bossi <p_bossi_AGAINST_SPAM@...>

We are on the way to start a new project, a web application with a bunch

20 messages 2004/01/27

[#90756] Editor — Safran von Twesla <me@...>

Hi,

20 messages 2004/01/27

[#90770] newbee question about "missing" hash methods +, += and << — benny <linux@...>

Hi,

25 messages 2004/01/27

[#90913] vimrc for Ruby or rubytidy — Theodore Knab <tjk@...>

Does someone have a '.vimrc' file they will share

17 messages 2004/01/29
[#90914] Re: vimrc for Ruby or rubytidy — "Gavin Sinclair" <gsinclair@...> 2004/01/29

> Does someone have a '.vimrc' file they will share

[#90971] time comparison — tony summerfelt <snowzone5@...>

i want to parse and trim a log file. the date format log file looks like:

13 messages 2004/01/29

[#91005] Ruby and Perl Integration — "John W. Long" <ws@...>

All this talk about RJNI has gotten me thinking. Has anyone attempted to

17 messages 2004/01/30
[#91007] Re: Ruby and Perl Integration — Thomas Adam <thomas_adam16@...> 2004/01/30

--- "John W. Long" <ws@johnwlong.com> wrote:

[#91056] principle of most suprise — tony summerfelt <snowzone5@...>

gah, ruby is doing it to me again:

31 messages 2004/01/30

[#91071] Accesing to private attributes — "Imobach =?iso-8859-15?q?Gonz=E1lez_Sosa?=" <imodev@...>

Hi all,

14 messages 2004/01/30

[#91088] flip flop operator and assignment — ptkwt@... (Phil Tomson)

I'm working on the pattern matching section for

25 messages 2004/01/31

[#91089] No difference between .. and ... flip/flop operators? — ptkwt@... (Phil Tomson)

50 messages 2004/01/31

[#91099] Ruby 1.8.1 REXML performance — Steven Jenkins <steven.jenkins@...>

I have a script that uses REXML to stream parse an XML file and load a

27 messages 2004/01/31

[#91104] graphics lib? — Alwin Blok <alwinblok@...>

Hello,

38 messages 2004/01/31
[#91262] Re: graphics lib? — Simon Strandgaard <neoneye@...> 2004/02/02

On Sun, 01 Feb 2004 16:18:50 -0600, Charles Comstock wrote:

[#91362] Re: graphics lib? — Charles Comstock <cc1@...> 2004/02/03

Simon Strandgaard wrote:

C++ from Ruby ARRRGGHH!!

From: Asfand Yar Qazi <im_not_giving_it_here@..._hate_spam.com>
Date: 2004-01-18 07:20:01 UTC
List: ruby-talk #90103
Yes, I know there's a wrapper available already that can wrap C++ 
exceptions in Ruby, but I want to do it myself as a learning exercise.

Anyway, could you look at the following test code that reveals the 
problem?  I just don't know what to do!  Are C++ exceptions in GCC 
incompatible with Ruby exceptions?  I think that's the problem, isn't it...

(I have put a link to an archive with these files, plus the library 
binary, here: http://users.wmin.ac.uk/~w9921783/ruby-test.tar.gz)

=====file Makefile
Test.so: ruby-test.cc
	g++ -shared -o $@ -I`ruby -rrbconfig \
	    -e 'puts Config::CONFIG["archdir"]'` $<

=====file t.rb
#!/usr/local/bin/ruby -w

require 'Test'

include Mod

Test.init
(1..20).each() do
     begin
	Test.init
     rescue CPP_Error => e
	puts("C++ exception '#{e.cppclass}' occured, message = \"#{e.message}\"");
     rescue Exception => e
	puts("Exception #{e.class.name} occured: #{e.message}");
     end
end

Test.deinit

=====file ruby-test.cc

#include "ruby.h"
#include <stdexcept>
#include <string>
#include <typeinfo>

namespace
{

struct Test
{
	static bool init_;

	static void
	init()
	{
		if(!init_)
			init_ = true;
		else
			throw std::runtime_error("DDStuff");
	}

	static bool
	is_init() {return init_;}

	static void
	deinit() {init_ = false;}
};

bool Test::init_ = false;

VALUE cTest;

/// Module
VALUE mMod;

/// C++ exception
VALUE eCPP_Error;

/// Define a class (as rb_define_class) under mMod
inline VALUE defclass(const char *name, VALUE super)
{
	return rb_define_class_under(mMod, name, super);
}

/// Convert boolean to Qtrue/Qfalse
inline VALUE convbool(bool arg) {if(arg)return Qtrue; else return Qfalse;}

/// Takes an exception 'e', gets its name and 'what' message, and uses
/// it to throw a Ruby exception
void
raise_ruby(std::exception& e)
{
	std::string classname = typeid(e).name();

/*
   COMMENT: This gives the error message show in Init_Test

*/
// 	VALUE excep = rb_funcall(eCPP_Error, rb_intern("new"), 1,
// 				 rb_str_new2(classname.c_str()));
// 	rb_raise(excep, e.what());



// COMMENT: WITH THE FOLLOWING instead of the above, when Test.init
// has been called a certain number of times, a segfault occurs

	std::string eval_string = "raise CPP_Error.new('" + classname
		+ "'), '" + e.what() + "'";
	rb_eval_string(eval_string.c_str());
}

/// @define CHECK_CPP Call given C++ code, and check it for
/// exceptions, throwing if necessary
#define CHECK_CPP(code) try {code;} catch(std::exception& e) 
{raise_ruby(e);}

// Test
VALUE
Test__init(VALUE self)
{
	CHECK_CPP(Test::init());
	return self;
}

VALUE
Test__is_init(VALUE self)
{
	return convbool(Test::is_init());
}

VALUE
Test__deinit(VALUE self)
{
	Test::deinit();
	return self;
}

// Call with 'cppclass'
VALUE
CPP_Error__initialize(int argc, VALUE* argv, VALUE self)
{
	VALUE argcppclass;
	VALUE argmessage;

	if(rb_scan_args(argc, argv, "12", &argcppclass, &argmessage) == 1)
		argmessage = rb_str_new2("");
	StringValue(argcppclass);
	rb_call_super(1, &argmessage);
	rb_iv_set(self, "@cppclass", argcppclass);

	return self;
}

VALUE
test(...)
{
// 	VALUE retval = INT2FIX(0);
// 	StringValue(retval);
// 	return retval;

	VALUE tmp = rb_funcall(eCPP_Error, rb_intern("new"),
			       1, rb_str_new2("AnException"));
	return tmp;

// 	rb_funcall(rb_mKernel, rb_intern("p"), 1,
// 			rb_funcall(eCPP_Error, rb_intern("inspect"), 0));
// 	return rb_funcall(eCPP_Error, rb_intern("inspect"), 0);
//	return eCPP_Error;
}

} // namespace

typedef VALUE(*rbfunk)(...);

extern "C" void Init_Test()
{
	// module Mod
	mMod = rb_define_module("Mod");

	rb_define_global_function("testsr", test, 0);

/*
COMMENT: Using raise-ruby.c block 1, regardless of which of the
following styles I try, I get the following:

../t.rb:10:in `init': undefined method `new' for 
Mod::CPP_Error:Mod::CPP_Error (NoMethodError)
	from ./t.rb:10
	from ./t.rb:8:in `each'
	from ./t.rb:8

However, see the 'raise_ruby' func above...
*/

	// STYLE1
	eCPP_Error = defclass("CPP_Error", rb_eRuntimeError);
	rb_define_method(eCPP_Error, "initialize",
			 (rbfunk)CPP_Error__initialize, -1);
	rb_eval_string("class Mod::CPP_Error; attr_reader(:cppclass);end");
	// END STYLE1

	// STYLE2
// 	rb_eval_string("module Mod\n"
// 		       "  class CPP_Error < RuntimeError\n"
// 		       "    def initialize(cppclass, message = '')\n"
// 		       "      super(message)\n"
// 		       "      @cppclass = cppclass\n"
// 		       "    end\n"
// 		       "    attr_reader(:cppclass)\n"
// 		       "  end\n"
// 		       "end\n");
// 	eCPP_Error = rb_eval_string("Mod::CPP_Error");
	// STYLE2

	cTest = defclass("Test", rb_cObject);
	rb_define_singleton_method(cTest, "init",
				   (rbfunk)Test__init, 0);
	rb_define_singleton_method(cTest, "is_init?",
				   (rbfunk)Test__is_init, 0);
	rb_define_singleton_method(cTest, "deinit",
				   (rbfunk)Test__deinit, 0);
}





--
http://www.it-is-truth.org/


In This Thread

Prev Next