--981873195-1848564049-11041621292871
Content-Type: MULTIPART/MIXED; BOUNDARY="981873195-1848564049-1104162129=:12871"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--981873195-1848564049-11041621292871
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: QUOTED-PRINTABLE

A version that works for 1.9 is attached. (With the one attached by 
Florian, two chunks fail because the context changed slightly btween 1.8.2 
and 1.9.)

Peter

On Mon, 27 Dec 2004, Florian Growrote:

> Moin!
>
> On the ruby-muse mailing list which is a place for discussion of new ideas 
> for Ruby there recently was a sub-thread concerning the introduction of 
> user-defined number literal suffixes. These suffixes are already used in 
> other languages and look like 1.5f or 0.6r. I think having these would be 
> nice for user-defined numeric Classes like Rational (currently these overload 
> 1/2 under mathn and other operations which can be a problem) and imaginary 
> numbers (via the Complex class). I think being able to write 0.5r insteadf 
> the much longer Rational.reduce(1, 2), 2i instead of Complex.new(2, 1) or 
> 5.1b instead of BigDecimal.new("5.1") would be a nice thing that would not 
> have many downsides.
>
> Peter Vanbroekhoven was able to come up with a fairly simple and efficient 
> patch which I have reattached to this mail. With it applied you can write 
> 1.5x and it will call number_literal_x("1.5") and return the result.
>
> However I might be overlooking issues that are associated with this 
> enhancement and I know that having useless features leads to language bloat. 
> So what do the community and matz think about this? Would this be useful to 
> you?
>
> Thank you all in advance for feedback.
>
> Regards,
> Florian Gross
>
>
--981873195-1848564049-11041621292871
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=number-literal-patch2
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.61.0412271642090.12871 / merlin.cs.kuleuven.ac.be>
Content-Description: 
Content-Disposition: attachment; filename=number-literal-patch2

