ruby-core

Mailing list archive

[#79532] Immutable Strings vs Symbols — Daniel Ferreira <subtileos@...>

Hi,

15 messages 2017/02/15

[ruby-core:79685] [Ruby trunk Feature#13219] bug in Math.sqrt(n).to_i, to compute integer squareroot, new word to accurately fix it

From: tomoyapenguin@...
Date: 2017-02-22 11:27:54 UTC
List: ruby-core #79685
SXNzdWUgIzEzMjE5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgdG9tb3lhIGlzaGlkYS4KCgp1c2luZyBO
ZXd0b24ncyBtZXRob2QgbWlnaHQgYmUgYW5vdGhlciBnb29kIHdheSB0byBpbXBsZW1lbnQgaXQu
Cgp+fn5ydWJ5CmRlZiBpbnRzcXJ0X25ld3RvbihuKQogIHJhaXNlIGlmIG48MAogIHJldHVybiBu
IGlmIG48PTEKICByID0gMTw8KChuLmJpdF9sZW5ndGgrMSkvMikKICAjIHIqciA+PSBuCiAgd2hp
bGUgdHJ1ZSAjIHIqci1uID49IDIqcgogICAgcjIgPSByLShyKnItbikvKDIqcikKICAgIGJyZWFr
IGlmIHIyID09IHIKICAgIHI9cjIKICBlbmQKICAjIHIqci1uIDwgMipyCiAgIyAoci0xKSoqMiA8
IG4rMQogICMg4oiaKG4pLTEgPCDiiJoobikgPD0gci0xIDwg4oiaKG4rMSkKICByLTEKZW5kCn5+
fgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxMzIx
OTogYnVnIGluIE1hdGguc3FydChuKS50b19pLCB0byBjb21wdXRlIGludGVnZXIgc3F1YXJlcm9v
dCwgIG5ldyB3b3JkIHRvIGFjY3VyYXRlbHkgZml4IGl0Cmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu
b3JnL2lzc3Vlcy8xMzIxOSNjaGFuZ2UtNjMxMDYKCiogQXV0aG9yOiBKYWJhcmkgWmFraXlhCiog
U3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAoqIEFzc2lnbmVlOiAKKiBUYXJnZXQgdmVy
c2lvbjogCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW4gZG9pbmcg
YSBtYXRoIGFwcGxpY2F0aW9uIHVzaW5nICoqTWF0aC5zcXJ0KG4pLnRvX2kqKiB0byBjb21wdXRl
IGludGVnZXIgc3F1YXJlcm9vdHMgCm9mIGludGVnZXJzIEkgc3RhcnRlZCBub3RpY2luZyBlcnJv
cnMgZm9yIG51bWJlcnMgPiAxMCoqMjguCgoKSSBjb2RlZCBhbiBhbGdvcml0aG0gdGhhdCBhY2N1
cmF0ZWx5IGNvbXB1dGVzIHRoZSBpbnRlZ2VyIHNxdWFyZXJvb3QgZm9yIGFyYmlyYXJ5IHNpemVk
IG51bWJlcnMKYnV0IGl0cyBzaWduaWZpY2FudGx5IHNsb3dlciB0aGFuIHRoZSBtYXRoIGxpYnJh
cnkgd3JpdHRlbiBpbiBDLgoKVGh1cywgSSByZXF1ZXN0IGEgbmV3IG1ldGhvZCAqKk1hdGguaW50
c3FydChuKSoqIGJlIGNyZWF0ZWQsIHRoYXQgaXMgY29kZWQgaW4gQyBhbmQgcGFydCBvZiB0aGUK
Y29yZSBsaWJyYXJ5LCB0aGF0IHdpbGwgY29tcHV0ZSB0aGUgaW50ZWdlciBzcXVhcmVyb290cyBv
ZiBpbnRlZ2VycyBhY2N1cmF0ZWx5IGFuZCBmYXN0LgoKSGVyZSBpcyB3b3JraW5nIGhpZ2hsZXZl
bCBjb2RlIHRvIGFjY3VyYXRlbHkgY29tcHV0ZSB0aGUgaW50ZWdlciBzcXVhcmVyb290LgoKYGBg
CmRlZiBpbnRzcXJ0KG4pCiAgYml0c19zaGlmdCA9IChuLnRvX3MoMikuc2l6ZSkvMiArIDEKICBi
aXRuX21hc2sgPSByb290ID0gMSA8PCBiaXRzX3NoaWZ0CiAgd2hpbGUgdHJ1ZQogICAgcm9vdCBe
PSBiaXRuX21hc2sgaWYgKHJvb3QgKiByb290KSA+IG4KICAgIGJpdG5fbWFzayA+Pj0gMQogICAg
cmV0dXJuIHJvb3QgaWYgYml0bl9tYXNrID09IDAKICAgIHJvb3QgfD0gYml0bl9tYXNrCiAgZW5k
CmVuZAoKZGVmIGludHNxcnQxKG4pCiAgcmV0dXJuIG4gaWYgbiB8IDEgPT0gMSAgICMgaWYgbiBp
cyAwIG9yIDEKICBiaXRzX3NoaWZ0ID0gKE1hdGgubG9nMihuKS5jZWlsKS8yICsgMQogIGJpdG5f
bWFzayA9IHJvb3QgPSAxIDw8IGJpdHNfc2hpZnQKICB3aGlsZSB0cnVlCiAgICByb290IF49IGJp
dG5fbWFzayBpZiAocm9vdCAqIHJvb3QpID4gbgogICAgYml0bl9tYXNrID4+PSAxCiAgICByZXR1
cm4gcm9vdCBpZiBiaXRuX21hc2sgPT0gMAogICAgcm9vdCB8PSBiaXRuX21hc2sKICBlbmQKZW5k
CgpyZXF1aXJlICJiZW5jaG1hcmsvaXBzIgoKQmVuY2htYXJrLmlwcyBkbyB8eHwKICBuID0gMTAq
KjQwCiAgcHV0cyAiaW50ZWdlciBzcXVhcmVyb290IHRlc3RzIGZvciBuID0gI3tufSIKICB4LnJl
cG9ydCgiaW50c3FydChuKSIgICAgICAgKSB7IGludHNxcnQobikgIH0KICB4LnJlcG9ydCgiaW50
c3FydDEobikiICAgICAgKSB7IGludHNxcnQxKG4pIH0KICB4LnJlcG9ydCgiTWF0aC5zcXJ0KG4p
LnRvX2kiKSB7IE1hdGguc3FydChuKS50b19pIH0KICB4LmNvbXBhcmUhCmVuZApgYGAKSGVyZSdz
IHdoeSBpdCBuZWVkcyB0byBiZSBkb25lIGluIEMuCgpgYGAKMi40LjAgOjE3OCA+IGxvYWQgJ2lu
dHNxcnR0ZXN0LnJiJwppbnRlZ2VyIHNxdWFyZXJvb3QgdGVzdHMgZm9yIG4gPSAxMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApXYXJtaW5nIHVwIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICBpbnRzcXJ0KG4pICAgICA1LjMxOGsg
aS8xMDBtcwogICAgICAgICBpbnRzcXJ0MShuKSAgICAgNS40NDVrIGkvMTAwbXMKICAgTWF0aC5z
cXJ0KG4pLnRvX2kgICAyNjguMjgxayBpLzEwMG1zCkNhbGN1bGF0aW5nIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgIGludHNxcnQobikgICAgIDU0LjIxOWsg
KMKxIDUuNSUpIGkvcyAtICAgIDI3MS4yMThrIGluICAgNS4wMTc1NTJzCiAgICAgICAgIGludHNx
cnQxKG4pICAgICA1NS44NzJrICjCsSA1LjQlKSBpL3MgLSAgICAyODMuMTQwayBpbiAgIDUuMDgy
OTUzcwogICBNYXRoLnNxcnQobikudG9faSAgICAgIDUuMjc4TSAowrEgNi4xJSkgaS9zIC0gICAg
IDI2LjU2ME0gaW4gICA1LjA1MDcwN3MKCkNvbXBhcmlzb246CiAgIE1hdGguc3FydChuKS50b19p
OiAgNTI3ODQ3Ny44IGkvcwogICAgICAgICBpbnRzcXJ0MShuKTogICAgNTU4NzEuNyBpL3MgLSA5
NC40N3ggIHNsb3dlcgogICAgICAgICAgaW50c3FydChuKTogICAgNTQyMTkuNCBpL3MgLSA5Ny4z
NXggIHNsb3dlcgoKID0+IHRydWUgCjIuNC4wIDoxNzkgPiAKCmBgYApIZXJlIGFyZSBleGFtcGxl
cyBvZiBtYXRoIGVycm9ycyB1c2luZyAqKk1hdGguc3FydChuKS50b19pKiogcnVuIG9uIFJ1Ynkt
Mi40LjAuCgpgYGAKMi40LjAgOjEwMSA+IG4gPSAxMCoqMjc7IHB1dHMgbiwgKGEgPSBpbnRzcXJ0
KG4pKSwgYSphLCAoYiA9IGludHNxcnQxKG4pKSwgYipiLCAoYyA9IE1hdGguc3FydChuKS50b19p
KSwgYypjICAgCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMzE2MjI3NzY2MDE2ODMKOTk5
OTk5OTk5OTk5OTQ5ODI2MDM4NDMyNDg5CjMxNjIyNzc2NjAxNjgzCjk5OTk5OTk5OTk5OTk0OTgy
NjAzODQzMjQ4OQozMTYyMjc3NjYwMTY4Mwo5OTk5OTk5OTk5OTk5NDk4MjYwMzg0MzI0ODkKID0+
IG5pbCAKMi40LjAgOjEwMiA+IG4gPSAxMCoqMjg7IHB1dHMgbiwgKGEgPSBpbnRzcXJ0KG4pKSwg
YSphLCAoYiA9IGludHNxcnQxKG4pKSwgYipiLCAoYyA9IE1hdGguc3FydChuKS50b19pKSwgYypj
IAoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAog
PT4gbmlsIAoyLjQuMCA6MTAzID4gbiA9IDEwKioyOTsgcHV0cyBuLCAoYSA9IGludHNxcnQobikp
LCBhKmEsIChiID0gaW50c3FydDEobikpLCBiKmIsIChjID0gTWF0aC5zcXJ0KG4pLnRvX2kpLCBj
KmMgCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAozMTYyMjc3NjYwMTY4MzcKOTk5OTk5
OTk5OTk5OTk0MDk3OTI1Njc0ODQ1NjkKMzE2MjI3NzY2MDE2ODM3Cjk5OTk5OTk5OTk5OTk5NDA5
NzkyNTY3NDg0NTY5CjMxNjIyNzc2NjAxNjgzNwo5OTk5OTk5OTk5OTk5OTQwOTc5MjU2NzQ4NDU2
OQogPT4gbmlsIAoyLjQuMCA6MTA0ID4gbiA9IDEwKiozMDsgcHV0cyBuLCAoYSA9IGludHNxcnQo
bikpLCBhKmEsIChiID0gaW50c3FydDEobikpLCBiKmIsIChjID0gTWF0aC5zcXJ0KG4pLnRvX2kp
LCBjKmMgIAoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAK
MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAwCjEwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCiA9PiBuaWwgCjIuNC4wIDoxMDUgPiBuID0gMTAqKjMxOyBwdXRzIG4s
IChhID0gaW50c3FydChuKSksIGEqYSwgKGIgPSBpbnRzcXJ0MShuKSksIGIqYiwgKGMgPSBNYXRo
LnNxcnQobikudG9faSksIGMqYyAKMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMzE2
MjI3NzY2MDE2ODM3OQo5OTk5OTk5OTk5OTk5OTk3OTAwMjU0NjMxNDg3NjQxCjMxNjIyNzc2NjAx
NjgzNzkKOTk5OTk5OTk5OTk5OTk5NzkwMDI1NDYzMTQ4NzY0MQozMTYyMjc3NjYwMTY4Mzc5Cjk5
OTk5OTk5OTk5OTk5OTc5MDAyNTQ2MzE0ODc2NDEKID0+IG5pbCAKMi40LjAgOjEwNiA+IG4gPSAx
MCoqMzI7IHB1dHMgbiwgKGEgPSBpbnRzcXJ0KG4pKSwgYSphLCAoYiA9IGludHNxcnQxKG4pKSwg
YipiLCAoYyA9IE1hdGguc3FydChuKS50b19pKSwgYypjIAoxMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAoxMDAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKID0+
IG5pbCAKMi40LjAgOjEwNyA+IG4gPSAxMCoqMzM7IHB1dHMgbiwgKGEgPSBpbnRzcXJ0KG4pKSwg
YSphLCAoYiA9IGludHNxcnQxKG4pKSwgYipiLCAoYyA9IE1hdGguc3FydChuKS50b19pKSwgYypj
CjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMzE2MjI3NzY2MDE2ODM3OTMKOTk5
OTk5OTk5OTk5OTk5OTc5NzYyMTIyNzU4ODY2ODQ5CjMxNjIyNzc2NjAxNjgzNzkzCjk5OTk5OTk5
OTk5OTk5OTk3OTc2MjEyMjc1ODg2Njg0OQozMTYyMjc3NjYwMTY4Mzc5Mgo5OTk5OTk5OTk5OTk5
OTk5MTY1MTY1Njk1NTU0OTkyNjQKID0+IG5pbCAKMi40LjAgOjEwOCA+IG4gPSAxMCoqMzQ7IHB1
dHMgbiwgKGEgPSBpbnRzcXJ0KG4pKSwgYSphLCAoYiA9IGludHNxcnQxKG4pKSwgYipiLCAoYyA9
IE1hdGguc3FydChuKS50b19pKSwgYypjCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCjEwMDAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAoxMDAwMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
MTAwMDAwMDAwMDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiA9
PiBuaWwgCjIuNC4wIDoxMDkgPiBuID0gMTAqKjM1OyBwdXRzIG4sIChhID0gaW50c3FydChuKSks
IGEqYSwgKGIgPSBpbnRzcXJ0MShuKSksIGIqYiwgKGMgPSBNYXRoLnNxcnQobikudG9faSksIGMq
YwoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKMzE2MjI3NzY2MDE2ODM3OTMz
Cjk5OTk5OTk5OTk5OTk5OTk5ODczNTc4ODcxOTg3NzEyNDg5CjMxNjIyNzc2NjAxNjgzNzkzMwo5
OTk5OTk5OTk5OTk5OTk5OTg3MzU3ODg3MTk4NzcxMjQ4OQozMTYyMjc3NjYwMTY4Mzc5NTIKMTAw
MDAwMDAwMDAwMDAwMDExODkwMjMzOTgwNjI3NTU0MzA0CiA9PiBuaWwgCjIuNC4wIDoxMTAgPiBu
ID0gMTAqKjM2OyBwdXRzIG4sIChhID0gaW50c3FydChuKSksIGEqYSwgKGIgPSBpbnRzcXJ0MShu
KSksIGIqYiwgKGMgPSBNYXRoLnNxcnQobikudG9faSksIGMqYwoxMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAwMDAwCjEwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKMTAwMDAwMDAwMDAwMDAwMDAwMAoxMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCiA9PiBuaWwgCjIuNC4wIDoxMTEgPiBuID0gMTAqKjM3OyBw
dXRzIG4sIChhID0gaW50c3FydChuKSksIGEqYSwgKGIgPSBpbnRzcXJ0MShuKSksIGIqYiwgKGMg
PSBNYXRoLnNxcnQobikudG9faSksIGMqYwoxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAozMTYyMjc3NjYwMTY4Mzc5MzMxCjk5OTk5OTk5OTk5OTk5OTk5OTM2ODI0NDI1MTkx
MDgwMDc1NjEKMzE2MjI3NzY2MDE2ODM3OTMzMQo5OTk5OTk5OTk5OTk5OTk5OTkzNjgyNDQyNTE5
MTA4MDA3NTYxCjMxNjIyNzc2NjAxNjgzNzkzOTIKMTAwMDAwMDAwMDAwMDAwMDAzNzk0ODAzMTcw
NTk2NTAyODk2NjQKID0+IG5pbCAKMi40LjAgOjExMiA+IApgYGAKCgoKLS0gCmh0dHBzOi8vYnVn
cy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RA
cnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFu
Zy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next