[#24043] I want a *really* small Ruby interpreter — "Christian Ericsson" <christian.ericsson@...>
Hi,
[#24047] private instance_variable? — cclee@... (Chochain Lee)
Hi,
[#24073] specifying the file and line — "Benoit Cerrina" <benoit.cerrina@...>
Hi,
[#24104] Ruby and Databases ? — Andrew Cowan <icculus@...>
I am hoping I am just missing something after reading the Programming Ruby
Check out the DBI.
[#24114] Re: Modularity question — "Ryan Leavengood" <RyanL@...>
> I want these to be as discrete from each other as
[#24124] socket — mail02@... (Frank Benoit)
Hi
[#24129] Ruby and Pandora - Athene — Daniel Matthews <dan@3-e.net>
What are the possibilities with this?
[#24152] CGI with Ruby (Win2000) — Jilani Khaldi <jilanik@...>
Hi,
[#24170] Performance of Marshal.dump — Darrin Thompson <dthompson@...>
In a program of mine using Marshal.dump I dumped an: Array of objects
[#24178] RE: Limits of dynamism? — "Ryan Leavengood" <RyanL@...>
> class T
[#24183] "yield called out of block" — Mark Slagell <ms@...>
Having just talked with a nuby in email, I believe this error message
This doesn't really have much to do with the original post, but why not
Hello --
> Well, that would leave us needing a new word for what used to be
Hi,
Hello --
[#24192] __FILE__ == $0 refactored in Ruby? — "Morris, Chris" <chris.morris@...>
I see __FILE__ == $0 frequently. Is there a more readable form of this
[#24208] require '../foo/bar' — Tobias Reif <tobiasreif@...>
Should that work?
[#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
[#24224] literal \0 in String#gsub replacement — Mark Slagell <ms@...>
Okay, I'm stuck on something seemingly trivial here. Is it possible for
[#24228] inline comments, IDs — Tobias Reif <tobiasreif@...>
Hi,
[#24261] param() method weirdness in cgi.rb — David Alan Black <dblack@...>
Hello --
[#24273] multiple serverside processes — Tobias Reif <tobiasreif@...>
Hi,
[#24291] Newbie wrong # of arguments(4 for 0) question — "Erik Meade" <emeade@...>
Well I've finally found an excuse to write some ruby, and I haven't made it
[#24299] yield vs. call? — bob_sidebotham@... (Bob Sidebotham)
I'm a bit puzzled whether there is any semantic difference between the
[#24310] Wiki?? — "Tobias DiPasquale" <anany@...>
Hi all,
[#24314] yield works, but no block given — Joel VanderWerf <vjoel@...>
[#24335] Joys of eval — Albert Wagner <alwagner@...>
A few weeks ago I posted a request for help with regexp, split, scan, et.
On Sun, 2001-11-04 at 13:29, Albert Wagner wrote:
On Sunday 04 November 2001 12:43 pm, you wrote:
On Sun, 2001-11-04 at 14:01, Albert Wagner wrote:
On Mon, 5 Nov 2001, Sean Middleditch wrote:
On Sun, 2001-11-04 at 14:31, Todd Gillespie wrote:
On Mon, 5 Nov 2001, Sean Middleditch wrote:
Bill Kelly wrote:
[#24341] block/yield puzzle — David Alan Black <dblack@...>
Hello --
[#24404] Help with OO — Vincent Foley <gnuvince@...>
Hi, I'm a bit new to OO programming and I would need help. I made a
[#24405] comp.lang.ruby — Gary Lawrence Murphy <garym@...>
It does not exist yet. IIRC, there was a vote to have one
[#24432] Re: Detect future method calls in method_mi ssing? — "Morris, Chris" <chris.morris@...>
> funny business you do with anElement=, calls like
[#24445] wishlist for Ruby books — Tobias Reif <tobiasreif@...>
Hi,
[#24460] List of Exception classes — Fritz Heinrichmeyer <fritz.heinrichmeyer@...>
[#24465] C Extension Help — jason@... (Jason Voegele)
I'm trying to write some additional collection classes for Ruby, such
[#24466] Why is ruby slow (compared to perl) — "Aqil Azmi" <aazmi@...>
Hello,
Niko Schwarz wrote:
On Fri, 9 Nov 2001, Sean Russell wrote:
Robert Feldt wrote:
On Fri, Nov 09, 2001 at 08:45:56AM +0900, Sean Russell wrote:
[#24481] TCPServer example in PP book — Massimiliano Mirra <list@...>
I have tried encapsulating the TCPServer example in a class by itself,
[#24483] Win32 VIM w/Ruby? — "James Britt (rubydev)" <james@...>
I saw that Vim 6 supports an interface into Ruby, and I've managed to compile Vim with Ruby support on Linux, but cannot get it to
[#24497] Doing both input and output to a process — "HarryO" <harryo@...>
Say I wanted to run a shell, send it commands and catch the output from
> Say I wanted to run a shell, send it commands and catch the output from
[#24511] kill rdtool? — Stefan Nobis <stefan@...>
Hi.
Mark Hahn wrote:
>>>>> "Matz" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:
On Wednesday 07 November 2001 09:34 am, Mark Hahn wrote:
On Wednesday 07 November 2001 10:04 am, Mark Hahn wrote:
On Wednesday 07 November 2001 10:14 am, Mark Hahn wrote:
Bluntly: It's not an issue, except in the minds of certain licensing fanatics
> Unfortunately doxygen appears to be GPL instead of LGPL. I don't think any
[#24531] Ruby presentation — "Milan Gardian" <Milan.Gardian@...>
Hi,
[#24547] OpenGL (rbogl) bindings to Tk? — phlip_cpp@... (Phlip)
Rubies:
[#24573] Re: kill rdtool? — Andrew Hunt <andy@...>
[#24583] Re: kill rdtool? — Andrew Hunt <andy@...>
[#24604] Re: kill rdtool? — "Ryan Leavengood" <RyanL@...>
From: Brett Williams [mailto:brett_williams@agilent.com]
[#24610] system('dir') and Windows 2000 — John Carter <john.carter@...>
I have just tried
try "cmd /c dir"
[#24644] font handling in ruby-gtk — mips <mips@...>
Did someone has done some code which looks for fonts in ruby-gtk ?
[#24647] Testing as a Ruby niche — Brian Marick <marick@...>
At the Ruby Conference, Andy Hunt kicked off with a talk about Ruby
[#24665] Ruby servlet container? — Gary Lawrence Murphy <garym@...>
[#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'
[#24692] how to get hostname/MAC address? — "Tobias DiPasquale" <anany@...>
Hi,
[#24698] ruby and webservices — Markus Jais <info@...>
hello
In article <9setsu$1378d4$1@ID-75083.news.dfncis.de>,
Actually...its me.
Hi,
Yukihiro Matsumoto wrote:
The concerns about which any given Ruby XML library does makes me wonder what, exactly, "XML out of the box" means.
Hi,
On 01/11/11 2:20 AM, "TAKAHASHI Masayoshi" <maki@open-news.com> wrote:
Bob Hutchison wrote:
On 01/11/11 12:51 PM, "Sean Russell" <ser@efn.org> wrote:
[#24700] Strange behaviour of Array#[] — Michael Neumann <neumann@...>
Hi,
> > Why does a[3,1] returns [] instead of nil?
[#24706] assert_exception_and_message — Robert Feldt <feldt@...>
Hi,
[#24707] Trailing uc strange lexer error message?! — Robert Feldt <feldt@...>
Hi,
[#24723] Profiling Code — Matthew Diephouse <fokke_wulf@...>
Is there a Ruby equivalent to Perl's Devel::DProf?
Unfortunately, this only writes the regular output from my program to
On Sat, 10 Nov 2001, Matthew Diephouse wrote:
[#24736] Negate grep pattern match? — Jos Backus <josb@...>
lizzy:/tmp# cat x
[#24750] BUG: net/telnet.rb gives select invalid argument excepition — Ville Mattila <mulperi@...>
ts <decoux@moulon.inra.fr> writes:
[#24772] Looking for df interface — djberg96@... (Daniel Berger)
Hi all,
[#24810] Ruby-Tk; feature/bug/misunderstanding? mouse-location during when a key is pressed in the presence of TkMenubutton — Armin Roehrl <armin@...>
Hi,
> Hi,
> You get the (x, y) of the mouse w.r.t. the root window, since that is
> > You get the (x, y) of the mouse w.r.t. the root window, since that is
[#24820] ANN: Triple-R - The Rubicon Results Repository — Dave Thomas <Dave@...>
[#24850] Re: Testing as a Ruby niche — Brian Marick <marick@...>
Thanks for the comments, and sorry for the delayed reply.
[#24858] Help needed on subclassing — Robert Feldt <feldt@...>
Its late here in Sweden (actually early, but anyway... ;-)) and I cant
[#24890] Ruby-Postgres extension runtime error — mrchameleon@... (Chris Reay)
Hi
[#24891] Ruby/DBI: DBD for SQLRelay — Michael Neumann <neumann@...>
Hi,
[#24926] XML support in the standard lib — Tobias Reif <tobiasreif@...>
Hi,
PaulC wrote:
On 01/11/13 9:33 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:
> >
Hello --
P.S.
On 01/11/13 9:56 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:
Bob Hutchison wrote:
On 01/11/13 11:21 AM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:
Bob Hutchison wrote:
On 01/11/13 3:10 PM, "Sean Russell" <ser@germane-software.com> wrote:
On Tue, 13 Nov 2001 12:00:35 -0500 Bob Hutchinson wrote:
On 01/11/13 1:41 PM, "Bob Gustafson" <bobgus@mcs.com> wrote:
>
On 01/11/13 8:59 PM, "James Britt (rubydev)" <james@rubyxml.com> wrote:
The DOM is a pretty awkward API to both use and implement. An API based on
>
On Tue, 2001-11-13 at 20:53, James Britt (rubydev) wrote:
From: "Simon St.Laurent" <simonstl@simonstl.com>
James Britt (rubydev) wrote:
>
Hello --
On Thu, 15 Nov 2001, Tobias Reif wrote:
Robert Feldt wrote:
James Britt wrote:
On Fri, 16 Nov 2001, Nat Pryce wrote:
On Wed, 14 Nov 2001, Nat Pryce wrote:
Robert Feldt wrote:
On Wed, 14 Nov 2001, Sean Russell wrote:
Hi all XMLers,
Hello --
Dave Thomas wrote:
[#24927] Exercises in dynamism ;-) — Massimiliano Mirra <list@...>
I'm a newcomer to dynamic languages and have found quite an incredible
[#24941] From aliasing to aliased — Massimiliano Mirra <list@...>
Still playing. :-)
[#24948] Refactoring tool for Ruby... — Stephan K舂per <Stephan.Kaemper@...>
Just being curious if someone has worked on a refactoring tool for
At 03:39 AM 11/13/2001 +0900, you wrote:
[#24955] Teach your kid math w/ruby — pete@... (Peter J. Kernan)
>> > I guess you already know the algebra package of Shin-ichiro HARA:
[#24958] Linux Magazine article — Dave Thomas <Dave@...>
Clemens Wyss wrote:
On Thu, Nov 22, 2001 at 10:20:04AM +0900, Bill Kelly wrote:
>>>>> "J" == Jos Backus <josb@cncdsl.com> writes:
On Thu, Nov 22, 2001 at 03:47:43PM +0900, ts wrote:
[#24991] Mapping sequential strings to random strings: How would you do this? — "Hal E. Fulton" <hal9000@...>
Hello all,
[#25022] attr_accessor question — Michael Sullivan <mps@...>
I was wondering if when one has defined "attr_accessor" for their
[#25029] Set class in Ruby — Yuri Leikind <YuriLeikind@...>
Hello all Ruby coders,
>> However, sometimes it's convenient to have Sets, collections where
----- Original Message -----
[#25042] REXML behavior change RFC — Sean Russell <ser@...>
Hi,
[#25045] RE: REXML Question (Re: XML libraries (Re: Re: ruby and webser vices)) — Ben Schumacher <BSchumacher@...>
Alright, I started playing with REXML last night and so far it looks pretty
[#25072] REXML inserting an element — "Benoit Cerrina" <benoit.cerrina@...>
Hi,
[#25082] exiting blox — Niko Schwarz <niko.schwarz@...>
Hi there,
Hello --
On Wed, Nov 14, 2001 at 07:19:05AM +0900, David Alan Black wrote:
[#25087] FW: RE: REXML Question (Re: XML libraries (Re: Re: ruby and webser vices)) — Ben Schumacher <BSchumacher@...>
FYI- Quick follow up. NQXML allowed you to do this since elements weren't
[#25101] ANN: REXML 1.1a3 — Sean Russell <ser@...>
Hiho,
Hi, I'm REXML newbie :-), and I have a comment.
> Should REXML convert "'" and '"' into ' and "?
TAKAHASHI Masayoshi wrote:
>
James Britt (rubydev) wrote:
[#25119] RE: REXML inserting an element — Ben Schumacher <BSchumacher@...>
Benoit-
[#25173] Is there something similar to the CPAN module for Ruby? — "jennyw" <donotspam-jen@...>
Just wondering if there's a way to easily find, download, and install
[#25211] Is TCPSocket thread safe? — Jakub Travnik <j.travnik@...>
Hello,
[#25213] OT: Berkeley DB on windows — "Albert L. Wagner" <alwagner@...>
I have successfully installed Guy Decoux's Ruby/bdb and the
Download the Win32 MinGW version of Ruby here:
That looks good, Rich. But, but that's just ruby and the db
[#25221] ruby/Tk — MENON Jean-Francois <Jean-Francois.MENON@...>
hello
[#25276] GC question — Tony Smith <tony@...>
Hi there!
This is what I get from command line:
> This is what I get from command line:
[#25278] Re: class SharedQueueThread feedback — "Morris, Chris" <chris.morris@...>
> Well, there is this:
"Morris, Chris" <chris.morris@snelling.com> writes:
On Fri, 16 Nov 2001, Dave Thomas wrote:
[#25291] Re: ANN: REXML 1.1a3 — Ben Schumacher <BSchumacher@...>
Tobias Reif wrote:
Hello --
David Alan Black wrote:
Hello --
David Alan Black wrote:
On 01/11/15 4:54 PM, "Tobias Reif" <tobiasreif@pinkjuice.com> wrote:
[#25295] Topic ideas for an upcoming series of articles featuring Ruby? — Colin Steele <colin@...>
[#25307] ruby and XSLT4R and Rexml — Markus Jais <mjais@...>
hello
[#25334] Re: Topic ideas for an upcoming series of a rticles featuring Ruby? — Mikkel Bruun <mikkel.bruun@...>
[#25336] Ruby 1.6.5 won't compile... suggestions? — Niklas Backlund <backlund@...>
Hi,
[#25347] more on [matz:"Human Oriented Programming"?] — "Henning von Rosen" <henning@...>
During RubyConf, matz gave a keynote on "Human oriented Programming".
[#25383] Arrays, iterators, and map/collect — "Hal E. Fulton" <hal9000@...>
Hello all...
"Hal E. Fulton" wrote:
[#25432] Why not xmlparser? (was: Re: XML support in the standard lib;whatexactly?) — "Christian Boos" <cboos@...>
> I may have missed something, but the original question that started the
James Britt (rubydev) wrote:
>
James Britt (rubydev) wrote:
> James Britt (rubydev) wrote:
James Britt (rubydev) wrote:
On 01/11/24 11:18 AM, "Sean Russell" <ser@germane-software.com> wrote:
On Tue, 20 Nov 2001, Bill Kelly wrote:
[#25444] Tiny Test::Unit requirement — Robert Feldt <feldt@...>
Hi,
[#25472] Writting a profiler / line coverager / debugger for ruby — Lothar Scholz <llothar@...>
[#25500] finalizers, destructors and whatnot — "David Leal" <david@...>
Hi all,
[#25640] news gateway — Dave Thomas <Dave@...>
[#25662] Mailing list deja vu? — "Hal E. Fulton" <hal9000@...>
I haven't actually verified this yet,
[#25667] REXML: node.type, .parent, .name — Tobias Reif <tobiasreif@...>
Hi,
[#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
>>>>> "T" == Thomas R Corbin <tc@clark.net> writes:
ts (2001-11-18 00:14):
Is there any documentation on this anywhere?
>>>>> "R" == Ralph Mason <ralph.mason@telogis.com> writes:
Hi
>>>>> "J" == Jim Freeze <jim@freeze.org> writes:
> >>>>> "J" == Jim Freeze <jim@freeze.org> writes:
[#25695] more than one object in a druby server? — Tobias DiPasquale <anany@...>
Hi all,
[#25706] Strange behaviour of "rescue" — Michael Neumann <neumann@...>
Hi,
[#25721] TK interface for Ruby? — Vincent Foley <gnuvince@...>
Is is possible to to TK apps with Ruby (like Python with TKinter)? If
[#25753] Misunderstanding or bug? — Dave Thomas <Dave@...>
Hi Dave,
[#25766] rubyUnit, et. al. — Albert Wagner <alwagner@...>
I have installed ruby unit because so much of what I install that others
[#25779] Scripting for both object and non-object — Ed Ohsone <eosn@...>
I would like to know names of general purpose scripting languages which
[#25786] Array.new(n, Array.new(m)) weirdness, but "select isn't broken" — mrchameleon@... (Chris Reay)
The following occurs ...
[#25808] KDE or GNOME curiosity question... — Robert Hicks <bobhicks@...>
I was just curious which desktop (of the two mentioned in the subject)
Hi,
Kent Dahl wrote:
Hi,
> How hard would it be to have an option to use reference counting in a
> Circular references will cause the object to stay around indefinitely
Hi,
"Mark Hahn" <mchahn@facelink.com> writes:
On Thu, 29 Nov 2001, Matt Armstrong wrote:
At this point my ideas are getting really vague, but I'm thinking that you
[#25834] HowTo deal with arrays? — Martin Kahlert <martin.kahlert@...>
Hi!
[#25861] A bug invoking a method with send? — chr_news@... (chr_news@...)
Hi,
[#25869] Redefining new? — Michael Sullivan <mps@...>
Hi,
Michael Sullivan <mps@blackbird.discomsys.com> writes:
I know about how initialize works, but on page 233 of the Pickaxe book
[#25872] Human Oriented Programming & Intentional Programming — "Lachlan Pitts" <Lachlan_Pitts@...>
Hi Rubyers,
[#25907] String#== : Why not error with different type? — furufuru@... (Ryo Furue)
Hi there,
[#25920] Checking if a file exists... — Ben Schumacher <BSchumacher@...>
I was wondering if somebody had an easy way of checking if a file exists on
[#25954] a quick question — Tobias DiPasquale <anany@...>
Hi all,
Has anyone gotten Ruby running (perhaps in some limited form) on the
On Tuesday 20 November 2001 03:15 pm, Chad Fowler wrote:
[#26000] REXML parser bug(?) — TAKAHASHI Masayoshi <maki@...>
Hi,
[#26006] R: Re: Hello World considered harmful — Alessandro Caruso <a.caruso@...>
I thought the main reason people are moving towards Ruby instead of keep
Alessandro Caruso <a.caruso@creditonline.it> writes:
On Wed, 2001-11-21 at 15:31, Dave Thomas wrote:
Thanks Henning and Robert,
[#26009] positive — Tobias Reif <tobiasreif@...>
Hi,
[#26010] RE: positive — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>
>
[#26020] Re: Hello World considered harmful — Dave Thomas <Dave@...>
"Aleksei Guzev" <aleksei.guzev@bigfoot.com> writes:
[#26030] Compiling Ruby Extensions in Windows — William Djaja Tjokroaminata <billtj@...>
Hi,
Hi,
That doesn't sound quite right. I installed cygwin, and I got make and gcc.
[#26032] Re: ANN: regex engine development (was: Re: Why not xmlparser?) — Ciaran McCreesh <keesh@...>
Hugh Sasse Staff Elec Eng wrote:
[#26035] Re: - sourceforge + savannah (?) — "Curt Hibbs" <curt@...>
>I've projects on Sf and i never had problems of copyrights.
[#26042] Re: ANN: regex engine development (was: Re: Why not xmlparser?) — "Bill Kelly" <billk@...>
[#26050] call_myself — Tobias Reif <tobiasreif@...>
Hi all,
[#26075] book "the ruby way" on publishers web-site — Markus Jais <info@...>
hi
[#26091] List of methods that can implicitly act on $_ ? — Jos Backus <josb@...>
Some methods can implicitly act on $_, such as chomp and split; others, such
[#26107] What am I missing here? — "Ralph Mason" <ralph.mason@...>
Adding a function doesnt find the global variable $_ where as =
[#26109] eruby on windows and apache — Brian Chapman <brianechapman@...>
I'm having trouble getting require 'anything' to work
Brian Chapman wrote:
[#26126] Conformance Test of XML Parsers in Ruby(20011122) — TAKAHASHI Masayoshi <maki@...>
Hi all,
TAKAHASHI Masayoshi wrote:
Hello --
--- David Alan Black <dblack@candle.superlink.net
Tobias Reif <tobiasreif@pinkjuice.com> writes:
> --- David Alan Black <dblack@candle.superlink.net
Jim Menard <jimm@io.com> writes:
On 01/11/22 4:56 PM, "Martin v. Loewis" <martin@v.loewis.de> wrote:
Bob Hutchison <hutch@xampl.com> writes:
On 01/11/24 8:37 AM, "Martin v. Loewis" <martin@v.loewis.de> wrote:
Bob Hutchison <hutch@xampl.com> writes:
[#26130] Community spike: Fast-state-machines/goto challenge — Robert Feldt <feldt@...>
Hi,
[#26141] Passing class names to constructors. — Hugh Sasse Staff Elec Eng <hgs@...>
If I want to create a variable number of objects, all of
Hugh Sasse Staff Elec Eng <hgs@dmu.ac.uk> writes:
[#26166] Establishing Ruby's Popularity — "James Britt (ruby-talk ML)" <ruby@...>
I have a potential employer who would like some estimation of Ruby's popularity. I know of seven books out (or almost out), and
[#26187] Re: The first official release of ArunaDB — Michael Davis <mdavis@...>
What is raa.succ?
--- Mark Hahn <mchahn@facelink.com> wrote:
[#26205] Book "Rub in 21 days" Table of contents online — Markus Jais <mjais@...>
hi
[#26214] generating and serving SVG — Tobias Reif <tobiasreif@...>
Hi,
On Fri, 23 Nov 2001, Tobias Reif wrote:
MikkelFJ wrote:
On Sun, 25 Nov 2001, MikkelFJ wrote:
On Sun, 25 Nov 2001, MikkelFJ wrote:
[#26252] adding instance variables to an existing class. — Hugh Sasse Staff Elec Eng <hgs@...>
How might I add some instance variables to an existing class, such
> How might I add some instance variables to an existing class, such
[#26270] Table: Ruby versus Smalltalk, Objective-C, C++, Java; — Armin Roehrl <armin@...>
Hi,
What? No Python?!! Oh, the natives will be restless ...
[#26293] The results are in... — Dave Thomas <Dave@...>
<snip>
On Sun, 25 Nov 2001, Albert Wagner wrote:
On Saturday 24 November 2001 05:03 pm, you wrote:
On Sun, 25 Nov 2001, Albert Wagner wrote:
On Saturday 24 November 2001 06:32 pm, you wrote:
On Sun, 25 Nov 2001, Albert Wagner wrote:
[#26303] libcurses-ruby documentation, is it exist? — "Bambang Purnomosidi D. P." <bpdp@3wsi.net>
At Sat, 24 Nov 2001 19:15:25 +0900,
Bambang Purnomosidi D. P. wrote:
[#26323] Berkeley DB 1.85 bindings ... — Kent Dahl <kentda@...>
I've looked at the 'bdb' package in the RAA
[#26329] BUG in select — Jakub Travnik <j.travnik@...>
Hello,
[#26337] Re: Table: Ruby versus Smalltalk, Objective-C, C++, Java; — "john%johnknight.com@..." <john%johnknight.com@...>
[#26380] Converting ~fred to home directory path — "HarryO" <harryo@...>
Does ruby provide a way to convert things like ~fred into the appropriate
[#26414] DRb and failing test, please give some insight... — Massimiliano Mirra <list@...>
I am familiarizing with DRb. I managed to put to work a tiny c/s
[#26427] [ANN] NQXML v1.1.3; Maki number up to 90.9% conformity — Jim Menard <jimm@...>
NQXML version 1.1.3 has increased its conformity from 87.7% to 90.9% by
[#26444] ++operator and sorted hashes — Willi Kappler <grandor@...>
Hi list,
Willi Kappler wrote:
[#26492] String editing question — "HarryO" <harryo@...>
I want to do something similar to what I've seen on slashdot, where the
[#26537] Ruby vs. Python: Decisions, Decisions — "Bob Calco" <rcalco@...>
Everyone:
In article <BGEGJFOHFLNFHACAJJMLOEOKGNAA.rcalco@cortechs.com>,
These are the books I'm aware of:
On Tue, 27 Nov 2001, James Britt (rubydev) wrote:
[#26557] Re: Ruby vs. Python: Decisions, Decisions — "Mike Wilson" <wmwilson01@...>
> >> Python sucks.
# > >> Python sucks.
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto (2001-11-30 01:06):
[#26587] Iowa is cool...Avi give us more — Albert Wagner <alwagner@...>
I just finished the Iowa tutorial. Now I want more. Congratulations to Avi
[#26624] Racc — Michael Davis <mdavis@...>
I would like to find or create a parser for ANSI SQL. I am looking at Racc
[#26641] TCP hang problem — "HarryO" <harryo@...>
I'm using the stable 1.6.5 and have been experiencing a strange problem
[#26643] CGI — Bhagavatheeswaran Mahadevan <BMahadevan@...>
Hi all
[#26651] Vote in the current poll! — Robert Feldt <feldt@...>
Hi,
In article <Pine.GSO.4.21.0111271419390.9896-100000@godzilla.ce.chalmers.se>,
On Wed, 28 Nov 2001, Phil Tomson wrote:
Robert Feldt <feldt@ce.chalmers.se> writes:
In article <Pine.GSO.4.21.0111272238560.10092-100000@godzilla.ce.chalmers.se>,
On Wed, 28 Nov 2001, Phil Tomson wrote:
In article <Pine.GSO.4.21.0111280902070.10296-100000@godzilla.ce.chalmers.se>,
On Wed, 2001-11-28 at 10:10, Phil Tomson wrote:
[#26661] Embedding Ruby - scripts + extensions — Tony Smith <tony@...>
Hi All,
[#26664] OASIS test change suggestion — Jim Menard <jimm@...>
I would like to suggest a change in the OASIS test script.
[#26690] Ruby in a Nutshell shipping — ptkwt@...1.aracnet.com (Phil Tomson)
Just got an email from Amazon informing me that my copy of "Ruby in a
[#26715] ANN: RandomR 0.1.0 — Robert Feldt <feldt@...>
Hi,
>>>>> "R" == Robert Feldt <feldt@ce.chalmers.se> writes:
[#26735] quick question — "Bob Calco" <rcalco@...>
OK, who knows where this thread will end up, but as long as I get answers to
[#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
On Wed, 28 Nov 2001, Ross Shaw wrote:
Does it have to generate multiple random strings or jast "any" string.
[#26757] SV: eRuby — Mikkel Bruun <mikkel.bruun@...>
lets see your error log!!!
[#26769] Database connectivity — Bhagavatheeswaran Mahadevan <BMahadevan@...>
Hi Everybody
[#26780] BOOK: maybe an interesting one. Update: sample code for ruby available — Markus Jais <mjais@...>
hi
[#26782] RE: overload possible? — Wyss Clemens <WYS@...>
No, UNLESS you ask Guy Decoux (ts) to give you his *extension*
>>>>> "W" == Wyss Clemens <WYS@helbling.ch> writes:
On Wed, 28 Nov 2001, ts wrote:
Here's a slightly better version, which also fixes the problem that
At Thu, 29 Nov 2001 08:13:36 +0900,
excellent idea...how about this refactoring...
In article <NDBBKPEKEKOELOHKPCNOGELGCJAA.rich@infoether.com>, "Rich
Hello --
[#26800] Re: overload possible? — Wyss Clemens <WYS@...>
> >>>>> "W" == Wyss Clemens <WYS@helbling.ch> writes:
>>>>> "W" == Wyss Clemens <WYS@helbling.ch> writes:
I was playing around with Ruby/QT the other day, without overloading, I think
>>>>> "Y" == Yee Keat <ykphuah@netwxs.com.my> writes:
Hehe, sorry, yeah, thats the package that I downloaded and played around with
[#26859] One line body — Albert Wagner <alwagner@...>
[#26867] Small RubyUnit extension — Dave Thomas <Dave@...>
On Thu, 29 Nov 2001, Dave Thomas wrote:
[#26880] RE: Small RubyUnit extension — Matthias Lampert <ml@...>
Hello, Dave!
Matthias Lampert <ml@sph.de> writes:
The two if statements below are identical except the words left and right
On Thu, 29 Nov 2001, Mark Hahn wrote:
[#26890] Article on Program design — "Henning von Rosen" <henning@...>
Why does for example Ruby appeal to people in the way it does?
[#26894] short article draft for review — Tobias Reif <tobiasreif@...>
Hi,
Hi --
David,
[#26903] Etc.getpwnam() hanging — "Harry Ohlsen" <harryo@...>
I was very pleased to find that the Etc module provided a getpwnam()
[#26912] ANN: REXML 1.1a5 — Sean Russell <ser@...>
Hello,
> The question is this: should this behavior be allowed? The benefits may be
[#26952] ANNOUNCE: FXRuby-0.99.181 — "Lyle Johnson" <ljohnson@...>
No, it's not deja vu all over again. Since there was some confusion about
[#26958] some more finalizer weirdness — Paul Brannan <pbrannan@...>
If I do this:
[#26969] How to match '|' but not '\|' — "Ross Shaw" <rshaw1961@...>
I'm a bit of a nuby to regular expressions so I need a little assistance.
[#26973] thoughts on virtual base classes, interfaces — ptkwt@...1.aracnet.com (Phil Tomson)
On Fri, 30 Nov 2001, Phil Tomson wrote:
[#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
[#26983] Ruby job posted in NYC! — Jim Menard <jimm@...>
I just thought I'd share this with the group: the first job posting I've
[#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
ptkwt@shell1.aracnet.com (Phil Tomson) writes:
[#27017] How to get IP address of client from server — "Harry Ohlsen" <harryo@...>
If I have something like the following ...
[#27045] Extension question — Christian Szegedy <szegedy@...>
Hi!
[#27054] Using Enumerable — Peter Hickman <peter@...>
Im trying to write my own each method for a 'sort of' range class that
Hello --
Thanks to all who replied, like all ruby it was alot simpler than I
Hi --
On Fri, 30 Nov 2001, David Alan Black wrote:
David Alan Black <dblack@candle.superlink.net> writes:
[#27066] Musing — Dave Thomas <Dave@...>
The only barrier to doing this is the will to do it. I for one am all for it
Do it Dude!
[#27078] Ruby & MS-SQL7 — Armin Roehrl <armin@...>
Hi,
[#27107] FW: Kernel::system() not working — "Bob Calco" <rcalco@...>
Anybody have any idea? This is a showstopper for me, simple as it seems. I
In article <BGEGJFOHFLNFHACAJJMLGECDGPAA.rcalco@cortechs.com>,
[#27133] external commands — "michelemdl@..." <michelemdl@...>
I need to exec an external programm from a ruby script.
If someone had already answered to me, please can you re send you answer
[#27136] ANN: REXML 1.1a6 — Sean Russell <ser@...>
Howdy, howdy, howdy.
[#27141] GridFlow/Video4jmax in Ruby — Mathieu Bouchard <matju@...>
On Fri, 30 Nov 2001 23:17, you wrote:
[ruby-talk:26473] Re: Table: Ruby versus Smalltalk, Objective-C, C++, Java;
"Pixel" <pixel@mandrakesoft.com> wrote in message
news:lybshr6m8r.fsf@leia.mandrakesoft.com...
> "David Simmons" <david.simmons@smallscript.net> writes:
>
> [...]
Hi Pixel,
In reading your reply I am frustrated by the sense that you are drilling [as
if I did not understand them] into the very issues I was presenting in broad
strokes, and which were too lengthy for me to explain [given my time and
activities] in the context of a newsgroup post. But, I will try to clarify
your items point by point.
>
> > 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].
>
> same in statical typing:
http://www.eptacom.net/pubblicazioni/pub_eng/mdisp.html
I was not aware that someone was "bothering" to use RTTI (or templates
[macros]) to address this issue in C++. Given the importance of C++ I should
hardly be surprised. However (in broad terms), this is the problem with
implementing genericity in languages which only support static typing [as I
alluded to in my previous post regarding the languages Java and C#].
As I said in my previous post, the ideal is a language which has both static
and dynamic typing with overloading/multi-methods -- lacking that numerous
issues crop up. This is just a "facet" of that generics issue.
>
> > 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].
>
> because your chart has a "yes" for multi-methods in C#/C++ !
You are leaving out key annotation information.
The chart says "yes (but restricted facilities)".
Now you could readily argue that it should have provided different wording
or more explanation [although this is intended to be an informal chart --
not a writeup comparing languages feature by feature]. But it would have
been "wrong" to say that it "did not" support "(overloading)" as taken from
the row-heading on the chart.
>
> [...]
>
> > > 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.
>
> click on "Cached: PDF" (hail CiteSeer!)
Thanks (3 or 4 other people also clued me in on that :), I have the paper
now.
>
> >
> > >
> > >
> > > > 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,
>
> but the problem is not being dynamic or not: a statically typed language
*can*
> have multiple dispatch!
> eg: Cecil, MultiJava
(http://www.cs.washington.edu/homes/todd/papers/oopsla00.html)
>
I never debated that; quite the opposite I alluded that some statically
typed languages exist with support for type-cases and dynamic typing [and I
well aware of Cecil language and Vortex compiler technologies -- Cecil and a
number of other languages are mentioned on the web page chart at
http://www.smallscript.org/Language%20Comparison%20Chart.asp].
But you've switched the example away from the only-statically-typed
languages we had under discussion [Java, C#, C++]. Again, the point is that
ideally one wants a language that unified its world-type-object-view with
both static and dynamic typing and supports execution-engine/compilation
optimization to select/choose (static) overloading/(and dynamic)
multi-method invocation mechanics as appropriate, and thereby enables
efficient correct genericity.
This is one unified idea, that crops up with many variant names [and
solution efforts] because so many languages exist with (differing) partial
capabilities [thus spawning many unique workarounds with provisos] -- rather
than having a generalized object model view [semantics] to address
types-in-the-face-of-objects uniformly [which is where my interest has been
focused].
> adding multiple dispatch to java:
http://citeseer.nj.nec.com/dutchyn01multidispatch.html
>
> [...]
>
> > 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
>
> C++ has vtable and genericity (parametric polymorphism, aka templates).
> I don't see the limitation that makes Java and C# not having genericity.
> (AFAIK Java 1.4 will have generics)
>
> >-- 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.
>
> apropos could you add some "alt=" to http://www.smallscript.net/ (is nicer
for
> links/lynx users)
Good idea; I was lamenting I did not put an explicit link regarding
SmallScript into the original post. OTOH QKS Smalltalk [(www.qks.com --
SmalltalkAgents-IDE) which I designed and was the chief architect for] is
basically defunct and is no longer downloadable/purchasable. So you can't
play with it to see the ideas and concepts in action. SmallScript is my
personal evolution in thought within this space and SmallScript is still
very much a work in progress. I've been deeply involved in both business
issues and design and implementation of virtual-machines, language design,
frameworks, and tools which has left me little or no time to focus on
publishing papers [let alone writing a book or contributing to the
documentation -- until I recently began forcing myself to].
>
> it seems like SmallScript description is missing or??? All i can find is
ugly
> words (pricing, Microsoft, .asp's, Technology Preview...)
>
> i couldn't find info about this "selector namespace", any link?
You won't find a link on the SmallScript site at this time. However, I just
made an fairly detailed post on this topic area. The post can be found on
comp.lang.ruby as "Selector Namespaces: A Standard Feature For Smalltalk?".
>
> >
> > >
> > > 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.
>
> hum. C++ and Java do not have "only static binding".
I think we both understand the issue. The problem here is that the
"semantics" of the term dynamic-binding have been polluted/overloaded. So,
as with many topics in comparing languages with regard to "static" and
"dynamic" subjects, we quickly get bogged down in terminology as we try to
use that terminology to explain/discuss concepts. If all parties don't have
a clear concensus on the definitions of the terminology the discussions
rapidly digress into areas that are the result of that lack of concensus.
So, ignoring the terminology:
C++ and Java "typically" (but not always) implement virtual functions using
vtables. Where a vtable is an array of function pointers to virtual methods
associated with a given type.
These languages are not only statically typed, they are based on the concept
of static binding of type information as well. In an effort to be "object
oriented" [whatever that means] they attempt to provide [OO] polymorphism
using vtables which are a weak/limited solution to providing polymorphism
over one-type (the message receiver).
For static binding based on type information, this means that at compile
time the decision is made as to what method to invoke based on the types of
the arguments. The partial-polymorphic-solution exception is built by
assuming that all types are known at compile time. And that, therefore,
tables can be constructed containing common methods for type-trees based on
the "type of the receiver <this>".
So one gets a binary-deployment-system that cannot break those compile-time
rule of all types known at runtime [it is not dynamic/extensible at runtime
and so is brittle], and which also cannot address the problem of
polymorphism over the arguments to methods [which leads problems in
implementing/supporting genericity, etc because the model is based entirely
on static knowledge]. Some languages, like ML, have taken great strides to
addressing this problem and ensuring correct behavior but I (currently)
think it requires supporting both a static and dynamic type and binding
model.
So, back to exploring issues in the vtable approach. As mentioned before it
is based/built-upon static knowledge of the available set of types. It's
indirection mechanism is therefore based on static knowledge, which makes it
a static (lookup table) binding mechanism. I.e., the vtable-index [a
first-degree binding abstraction approach -- as opposed to a selector-object
in dynamic language which is a second-degree binding abstraction] is
statically bound into source and thus [among other things] precludes
handling dynamic [binding impact] changes to the classes and methods. I.e.,
vtables are limited in two semantic ways and additionally in one technical
way.
1. Semantically it only works for whole-cloth programs where no schema
changes [in the binary/compiled-form] will occur to class, namespace, or
methods available within the program [that's what makes them static
languages]. Why? Because if such changes occur the vtable layouts may need
to be changed, the call-sites that use indexed-lookup will have to have the
indices changed [not even considering the issues of the methods themselves
which have optimized-away/unfolded encapsulation of object structure, etc].
None of which is possible because all the necessary meta-information was
thrown away at compile-time [many things are not objects, most things have
no self-describing information (i.e., nominal to no reflection
facilities) -- RTTI being C++'s only facility].
2. In a unified OO view, there are no "pure-functions", because classes [or
prototypes], namespaces, etc are all objects and functions are just methods
on those classes [or prototypes] and namespaces. All operations semantically
become about the messages that objects can understand (perform). The
concerns about physical-layout/structure of a type vanish leaving us
[humans] only concerned [in general] with the message vocabulary [i.e.,
behavior/interfaces].
The compilers are where the optimization and knowledge about physical
representation become paramount for performance and external inter-op [and
humans only care when they are meshing with the boundary points -- usually
to create optimized small algorithms; an act which requires greater
attention and focus than one would normally want to have to put into
describing a problem to the computer via a programming language -- generally
we want our programming language to be capable of being as transparent as
possible so we can focus on the problem domain itself rather than the
problem of describing the problem to the computer].
Parameterized types in object definitions are relevant to humans in terms of
contractual (behavioral) adherance. To the compiler(s) they allow
optimizations to be achieved for better performance and resource utilization
[potentially as guided by a human author]. Which gets us back to genericity
and best efforts at being informed "statically" about design time
behavior-binding (type) errors in our use of contracts as opposed to runtime
contractual behavior-binding (type) errors that can always be detected in a
well designed language execution architecture. Which leads us into the
discussion of genericity in-static-only-binding-type systems [which have the
potential to yield optimum performance at a price in terms of correct
behavior and/or expressiveness], in-dynamic-only-binding-type systems [which
have the potential to yield correct at a price in terms of performance], and
in systems that offer both forms of binding [which has the potential to
yield both correct behavior and optimum performance].
Proponents of static-typing and correctness argue the virtues of design-time
detection. Proponents of dynamic-typing argue the virtues of unit-testing
and the dangers of reliance on static-checking of type-bindings as a
substitute for verifying interop relations semantics inherent in any system
of basic complexity. Both parties have valid and good points and neither are
wrong in my view. Both are addressing the same problem space with different
techniques; and both have been shown to eliminate the large proportion of
defects [albeit leaving different types of defects undetected]. But, in my
view, the significance is in the human "level of effort" factor in
expressing an original problem, coming later to understand such a design,
and later still working with an existing design to maintain or extend it.
** sigh, I seriously digressed [and now I will be in a deep rathole as
people beat me up for errors and/or disagreements with my assertions] **
#2 is principally that given that it is desireable to discriminate a
function's implementation based on the types of the arguments, vtable as a
polymorphic solution offer no mechanism of support for dispatching to a
type-specific implementation based on polymorphism amongst the arguments to
a function/method. The general approach is to use hand-crafted secondary
dispatch [which for arity-1/1-arg methods is called double-dispatch].
3. The technical issue is that vtables are slower (on current hardware
technology) than using adaptive jitting techniques with self-modifying code.
Primarily due to the cost of indirectly accessing memory to obtain an
address from a vtable which precludes processors from using eager/optimistic
prediction; where accessing the memory also results in bouncing from
L1-cache to L2-cache to primary memory [and that is increasingly expensive
as the timing gap between those forms of memory increases -- similar in
nature to the impact on design that one observed in algorithms designed
based on the 50's-70's problem of tape, disk, ram gaps].
*. In a just-in-time binding approach pioneered in Smalltalk during the mid
80's, one uses self-modifying code and assumes that most call sites are not
polymorphic [which is generally true]. If they are polymorphic, then that
breaks down into the case of having a low-degree of polymorphism [say 2-10
types] and the case of having a large degree of polymorphism which
literature in this area popularly terms mega-morphism. See OOPSLA papers
from the mid-80's to early 90's. This technique was the basis for the design
of the self-language, which in turn led to the design of the Animorphic
HotSpot VM/Execution-Engine/Runtime technology for Smalltalk; which in turn
was acquired by Sun to try and speed Java [JVM] up.
What has not, to my knowledge, been applied is a more generalized solution
of the same technique multiple-dispatch (overloading/mult-methods). I have
done it for both my own general-purpose dynamic-language virtual machine
(AOS Platform), and the Microsoft .NET platform (less-optimally through IL).
I must presume that someone must have implemented my technique before;
almost certainly someone in the lisp family community. However, it is
unlikely that it has also been optimized for hi-performance execution with
important newer binding predicates including sandboxing and selector
namespaces.
Providing hi-performance dynamically-dispatched-multi-methods has
significant impact on scripting languages and their ability to evolve into
full fledged languages that compete in features and performance with
mainstream languages today such as C, C++, Java, [C# will soon be in this
group if it is not already], Pascal-derivatives, etc. This is especially
important because there are, by most accounts, 10-20 times more people and
programs using scripting languages and techniques and that number is likely
increasing as cost factors and training/experience come into play.
>
> [...]
>
> > 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.
>
> are you talking about
http://www.sun.com/research/self/papers/type-feedback.html ?
>
> the idea is quite simple: specialize for a given type of object to allow
> inlining. In that case, to know which specialization to have, run-time
> feedback is used. This applies well to JITs of course.
>
> I don't see why it prooves that vtable is bad/slower. vtable can also
benefit
> from specialization. This is also why the default in C++ in no "virtual"
> methods, so that performance is the best.
>
> This is a well known, no?
I think, based on your comments, that you are not aware of what I have been
doing for the last ten years or so. One of my professional areas of
specialty is the design of virtual machines. Your comments sound like the
kind of things I would have written as responses to you <g>.
As to the bad/slower, in the last 12 months, I wrote two different threads
of discussion on this topic [in comp.lang.smalltalk] describing the
instructions, cycles, and benchmark information. I also made reference to
that fact somewhere in this current thread of discussion. Where I also
mentioned that I had not published information on the much more general
techniques (which I suspect I have pioneered) for hi-performance dynamic
dispatch of common/important predicates with extensibility for general
predicate dispatch through Dynamic-AOP/Managed-Object facilities in the
object-model of the AOS Platform [the VM architecture I designed and have
been evolving for the last ten years] as well as its related peer/work, an
enabler for the Microsoft .NET platform.
>
> In the ML family, the same happens when going from polymorphic functions
> (needing boxing) to monomorphic functions (with unboxed data)
> see for example:
> - the SPECIALIZE pragma in ghc
http://www.haskell.org/ghc/docs/4.04/users_guide/users_guide-5.html)
> - type-based unboxing (Leroy) http://citeseer.nj.nec.com/88305.html
>
> >
> > 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].
>
> "Where Do You Want To Go Today?" ;p
>
> Microsoft has a *lot* of people working on languages. Hopefully many are
> allowed to publish their work (and even release GPL apps)
<g> I know.
As a 3rd party, I and others have been been fortunate to have the
opportunity to interact [and influence] quite a few of them [it would be
nice to be able to observe the same attitude and opportunity to have an
influence on Sun folks]. Of course, Microsoft has a clear business
objective, and I both hope and greatly fear they will be very successful in
achieving based on their approach [the word trepidation has constantly been
in my thoughts since I first got involved with Microsoft on the .NET project
in 1999].
The real challenge for scripting and dynamic languages lies in the
predominance and momentum of ideas and beliefs regarding type-theory and
statically-typed languages; and the relative/disproproportionate lack
thereof for dynamic languages (especially OO languages like Smalltalk, as
opposed to functional dynamic languages like scheme).
>
> [...]
>
> > > 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?
>
> once again:
>
> 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
>
Ooops, my goof. I (missed) did not notice that reference in my effort to
respond to your previous post. [arghh, sorry about that -- I have a nack for
writing posts now and again that spur a very large number of conversations
and I get sloppy trying to respond to them and keep myself on a time
budget].
Now I've seen the gcc example :). It is optimizing calls from within a
function to itself [nice syntactic sugar for goto that I was alluding to in
my previous post].
By the way, that is a kind of wack example, that assumes knowledge of the
stack frame layouts [which are processor dependent -- especially in light of
differing register allocations].
Assuming all variables (args and locals) are allocated on the stack. And
that they are allocated linearly. And that f() does not use any stack space
itself for variables and arranges for the return-address to be "protected"
then:
n t->
---- ----
10 t1[0]
9 ? o "presumably"
8 ? n
7 ? m
6 ? l
5 ? k
4 ? j
3 ? i
2 ? g "presumably if no other stack use in f()"
1 ? f
0 ? e "not touched"
However the "reset()" code which is "decrementing" <t> via "t--" seems like
very broken (dangerous) way to test the recursion. I.e., it seems more like
this example tests assumptions about GCC variable allocation and stack usage
than it does anything to do with tail-recursion optimization.
In theory, t[2] is either walked over or is actually pointing at the
return-address not <g> unless the compiler did some special mangling to
move/protect the return address on the stack [like keeping it in a
register].
---
Why not a simple recursion test like:
int n=0x7FFFFFFF; char *p=0;
void recurse()
{
char c;
if (&c != p) {
printf("Stack Consumed At <n>: %d [%lx vs %lx]\n",n, &c, &p);
p = c;
}
if (--n > 0) recurse();
// Extra here to prevent compiler optimizing
// <c> away before calling recurse()...
p = c;
}
main()
{
recurse();
}
Am I correct in assuming that gcc has no global/module optimizer mechanism
for addressing the general tail-recursion case of "a calls b" with "b calls
a", etc?
-- Dave S. [www.smallscript.com]