-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 29-12-11 09:55, Laurent wrote: >> >> you're certainly on the right track. I tried starting drracket in >> this way: >> >> LC_ALL="en_US.UTF-8" drracket & >> > > Same here: LC_ALL="en_US.UTF-8" gracket > > Welcome to Racket v5.2.0.6. This is a simple window for evaluating > Racket expressions. Quit now and run DrRacket to get a better > window. The current input port always returns eof. >> .3 > 0.3 >> > > Great! > > *However*, this did not work with: LC_ALL="fr_FR.UTF-8" gracket
Because the french locale uses comma (,) as the decimal separator like my dutch one and unlike the english one which uses dot (.). So when the locale-aware C number reading function gets to it and sees (.) it fails to recognize is as a valid number character. Now that I've thought about it more the weird behavior where it starts working correctly after having seen a number bigger than 1.0 smells like an unmatched push/pop locale pair. Might this then not also cause quite a big locale stack to be allocated? Finally I wanted to ask if it was possible that the automated tests are run with a non-english or random locale. Matthew, I still wanted to remark that I find it strange that plain racket did not exhibit the same locale-dependence. Do you have an explanation for that? Does it read some >=1.0 float causing the locale stack to become ``seeded'' (due to postulated unmatched push/pop). BTW Perhaps coccinelle (http://coccinelle.lip6.fr/) can help identify (and automatically fix) the unmatched uses of the locale stack. Marijn -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk78ND0ACgkQp/VmCx0OL2xrMwCgyRftnjOkQfIA3rpWKKwT7dKh KaAAoIDRW5XBM9d87FQ1CbCVUhpXPREm =Sw9a -----END PGP SIGNATURE----- _________________________ Racket Developers list: http://lists.racket-lang.org/dev