[ruby-core:110087] [Ruby master Feature#14900] Extra allocation in String#byteslice
From:
"ioquatix (Samuel Williams)" <noreply@...>
Date:
2022-09-26 12:45:17 UTC
List:
ruby-core #110087
SXNzdWUgIzE0OTAwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt cykuDQoNCg0KT2theSwgc28gQGJ5cm9vdCBhbmQgSSBkaXNjdXNzZWQgdGhpcyBpc3N1ZSBhdCBs ZW5ndGguDQoNClRoZSBzaW1wbGVzdCB3YXkgdG8gZ2V0IHRoZSBiZWhhdmlvdXIgeW91IHdhbnQg aXMgdG8gY2FsbCBgZnJlZXplYCBvbiB0aGUgc291cmNlIHN0cmluZy4NCg0KYGBgcnVieQ0KcmVx dWlyZSAib2Jqc3BhY2UiDQoNCnN0cmluZyA9ICJhIiAqIDEwMF8wMDANCg0KR0Muc3RhcnQNCkdD LmRpc2FibGUNCmdlbmVyYXRpb24gPSBHQy5jb3VudA0KDQpzdHJpbmcuZnJlZXplICMgQUREIFRI SVMgTElORQ0KDQpPYmplY3RTcGFjZS50cmFjZV9vYmplY3RfYWxsb2NhdGlvbnMgZG8NCiAgc3Ry aW5nLmJ5dGVzbGljZSg1MF8wMDAuLi0xKQ0KDQogIE9iamVjdFNwYWNlLmVhY2hfb2JqZWN0KFN0 cmluZykgZG8gfHN0cmluZ3wNCiAgICBwIHN0cmluZy5ieXRlc2l6ZSBpZiBPYmplY3RTcGFjZS5h bGxvY2F0aW9uX2dlbmVyYXRpb24oc3RyaW5nKSA9PSBnZW5lcmF0aW9uDQogIGVuZA0KZW5kDQpg YGANCg0KVGhpcyBoYXMgdGhlIGRlc2lyZWQgcmVzdWx0IHRoYXQgdGhlIHNvdXJjZSBzdHJpbmcg aXMgbm90IGNvcGllZCwgYnV0IGlzIGludGVybmFsbHkgdXNlZCBhcyBhIHNoYXJlZCBidWZmZXIg Zm9yIHRoZSBgc3RyaW5nLmJ5dGVzbGljZWAuIEhvd2V2ZXIsIGl0IHByZXZlbnRzIHlvdSBmcm9t IG1vZGlmeWluZyB0aGUgc291cmNlIHN0cmluZy4NCg0KVGhlIHJlYXNvbiB3aHkgaXQgd29ya3Mg dGhpcyB3YXksIGlzIGJlY2F1c2UgYXMgQGZ1bm55X2ZhbGNvbiBwb2ludGVkIG91dCwgbWFueSBw ZW9wbGUgYXJlIHNsaWNpbmcgdGhlIGZyb250IG9mZiBhIGJ1ZmZlciBzZXZlcmFsIHRpbWVzLiBJ ZiB0aGUgYnVmZmVyIGlzIGh1Z2UsIHRoaXMgd291bGQgcmVzdWx0IGluIG1hbnkgbGFyZ2UgYG1l bWNweWAuDQoNCkJ5IGZyZWV6aW5nIHRoZSBzdHJpbmcgeW91IGF2b2lkIHRoaXMgbWVtY3B5LiBB bHRlcm5hdGl2ZWx5LCBgYnl0ZXNsaWNlYCBkb2VzIHRoaXMgZm9yIHlvdSBpbnRlcm5hbGx5LiBJ dCdzIGEgYml0IG1vcmUgbnVhbmNlZCB0aGFuIHRoYXQgYmVjYXVzZSBzbWFsbGVyIHN0cmluZ3Mg YXJlIGFsd2F5cyBjb3BpZWQsIHNvIHRoaXMgb25seSBraWNrcyBpbiBmb3IgbGFyZ2VyIHN0cmlu Z3MuDQoNClNvIEkgd2FudGVkIHRvIHRoaW5rIGEgYml0IGFib3V0IGhvdyB0byBkbyB0aGlzIGVm ZmljaWVudGx5IC0gSSB0aGluayBzb21ldGhpbmcgbGlrZSB0aGlzIGNhbiBiZSBwcmV0dHkgZ29v ZDoNCg0KYGBgIHJ1YnkNCmJ1ZmZlciA9IFN0cmluZy5uZXcgIyBhbGxvY2F0aW9uDQp3aGlsZSB0 cnVlDQoJIyBFZmZpY2llbnRseSByZWFkIGludG8gdGhlIGJ1ZmZlcjoNCglpZiBidWZmZXIuZW1w dHk/DQoJCWlvLnJlYWQoMTAyNCwgYnVmZmVyKQ0KCWVsc2UNCgkJYnVmZmVyIDw8IGlvLnJlYWQo MTAyNCkNCgllbmQNCg0KCSMgRnJlZXplIHRoZSBidWZmZXIgc28gaXQgd2lsbCBiZSBzaGFyZWQg ZHVyaW5nIHByb2Nlc3Npbmc6DQoJYnVmZmVyLmZyZWV6ZQ0KDQoJIyBDb25zdW1lIHRoZSBidWZm ZXIgaW4gY2h1bmtzOg0KCXdoaWxlIHNpemUgPSBjb25zdW1lKGJ1ZmZlcikNCgkJYnVmZmVyID0g YnVmZmVyLmJ5dGVzbGljZShzaXplLi4tMSkgIyBzaGFyZWQgcm9vdCBzdHJpbmcgLSBubyBtZW1j cHkgb3IgYWxsb2NhdGlvbg0KCWVuZA0KDQoJIyBVbmZyZWV6ZSB0aGUgYnVmZmVyIGlmIG5lZWRl ZC4NCglidWZmZXIgPSArYnVmZmVyDQplbmQNCmBgYA0KDQpUaGUgcHJvcG9zZWQgUFIgYmFzaWNh bGx5IHNraXBzIHRoZSBpbnRlcm5hbCBzaGFyaW5nIG1lY2hhbmlzbSB1bmxlc3MgeW91IGNhbGwg YGJ1ZmZlci5mcmVlemVgLiBJbiBjdXJyZW50IFJ1YnksIGl0J3Mgb3B0aW9uYWwsIGFuZCBpZiB5 b3UgZG9uJ3QgZnJlZXplIGl0LCBSdWJ5IGlzIGZvcmNlZCB0byBjcmVhdGUgYW4gaW50ZXJuYWwg ZHVwLCB3aGljaCBpcyB3aGF0IHlvdSBhcmUgc2VlaW5nLg0KDQpXZSBzaG91bGQgaW52ZXN0aWdh dGUgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSB0eXBpY2FsIElPIHVzYWdlLCB0byBzZWUgd2hpY2gg d2F5IGlzIGJldHRlci4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQpGZWF0dXJlICMxNDkwMDogRXh0cmEgYWxsb2NhdGlvbiBpbiBTdHJpbmcjYnl0ZXNsaWNl DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQ5MDAjY2hhbmdlLTk5MzQyDQoN CiogQXV0aG9yOiBqYW5rbyAoSmFua28gTWFyb2huacSHKQ0KKiBTdGF0dXM6IE9wZW4NCiogUHJp b3JpdHk6IE5vcm1hbA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K V2hlbiBleGVjdXRpbmcgYFN0cmluZyNieXRlc2xpY2VgIHdpdGggYSByYW5nZSwgSSBub3RpY2Vk IHRoYXQgc29tZXRpbWVzIHRoZSBvcmlnaW5hbCBzdHJpbmcgaXMgYWxsb2NhdGVkIGFnYWluLiBX aGVuIEkgcnVuIHRoZSBmb2xsb3dpbmcgc2NyaXB0Og0KDQp+fn4gcnVieQ0KcmVxdWlyZSAib2Jq c3BhY2UiDQoNCnN0cmluZyA9ICJhIiAqIDEwMF8wMDANCg0KR0Muc3RhcnQNCkdDLmRpc2FibGUN CmdlbmVyYXRpb24gPSBHQy5jb3VudA0KDQpPYmplY3RTcGFjZS50cmFjZV9vYmplY3RfYWxsb2Nh dGlvbnMgZG8NCiAgc3RyaW5nLmJ5dGVzbGljZSg1MF8wMDAuLi0xKQ0KDQogIE9iamVjdFNwYWNl LmVhY2hfb2JqZWN0KFN0cmluZykgZG8gfHN0cmluZ3wNCiAgICBwIHN0cmluZy5ieXRlc2l6ZSBp ZiBPYmplY3RTcGFjZS5hbGxvY2F0aW9uX2dlbmVyYXRpb24oc3RyaW5nKSA9PSBnZW5lcmF0aW9u DQogIGVuZA0KZW5kDQp+fn4NCg0KaXQgb3V0cHV0cw0KDQp+fn4NCjUwMDAwDQoxMDAwMDANCjYN CjUNCn5+fg0KDQpUaGUgb25lIHdpdGggNTAwMDAgYnl0ZXMgaXMgdGhlIHJlc3VsdCBvZiBgU3Ry aW5nI2J5dGVzbGljZWAsIGJ1dCB0aGUgb25lIHdpdGggMTAwMDAwIGJ5dGVzIGlzIHRoZSBkdXBs aWNhdGVkIG9yaWdpbmFsIHN0cmluZy4gSSBleHBlY3RlZCBvbmx5IHRoZSByZXN1bHQgb2YgYFN0 cmluZyNieXRlc2xpY2VgIHRvIGJlIGFtb25nc3QgbmV3IGFsbG9jYXRpb25zLg0KDQpJZiBpbnN0 ZWFkIG9mIHRoZSBsYXN0IDUwMDAwIGJ5dGVzIEkgc2xpY2UgdGhlICpmaXJzdCogNTAwMDAgYnl0 ZXMsIHRoZSBleHRyYSBkdXBsaWNhdGlvbiBkb2Vzbid0IG9jY3VyLg0KDQp+fn4gcnVieQ0KIyAu Li4NCiAgc3RyaW5nLmJ5dGVzbGljZSgwLCA1MF8wMDApDQojIC4uLg0Kfn5+DQoNCn5+fg0KNTAw MDANCjUNCn5+fg0KDQpJdCdzIGRlZmluaXRlbHkgb2sgaWYgdGhlIGltcGxlbWVudGF0aW9uIG9m IGBTdHJpbmcjYnl0ZXNpemVgIGFsbG9jYXRlcyBleHRyYSBzdHJpbmdzIGFzIHBhcnQgb2YgdGhl IGltcGxlbWVudGF0aW9uLCBidXQgaXQgd291bGQgYmUgbmljZSBpZiB0aGV5IHdlcmUgZGVhbGxv Y2F0ZWQgYmVmb3JlIHJldHVybmluZyB0aGUgcmVzdWx0Lg0KDQpFRElUOiBJdCBzZWVtcyB0aGF0 IGBTdHJpbmcjc2xpY2VgIGhhcyB0aGUgc2FtZSBpc3N1ZS4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVl c3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1Ynkt bGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=