[#22637] [Bug #1240] parser bug in 1.8.7 and 1.9.1p0 — Thomer Gil <redmine@...>
Bug #1240: parser bug in 1.8.7 and 1.9.1p0
Issue #1240 has been updated by Yusuke Endoh.
[#22640] [Bug #1241] Segfault with Nokogiri 1.2.1 on Ruby 1.9.1p0 — Raven Ex <redmine@...>
Bug #1241: Segfault with Nokogiri 1.2.1 on Ruby 1.9.1p0
[#22646] [Bug #1243] 1 is prime — Yuki Sonoda <redmine@...>
Bug #1243: 1 is prime
Issue #1243 has been updated by Dave B.
[#22684] [Bug #1247] YAML::load converts some dates into strings — Matthew Wilson <redmine@...>
Bug #1247: YAML::load converts some dates into strings
Issue #1247 has been updated by Yusuke Endoh.
On Thu, Apr 08, 2010 at 10:22:57PM +0900, Yusuke Endoh wrote:
On 4/8/10, Aaron Patterson <aaron@tenderlovemaking.com> wrote:
Hi,
[#22685] 1.9 conditional wait has no timeout support — Nasir Khan <rubylearner@...>
In ruby 1.8 we could use -
[#22687] [Bug #1248] e.exception(e) returns self — Tomas Matousek <redmine@...>
Bug #1248: e.exception(e) returns self
Hi,
Well the reason is that arg is supposed to be a message, right? A message c=
[#22715] [Bug #1251] gsub problem — Alexander Pettelkau <redmine@...>
Bug #1251: gsub problem
[#22725] [Bug #1253] Fix MSVC Build Issues — Charlie Savage <redmine@...>
Bug #1253: Fix MSVC Build Issues
[#22727] Moving ruby 1.9.1 forward on windows — Charlie Savage <cfis@...>
Hi everyone,
On Sat, Mar 7, 2009 at 7:01 PM, Charlie Savage <cfis@savagexi.com> wrote:
> This works until you start linking third-party upstream source that
On Sun, Mar 8, 2009 at 3:45 PM, Charlie Savage <cfis@savagexi.com> wrote:
Hi Austin,
On Sun, Mar 8, 2009 at 4:26 PM, Charlie Savage <cfis@savagexi.com> wrote:
[#22731] [Bug #1255] += for large strings egrigiously slow — James Lee <redmine@...>
Bug #1255: += for large strings egrigiously slow
[#22736] Ruby 1.9.1 and tail recursion optimization — =?ISO-8859-15?Q?Wolfgang_N=E1dasi-Donner?= <ed.odanow@...>
Moin, moin!
Wolfgang N疆asi-Donner schrieb:
Hi,
>
On Sun, Mar 8, 2009 at 16:57, James Coglan <jcoglan@googlemail.com> wrote:
2009/3/8 Nikolai Weibull <now@bitwi.se>
James Coglan wrote:
daz schrieb:
Wolfgang N=C3=A1dasi-Donner wrote:
Charles Oliver Nutter schrieb:
[#22748] [Feature #1256] Add constant TAILRECURSION to let a program recognize if tail recursion optimization is implemented — Wolfgang Nádasi-Donner <redmine@...>
Feature #1256: Add constant TAILRECURSION to let a program recognize if tail recursion optimization is implemented
Hi,
[#22803] Relegate 1.8.6 to Engine Yard, part II — Urabe Shyouhei <shyouhei@...>
Hello and sorry for my being slow for this issue. It's OK now for me to pass
Ryan Davis wrote:
Urabe Shyouhei wrote:
Hi,
Nobuyoshi Nakada wrote:
Urabe Shyouhei wrote:
[#22812] [Bug #1261] cross-compiling Ruby extensions using mkmf doesn't fully respect DESTDIR — Daniel Golle <redmine@...>
Bug #1261: cross-compiling Ruby extensions using mkmf doesn't fully respect DESTDIR
[#22859] [Bug #1277] Incorrect passing of file handle between runtime libraries in OpenSSL extension — Charlie Savage <redmine@...>
Bug #1277: Incorrect passing of file handle between runtime libraries in OpenSSL extension
[#22892] Ruby Time — valodzka <valodzka@...>
Got tired of current ruby Time limitation, I have written this -
In article <9e19ed87-9d12-4f98-af3c-bd49a71b0bd4@p11g2000yqe.googlegroups.com>,
valodzka wrote:
> I bet you'll get tired of updating that database. There's a major difference
In article <b5d0a489-4613-4b63-9664-8627358b2dd9@g19g2000yql.googlegroups.com>,
> I found a discussion in PHP.
In article <deab6882-12ac-4aa1-a901-681795ed863b@z9g2000yqi.googlegroups.com>,
[#22893] [Feature #1291] O_CLOEXEC flag missing for Kernel::open — David Martin <redmine@...>
Feature #1291: O_CLOEXEC flag missing for Kernel::open
Issue #1291 has been updated by Motohiro KOSAKI.
[#22894] [Bug #1292] 1.8 compile time error with mingw gcc 4.3 — Roger Pack <redmine@...>
Bug #1292: 1.8 compile time error with mingw gcc 4.3
Hi,
[#22916] [Bug #1296] [trunk/22981] 64-bit issues on trunk in ext/zlib — Ollivier Robert <redmine@...>
Bug #1296: [trunk/22981] 64-bit issues on trunk in ext/zlib
[#22927] [Bug #1301] Poor RegExp Matching Performance — Andreas Grau <redmine@...>
Bug #1301: Poor RegExp Matching Performance
[#22935] 1.8.6 rdoc breaks when rdoc'ing 1.9 — James Britt <james.britt@...>
I'm running ruby 1.8.6 (2009-03-10 patchlevel 362) [i686-linux] and
[#22937] Ruby not to be a part of Google's 2009 Summer of Code? — Rocky Bernstein <rocky.bernstein@...>
The list of participating organizations for Google's 2009 Summer of Code has
[#22978] Ruby 1.9 bloc parameters — Vincent Isambart <vincent.isambart@...>
Hi,
[#22979] Ruby 1.9 bloc parameters — Vincent Isambart <vincent.isambart@...>
Hi,
[#22990] [Bug #1309] dl tests — Charlie Savage <redmine@...>
Bug #1309: dl tests
[#23026] [Bug #1317] Creating a range with strings — Ian Bailey <redmine@...>
Bug #1317: Creating a range with strings
Issue #1317 has been updated by Michael Selig.
[#23050] [Bug #1322] define_method scope bug — "coderrr ." <redmine@...>
Bug #1322: define_method scope bug
[#23051] [Bug #1323] Sockets broken on windows — Charlie Savage <redmine@...>
Bug #1323: Sockets broken on windows
[#23053] [Bug #1325] fiber tests kill windows — Charlie Savage <redmine@...>
Bug #1325: fiber tests kill windows
[#23054] [Bug #1326] Failing unit tests on windows — Charlie Savage <redmine@...>
Bug #1326: Failing unit tests on windows
[#23060] [Bug #1327] CSV unit test failures on windows — Charlie Savage <redmine@...>
Bug #1327: CSV unit test failures on windows
[#23063] [Bug #1332] Reading file on Windows is 500x slower then with previous Ruby version — Damjan Rems <redmine@...>
Bug #1332: Reading file on Windows is 500x slower then with previous Ruby version
Issue #1332 has been updated by Roger Pack.
Hello,
[#23075] [Bug #1336] Change in string representation of Floats — Brian Ford <redmine@...>
Bug #1336: Change in string representation of Floats
Issue #1336 has been updated by Roger Pack.
Hi,
Hi,
Hi,
Gary Wright wrote:
Issue #1336 has been updated by Roger Pack.
On Fri, Apr 3, 2009 at 11:49 PM, Roger Pack <redmine@ruby-lang.org> wrote:
[#23082] [Bug #1341] pthread_cond_timedwait failing in 1.9.1-p0 thread tests — Graham Agnew <redmine@...>
Bug #1341: pthread_cond_timedwait failing in 1.9.1-p0 thread tests
[ruby-core:22638] Re: suggestions for float
OK. I apologize in advance. Soapbox on...
I, for one, like Ruby's current approach to numeric type conversions.
There is an automatic promotion from Fixnum to Bignum to prevent overflow.
(a nice feature borrowed from SmallTalk)
However, as others have pointed out, there is no analogous promotion between
discrete, countable Integer types and Floats. This is because all Floats
are *approximations* of abstract, continuous Real numbers.
Floats are imprecise by design. They are intended to represent measured
quantities, not countable objects. Any real valued measurement is likely to
have more error in its underlying physics than the 8-byte binary floating
point format Ruby uses to approximate that value.
Floats should not be used for counting *anything* discrete. Not pennies,
not array elements, not machine states. (ok, maybe pennies if you are
dealing with current stock prices :-)
Sure, they can approximate 1.0 fairly well. But, 1.1 is an inexact
repeating binary fraction.
A variant of the float to string conversion that tries to preserve all the
binary information would certainly be useful, but not as the default to_s
method. That is, unless you think that:
irb> 2.1 - 3.0
-0.8999999999999999
would not be "surprising"! (well, at least annoying)
Then, of course, there remains the question of efficiency. Many simple
iterative numerical algorithms will cause BigDecimal and Rational numbers to
balloon in bytes required as they struggle to maintain perfect accuracy.
And, as they become bigger in memory, they will also become slower. Think
of numerical integration, for example, or most any sort of successive
approximation, in general.
But, theoretical niceties aside, most plain folks are surprised when their
fancy computer says:
2.1 - 3.0 != -0.9
What would fix this problem while still preserving efficiency and keep us
numerical nerds happy?
One very elegant fix would be to invent a DecimalFloat type. It would have
limited precision, as Floats do, but 0.1 would be represented precisely, as
we finger counting humans expect it to be. I've never seen this implemented
in any other language. It would be a cool experiment.
What most numerical methods folks do in practice, is to define equality of
floats over an epsilon interval that is context dependent. So, if you
insist on counting dollars with Floats, any values equal to within 1/2 a
penny (or 0.005 dollars) might be considered "equal" for all practical
purposes. Still, it's a pain to have to specify the epsilon all the time.
Here's one way to avoid that:
require 'delegate'
class Money < DelegateClass(Float)
Epsilon = 0.005
def <=> other
diff = self - other
return -1 if diff > Epsilon
return 1 if diff < -Epsilon
0
end
def initialize dollars
super dollars.to_f
end
end
def Money euro
Money.new euro
end
====
And, here's a suboptimal way to monkey patch Float with a "dynamic" epsilon
that should behave as plain folks expect in most contexts:
class Float
def <=> other
epsilon = self * 1e-14
diff = self - other
return -1 if diff > epsilon
return 1 if diff < -epsilon
0
end
def == other #because built-in Float#== bypasses <=>
(self<=>other) == 0
end
end
Note however, that this "dynamic epsilon" can be overcome by accumulating
round off errors over
many calculations. But, by then, it's not as obvious as 2.1 - 3.0 != -0.9,
so most folks don't notice.
- brent
Roger Pack wrote:
>
>>> There is public-domain C code that formats floating-point values as the
>>> shortest string that parses back to the exact same value. The only
>>> thing that needs to happen is to interface Ruby with that code.
>
> Is that code good enough or should we fix it at "x" digits? I'd
> probably prefer the code that formats it as the shortest string
> possible [?]
>
> ...(snip)...
>
> I think the surprising part of it for me is that we have a Fixnum ->
> Bignum auto conversion "when a normal int would bite us" [like on
> overflow] but do not have that same privilege with regard to the
> floating point realm. No auto conversion. The bite remains.
>
> That being said, I think the fear is that BigDecimal will be so very
> slow that it would be too much of a performance hit. As in probably
> extremely slow.
>
> The question then is which of these two unsultry choices you'd
> prefer....well for me I would prefer the one that makes me worry less,
> which would be BigDecimal :)
>
> If the hit is deemed too hard though, I suppose the better formatting
> at least helps us track down the bugs when they happen, if not avoid
> them.
> Thoughts?
> -=r
>
>
>
--
View this message in context: http://www.nabble.com/-ruby-core%3A22325--suggestions-for-float-tp22144150p22303851.html
Sent from the ruby-core mailing list archive at Nabble.com.