[#18974] Perl/Python/Ruby common backend (Perl6) — ptkwt@...1.aracnet.com (Phil Tomson)

There is a thread about using .NET's CLR as a backend for Ruby, but how

17 messages 2001/08/01

[#19064] ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — David Alan Black <dblack@...>

17 messages 2001/08/03
[#19184] Re: ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — John Carter <john.carter@...> 2001/08/06

On Fri, 3 Aug 2001, David Alan Black wrote:

[#19185] Re: ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — David Alan Black <dblack@...> 2001/08/06

Hello --

[#19186] Re: ANN: Code Amelioration Contest (presented by Ruby Conference 2001) — John Carter <john.carter@...> 2001/08/06

On Mon, 6 Aug 2001, David Alan Black wrote:

[#19125] My 1st look @ ruby: No prototypes and problem with String#gsub — stesch@... (Stefan Scholl)

My first ruby program:

23 messages 2001/08/04

[#19192] Some remarks from a nembie in Ruby — Renaud HEBERT <renaud.hebert@...>

After having read the book "Programming Ruby: The Pragmatic Programmer's

38 messages 2001/08/06

[#19269] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?) — ptkwt@...1.aracnet.com (Phil Tomson)

In article <72X97.12093$9i1.972452@e420r-atl1.usenetserver.com>,

50 messages 2001/08/07
[#19349] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?) — Mathieu Bouchard <matju@...> 2001/08/08

[#19456] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?) — Harry Ohlsen <harryo@...> 2001/08/09

Ned Konz wrote:

[#19451] Re: Help! I'm still confused about threadin g in the ML — "Morris, Chris" <chris.morris@...>

> Is there an Outlook option to turn on In-Reply-To or References

14 messages 2001/08/09
[#19453] Re: Help! I'm still confused about threadin g in the ML — Dave Thomas <Dave@...> 2001/08/09

"Morris, Chris" <chris.morris@snelling.com> writes:

[#19506] the way class variables work — David Alan Black <dblack@...>

Hello --

51 messages 2001/08/10
[#19511] Re: the way class variables work — Chris Uzdavinis <chris@...> 2001/08/11

David Alan Black <dblack@candle.superlink.net> writes:

[#19524] order and freedom in Ruby (was: Re: Re: the way class variables work) — David Alan Black <dblack@...> 2001/08/11

Hello --

[#19517] Why not?: Assigning to self — furufuru@... (Ryo Furue)

Hi there,

55 messages 2001/08/11
[#19689] Re: Why not?: Assigning to self — Ron Jeffries <ronjeffries@...> 2001/08/14

On 13 Aug 2001 20:59:54 -0700, furufuru@ccsr.u-tokyo.ac.jp (Ryo Furue)

[#19694] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 05:09 am, Ron Jeffries wrote:

[#19695] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19696] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 07:51 am, you wrote:

[#19697] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19700] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 08:27 am, you wrote:

[#19701] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19703] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 09:05 am, Guy Decoux wrote:

[#19704] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19708] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 09:27 am, you wrote:

[#19709] Re: Why not?: Assigning to self — ts <decoux@...> 2001/08/14

>>>>> "N" == Ned Konz <ned@bike-nomad.com> writes:

[#19713] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/14

On Tuesday 14 August 2001 09:45 am, you wrote:

[#19750] Re: Why not?: Assigning to self — matz@... (Yukihiro Matsumoto) 2001/08/15

Hi,

[#19819] Re: Why not?: Assigning to self — Ned Konz <ned@...> 2001/08/15

On Tuesday 14 August 2001 08:14 pm, matz wrote:

[#19852] Re: Why not?: Assigning to self — matz@... (Yukihiro Matsumoto) 2001/08/16

Hi,

[#19857] Re: Why not?: Assigning to self — "Florian G. Pflug" <fgp@...> 2001/08/16

On Thu, Aug 16, 2001 at 11:05:59AM +0900, Yukihiro Matsumoto wrote:

[#19858] Re: Why not?: Assigning to self — matz@... (Yukihiro Matsumoto) 2001/08/16

Hi,

[#19867] Re: Why not?: Assigning to self — "Pit Capitain" <pit@...> 2001/08/16

Just a followup at (my) current end of the thread:

[#19550] Forced garbage collection — Lars Christensen <larsch@...>

14 messages 2001/08/11
[#19562] Re: Forced garbage collection — "Nat Pryce" <nat.pryce@...13media.com> 2001/08/12

From: "Lars Christensen" <larsch@cs.auc.dk>

[#19551] /.ed again — Tobias Reif <tobiasreif@...>

Ruy gets slasdotted again ;)

19 messages 2001/08/11

[#19650] Ruby Newbie mailing list — Michael Pence <mikepence@...>

Hello all.

14 messages 2001/08/13
[#19656] RE: Ruby Newbie mailing list — "Louis Brothers" <lcb134@...> 2001/08/13

We had a similar discussion on the OmniWeb Objective-C mailing list not to

[#19659] Re: Ruby Newbie mailing list — Michael Pence <mikepence@...> 2001/08/13

I appreciate your references to Objectionable-C ;-)

[#19685] Compiling Ruby with cygwin and Tk support — Manuel Zabelt <ng@...>

Hello!

13 messages 2001/08/14

[#19718] General (GUI/license) questions — Ryan Tarpine <rtarpine@...>

First: Kero commented in the description of his new Ruby Agenda program

18 messages 2001/08/14

[#19755] "new" returning nil: how to report the failure of object creation — furufuru@... (Ryo Furue)

Hi there,

14 messages 2001/08/15

[#19758] The GUI poll is in, and the results are surprising — Dave Thomas <Dave@...>

40 messages 2001/08/15
[#19774] Re: The GUI poll is in, and the results are surprising — Lars Christensen <larsch@...> 2001/08/15

On Wed, 15 Aug 2001, Dave Thomas wrote:

[#19784] Re: The GUI poll is in, and the results aresurprising — "Lyle Johnson" <ljohnson@...> 2001/08/15

> Please don't forget what Ruby is all about in this discussion! I think

[#19824] Ruby GUI — "Hal E. Fulton" <hal9000@...>

The concept of a new GUI is somewhat appealing,

16 messages 2001/08/15

[#20033] Ruby Article — Joshua Drake <jd.nospam@...>

Hello,

38 messages 2001/08/20

[#20127] Another Possible RCR - Wrappers via Mixins — Stephen White <spwhite@...>

The main difference between mix-ins and multiple inheritence is (to my understanding) that parent classes do not call child code, but mix-ins do.

15 messages 2001/08/22

[#20135] Bruce Eckel's criticism of Ruby — Ned Konz <ned@...>

Python.org links to http://www.mindview.net/Etc/notes.html#Ruby , saying

24 messages 2001/08/22

[#20183] ++ Operator — kamphausen@... (SKa)

Dear Community,

35 messages 2001/08/23
[#20234] Re: ++ Operator — Dave Thomas <Dave@...> 2001/08/24

matz@ruby-lang.org (Yukihiro Matsumoto) writes:

[#20236] Re: ++ Operator — matz@... (Yukihiro Matsumoto) 2001/08/24

Hi,

[#20209] In Ruby 0 is true but nil is false.. or how to shoot yourself?.. — Guillaume Cottenceau <gc@...>

I have a simple Audio-CD database (using CSV format). I was writing a

11 messages 2001/08/23

[#20254] File.readline(s) — Michael Husmann <michael.husmann@...>

I am reading a 55MB ASCII file by using File.readline(s) which takes on

14 messages 2001/08/24

[#20303] New Windows InstallShield version of Ruby — Andrew Hunt <andy@...>

19 messages 2001/08/24

[#20307] Backwards language — "Sean Middleditch" <elanthis@...>

Greetings,

30 messages 2001/08/24

[ruby-talk:19062] RE: QNX port

From: "Roland Priem" <rpriem@...>
Date: 2001-08-03 12:32:49 UTC
List: ruby-talk #19062

Eli Green [mailto:eli.green@codedogs.ca] wrote:

> 	I've been trying to get Ruby to compile/run under QNX's
> RTOS (the free
> download one), and it's remarkable how easy it's been so far... =)

> The interpreter itself works just fine:

Did you try "make test"?

> However, the minute
> I try and load a .so:
>
> manhattan ~% ruby
> require 'socket'
> unknown symbol: rb_eSecurityError
> unknown symbol: rb_cSymbol
> ... it goes on like this for a while ...

I ported ruby to QNX a while ago (using QNX 6.0B, I'll give the new 6.1 a
try in a few days), applying only some minor changes. I'm using this version
of ruby for nearly two months now without problems.

Matz: Could you please have a look at the change notes at the end of this
message and include them in the next release? Thanks in advance...

Roland



================================

Changes to ruby-1.6.4 (2001-06-04)


config.guess/config.sub:

Updated with a more recent version (the ones supplied with QNX RTP).


dir.c:

fnmatch already defined in C library (fnmatch.h). Renamed static function
fnmatch to _rb_fnmatch. Maybe the version from the C library can be used
instead. It has the same signature, but there may be subtle differences.


io.c:

Added (somewhere at the top):

#ifdef __QNXNTO__
#include "unix.h"
#endif

This is needed to define NOFILES.


signal.c:

Signal handlers are not properly set if SA_RESTART is used ("make test"
fails).
Added at line 296:

#ifdef SA_RESTART
  #ifndef __QNXNTO__
    sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
  #endif
#endif


eval.c:

somewhere at the beginning (around line 100) added:

#ifdef __QNXNTO__
#include <time.h>
#include <sys/siginfo.h>
#endif


defines.h

line 76:

add ||defined(__QNXNTO__):

#if defined(DJGPP) || defined(__BOW__) || defined(__QNXNTO__)
#undef HAVE_SETITIMER
#endif

setitimer() only supports ITIMER_REAL in QNX 6.0, which cannot be used. I
tried to simulate ITIMER_VIRTUAL with POSIX timers (see below), but this
does not work reliably.


ext/socket.c

line 1517:

#if !defined(NT) && !defined(__BEOS__) && !defined(__EMX__) &&
!defined(__QNXNTO__)

Up to now socketpair() is not support in QNX 6 (although it might be soon).



configure:

line 4674:

added:

	nto-qnx*)		DLDFLAGS="-L/lib -L/usr/lib -L/usr/local/lib"
			LDSHARED='ld -Bshareable -x'
			LDFLAGS="-L/lib -L/usr/lib -L/usr/local/lib"
			rb_cv_dlopen=yes;;


Note: This change should really go into configure.in, but I don't know
enough about autoconf to mess with that file.


lib/irb/locale.rb

line 132:

Change
      tmp_base = path.tr("./:", "___")
to
      tmp_base = path.tr("./:", "___")[1..30]

This is necessary because the QNX filesystem only supports filenames with up
to 48 characters.


=====================


Here is my try to simulate ITIMER_VIRTUAL to make thread switching more
efficient. This seems to work on principle, but can make blocking system
calls return prematurely (with EINTR result). Ruby doesn't like this...

eval.c:

around lines 8110 / 8122:  (rb_thread_start_timer and rb_thread_stop_timer)

Only TIMER_REAL is supported by setitimer on QNX RTP, so the ITIMER
functionality has to be
simulated by using POSIX timers. Change thread_start_timer /
thread_stop_timer like this:


#if defined(HAVE_SETITIMER)
static int thread_init = 0;

#ifdef __QNXNTO__
static timer_t thread_qnx6_timer_id = 0;
#endif

void
rb_thread_start_timer()
{
#ifdef __QNXNTO__

    struct sigevent sigevt;
    struct itimerspec tval;

    if (!thread_init) return;

    if (!thread_qnx6_timer_id) {
        SIGEV_SIGNAL_INIT (&sigevt, SIGVTALRM);
        timer_create (CLOCK_REALTIME, &sigevt, &thread_qnx6_timer_id);
    }

    tval.it_interval.tv_sec = 0;
    tval.it_interval.tv_nsec = 10000000;
    tval.it_value = tval.it_interval;
    timer_settime (thread_qnx6_timer_id, 0, &tval, NULL);

#else

    struct itimerval tval;

    if (!thread_init) return;
    tval.it_interval.tv_sec = 0;
    tval.it_interval.tv_usec = 10000;
    tval.it_value = tval.it_interval;
    setitimer(ITIMER_VIRTUAL, &tval, NULL);

#endif
}

void
rb_thread_stop_timer()
{
#ifdef __QNXNTO__

    struct itimerspec tval;

    if (!thread_init) return;
    if (!thread_qnx6_timer_id) return;

    tval.it_interval.tv_sec = 0;
    tval.it_interval.tv_nsec = 0;
    tval.it_value = tval.it_interval;
    timer_settime (thread_qnx6_timer_id, 0, &tval, NULL);

#else

    struct itimerval tval;

    if (!thread_init) return;
    tval.it_interval.tv_sec = 0;
    tval.it_interval.tv_usec = 0;
    tval.it_value = tval.it_interval;
    setitimer(ITIMER_VIRTUAL, &tval, NULL);

#endif
}
#endif



In This Thread