World: r3wp
[RAMBO] The REBOL bug and enhancement database
older newer | first last |
Pekr 7-Feb-2007 [2631] | but we want 2.7 to fix certain bugs, no? |
Gabriele 7-Feb-2007 [2632] | of course. as i said, first we must remove the bugs introduced by the merge, then we start fixing bugs that were in 1.3.2 already. |
Ladislav 7-Feb-2007 [2633] | Gabriele: I noticed that two ROUND test cases ceased to work in 2.7 - this signals, that comparison in 2.7 isn't equivalent to comparison in 1.3.2 |
BrianH 7-Feb-2007 [2634] | Is it better? |
Ladislav 7-Feb-2007 [2635] | Brian: if your question is related to my post, then I would answer: it depends. The cases are: not negative? 1E-8 - abs 0.9999999 - mod 99999999.9999999 1 0.1 == round/even/to 0.1 1E-16 |
BrianH 7-Feb-2007 [2636x2] | Dang, I'd have to refresh my math memory to know what the answers to those should be. Still, my preference is to have comparison work correctly, and if it didn't before, break backwards compatibility and fix the code that depended on the bad comparisons. There can't be much of that... |
Err on the side of more correct :) | |
Ladislav 7-Feb-2007 [2638x2] | my preference is to have comparison work correctly - this may be a matter of preference, as it looks. Both versions yield: 0.1 + 0.1 + 0.1 = 0.3 ; == true zero? 0.1 + 0.1 + 0.1 - 0.3 ; == false |
:-) | |
BrianH 7-Feb-2007 [2640] | Where are fixed-point or BCD numbers when you need them? :) |
Anton 7-Feb-2007 [2641] | This is just madness. Why do we still put up with this ? |
BrianH 7-Feb-2007 [2642] | Because 0.1 is a floating-point value in REBOL, and for that matter one that can't be represented exactly, much like 1/3 in decimal. |
Maxim 7-Feb-2007 [2643x2] | anton, this is a problem in all floating point... I had serious issues in compiling earthquake data over a 30 second period... adding each change over and over could amount to moving a building a foot away ! |
because all of the small discrepancies eventually add-up. | |
Geomol 7-Feb-2007 [2645] | >> 0.1 + 0.1 + 0.1 - 0.3 == 5.55111512312578E-17 That's not zero! Anyone can see that! ;-) I think, it's ok, because the way floating-point works. One could just do >> 0.1 + 0.1 + 0.1 - 0.3 < 1e-10 == true and that's almost zero, right? :-) |
Maxim 7-Feb-2007 [2646] | in high-end 3D and games you live with this imperfection daily. |
Geomol 7-Feb-2007 [2647] | Just like the real world. Imperfection! |
Maxim 7-Feb-2007 [2648x2] | hehe should we define an 'ALMOST func ? |
almost? #"a" "a" ==true | |
ICarii 7-Feb-2007 [2650] | i would prefer precision over speed. |
Geomol 7-Feb-2007 [2651] | >> almost-zero?: func [v][v < 1e-10] >> almost-zero? 0.1 + 0.1 + 0.1 - 0.3 == true |
BrianH 7-Feb-2007 [2652] | I believe they call the minimum value that floating point values can differ before they register as different: Epsilon. |
Maxim 7-Feb-2007 [2653x2] | but like brian said... 0.1 cannot be reprensented in binary ... precision is not the issue... you'll never get to that amount exactly. |
which is why BCD exists. these actually are a base-ten counting system. | |
Geomol 7-Feb-2007 [2655x2] | Right! I haven't studied floating-point closely, but it's something about powers of 2 added together, and that'll never end up for some values. |
I guess, we can think of it this way: some values like 0.1 to computer floating-point system is like square-root 2 or pi to our human base-ten system. | |
ICarii 7-Feb-2007 [2657] | is the standard double type used in other languages BCD encoded? |
Geomol 7-Feb-2007 [2658] | There are just some real numbers, that we can't write down with our base-ten system. The same way, computers can't handle some values completely. |
BrianH 7-Feb-2007 [2659] | ICarii, no, generally double in other languages is the same exact type as decimal! in REBOL - for that matter, REBOL uses C double internally for decimal! values. BCD is fairly rare outside of programming libraries and languages made for financial use, like COBOL. |
Anton 7-Feb-2007 [2660] | Yes, I know the *technical reason* why ! :) (we have of course been over this before, several times). It was just blowing some steam. Never mind me. |
Oldes 7-Feb-2007 [2661] | ICarii > "i would prefer precision over speed." - - I would prefere speed over precision. But I'm not making any financial calcultions:-) |
BrianH 8-Feb-2007 [2662] | I would prefer good enough on both, but failing that I would prefer known limits that can be adjusted for in planning. |
Maxim 8-Feb-2007 [2663x3] | I just posted a few bugs about the plugin being quite shorthanded with the event it receives from the various browsers. |
for example, I just discovered that the "enter/return" key is not trapped within fields (so by extension isn't sent to the plugin) within Internet Explorer. This specific case is not an issue within firefox... but then, neither receive scroll-wheel events... and others have posted that the alt+ctrl+shift keys are not detected, and there are other event issues too IIRC. this is quite serious IMHO. | |
this sort of brings back the "nice toy" effect of REBOL within the plugin. :-( | |
BrianH 8-Feb-2007 [2666] | Are these events handled by other plugins, like Flash and Java applets? |
Maxim 8-Feb-2007 [2667x2] | ah... "enter" key... yes for sure. |
I can't be sure... as I'm no flash expert, but my gut feeling is that since actual controls do receive the events... object controls should also be able to receive them ... I posted the bug mainly to make sure the enter key isn't forgotten... cause that is quite weird. | |
Graham 8-Feb-2007 [2669x4] | There's a small but significant "bug" in prot-esmtp.r that for most users doesn't matter. |
the protocol sends a terminating "." to signify the end of an email. But this is not correct. The RFC specifies that you should send crlf "." crlf | |
and what is actually being sent is .. lf "." lf | |
gmail just hangs on this because it is expecting to see crlf "." crlf | |
BrianH 8-Feb-2007 [2673] | Is it sending lf or is it sending the platform-specific line ending? |
Graham 8-Feb-2007 [2674x4] | Now if you send crlf "." crlf to smtp.gmail.com, gmail just then drops the line on you. |
because the port is opened with /lines, it is actually sending crlf "." crlf lf | |
which gmail does not like at all. | |
so, you have to send crlf ".^M" instead ! | |
BrianH 8-Feb-2007 [2678] | I think you can open a port with /lines in a way that specifies the line ending string. |
Graham 8-Feb-2007 [2679x2] | I've only tested this on windows .. will have to see what core does on linux |
but all the internet protocols use crlf and not lf | |
older newer | first last |