[#24183] "yield called out of block" — Mark Slagell <ms@...>

Having just talked with a nuby in email, I believe this error message

27 messages 2001/11/02
[#24243] Re: "yield called out of block" — matz@... (Yukihiro Matsumoto) 2001/11/03

Hi,

[#24223] Too much eval evil? (tell me why I shouldn't do this) — gandy@... (Thomas Gandy)

I've been doodling with Ruby (experimenting with it in order to figure

13 messages 2001/11/02

[#24335] Joys of eval — Albert Wagner <alwagner@...>

A few weeks ago I posted a request for help with regexp, split, scan, et.

30 messages 2001/11/04
[#24337] Re: Joys of eval — Sean Middleditch <elanthis@...> 2001/11/04

On Sun, 2001-11-04 at 13:29, Albert Wagner wrote:

[#24338] Re: Joys of eval — Albert Wagner <alwagner@...> 2001/11/04

On Sunday 04 November 2001 12:43 pm, you wrote:

[#24339] Re: Joys of eval — Sean Middleditch <elanthis@...> 2001/11/04

On Sun, 2001-11-04 at 14:01, Albert Wagner wrote:

[#24340] Re: Joys of eval — Todd Gillespie <toddg@...> 2001/11/04

On Mon, 5 Nov 2001, Sean Middleditch wrote:

[#24351] Re: Joys of eval — Sean Middleditch <elanthis@...> 2001/11/04

On Sun, 2001-11-04 at 14:31, Todd Gillespie wrote:

[#24466] Why is ruby slow (compared to perl) — "Aqil Azmi" <aazmi@...>

Hello,

29 messages 2001/11/06
[#24688] Re: Why is ruby slow (compared to perl) — Sean Russell <ser@...> 2001/11/08

Niko Schwarz wrote:

[#24694] Re: Why is ruby slow (compared to perl) — Robert Feldt <feldt@...> 2001/11/08

On Fri, 9 Nov 2001, Sean Russell wrote:

[#24511] kill rdtool? — Stefan Nobis <stefan@...>

Hi.

51 messages 2001/11/07
[#24530] RE: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24534] Re: kill rdtool? — Pierre-Charles David <Pierre-Charles.David@...> 2001/11/07

Mark Hahn wrote:

[#24535] Re: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24536] Re: kill rdtool? — Eric Lee Green <eric@...> 2001/11/07

On Wednesday 07 November 2001 09:34 am, Mark Hahn wrote:

[#24538] Re: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24540] Re: kill rdtool? — Eric Lee Green <eric@...> 2001/11/07

On Wednesday 07 November 2001 10:04 am, Mark Hahn wrote:

[#24541] Re: kill rdtool? — "Mark Hahn" <mchahn@...> 2001/11/07

[#24542] Re: kill rdtool? — Eric Lee Green <eric@...> 2001/11/07

On Wednesday 07 November 2001 10:14 am, Mark Hahn wrote:

[#24666] I've ported the python nntplib class to Ruby. I will be adding comments to it soon. Here it is for public commentary and criticism — jheard <jheard@...>

require 'socket'

9 messages 2001/11/08

[#24698] ruby and webservices — Markus Jais <info@...>

hello

46 messages 2001/11/08
[#24715] Re: ruby and webservices — ptkwt@...1.aracnet.com (Phil Tomson) 2001/11/09

In article <9setsu$1378d4$1@ID-75083.news.dfncis.de>,

[#24730] Re: ruby and webservices — "Rich Kilmer" <rich@...> 2001/11/09

Actually...its me.

[#24801] Re: XML libraries (Re: Re: ruby and webservices) — Tobias Reif <tobiasreif@...> 2001/11/09

Yukihiro Matsumoto wrote:

[#24861] Re: XML libraries (Re: Re: ruby and webservices) — TAKAHASHI Masayoshi <maki@...> 2001/11/11

Hi,

[#24877] Re: XML libraries (Re: Re: ruby and webservices) — Bob Hutchison <hutch@...> 2001/11/11

On 01/11/11 2:20 AM, "TAKAHASHI Masayoshi" <maki@open-news.com> wrote:

[#24700] Strange behaviour of Array#[] — Michael Neumann <neumann@...>

Hi,

12 messages 2001/11/08

[#24750] BUG: net/telnet.rb gives select invalid argument excepition — Ville Mattila <mulperi@...>

20 messages 2001/11/09

[#24810] Ruby-Tk; feature/bug/misunderstanding? mouse-location during when a key is pressed in the presence of TkMenubutton — Armin Roehrl <armin@...>

Hi,

8 messages 2001/11/09

[#24820] ANN: Triple-R - The Rubicon Results Repository — Dave Thomas <Dave@...>

16 messages 2001/11/10

[#24926] XML support in the standard lib — Tobias Reif <tobiasreif@...>

Hi,

128 messages 2001/11/12
[#24928] Re: XML support in the standard lib — Bob Hutchison <hutch@...> 2001/11/12

[#25011] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

PaulC wrote:

[#25014] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

P.S.

[#25023] Re: XML support in the standard lib; what exactly? — Bob Hutchison <hutch@...> 2001/11/13

On 01/11/13 9:56 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:

[#25027] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

Bob Hutchison wrote:

[#25037] Re: XML support in the standard lib; what exactly? — Bob Hutchison <hutch@...> 2001/11/13

On 01/11/13 11:21 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:

[#25018] Re: XML support in the standard lib; what exactly? — "Nat Pryce" <nat.pryce@...13media.com> 2001/11/13

The DOM is a pretty awkward API to both use and implement. An API based on

[#25126] Re: XML support in the standard lib; what exactly? — "James Britt (rubydev)" <james@...> 2001/11/14

>

[#25138] Re: XML support in the standard lib; what exactly? — "Simon St.Laurent" <simonstl@...> 2001/11/14

On Tue, 2001-11-13 at 20:53, James Britt (rubydev) wrote:

[#25151] Re: XML support in the standard lib; whatexactly? — "James Britt (rubydev)" <james@...> 2001/11/14

[#25202] Re: XML support in the standard lib;whatexactly? — "Nat Pryce" <nat.pryce@...13media.com> 2001/11/14

From: "Simon St.Laurent" <simonstl@simonstl.com>

[#25231] Re: XML support in the standard lib;whatexactly? — "James Britt (rubydev)" <james@...> 2001/11/15

[#25250] Re: XML support in the standard lib;whatexactly? — Tobias Reif <tobiasreif@...> 2001/11/15

James Britt (rubydev) wrote:

[#25251] Re: XML support in the standard lib;whatexactly? — Robert Feldt <feldt@...> 2001/11/15

On Thu, 15 Nov 2001, Tobias Reif wrote:

[#25020] Re: XML support in the standard lib; what exactly? — Robert Feldt <feldt@...> 2001/11/13

On Wed, 14 Nov 2001, Nat Pryce wrote:

[#25059] Re: XML support in the standard lib; what exactly? — Sean Russell <ser@...> 2001/11/13

Robert Feldt wrote:

[#25078] Re: XML support in the standard lib; what exactly? — Robert Feldt <feldt@...> 2001/11/13

On Wed, 14 Nov 2001, Sean Russell wrote:

[#25080] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/13

Hi all XMLers,

[#25102] Re: XML support in the standard lib; what exactly? — David Alan Black <dblack@...> 2001/11/13

Hello --

[#25157] Re: XML support in the standard lib; what exactly? — Tobias Reif <tobiasreif@...> 2001/11/14

Dave Thomas wrote:

[#25170] Re: XML support in the standard lib; what exactly? — chad fowler <chadfowler@...> 2001/11/14

[#24948] Refactoring tool for Ruby... — Stephan K舂per <Stephan.Kaemper@...>

Just being curious if someone has worked on a refactoring tool for

12 messages 2001/11/12

[#24955] Teach your kid math w/ruby — pete@... (Peter J. Kernan)

14 messages 2001/11/12

[#24958] Linux Magazine article — Dave Thomas <Dave@...>

53 messages 2001/11/12
[#26103] Re: Linux Magazine article — "Bill Kelly" <billk@...> 2001/11/22

[#26116] Re: Linux Magazine article — Jos Backus <josb@...> 2001/11/22

On Thu, Nov 22, 2001 at 10:20:04AM +0900, Bill Kelly wrote:

[#25029] Set class in Ruby — Yuri Leikind <YuriLeikind@...>

Hello all Ruby coders,

18 messages 2001/11/13

[#25082] exiting blox — Niko Schwarz <niko.schwarz@...>

Hi there,

17 messages 2001/11/13

[#25101] ANN: REXML 1.1a3 — Sean Russell <ser@...>

Hiho,

23 messages 2001/11/13

[#25276] GC question — Tony Smith <tony@...>

Hi there!

20 messages 2001/11/15
[#25777] Ruby in windows — "Mark Hahn" <mchahn@...> 2001/11/18

[#25788] RE: Ruby in windows — "Mark Hahn" <mchahn@...> 2001/11/18

This is what I get from command line:

[#25291] Re: ANN: REXML 1.1a3 — Ben Schumacher <BSchumacher@...>

Tobias Reif wrote:

24 messages 2001/11/15

[#25383] Arrays, iterators, and map/collect — "Hal E. Fulton" <hal9000@...>

Hello all...

12 messages 2001/11/16

[#25432] Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "Christian Boos" <cboos@...>

32 messages 2001/11/16
[#25678] RE: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "James Britt (rubydev)" <james@...> 2001/11/16

> I may have missed something, but the original question that started the

[#25722] RE: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — Sean Russell <ser@...> 2001/11/17

James Britt (rubydev) wrote:

[#25732] Re: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "James Britt (rubydev)" <james@...> 2001/11/17

>

[#25850] Re: Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — Sean Russell <ser@...> 2001/11/19

James Britt (rubydev) wrote:

[#25689] Would like feedback on script to remove unused import statements in java — "Thomas R. Corbin" <tc@...>

I use this script all the time when developing in java, it really helps a

20 messages 2001/11/17
[#25829] Re: Would like feedback on script to remove unused import statements in java — "Ralph Mason" <ralph.mason@...> 2001/11/19

Is there any documentation on this anywhere?

[#25830] Re: Would like feedback on script to remove unused import statements in java — ts <decoux@...> 2001/11/19

>>>>> "R" == Ralph Mason <ralph.mason@telogis.com> writes:

[#25916] Why the appended '\n' in IO.readlines — Jim Freeze <jim@...> 2001/11/20

Hi

[#25753] Misunderstanding or bug? — Dave Thomas <Dave@...>

18 messages 2001/11/18

[#25808] KDE or GNOME curiosity question... — Robert Hicks <bobhicks@...>

I was just curious which desktop (of the two mentioned in the subject)

80 messages 2001/11/19
[#26360] Re: [OT] Re: KDE or GNOME curiosity question... — "Bill Kelly" <billk@...> 2001/11/24

[#26374] Re: [OT] Re: KDE or GNOME curiosity question... — "Mark Hahn" <mchahn@...> 2001/11/24

[#26518] Re: [OT] Re: KDE or GNOME curiosity question... — Paul Brannan <pbrannan@...> 2001/11/26

> How hard would it be to have an option to use reference counting in a

[#26544] Re: [OT] Re: KDE or GNOME curiosity question... — "mark hahn" <mchahn@...> 2001/11/26

> Circular references will cause the object to stay around indefinitely

[#26746] Re: [OT] Re: KDE or GNOME curiosity question... — matz@... (Yukihiro Matsumoto) 2001/11/28

Hi,

[#26825] RE: Ref Counting (was KDE or GNOME curiosity question...) — "Mark Hahn" <mchahn@...> 2001/11/28

[#26827] Re: Ref Counting (was KDE or GNOME curiosity question...) — "Matt Armstrong" <matt+dated+1007407366.0f6d51@...> 2001/11/28

"Mark Hahn" <mchahn@facelink.com> writes:

[#25861] A bug invoking a method with send? — chr_news@... (chr_news@...)

Hi,

12 messages 2001/11/19

[#25907] String#== : Why not error with different type? — furufuru@... (Ryo Furue)

Hi there,

17 messages 2001/11/20

[#25954] a quick question — Tobias DiPasquale <anany@...>

Hi all,

21 messages 2001/11/20
[#25959] PocketPC — "Chad Fowler" <chadfowler@...> 2001/11/20

Has anyone gotten Ruby running (perhaps in some limited form) on the

[#26006] R: Re: Hello World considered harmful — Alessandro Caruso <a.caruso@...>

I thought the main reason people are moving towards Ruby instead of keep

19 messages 2001/11/21
[#26023] Re: R: Re: Hello World considered harmful — Dave Thomas <Dave@...> 2001/11/21

Alessandro Caruso <a.caruso@creditonline.it> writes:

[#26029] Re: R: Re: Hello World considered harmful — Erik B虍fors <erik@...> 2001/11/21

On Wed, 2001-11-21 at 15:31, Dave Thomas wrote:

[#26126] Conformance Test of XML Parsers in Ruby(20011122) — TAKAHASHI Masayoshi <maki@...>

Hi all,

27 messages 2001/11/22
[#26128] Re: Conformance Test of XML Parsers in Ruby(20011122) — Tobias Reif <tobiasreif@...> 2001/11/22

TAKAHASHI Masayoshi wrote:

[#26134] Re: Conformance Test of XML Parsers in Ruby(20011122) — David Alan Black <dblack@...> 2001/11/22

Hello --

[#26145] Re: Conformance Test of XML Parsers in Ruby(20011122) — Kevin Smith <kevinbsmith@...> 2001/11/22

--- David Alan Black <dblack@candle.superlink.net

[#26181] Re: NQXML Conformance (was Re: Conformance Test of XML Parsers in Ruby(20011122)) — martin@... (Martin v. Loewis) 2001/11/22

Jim Menard <jimm@io.com> writes:

[#26141] Passing class names to constructors. — Hugh Sasse Staff Elec Eng <hgs@...>

If I want to create a variable number of objects, all of

14 messages 2001/11/22

[#26205] Book "Rub in 21 days" Table of contents online — Markus Jais <mjais@...>

hi

17 messages 2001/11/23

[#26214] generating and serving SVG — Tobias Reif <tobiasreif@...>

Hi,

39 messages 2001/11/23
[#26215] Re: generating and serving SVG — Robert Feldt <feldt@...> 2001/11/23

On Fri, 23 Nov 2001, Tobias Reif wrote:

[#26270] Table: Ruby versus Smalltalk, Objective-C, C++, Java; — Armin Roehrl <armin@...>

Hi,

28 messages 2001/11/24

[#26293] The results are in... — Dave Thomas <Dave@...>

28 messages 2001/11/24
[#26365] Re: The results are in... — Albert Wagner <alwagner@...> 2001/11/24

<snip>

[#26377] Re: The results are in... — Robert Feldt <feldt@...> 2001/11/24

On Sun, 25 Nov 2001, Albert Wagner wrote:

[#26389] Re: The results are in... — Albert Wagner <alwagner@...> 2001/11/25

On Saturday 24 November 2001 05:03 pm, you wrote:

[#26391] Re: The results are in... — Robert Feldt <feldt@...> 2001/11/25

On Sun, 25 Nov 2001, Albert Wagner wrote:

[#26337] Re: Table: Ruby versus Smalltalk, Objective-C, C++, Java; — "john%johnknight.com@..." <john%johnknight.com@...>

16 messages 2001/11/24

[#26362] Selector Namespaces: A Standard Feature for Smalltalk? — "David Simmons" <david.simmons@...>

Here is an incentive for classic Smalltalk evolution...

26 messages 2001/11/24

[#26537] Ruby vs. Python: Decisions, Decisions — "Bob Calco" <rcalco@...>

Everyone:

32 messages 2001/11/26

[#26557] Re: Ruby vs. Python: Decisions, Decisions — "Mike Wilson" <wmwilson01@...>

21 messages 2001/11/26

[#26651] Vote in the current poll! — Robert Feldt <feldt@...>

Hi,

26 messages 2001/11/27
[#26685] Re: Vote in the current poll! — ptkwt@...1.aracnet.com (Phil Tomson) 2001/11/27

In article <Pine.GSO.4.21.0111271419390.9896-100000@godzilla.ce.chalmers.se>,

[#26702] Re: Vote in the current poll! — Robert Feldt <feldt@...> 2001/11/27

On Wed, 28 Nov 2001, Phil Tomson wrote:

[#26752] Anyone know of a Regexp pattern random string generator? — "Ross Shaw" <rshaw1961@...>

I'm looking for some Ruby that given a Regexp pattern will generate a random

10 messages 2001/11/28

[#26782] RE: overload possible? — Wyss Clemens <WYS@...>

No, UNLESS you ask Guy Decoux (ts) to give you his *extension*

31 messages 2001/11/28
[#26791] Re: overload possible? — ts <decoux@...> 2001/11/28

>>>>> "W" == Wyss Clemens <WYS@helbling.ch> writes:

[#26792] Re: overload possible? — Robert Feldt <feldt@...> 2001/11/28

On Wed, 28 Nov 2001, ts wrote:

[#26847] Re: overload possible? — "Harry Ohlsen" <harryo@...> 2001/11/28

Here's a slightly better version, which also fixes the problem that

[#26860] Re: overload possible? — nobu.nokada@... 2001/11/29

At Thu, 29 Nov 2001 08:13:36 +0900,

[#26861] Re: overload possible? — "Rich Kilmer" <rich@...> 2001/11/29

excellent idea...how about this refactoring...

[#26894] short article draft for review — Tobias Reif <tobiasreif@...>

Hi,

26 messages 2001/11/29
[#26898] Re: short article draft for review — David Alan Black <dblack@...> 2001/11/29

Hi --

[#26899] Re: short article draft for review — Tobias Reif <tobiasreif@...> 2001/11/29

David,

[#26902] Re: short article draft for review — David Alan Black <dblack@...> 2001/11/29

Hi --

[#26973] thoughts on virtual base classes, interfaces — ptkwt@...1.aracnet.com (Phil Tomson)

16 messages 2001/11/29

[#26976] first class functions in Ruby — "MikkelFJ" <mikkelj-anti-spam@...1.dknet.dk>

In the thread on language design, I mentioned a wish for functions as first

15 messages 2001/11/29

[#26984] Can someone explain TupleSpaces? — ptkwt@...1.aracnet.com (Phil Tomson)

I looked at the examples that came with drb, but I'm still not quite

16 messages 2001/11/29

[#27054] Using Enumerable — Peter Hickman <peter@...>

Im trying to write my own each method for a 'sort of' range class that

19 messages 2001/11/30
[#27057] Re: Using Enumerable — David Alan Black <dblack@...> 2001/11/30

Hello --

[#27060] Re: Using Enumerable — Peter Hickman <peter@...> 2001/11/30

Thanks to all who replied, like all ruby it was alot simpler than I

[#27066] Musing — Dave Thomas <Dave@...>

32 messages 2001/11/30
[#27079] RE: Musing — "Rich Kilmer" <rich@...> 2001/11/30

Do it Dude!

[ruby-talk:26403] Re: Table: Ruby versus Smalltalk, Objective-C, C++, Java;

From: "David Simmons" <david.simmons@...>
Date: 2001-11-25 01:39:15 UTC
List: ruby-talk #26403
"Pixel" <pixel@mandrakesoft.com> wrote in message
news:lyherj7mk5.fsf@leia.mandrakesoft.com...
> "David Simmons" <david.simmons@smallscript.net> writes:
>
> [...]
>
> > Overloading is the static-binding (language) name. Multi-methods is
> > the dynamic-binding (language) name. Some authors prefer to write it
> > as "multimethods" e.g., Art of the Metaobject Protocol and various
> > other excellent lisp references.
> [...]
> > However, be they statically or dynamically bound, the principle of
> > the facility is the same: in statically typed and analyzed/compiled
> languages
> > the binding (based on argument types) takes place at compile-time;
> > in dynamically typed languages the binding (based on argument types)
> > takes place at runtime. That principle being the use of all the
> > argument types
> as
> > predicates in the binding process, rather than just using the
> > method/function name (and possibly the receiver's type).
>
> beurk, i don't like this.

Yes, but if you follow this principle it leads to much clearer understanding
of the problems one finds in most statically typed languages w.r.t.
covariance and overloading. There is only one correct set of semantics, and
it is broken in most static type language implementations.

>
> multiple dispatch is very seldom present in dynamic languages since
> the only typed parameter is the object. dynamic languages with
> optional type annotation
> can have multiple dispatch (dylan, CLOS).

That statement is a bit circular. Most dynamic languages do not support
multi-method binding/dispatch. Ergo, all the arguments to their methods are
of type <Object/any>.

For those languages which do provide multi-method dispatch there is often
quite heavy use of the facility for some problem domains and hence you must
look at particular code bases. Within core language libraries, the most
obvious examples of the use of multi-methods show up in numerics and to a
lesser degree in iterators and collections.

In dynamic languages which lack multi-methods, we see "double-dispatching"
(a poor-man's workaround) for receiver+1arg cases where all the types are
known up front at design time [i.e., no 3rd party development or late
deployment time integration issues].

I am not sure why you mentioned these generally well understood facts [at
least they are generally well understood within the dynamic language
implementation community].

>
> >
> > This requires significantly more precise explanation to present the
> issues
> > properly for languages that have static typing and limited dynamic
> typing
> > facilities [which leads to type-case expressions that are runtime
> checked
> > rather than using modern-adaptive-dynamic binding-techniques
> > developed
> in
> > the mid-80's].
> >
> > This is "closely" related to my comments on C++ lacking "Calltime
> Dispatch
> > Binding". I.e., C++ has static-overloading but lacks
> > calltime-dispatch-binding facilities to be able to provide
> runtime/calltime
> > overloading.
>
> like nearly every OO languages, C++ has runtime dispatch only based on
> the type of the object, not on the argument types. Dispatch on
> argument types is decided at compile time. This is not multiple
> dispatch (also called
> multi-methods)
>
> cf the Castagna's nice paper
> http://citeseer.nj.nec.com/castagna95covariance.html

Sorry, I could not access the paper on that site without an ACM online
library membership. Feel free to send me a PDF if available.

>
>
> > If it had such facilities then it could, at runtime, truly dispatch
> > on one or more parameters to a function (including <this> as a
> > parameter).
>
> Java, C#... are in the same category

I agree, they are broken. But <g> you are preaching to the choir; I am a
dynamic language advocate, it is where I have spent my time over the last
ten years pioneering new facilities and advancing the state of the art.
Note: I include scripting languages into the dynamic language category.

That's one reason why Microsoft asked me to get involved with the .NET
architecture and its support for dynamic languages. It is an activity that I
will be continuing to interact with Microsoft in evolving over the coming
years.

All the "crap" regarding genericity in Java [and C#] would never have been
an issue if they did away with (or offered alternatives to) the VTable
dispatch mechanism -- which is something I appear to be influencing the
thinking on at Microsoft. It would also be trivial to inherently provide
proper AOP if true predicate based calltime binding and dispatch was
performed. NOTE: I am being very careful to stay away from the potentially
dodgy term "dynamic binding" because, like the broad use [and now relatively
meaningless] term object-oriented, it has become rather polluted.

Similar issues occur with static language notions of sealed and final as
well as interfaces.  And closely related is the need for selector
namespaces, which I invented in 1996. Which, to my great satisfaction, are
now going to be a part of the ECMAScript (JavaScript 2.0) standard. The
ECMAScript selector namespace design, as far as I known, is unrelated to my
work -- which is what makes it so satisfying because it means that
independent parties trying to solve similar problems came to the same
fundamental conclusions about its importance.

>
> http://people.mandrakesoft.com/~prigaux/overloading2.java

Sure, the example is clearly illustrating the problem. Static type binding
of dynamic type information does not work. I.e., languages which only have
static binding cannot provide proper semantics for method-implementation
selection based on argument types.

Dynamically typed languages with static language optimization features and
adaptive compilation can provide these features and do so at speeds that are
competitive with or better than C++. But, it is a much harder problem if
there is little or no declared type information; because general adaptive
compilation optimizations are hard.

Ideally, one wants a common language architecture that provides full dynamic
behavior, with optional declarative typing, solid type inferencing, static
compilation capabilities, and adaptive dynamic jitting facilities (which can
feedback to augment static compilation/pre-jitting). This is the focus of
the AOS Platform, the Microsoft .NET Platform, and others.

>
> >
> > > - "Calltime Dispatch Binding": not in C++? weird
> >
> > Strictly speaking, vtable dispatch is not a binding process at all.
> > It
> is
> > just a vectored indirection that is invariant with respect to
> > methods
> being
> > added, removed, calling context restrictions etc. Whereas a calltime
> > dispatch binding facility actually performs the binding at call-time
> based
> > on various runtime alterable characteristics.
>
> i don't think the implementation of C++ should distinguish it from
> Java. Many OO languages do not allow adding methods at runtime and
> have the same behaviour as C++. Of course, in Ruby you can add methods
> at runtime and the
> vtable trick is not possible.

It is worse than just describing C++ like mechanism as "the vtable-trick".
VTables are actually (demonstrably) slower than "true" (receiver only)
dynamic-binding-dispatch mechanisms. This fact is (reasonably well)
understood today. It is a reality that will increasingly be the case as long
as the gap between processor core speeds and L2 cache and memory speeds
continues to widen.

It is fairly easy to illustrate on the Intel processor family. I've posted
(on comp.lang.smalltalk within the last 12 months) at least two detailed
explanations showing the machine instructions, cycle-times, and benchmarks.
The originally published technique was developed by David Ungar and
published in OOPSLA papers in the mid-80's. It has been a standard part of
most jit-based Smalltalk implementations for the last ten years or so.

However, I intentionally have not published information on techniques I have
developed (on the AOS Platform VM) for hi-performance predicate based
(incl - multi-method) dispatching. Especially with regard to implementation
on the .NET platform, where I am still exploring with Microsoft [who needs
this technology as much as Sun/Java does].

NOTE: The AOS Platform VM is unrelated to the .NET technology. I have been
evolving the AOS Platform design for the last decade; and it is now in its
4th generation.

>
> >
> > > - what do you mean with "Tail Calling"? IMO it's an optimisation
> > > which
> > depend on
> > > the implementation. AFAIK many C++ implementations handle tail
> recursion
> > (gcc
> > > does it nicely since 2.96)
> >
> > I did not know gcc had this; I've never tried it. However it is not
> > part
> of
> > the C++ standard. By that measure. there are many different C++
> extensions
> > that exist (incompatibly) across implementations for providing very
> useful
> > features.
>
> do optimisations have to be in a standard ???

Of course not [but the chart was listing features of "languages" not
particular implementations]. I.e., to characterize them as a feature of the
"language" then they need to be offered in all "standard" implementations.
Otherwise, they are just a feature of a given implementation or dialect.

> the use of tail-recursion or not
> does not alter the behaviour of a program until you reach stack
> overflow. But you can say the same for many optimisations.

It also has significant impact on debugging, etc. However, that is beside
the point. What you are saying here does not address my comments back to you
on tail-recursion optimization in the "c++" language.

>
> >
> > w.r.t. tail-calls, (if you say that gcc implementation supports
> > tail-recursion calls, I certainly am interested in verifying that
> because I
> > could use it for some VM build work).
>
> well, it works on
>
> http://people.mandrakesoft.com/~prigaux/47.c
> http://people.mandrakesoft.com/~prigaux/48.c
> http://people.mandrakesoft.com/~prigaux/50.c
> http://people.mandrakesoft.com/~prigaux/53.c
>
> > However, I'm not really sure I see how
> > it (c++) could be doing this for anything other than calls to the
> current
> > method/function. Which is not general tail-recursion calling
> > [otherwise
> one
> > could loosely claim that any language with a goto had tail-calling].
>
> i don't know what you call "general tail-recursion". Of course the
> poor C compiler has hard time analysing things to proove the
> tail-recursion optimisation is safe.

I think we might be speaking about something without our having the same
definition of terms. Can you cook up a simple example (or some pseudo-code)
to illustrate what gcc can do?

Thanks,

-- Dave S. [www.smallscript.org]



In This Thread