LS0tIGV2YWwuYwkyNyBEZWMgMjAwNCAxNDo1Njo1OCAtMDAwMAkxLjEuMS4x
DQorKysgZXZhbC5jCTI3IERlYyAyMDA0IDE1OjMyOjExIC0wMDAwCTEuMS4x
LjEuMi4xDQpAQCAtNzU0NSw2ICs3NTQ1LDEzIEBADQogICAgIHJ1Ynlfc2Fm
ZV9sZXZlbCA9IHNhZmU7DQogfQ0KIA0KK3N0YXRpYyBWQUxVRQ0KK3JiX251
bWJlcl9saXRlcmFsX2Yob2JqLCBzKQ0KKyAgICAgVkFMVUUgb2JqLCBzOw0K
K3sNCisgICAgcmV0dXJuIHJiX2Zsb2F0X25ldyhyYl9zdHJfdG9fZGJsKHMs
IFFmYWxzZSkpOw0KK30NCisNCiB2b2lkDQogSW5pdF9ldmFsKCkNCiB7DQpA
QCAtNzY0Miw2ICs3NjQ5LDggQEANCiAgICAgcmJfZ2xvYmFsX3ZhcmlhYmxl
KCZ0cmFjZV9mdW5jKTsNCiANCiAgICAgcmJfZGVmaW5lX3ZpcnR1YWxfdmFy
aWFibGUoIiRTQUZFIiwgc2FmZV9nZXR0ZXIsIHNhZmVfc2V0dGVyKTsNCisN
CisgICAgcmJfZGVmaW5lX21ldGhvZChyYl9tS2VybmVsLCAibnVtYmVyX2xp
dGVyYWxfZiIsIHJiX251bWJlcl9saXRlcmFsX2YsIDEpOw0KIH0NCiANCiAv
Kg0KLS0tIHBhcnNlLnkJMjcgRGVjIDIwMDQgMTQ6NTc6NTMgLTAwMDAJMS4x
LjEuMQ0KKysrIHBhcnNlLnkJMjcgRGVjIDIwMDQgMTU6MzI6MTEgLTAwMDAJ
MS4xLjEuMS4yLjENCkBAIC00NzEsNyArNDcxLDcgQEANCiAJa19fRklMRV9f
DQogDQogJXRva2VuIDxpZD4gICB0SURFTlRJRklFUiB0RklEIHRHVkFSIHRJ
VkFSIHRDT05TVEFOVCB0Q1ZBUiB0TEFCRUwNCi0ldG9rZW4gPG5vZGU+IHRJ
TlRFR0VSIHRGTE9BVCB0U1RSSU5HX0NPTlRFTlQNCisldG9rZW4gPG5vZGU+
IHRJTlRFR0VSIHRGTE9BVCB0U1RSSU5HX0NPTlRFTlQgdE5VTUJFUl9MSVRF
UkFMDQogJXRva2VuIDxub2RlPiB0TlRIX1JFRiB0QkFDS19SRUYNCiAldG9r
ZW4gPG51bT4gIHRSRUdFWFBfRU5EDQogDQpAQCAtMzY4NCw2ICszNjg0LDcg
QEANCiAJCTsNCiANCiBudW1lcmljICAgICAgICAgOiB0SU5URUdFUg0KKyAg
ICAgICAgICAgICAgICB8IHROVU1CRVJfTElURVJBTA0KIAkJfCB0RkxPQVQN
CiAJCXwgdFVNSU5VU19OVU0gdElOVEVHRVIJICAgICAgICVwcmVjIHRMT1dF
U1QNCiAJCSAgICB7DQpAQCAtNTkwOCw2ICs1OTA5LDE5IEBADQogDQogCSAg
ZGVjb2RlX251bToNCiAJICAgIHB1c2hiYWNrKGMpOw0KKwkgICAgaWYgKG5v
bmRpZ2l0ICYmIElTQUxQSEEobm9uZGlnaXQpKSB7DQorCSAgICAgICAgYyA9
IG5vbmRpZ2l0Ow0KKwkgICAgfQ0KKwkgICAgaWYgKElTQUxQSEEoYykpIHsN
CisJICAgICAgICBjaGFyIG5hbWVbMTddID0gIm51bWJlcl9saXRlcmFsXyoi
Ow0KKwkJbmFtZVsxNV0gPSBjOw0KKwkJTk9ERSAqc3RyOw0KKwkgICAgICAg
IHRva2ZpeCgpOw0KKwkJc3RyID0gTkVXX0xJU1QoTkVXX1NUUihyYl9zdHJf
bmV3KHRvaygpLCB0b2tsZW4oKSkpKTsNCisJCW5leHRjKCk7DQorCQl5eWx2
YWwubm9kZSA9IE5FV19GQ0FMTChyYl9pbnRlcm4obmFtZSksIHN0cik7DQor
CQlyZXR1cm4gdE5VTUJFUl9MSVRFUkFMOw0KKwkgICAgfQ0KIAkgICAgdG9r
Zml4KCk7DQogCSAgICBpZiAobm9uZGlnaXQpIHsNCiAJCWNoYXIgdG1wWzMw
XTsNCi0tLSBleHQvYmlnZGVjaW1hbC9iaWdkZWNpbWFsLmMJMjcgRGVjIDIw
MDQgMTU6MDE6NTkgLTAwMDAJMS4xLjEuMQ0KKysrIGV4dC9iaWdkZWNpbWFs
L2JpZ2RlY2ltYWwuYwkyNyBEZWMgMjAwNCAxNTozMjoxMSAtMDAwMAkxLjEu
MS4xLjIuMQ0KQEAgLTEyMTcsNiArMTIxNywxOSBAQA0KIH0NCiANCiBzdGF0
aWMgVkFMVUUNCityYl9udW1iZXJfbGl0ZXJhbF9iKG9iaiwgcykNCisgICAg
IFZBTFVFIG9iaiwgczsNCit7DQorICAgIEVOVEVSKDUpOw0KKyAgICBSZWFs
ICpwdjsNCisNCisgICAgU2FmZVN0cmluZ1ZhbHVlKHMpOw0KKyAgICBHVUFS
RF9PQkoocHYsIFZwQ3JlYXRlUmJPYmplY3QoMCwgUlNUUklORyhzKS0+cHRy
KSk7DQorICAgIA0KKyAgICByZXR1cm4gVG9WYWx1ZShwdik7DQorfQ0KKw0K
K3N0YXRpYyBWQUxVRQ0KIEJpZ0RlY2ltYWxfbGltaXQoaW50IGFyZ2MsIFZB
TFVFICphcmd2LCBWQUxVRSBzZWxmKQ0KIHsNCiAgICAgVkFMVUUgIG5GaWc7
DQpAQCAtMTM0Niw2ICsxMzU5LDggQEANCiAgICAgcmJfZGVmaW5lX21ldGhv
ZChyYl9jQmlnRGVjaW1hbCwgImZpbml0ZT8iLCAgIEJpZ0RlY2ltYWxfSXNG
aW5pdGUsIDApOw0KICAgICByYl9kZWZpbmVfbWV0aG9kKHJiX2NCaWdEZWNp
bWFsLCAidHJ1bmNhdGUiLCAgQmlnRGVjaW1hbF90cnVuY2F0ZSwgLTEpOw0K
ICAgICByYl9kZWZpbmVfbWV0aG9kKHJiX2NCaWdEZWNpbWFsLCAiX2R1bXAi
LCBCaWdEZWNpbWFsX2R1bXAsIC0xKTsNCisNCisgICAgcmJfZGVmaW5lX21l
dGhvZChyYl9tS2VybmVsLCAibnVtYmVyX2xpdGVyYWxfYiIsIHJiX251bWJl
cl9saXRlcmFsX2IsIDEpOw0KIH0NCiANCiAvKg0K

--981873195-1848564049-11041621292871--
--981873195-1848564049-11041621292871--