Re: [PATCH 5/5] eval: Overhaul implementation for speed and correctness
Eric Blake via M4-patches <[email protected]> Thu, 3 Apr 2025 18:53:42 -0500
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <adspulvttefsjl26seebj7pw2vgjm2fwzzyvjsbdsuo25ex42t@vvotuki7eych> |
T24gV2VkLCBBcHIgMDIsIDIwMjUgYXQgMDU6Mjg6NDBQTSAtMDUwMCwgRXJpYyBCbGFrZSB2aWEg TTQtcGF0Y2hlcyB3cm90ZToKPiBXaGlsZSBhIHJlY3Vyc2l2ZSBkZXNjZW50IHBhcnNlciBpcyBl YXN5IHRvIHdyaXRlLCBpdCBpbnZvbHZlcyBhIExPVAo+IG9mIGZ1bmN0aW9uIGNhbGxzIGFuZCBi b2lsZXJwbGF0ZS4gIE1lcmVseSBwYXJzaW5nICJldmFsKDEpIiByZXF1aXJlcwo+IGRlc2NlbmRp bmcgdGhyb3VnaCBBTEwgMTEgbGV2ZWxzIG9mIG9wZXJhdG9yIHByZWNlZGVuY2UsIG9ubHkgZm9y IGVhY2gKPiBsYXllciB0byBkaXNjb3ZlciB0aGVyZSBpcyBubyBvcGVyYXRvci4gIEJldHRlciBp cyB0aGUgUHJhdHQgc3R5bGUgb2YKPiBMUigxKSBwYXJzaW5nIFsxXSwgd2hpY2ggY2FuIGhhbmRs ZSBhbnkgZ3JhbW1hciB3aGVyZSBubyB0d28KPiBjb25zZWN1dGl2ZSBub24tdGVybWluYWxzIG9y IGVwc2lsb24gYXBwZWFyIGluIHRoZSByaWdodCBzaWRlIG9mIGFueQo+IHJ1bGUgWzJdLiAgTm93 LCBwYXJzaW5nIGlzIGRvbmUgd2l0aCBqdXN0IHR3byBtdXR1YWxseSByZWN1cnNpdmUKPiBmdW5j dGlvbnM7ICJldmFsKDEpIiB3b3JrcyB3aXRoIGp1c3QgdHdvIGZ1bmN0aW9uIGNhbGxzIChwcmlt YXJ5KCkKPiBkZXRlcm1pbmVzIHRoZSB2YWx1ZSwgYW5kIHBhcnNlX2V4cHIoKSBkZXRlcm1pbmVz IG5vIG9wZXJhdG9ycyBhcmUKPiBwcmVzZW50KSwgd2hpbGUgbW9yZSBjb21wbGljYXRlZCBleHBy ZXNzaW9ucyBzdGlsbCBwcm9kdWNlIHRoZSBjb3JyZWN0Cj4gcmVzdWx0cyBidXQgd2l0aCBsZXNz IHJlY3Vyc2lvbi4KPiAKPiBXaGlsZSBhdCBpdCwgSSBub3RpY2VkIHRoYXQgImV2YWwoMXx8KDEv MCkpIiB1c2VkIHRvIHByb2R1Y2UgYSBjcnlwdGljCj4gbWVzc2FnZToKPiAKPiBtNDpzdGRpbjox OiBiYWQgZXhwcmVzc2lvbiBpbiBldmFsIChleGNlc3MgaW5wdXQpOiAxfHwoMS8wKQoKVHVybnMg b3V0ICJldmFsKDEgfHwgMS8wLzApIiBhbHNvIGZhaWxzIHByZS1wYXRjaC4gIEknbGwgYWRqdXN0 IHRoZQp3b3JkaW5nIHNsaWdodGx5IHRvIG1hdGNoIHJlYWxpdHkuCgo+IAo+IGRlc3BpdGUgdGhl IHNpbWlsYXIgImV2YWwoMXx8MS8wKSIgc3VwcHJlc3NpbmcgdGhhdCBhcyBwYXJ0IG9mCj4gc2hv cnQtY2lyY3VpdGluZy4gIEl0IHR1cm5zIG91dCB0aGF0IG15IGluaXRpYWwgaW1wbGVtZW50YXRp b24gb2YKPiBzaG9ydC1jaXJjdWl0aW5nIGluIDEuNC44YiAoYmFjayBpbiAyMDA3ISkgd2FzIG5l dmVyIGZ1bGx5IHRlc3RlZCBvbgo+IG1vcmUgY29tcGxleCBzaXR1YXRpb25zLgo+IAo+IFRvIHRl c3QgdGhhdCB0aGUgbmV3IGltcGxlbWVudGF0aW9uIGlzIGluZGVlZCBmYXN0ZXIsIEkgd3JvdGUg YW4gbTQKPiBzb2x1dGlvbiBbM10gdG8gYW4gQWR2ZW50IG9mIENvZGUgY2hhbGxlbmdlIFs0XSB0 aGF0IHJlcXVpcmVkCj4gY29tcHV0aW5nIDIwMDAgaXRlcmF0aW9ucyBvZiBhIDI0LWJpdCBsaW5l YXIgZmVlZGJhY2sgc2hpZnQgcmVnaXN0ZXIKPiBvdmVyIDIwMDAgaW5wdXQgdmFsdWVzICgtLXRy YWNlIHNob3dzIG5lYXJseSAyMCBtaWxsaW9uIGV2YWwgY2FsbHMpLgo+IE9uIG15IG1hY2hpbmUs IHJ1bnRpbWUgd2l0aCBhbiB1bm9wdGltaXplZCBwcmUtcGF0Y2ggbTQgd2FzIGF0IDc4Cj4gc2Vj b25kcywgcG9zdC1wYXRjaCBpdCBjb21wbGV0ZXMgaW4gNjYgc2Vjb25kcy4KPiAKPiBbMV0gaHR0 cHM6Ly9qb3VybmFsLnN0dWZmd2l0aHN0dWZmLmNvbS8yMDExLzAzLzE5L3ByYXR0LXBhcnNlcnMt ZXhwcmVzc2lvbi1wYXJzaW5nLW1hZGUtZWFzeS8KPiBbMl0gaHR0cHM6Ly9lbi53aWtpcGVkaWEu b3JnL3dpa2kvT3BlcmF0b3ItcHJlY2VkZW5jZV9wYXJzZXIKPiBbM10gaHR0cHM6Ly9yZXBvLm9y LmN6L2FvY19lYmxha2UuZ2l0L2Jsb2IvMWIxMjI3OTFkNDovMjAyNC9kYXkyMi5tNAo+IFs0XSBo dHRwczovL2FkdmVudG9mY29kZS5jb20vMjAyNC9kYXkvMjIKCk1pc3NpbmcgdGhlICIqIHNyYy9l dmFsLmMiIGFuZCBzaW1pbGFyIENoYW5nZUxvZyBibHVyYi4gIFdpbGwgZml4LgoKPiAtLS0KPiAg TkVXUyAgICAgICAgfCAgIDggKwo+ICBkb2MvbTQudGV4aSB8ICAgOCArLQo+ICBzcmMvZXZhbC5j ICB8IDc3MSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgMjcyIGluc2VydGlvbnMoKyksIDUxNSBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKPiBpbmRleCBiM2FhNDQxYy4uMmJhYzhh ZDUgMTAwNjQ0Cj4gLS0tIGEvTkVXUwoKPiAgKiogQSBudW1iZXIgb2YgcG9ydGFiaWxpdHkgaW1w cm92ZW1lbnRzIGluaGVyaXRlZCBmcm9tIGdudWxpYiwgaW5jbHVkaW5nCj4gICAgIHRoZSBhYmls aXR5IHRvIHBlcmZvcm0gc3RhY2sgb3ZlcmZsb3cgZGV0ZWN0aW9uIG9uIG1vcmUgcGxhdGZvcm1z Cj4gICAgIHdpdGhvdXQgbGlua2luZyB0byBHTlUgbGlic2lnc2Vndi4KPiAKPiArCj4gICogTm90 ZXdvcnRoeSBjaGFuZ2VzIGluIHJlbGVhc2UgMS40LjE4ZCAoMjAyMS0wNS0xMSkgW2JldGFdCgpU aGlzIGNsZWFudXAgaXMgZ29vZCwgYnV0IHVucmVsYXRlZCwgYW5kIGZhaWxzICdtYWtlIHN5bnRh eC1jaGVjaycuCgo+ICsrKyBiL3NyYy9ldmFsLmMKPiBAQCAtNjIsMTkgKzYyLDQxIEBAIHR5cGVk ZWYgZW51bSBldmFsX2Vycm9yCj4gICAgfQo+ICBldmFsX2Vycm9yOwo+IAo+IC1zdGF0aWMgZXZh bF9lcnJvciBsb2dpY2FsX29yX3Rlcm0gKGV2YWxfdG9rZW4sIGludDMyX3QgKik7Cj4gLXN0YXRp YyBldmFsX2Vycm9yIGxvZ2ljYWxfYW5kX3Rlcm0gKGV2YWxfdG9rZW4sIGludDMyX3QgKik7Cj4g LXN0YXRpYyBldmFsX2Vycm9yIG9yX3Rlcm0gKGV2YWxfdG9rZW4sIGludDMyX3QgKik7Cj4gLXN0 YXRpYyBldmFsX2Vycm9yIHhvcl90ZXJtIChldmFsX3Rva2VuLCBpbnQzMl90ICopOwo+IC1zdGF0 aWMgZXZhbF9lcnJvciBhbmRfdGVybSAoZXZhbF90b2tlbiwgaW50MzJfdCAqKTsKPiAtc3RhdGlj IGV2YWxfZXJyb3IgZXF1YWxpdHlfdGVybSAoZXZhbF90b2tlbiwgaW50MzJfdCAqKTsKPiAtc3Rh dGljIGV2YWxfZXJyb3IgY21wX3Rlcm0gKGV2YWxfdG9rZW4sIGludDMyX3QgKik7Cj4gLXN0YXRp YyBldmFsX2Vycm9yIHNoaWZ0X3Rlcm0gKGV2YWxfdG9rZW4sIGludDMyX3QgKik7Cj4gLXN0YXRp YyBldmFsX2Vycm9yIGFkZF90ZXJtIChldmFsX3Rva2VuLCBpbnQzMl90ICopOwo+IC1zdGF0aWMg ZXZhbF9lcnJvciBtdWx0X3Rlcm0gKGV2YWxfdG9rZW4sIGludDMyX3QgKik7Cj4gLXN0YXRpYyBl dmFsX2Vycm9yIGV4cF90ZXJtIChldmFsX3Rva2VuLCBpbnQzMl90ICopOwo+IC1zdGF0aWMgZXZh bF9lcnJvciB1bmFyeV90ZXJtIChldmFsX3Rva2VuLCBpbnQzMl90ICopOwo+IC1zdGF0aWMgZXZh bF9lcnJvciBzaW1wbGVfdGVybSAoZXZhbF90b2tlbiwgaW50MzJfdCAqKTsKPiArLyogUHJlY2Vk ZW5jZSBvZiBlYWNoIG9wZXJhdG9yLCB6ZXJvIHRvIGVuZCBwYXJzZV9leHByKCkuICAqLwo+ICsK PiArc3RhdGljIGludCBwcmVjZWRlbmNlW10gPSB7Cj4gKyAgMCwgLyogRVJST1IgKi8KPiArICAw LCAvKiBCQURPUCAqLwo+ICsgIDksIC8qIFBMVVMgLSBiaW5hcnkgaGFzIHByZWNlZGVuY2UsIHVu YXJ5IGNvbnN1bWVkIGJ5IHByaW1hcnkoKSAqLwo+ICsgIDksIC8qIE1JTlVTIC0gYmluYXJ5IGhh cyBwcmVjZWRlbmNlLCB1bmFyeSBjb25zdW1lZCBieSBwcmltYXJ5KCkgKi8KPiArICAxMSwgLyog RVhQT05FTlQgLSB0aGUgb25seSByaWdodC1hc3NvY2lhdGl2ZSBvcGVyYXRvciAqLwoKSSBqdXN0 IHJlYWxpemVkIHRoZXJlJ3Mgbm8gbmVlZCB0byBoYXZlIHRoaXMgYmUgYSBzZXBhcmF0ZSBhcnJh eQpsb29rdXAgLSB0aGUgcHJlY2VkZW5jZSB2YWx1ZXMgY2FuIGJlIGVuY29kZWQgZGlyZWN0bHkg aW50byBlbnVtCmV2YWxfdG9rZW4gKGZvciBleGFtcGxlLCBtYWtlIFBMVVM9OTAsIE1JTlVTPTkx LCBFWFBPTkVOVD0xMTA7IHRoZW4KdXNlIGV0LzEwIGZvciBtaW5fcHJlYykuCgo+ICsvKiBQYXJz ZSBgKGV4cHIpJywgdW5hcnkgb3BlcmF0b3JzLCBhbmQgbnVtYmVycy4gICovCj4gK3N0YXRpYyBl dmFsX2Vycm9yCj4gK3ByaW1hcnkgKGludDMyX3QgKnYxKQo+ICt7Cgo+ICsgICAgY2FzZSBMRUZU UDoKPiArICAgICAgaWYgKChlciA9IHByaW1hcnkgKHYxKSkgPj0gU1lOVEFYX0VSUk9SKQo+ICsg ICAgICAgIHJldHVybiBlcjsKPiArICAgICAgaWYgKChlcjIgPSBwYXJzZV9leHByICh2MSwgMSkp ID49IFNZTlRBWF9FUlJPUikKPiArICAgICAgICByZXR1cm4gZXIyOwo+ICsgICAgICBpZiAoZXIg PT0gTk9fRVJST1IgJiYgZXIyKQo+ICsgICAgICAgIGVyID0gZXIyOwoKTk9fRVJST1IgPT0gMDsg dGhlICcmJiBlcjInIGNvbmRpdGlvbiBpcyBwb2ludGxlc3Mgc2luY2UgYXNzaWduaW5nCmVyPTAg aXMgc2FmZS4KCi0tIApFcmljIEJsYWtlLCBQcmluY2lwYWwgU29mdHdhcmUgRW5naW5lZXIKUmVk IEhhdCwgSW5jLgpWaXJ0dWFsaXphdGlvbjogIHFlbXUub3JnIHwgbGliZ3Vlc3Rmcy5vcmcKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNNC1wYXRjaGVz IG1haWxpbmcgbGlzdApNNC1wYXRjaGVzQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21h aWxtYW4vbGlzdGluZm8vbTQtcGF0Y2hlcwo=