[#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:18977] "Bang" versions of numerical methods on non-immediate values [was: Numbers classes.. Rational number? ]

From: Kent Dahl <kentda@...>
Date: 2001-08-01 17:17:44 UTC
List: ruby-talk #18977
Since my previous rant about this seemed to go unnoticed (due to the
Rational discussion I presume), I'm voicing it one more time.

Summary: I want methods add!, sub!, div! and mul! for all numeric
objects.

Reason: Efficiency when dealing with non-immediate value types by
reducing amount of generated objects.

Rationale: Float, Bignum and similar numerical classes generate new
objects that float (no pun intended) around bugging the GC. Having some
way of doing aritmetic on these objects without generating a new object,
would help on GC performance. I recall some talk about Float maybe
becoming an immediate value due to these problems, but this seems easier
to implement without breaking anything. (Not that I've actually opened
the Ruby source :-)

Example: Doing accumulation over floats:

<SNIP>
[kentda@v128a ruby]$ ruby --version
ruby 1.6.2 (2001-01-23) [i586-linux-gnu]
[kentda@v128a ruby]$ irb --version
irb 0.6.1(99/09/16)
[kentda@v128a ruby]$ irb 
irb(main):001:0> GC.disable
false
irb(main):002:0> count = 0; ObjectSpace.each_object(Float){|f|
count+=1};count
2
irb(main):003:0> a=0; (1..1000).each{|i| a+=1.0 }; a
1000.0
irb(main):004:0> count = 0; ObjectSpace.each_object(Float){|f|
count+=1};count
1003
</SNIP>


Choice of methods names: While using the *=, /=, +=, -= family for
something like this, that would break backward compatability and
introduce confusion. The "bang" (!) in methodnames has standard meaning
in Ruby; changing inplace. I also think that being more explicit when
doing things for efficiency.

Potential reasons against doing this:

* If created numbers are to be considered final, frozen and/or
immutable.

* Potential "side-effects" causing confusion.
	a = b = 1.0
	a.add!(0.25)	# a==b==1.25 now, since they refer same object

* Inconsistent behaviour between immediate values and object values (but
we already have some of that)
	a = b = 1
	a.add!(1)	# a==2 and b==1, due to immediate values

* Conceptual difference between Number and Value.
  "There can be only one..." instance of the number 25, but several
values can denote 25. But as I understand it, this principle is not
enforced anyway, since two floats with same value are different objects:

<SNIP>
irb(main):001:0> GC.disable
false
irb(main):002:0> count = 0; ObjectSpace.each_object(Float){|f|
count+=1};count
2
irb(main):003:0> a = 1.0
1.0
irb(main):004:0> b = 1.0
1.0
irb(main):005:0> count = 0; ObjectSpace.each_object(Float){|f|
count+=1};count
4
</SNIP>


That's all I can think off. Is there something obvious I'm missing? Like
why this is a terrible idea, or that something similar already exists in
Ruby?

I'm hoping to get some clarifying discussion on the matter, and perhaps
add it as an RCR.

For those who missed my previous rant, I quote it here:

Kent Dahl wrote:
> While I'm ranting about numbers: Is there any plans to have "bang"
> versions of numeric operators?
> 
> <SNIP>
> irb(main):077:0> a = b = 5.0
> 5.0
> irb(main):078:0>
> irb(main):079:0* a *=2
> 10.0
> irb(main):080:0> b
> 5.0
> </SNIP>
> 
> This seems to indicate that a*=b is just syntactic sugar for a=a+b,
> which is probably the element of least surprise, atleast when converting
> Java / C++ programmers more familiar with by-value semantics. But if I
> put my OO-purist cap on and start chanting, I feel like the *= operator
> violates the object-message paradigm: I would assume the object is
> changed inplace.
> 
> So, how about mul!, div!, plus! and minus! to complement (and imitate
> for immediate types) the operators *=, /=, += and -= that yields this
> functionality:
>         a = b = 5.0     #=> 5.0
>         a.mul! 2        #=> 10.0
>         b               #=> 10.0
> 
> On numeric objects that are real (and bother the GC), I think this might
> help on efficiency, avoiding the creation of an object.
> 
> The only real problem I see, is the confusion it could lead to when
> working with immediate values that _may_ turn into true objects due to a
> call:
>         a = b = 5       #=> 5
>         a.mul! 2        #=> 10
>         b               #=> 5    # immediate value, therefore not changed
> versus
>         a = b = myLargeNumber   # myLargeNumber could be Fixnum, Bignum, Float
> etc
>         a.mul! 2                #=> myLargeNumber*2
>         b                       # Just what is b now?
> where b would be myLargeNumber if it was a Fixnum, but would be
> myLargeNumber*2 if
> it was a true object (Bignum, Float, etc)
> 
> Have I gone completely mad, missed something obvious or? Comments?


-- 
<[ Kent Dahl ]>================<[ http://www.stud.ntnu.no/~kentda/ ]>
  )____(stud.techn.;ind..data)||(softwareDeveloper.at(Trustix))_( 
 /"Opinions expressed are mine and not those of my Employer,      "\
( "the University, my girlfriend, stray cats, banana fruitflies,  " )
 \"nor the frontal lobe of my left cerebral hemisphere.           "/

In This Thread