--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--