[ruby-core:84505] [Ruby trunk Feature#12589] VM performance improvement proposal

From: danieldasilvaferreira@...
Date: 2017-12-27 10:50:15 UTC
List: ruby-core #84505
SXNzdWUgIzEyNTg5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHNmZXJyZWlyYSAoRGFuaWVsIEZlcnJl
aXJhKS4KCgpUaGVzZSBhcmUgZ3JlYXQgbmV3cyBmb3IgcnVieSBhbmQgaXTigJlzIGNvbW11bml0
eS4gVGhhbmsgeW91IGJvdGggZm9yIHlvdXIgZ3JlYXQgd29yay4KVGhpbmdzIGNhbiBvbmx5IGdl
dCBiZXR0ZXIhIExvbmcgbGl2ZSBydWJ5IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpGZWF0dXJlICMxMjU4OTogVk0gcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgcHJv
cG9zYWwKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzEyNTg5I2NoYW5nZS02OTAz
MwoKKiBBdXRob3I6IHZtYWthcm92IChWbGFkaW1pciBNYWthcm92KQoqIFN0YXR1czogT3Blbgoq
IFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogCiogVGFyZ2V0IHZlcnNpb246IAotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSGVsbG8uICBJJ2QgbGlrZSB0byBz
dGFydCBhIGJpZyBNUkkgcHJvamVjdCBidXQgSSBkb24ndCB3YW50IHRvCmRpc3J1cHQgc29tZWJv
ZHkgZWxzZSBwbGFucy4gIFRoZXJlZm9yZSBJJ2QgbGlrZSB0byBoYXZlIE1SSQpkZXZlbG9wZXIn
cyBvcGluaW9uIG9uIHRoZSBwcm9wb3NlZCBwcm9qZWN0IG9yIGluZm9ybWF0aW9uIGlmIHNvbWVi
b2R5CmlzIGFscmVhZHkgd29ya2luZyBvbiBhbiBhbmFsb2dvdXMgcHJvamVjdC4KCiAgQmFzaWNh
bGx5IEkgd2FudCB0byBpbXByb3ZlIG92ZXJhbGwgTVJJIFZNIHBlcmZvcm1hbmNlOgoKICAqIEZp
cnN0IG9mIGFsbCwgSSdkIGxpa2UgdG8gY2hhbmdlIFZNIGluc25zIGFuZCBtb3ZlIGZyb20KICAg
ICoqc3RhY2stYmFzZWQqKiBpbnNucyB0byAqKnJlZ2lzdGVyIHRyYW5zZmVyKiogb25lcy4gIFRo
ZSBpZGVhIGJlaGluZAogICAgaXQgaXMgdG8gZGVjcmVhc2UgVk0gZGlzcGF0Y2ggb3ZlcmhlYWQg
YXMgYXBwcm94aW1hdGVseSAyIHRpbWVzCiAgICBsZXNzIFJUTCBpbnNucyBhcmUgbmVjZXNzYXJ5
IHRoYW4gc3RhY2sgYmFzZWQgaW5zbnMgZm9yIHRoZSBzYW1lCiAgICBwcm9ncmFtIChmb3IgUnVi
eSBpdCBpcyBwcm9iYWJseSBldmVuIGxlc3MgYXMgYSB0eXBpY2FsIFJ1YnkgcHJvZ3JhbQogICAg
Y29udGFpbnMgYSBsb3Qgb2YgbWV0aG9kIGNhbGxzIGFuZCB0aGUgYXJndW1lbnRzIGFyZSBwYXNz
ZWQgdGhyb3VnaAogICAgdGhlIHN0YWNrKS4KCiAgICBCdXQgKmRlY3JlYXNpbmcgbWVtb3J5IHRy
YWZmaWMqIGlzIGV2ZW4gbW9yZSBpbXBvcnRhbnQgYWR2YW50YWdlCiAgICBvZiBSVEwgaW5zbnMg
YXMgYW4gUlRMIGluc24gY2FuIGFkZHJlc3MgdGVtcG9yYXJpZXMgKHN0YWNrKSBhbmQKICAgIGxv
Y2FsIHZhcmlhYmxlcyBpbiBhbnkgY29tYmluYXRpb24uICBTbyB0aGVyZSBpcyBubyBuZWNlc3Np
dHkgdG8KICAgIHB1dCBhbiBpbnNuIHJlc3VsdCBvbiB0aGUgc3RhY2sgYW5kIHRoZW4gbW92ZSBp
dCB0byBhIGxvY2FsCiAgICB2YXJpYWJsZSBvciBwdXQgdmFyaWFibGUgdmFsdWUgb24gdGhlIHN0
YWNrIGFuZCB0aGVuIHVzZSBpdCBhcyBhbgogICAgaW5zbiBvcGVyYW5kLiAgSW5zbnMgZG9pbmcg
bW9yZSBhbHNvIHByb3ZpZGUgYSBiaWdnZXIgc2NvcGUgZm9yIEMKICAgIGNvbXBpbGVyIG9wdGlt
aXphdGlvbnMuCgogICAgVGhlIGJpZ2dlc3QgY2hhbmdlcyB3aWxsIGJlIGluIGZpbGVzIGNvbXBp
bGUuYyBhbmQgaW5zbnMuZGVmICh0aGV5CiAgICB3aWxsIGJlIGJhc2ljYWxseSByZXdyaXR0ZW4p
LiAgKipTbyB0aGUgcHJvamVjdCBpcyBub3QgYSBuZXcgVk0KICAgIG1hY2hpbmUuICBNUkkgVk0g
aXMgbXVjaCBtb3JlIHRoYW4gdGhlc2UgMiBmaWxlcy4qKgoKICAgIFRoZSBkaXNhZHZhbnRhZ2Ug
b2YgUlRMIGluc25zIGlzIGEgYmlnZ2VyIGluc24gbWVtb3J5IGZvb3RwcmludAogICAgKHdoaWNo
IGNhbiBiZSB1cHRvIDMwJSBtb3JlKSBhbHRob3VnaCBhcyBJIHdyb3RlIHRoZXJlIGFyZSBmZXdl
cgogICAgbnVtYmVyIG9mIFJUTCBpbnNucy4KCiAgICBBbm90aGVyIGRpc2FkdmFudGFnZSBvZiBS
VEwgaW5zbnMgKnNwZWNpZmljYWxseSogZm9yIFJ1YnkgaXMgdGhhdAogICAgaW5zbnMgZm9yIGNh
bGwgc2VxdWVuY2VzIHdpbGwgYmUgYmFzaWNhbGx5IHRoZSBzYW1lIHN0YWNrIGJhc2VkCiAgICBv
bmVzIGJ1dCBvbmx5IGJpZ2dlciBhcyB0aGV5IGFkZHJlc3MgdGhlIHN0YWNrIGV4cGxpY2l0bHku
CgogICogU2Vjb25kbHksIEknZCBsaWtlIHRvICoqY29tYmluZSBzb21lIGZyZXF1ZW50IGluc24g
c2VxdWVuY2VzKiogaW50bwogICAgYmlnZ2VyIGluc25zLiAgQWdhaW4gaXQgZGVjcmVhc2VzIGlu
c24gZGlzcGF0Y2ggb3ZlcmhlYWQgYW5kCiAgICBtZW1vcnkgdHJhZmZpYyBldmVuIG1vcmUuICBB
bHNvIGl0IHBlcm1pdHMgdG8gcmVtb3ZlIHNvbWUgdHlwZQogICAgY2hlY2tpbmcuCgogICAgVGhl
IGZpcnN0IHRoaW5nIG9uIG15IG1pbmQgaXMgYSBzZXF1ZW5jZSBvZiBhIGNvbXBhcmUgaW5zbiBh
bmQgYQogICAgYnJhbmNoIGFuZCB1c2luZyBpbW1lZGlhdGUgb3BlcmFuZHMgYmVzaWRlcyB0ZW1w
b3JhcnkgKHN0YWNrKSBhbmQKICAgIGxvY2FsIHZhcmlhYmxlcy4gIEFsc28gaXQgaXMgbm90IGEg
dHJpdmlhbCB0YXNrIGZvciBSdWJ5IGFzIHRoZQogICAgY29tcGFyZSBjYW4gYmUgaW1wbGVtZW50
ZWQgYXMgYSBtZXRob2QuCgogIEkgYWxyZWFkeSBkaWQgc29tZSBleHBlcmltZW50cy4gIFJUTCBp
bnNucyAmIGNvbWJpbmluZyBpbnNucyBwZXJtaXRzCnRvIHNwZWVkIHRoZSBmb2xsb3dpbmcgbWlj
cm8tYmVuY2htYXJrIGluIG1vcmUgMiB0aW1lczoKCmBgYAppID0gMAp3aGlsZSBpPDMwXzAwMF8w
MDAgIyBiZW5jaG1hcmsgbG9vcCAxCiAgaSArPSAxCmVuZApgYGAKClRoZSBnZW5lcmF0ZWQgUlRM
IGluc25zIGZvciB0aGUgYmVuY2htYXJrIGFyZQoKYGBgCj09IGRpc2FzbTogIzxJU2VxOjxtYWlu
PkB3aGlsZS5yYj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo9PSBjYXRj
aCB0YWJsZQp8IGNhdGNoIHR5cGU6IGJyZWFrICBzdDogMDAwNyBlZDogMDAyMCBzcDogMDAwMCBj
b250OiAwMDIwCnwgY2F0Y2ggdHlwZTogbmV4dCAgIHN0OiAwMDA3IGVkOiAwMDIwIHNwOiAwMDAw
IGNvbnQ6IDAwMDUKfCBjYXRjaCB0eXBlOiByZWRvICAgc3Q6IDAwMDcgZWQ6IDAwMjAgc3A6IDAw
MDAgY29udDogMDAwNwp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmxvY2FsIHRhYmxlIChzaXplOiAyLCB0ZW1w
OiAxLCBhcmdjOiAwIFtvcHRzOiAwLCByZXN0OiAtMSwgcG9zdDogMCwgYmxvY2s6IC0xLCBrdzog
LTFALTEsIGt3cmVzdDogLTFdKQpbIDJdIGkKMDAwMCBzZXRfbG9jYWxfdmFsICAgIDIsIDAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggICAxKQowMDAzIGp1bXAg
ICAgICAgICAgICAgMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCAgIDIpCjAwMDUganVtcCAgICAgICAgICAgICAxMwowMDA3IHBsdXNpICAgICAgICAgICAg
PGNhbGxjYWNoZT4sIDIsIDIsIDEsIC0xICAgICAgICAgICAgICAgICAgICAgICAgKCAgIDMpCjAw
MTMgYnRsdGkgICAgICAgICAgICA3LCA8Y2FsbGNhY2hlPiwgLTEsIDIsIDMwMDAwMDAwLCAtMSAg
ICAgICAgICAgICAoICAgMikKMDAyMCBsb2NhbF9yZXQgICAgICAgIDIsIDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggICAzKQpgYGAKCkluIHRoaXMgZXhwZXJp
bWVudCBJIGlnbm9yZWQgdHJhY2UgaW5zbnMgKHRoYXQgaXMgYW5vdGhlciBzdG9yeSkgYW5kIGEK
Y29tcGxpY2F0aW9uIHRoYXQgYSBpbnRlZ2VyIGNvbXBhcmUgaW5zbiBjYW4gYmUgcmUtaW1wbGVt
ZW50ZWQgYXMgYQpSdWJ5IG1ldGhvZC4gIEluc24gYmZsdGkgaXMgY29tYmluYXRpb24gb2YgTFQg
aW1tZWRpYXRlIGNvbXBhcmUgYW5kCmJyYW5jaCB0cnVlLgoKQSBtb2RpZmljYXRpb24gb2YgZmli
IGJlbmNobWFyayBpcyBzcGVkIHVwIGluIDEuMzUgdGltZXM6CgpgYGAKZGVmIGZpYl9tIG4KICBp
ZiBuIDwgMQogICAgMQogIGVsc2UKICAgIGZpYl9tKG4tMSkgKiBmaWJfbShuLTIpCiAgZW5kCmVu
ZAoKZmliX20oNDApCmBgYAoKVGhlIFJUTCBjb2RlIG9mIGZpYl9tIGxvb2tzIGxpa2UKCmBgYAo9
PSBkaXNhc206ICM8SVNlcTpmaWJfbUBmbS5yYj49PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KbG9jYWwgdGFibGUgKHNpemU6IDIsIHRlbXA6IDMsIGFyZ2M6IDEgW29w
dHM6IDAsIHJlc3Q6IC0xLCBwb3N0OiAwLCBibG9jazogLTEsIGt3OiAtMUAtMSwga3dyZXN0OiAt
MV0pClsgMl0gbjxBcmc+CjAwMDAgYmZsdGkgICAgICAgICAgICAxMCwgPGNhbGxjYWNoZT4sIC0x
LCAyLCAxLCAtMSAgICAgICAgICAgICAgICAgICAoICAgMikKMDAwNyB2YWxfcmV0ICAgICAgICAg
IDEsIDE2CjAwMTAgbWludXNpICAgICAgICAgICA8Y2FsbGNhY2hlPiwgLTIsIDIsIDEsIC0yICAg
ICAgICAgICAgICAgICAgICAgICAoICAgNSkKMDAxNiBzaW1wbGVfY2FsbF9zZWxmIDxjYWxsaW5m
byFtaWQ6ZmliX20sIGFyZ2M6MSwgRkNBTEx8QVJHU19TSU1QTEU+LCA8Y2FsbGNhY2hlPiwgLTEK
MDAyMCBtaW51c2kgICAgICAgICAgIDxjYWxsY2FjaGU+LCAtMywgMiwgMiwgLTMKMDAyNiBzaW1w
bGVfY2FsbF9zZWxmIDxjYWxsaW5mbyFtaWQ6ZmliX20sIGFyZ2M6MSwgRkNBTEx8QVJHU19TSU1Q
TEU+LCA8Y2FsbGNhY2hlPiwgLTIKMDAzMCBtdWx0ICAgICAgICAgICAgIDxjYWxsY2FjaGU+LCAt
MSwgLTEsIC0yLCAtMQowMDM2IHRlbXBfcmV0ICAgICAgICAgLTEsIDE2CmBgYAoKSW4gcmVhbGl0
eSwgdGhlIGltcHJvdmVtZW50IG9mIG1vc3QgcHJvZ3JhbXMgcHJvYmFibHkgd2lsbCBiZSBhYm91
dAoxMCUuICBUaGF0IGlzIGJlY2F1c2Ugb2YgdmVyeSBkeW5hbWljIG5hdHVyZSBvZiBSdWJ5IChh
IGxvdCBvZiBjYWxscywKY2hlY2tzIGZvciByZWRlZmluaXRpb24gb2YgYmFzaWMgdHlwZSBvcGVy
YXRpb25zLCBjaGVja2luZyBvdmVyZmxvd3MKdG8gc3dpdGNoIHRvIEdNUCBudW1iZXJzKS4gIEZv
ciBleGFtcGxlLCBpbnRlZ2VyIGFkZGl0aW9uIGNhbiBub3QgYmUKbGVzcyB0aGFuIGFib3V0IHg4
Ni02NCAxNyBpbnNucyBvdXQgb2YgdGhlIGN1cnJlbnQgNTAgaW5zbnMgb24gdGhlCmZhc3QgcGF0
aC4gIFNvIGV2ZW4gaWYgeW91IG1ha2UgdGhlIHJlc3QgKDMzKSBpbnNucyAyIHRpbWVzIGZhc3Rl
ciwKdGhlIGltcHJvdmVtZW50IHdpbGwgYmUgb25seSAzMCUuCgpBIHZlcnkgaW1wb3J0YW50IHBh
cnQgb2YgTVJJIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGlzIHRvIG1ha2UgY2FsbHMKZmFzdCBi
ZWNhdXNlIHRoZXJlIGFyZSBhIGxvdCBvZiB0aGVtIGluIFJ1YnkgYnV0IGFzIEkgcmVhZCBpbiBz
b21lCktvaWNoaSBTYXNhZGEncyBwcmVzZW50YXRpb25zIGhlIHBheXMgYSBsb3Qgb2YgYXR0ZW50
aW9uIHRvIGl0LiAgU28gSQpkb24ndCB3YW50IHRvIHRvdWNoIGl0LgoKICAqIFRoaXJkbHkuICBJ
IHdhbnQgdG8gaW1wbGVtZW50IHRoZSBpbnNucyBhcyBzbWFsbCBpbmxpbmUgZnVuY3Rpb25zCiAg
ICBmb3IgZnV0dXJlIEFPVCBjb21waWxlciwgb2YgY291cnNlLCBpZiB0aGUgcHJvamVjdHMgZGVz
Y3JpYmVkCiAgICBhYm92ZSBhcmUgc3VjY2Vzc2Z1bC4gIEl0IHdpbGwgcGVybWl0IGVhc3kgQU9U
IGdlbmVyYXRpb24gb2YgQyBjb2RlCiAgICB3aGljaCB3aWxsIGJlIGJhc2ljYWxseSBjYWxscyBv
ZiB0aGUgZnVuY3Rpb25zLgoKICAgIEknZCBsaWtlIHRvIGltcGxlbWVudCBBT1QgY29tcGlsZXIg
d2hpY2ggd2lsbCBnZW5lcmF0ZSBhIFJ1YnkKICAgIG1ldGhvZCBjb2RlLCBjYWxsIGEgQyBjb21w
aWxlciB0byBnZW5lcmF0ZSBhIGJpbmFyeSBzaGFyZWQgY29kZQogICAgYW5kIGxvYWQgaXQgaW50
byBNUkkgZm9yIHN1YnNlcXVlbnQgY2FsbHMuICBUaGUga2V5IGlzIHRvIG1pbmltaXplCiAgICB0
aGUgY29tcGlsYXRpb24gdGltZS4gIFRoZXJlIGFyZSBtYW55IGFwcHJvYWNoZXMgdG8gZG8gaXQg
YnV0IEkKICAgIGRvbid0IHdhbnQgdG8gZGlzY3VzcyBpdCByaWdodCBub3cuCgogICAgQyBnZW5l
cmF0aW9uIGlzIGVhc3kgYW5kIG1vc3QgcG9ydGFibGUgaW1wbGVtZW50YXRpb24gb2YgQU9UIGJ1
dAogICAgaW4gZnV0dXJlIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBHQ0MgSklUIHBsdWdpbiBvciBM
TFZNIElSIHRvCiAgICBkZWNyZWFzZSBvdmVyaGVhZCBvZiBDIHNjYW5uZXIvcGFyc2VyLgoKICAg
IEMgY29tcGlsZXIgd2lsbCBzZWUgYSBiaWdnZXIgc2NvcGUgKGFsbCBtZXRob2QgaW5zbnMpIHRv
IGRvCiAgICBvcHRpbWl6YXRpb25zLiAgSSB0aGluayB1c2luZyBBT1QgY2FuIGdpdmUgYW5vdGhl
ciAxMCUKICAgIGltcHJvdmVtZW50LiAgSXQgaXMgbm90IHRoYXQgYmlnIGFnYWluIGJlY2F1c2Ug
b2YgZHluYW1pYyBuYXR1cmUKICAgIG9mIFJ1YnkgYW5kIGFueSBDIGNvbXBpbGVyIGlzIG5vdCBz
bWFydCBlbm91Z2ggdG8gZmlndXJlIG91dAogICAgYWxpYXNpbmcgZm9yIHR5cGljYWwgZ2VuZXJh
dGVkIEMgcHJvZ3JhbS4KCiAgICBUaGUgbGlmZSB3aXRoIHRoZSBwZXJmb3JtYW5jZSBwb2ludCBv
ZiB2aWV3IHdvdWxkIGJlIGVhc3kgaWYgUnVieQogICAgZGlkIG5vdCBwZXJtaXQgdG8gcmVkZWZp
bmUgYmFzaWMgb3BlcmF0aW9ucyBmb3IgYmFzaWMgdHlwZXMsCiAgICBlLmcuIHBsdXMgZm9yIGlu
dGVnZXIuICBJbiB0aGlzIGNhc2Ugd2UgY291bGQgZXZhbHVhdGUgdHlwZXMgb2YKICAgIG9wZXJh
bmRzIGFuZCByZXN1bHRzIHVzaW5nIHNvbWUgZGF0YSBmbG93IGFuYWx5c2lzIGFuZCBnZW5lcmF0
ZQogICAgZmFzdGVyIHNwZWNpYWxpemVkIGluc25zLiAgU3RpbGwgYSBncmFkdWFsIHR5cGluZyBp
ZiBpdCBpcwogICAgaW50cm9kdWNlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgUnVieSB3b3VsZCBo
ZWxwIHRvIGdlbmVyYXRlIHN1Y2gKICAgIGZhc3RlciBpbnNucy4KCiAgQWdhaW4gSSB3cm90ZSB0
aGlzIHByb3Bvc2FsIGZvciBkaXNjdXNzaW9uIGFzIEkgZG9uJ3Qgd2FudCB0byBiZSBpbgphIHBv
c2l0aW9uIHRvIGNvbXBldGUgd2l0aCBzb21lYm9keSBlbHNlIG9uZ29pbmcgYmlnIHByb2plY3Qu
ICBJdAptaWdodCBiZSBjb3VudGVycHJvZHVjdGl2ZSBmb3IgTVJJIGRldmVsb3BtZW50LiAgRXNw
ZWNpYWxseSBJIGRvbid0CndhbnQgaXQgYmVjYXVzZSB0aGUgcHJvamVjdCBpcyBiaWcgYW5kIGxv
bmcgYW5kIHByb2JhYmx5IHdpbGwgaGF2ZSBhCmxvdCBvZiB0ZWhjbmljYWwgb2JzdGFjbGVzIGFu
ZCBoYXZlIGEgcG9zc2liaWx0eSB0byBiZSBhIGZhaWx1cmUuCgoKCgotLSAKaHR0cHM6Ly9idWdz
LnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBy
dWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5n
Lm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next