[#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:19391] Re: Perl/Python/Ruby common backend (Parrot, can Ruby play too?)

From: "David Simmons" <pulsar@...>
Date: 2001-08-08 20:18:04 UTC
List: ruby-talk #19391
"Ned Konz" <ned@bike-nomad.com> wrote in message
news:Mvbc7.54318$WD1.3252627@e420r-atl2.usenetserver.com...
> On Wednesday 08 August 2001 12:20 am, Piers Cawley wrote:
> > Ned Konz <ned@bike-nomad.com> writes:
> >> Calling, say, $self->SUPER::method merely skips the
> > > current class (and only works if written in the namespace (package)
> > > of the class that's being defined, not dynamically as I've wanted it
> > > to).
> >
> > Don't get me started on this. See the debate on the subject I had with
> > perl5porters about a month back. And which, having looked up the
> > SmallTalk way of doing it, I may be returning too.
> >
> > Annoyingly, there seems to be no way of implementing a reliable
> > SUPER.pm which will do the right 'dynamic' thing, because perl doesn't
> > cache the appropriate information when it makes the function call.
>
> In Class::Prototyped we ended up having to use closures to get "proper"
super
> behavior dynamically.

Hmm. Being a Smalltalk implementor for the last decade or so...

The smalltalk semantics for "super" are to "lookup" a method implementation
by starting the message lookup from the "superclass" of the
method-dictionary (class) in which the super/calling (method with the code
using super) message is invoked.

I.e., search from the superclass of the (super) calling method's behavior.

In my latest Smalltalk implementation work, SmallScript, there is additional
syntax for expressing that such a lookup begin at a particular class within
the available set of superclasses of the method's behavior.

Class name: A.
Class name: B extends: A.
Class name: C extends: B implements: I1, I2, I3.
Class name: D extends: C implements: I4.

Method behavior: C [
blah

    super blah.     "implicitly searches starting at <I1>"

    <B>super blah.  "searches starting at <B>"

    <I2>super blah. "searches starting at <I2>"
].

The above method would always behave identically for instances of either <C>
or <D>. But, the internal mechanics are *not* statically bindable (they are
statically cacheable which enables faster than vtable invocation). The
reason it cannot be *statically* bound is that any operation at any time may
change the shape of <C>.

I.e., during the course of program execution the superclass of <C> may
change, or it may have interfaces added or removed from its implements set.
After all, classes are just objects.

Note: Interfaces are mixins that can provide concrete structure (fields) as
well as concrete (shared) behavior. They are not just "pure" specifications
as seen in languages like java :)
-----------------

QKS Smalltalk (SmallScript) provides first class namespaces and they play a
role in the method binding process. [actually this is all defined by the
virtual machines object model, and is not tied specifically to
Smalltalk/SmallScript].

Thus I can declare a "scoped" method which can only be invoked by a caller
who has dynamic access to that scope. Furthermore, in the face of multiple
implementations existing in different scopes which the caller may have
access to, the one chose will be the "best" fit based on scope distance from
the scope of the message being bound to a method.

Class name: K
{
    Method scope: private [
    blah
       ...only binds if callsite is a K method...
    ].

    Method scope: Foo [
    blah
       ...only binds if callsite has access to <Foo> scope...
    ].

    Method [
    blah
       ...can bind from anywhere...
    ].
}

"" Somewhere else, unrelated to prior code
Module name: Foo
{
    Eval [

        |anObject| := SomeSharedVariableOrExpressionReturningA_K.

        anObject.blah().     "" Would implicitly invoke the <Foo> variant
        anObject.#AOS.blah() "" Would explicitly invoke the unscoped variant
    ]
}

==================
Namespaces (scopes) simultaneously support both an inheritance (nested) and
a mixin (agregate) model. All classes act as namespaces. Any given
interfaces, modules, etc is just a class which supports the corresponding
semantics for interfaces and modules.

A given message bind to a given set of 0 or more methods is based on:

  a) Message scope (implicit or explicitly declared)
  b) The types of all the arguments (including the receiver
      or its surrogate -- #1,2,3 listed in the next paragraph)
  c) sandbox (execution scope) constraints
  d) special constraints for various message forms or bindings
     such as around, before, after behavior. Or managed objects
     delegation (on a per object basis), etc.

The lookup process is through the MI lattice of:

    1) an objects behavior tree
    2) for super, the explicit behavior provided or implicit
       superclass behavior of the method's class.
    3) a manager/prototype (per/instance) behavior tree.

The actual process of looking for appropriate methods in the
MI lattice is dynamic and operates through a multi-layer cache
architecture that supports demand loading/linking and automatic
method generation for implicit methods or foreign functions located
externally or in distributed processes.

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

So, a super lookup of a scoped message will do the right thing, even if the
object is managed (delegated behavior/proxy etc).

--
-- Dave S. [ http://smallscript.net ]
   Smalltalk for the AOS Platform and The Microsoft.NET Framework

>
> --
> Ned Konz
> currently: Stanwood, WA
> email:     ned@bike-nomad.com
> homepage:  http://bike-nomad.com
>
>


In This Thread