[MLton] stack frame writing and function calls
Jeffrey Murphy <[email protected]> Wed, 27 May 2020 08:16:42 -0400
| Newsgroups | gmane.comp.lang.ml.mlton.devel |
|---|---|
| Message-ID | <[email protected]> |
SGkgYWdhaW4sCgpXZSBhcmUgbmVhcmluZyB0aGUgZW5kIG9mIHdvcmtpbmcgb24gc3RhY2sgcmVm YWN0b3JpbmcgKGludG8gc3RhY2tsZXRzKSBpbiBvdXIgcHJvamVjdC4gQXMgYSByZW1pbmRlciB3 ZSBhcmUgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBNTHRvbjogCgokIGdpdCByZXYtcGFyc2UgLS1z aG9ydCBIRUFECjA1MDA0YTAKKE1heSAxNSBjb21taXQpCgpJbiB0aGUgc3RhY2tsZXQgbW9kZWws IGVhY2ggZnJhbWUgaXMgaW4gYSBzZXBhcmF0ZSwgbm9uLWNvbnRpZ3VvdXMsIG1lbW9yeSBzZWdt ZW50LiAKClByaW9yIHRvIGEgZnVuY3Rpb24gY2FsbCBiZWluZyBtYWRlLCB0aGVyZSBhcmUgYmUg d3JpdGVzIGJleW9uZCBlbmQgb2YgdGhlIGN1cnJlbnQgZnJhbWUgdG8gc2V0IHVwIHRoZSBhcmd1 bWVudHMgb2YgdGhlIG5leHQgZnVuY3Rpb24gcHJpb3IgdG8gdGhlIGNhbGwgYmVpbmcgbWFkZSAo c3RhY2tUb3AgYmVpbmcgYWR2YW5jZWQpLiBXaGF0IHdlIGFyZSB0cnlpbmcgdG8gZG8gaXMgZGV0 ZXJtaW5lIHdoZXJlIHRoZSBjb21waWxlciBpcyB0cmFja2luZyB0aGVzZSBhcmd1bWVudHMgc28g dGhhdCB3ZSBjYW4gaGF2ZSwgdWx0aW1hdGVseSwgdGhlIHdyaXRlcyBvY2N1ciBpbiBhIGRpZmZl cmVudCBtZW1vcnkgc2VnbWVudC4gCgpXZeKAmXJlIGxvb2tpbmcgZm9yIGRvYy9wb2ludGVycyBv biBzdGFjayB3cml0aW5nIHdpdGggcmVzcGVjdCB0byBmdW5jdGlvbiBjYWxsIHNldHVwLiBXaGVy ZSBpbiB0aGUgY29tcGlsZXIgaXMgdGhlIGFwcHJvcHJpYXRlIHBsYWNlIHRvIGxvb2sgaWYgd2Ug d2FudCB0byBkZXRlcm1pbmUg4oCcdGhpcyBzdGFjayBzbG90IGlzIGJleW9uZCB0aGUgZnJhbWUg c2l6ZSBvZiBjdXJyZW50IGZyYW1l4oCdPyBXZSBhcmUgd29ya2luZyBleGNsdXNpdmVseSB3aXRo IHRoZSBjLWNvZGVnZW4gYW5kIG91ciBwbGFuIGlzIHRvIGhhdmUgYSBkaWZmZXJlbnQgUy1tYWNy byBlbWl0dGVkIHRoYXQgd3JpdGVzIGludG8gdGhlIG5leHQgZnJhbWXigJlzIG1lbW9yeSBzZWdt ZW50IHdoZW4gYSBzdGFjayB3cml0ZSBpcyByZWxhdGVkIHRvIHNldHRpbmcgdXAgYSBjYWxsIHRv IGFub3RoZXIgZnVuY3Rpb24uCgpPbiBhIHJlbGF0ZWQgbm90ZSwgb25jZSBhIGZ1bmN0aW9uIHJl dHVybnMgKGFuZCBzdGFja1RvcCBpcyByZWR1Y2VkIHZpYSBhIG5lZ2F0aXZlIHB1c2gpIGlzIGFj Y2VzcyB0byB0aGUgc2xvdHMgaW4gdGhlIGZyYW1lIGZyb20gd2hpY2ggeW91IHJldHVybiBjb25z aWRlcmVkIHRvIGJlIHZhbGlkPyBIb3cgaXMgdGhlIHJldHVybiB2YWx1ZSBjb252ZXllZD8KCgoK U29tZSBpbGx1c3RyYXRpb25zIGFkYXB0ZWQgZnJvbSBhIHByZXZpb3VzIHJlcGx5IHlvdSBzZW50 IChodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL21sdG9uL21haWxtYW4vbWx0b24tZGV2ZWwvP3Zp ZXdtb250aD0yMDE5MDYpOgoKClByaW9yIHRvIGcgY2FsbGluZyBmLiBn4oCZcyBmcmFtZSBzaXpl IGlzIDEwIHdvcmRzLiBm4oCZcyBmcmFtZSBzdGFydHMgd2l0aCBhdCDigJhhcmcx4oCZIHNsb3Qu IGcgd3JpdGVzIGJleW9uZCB0aGUgZW5kIG9mIGl0cyBmcmFtZSBpbiBvcmRlciB0byBzZXR1cCB0 aGUgY2FsbCB0byBmLiBJbiBvdXIgbW9kZWwsIGbigJlzIGZyYW1lIGlzIG5vdCBhdmFpbGFibGUg dmlhIGEgKihzdGFja1RvcCtvZmZzZXQpIGNhbGN1bGF0aW9uLCBvbmx5IGfigJlzIGZyYW1lIGlz IChpbiB0aGUgY29udGV4dCBvZiBnKS4gSW4gb3JkZXIgdG8gc2V0dXAgdGhvc2UgYXJndW1lbnRz LCBnIG11c3QgZm9sbG93IGEgcG9pbnRlciB0byBmaW5kIGbigJlzIGZyYW1lLiAKCiAgICAgICAg ICAgIHwgYXJnMiAoeSkgICB8CiAgICAgICAgICAgIHwgYXJnMSAoeCkgICB8CiAgICAgICAgICAg IHwgTDIgICAgICAgICB8CiAgICAgICAgICAgIHwgdG1wMyAgICAgICB8CiAgICAgICAgICAgIHwg dG1wMiAgICAgICB8CiAgICAgICAgICAgIHwgdG1wMSAgICAgICB8CiAgICAgICAgICAgIHwgZWFy ZzogWFggICB8CiAgICAgICAgICAgIHwgaGFuZDogTDMgICB8CiAgICAgICAgICAgIHwgbGluazog MTAzMiB8CiAgICAgICAgICAgIHwgYXJnMyAoYykgICB8CiAgICAgICAgICAgIHwgYXJnMiAoYikg ICB8CnN0YWNrVG9wIC0+IHwgYXJnMSAoYSkgICB8ICAmMTUwNAouLi4Kc3RhY2tCb3QgLT4gfCAu Li4uLi4uLi4uIHwgICAmMjg4CgoKCkFmdGVyIGcgY2FsbHMgZiwgc3RhY2tUb3AgaXMgYWR2YW5j ZWQgdG8gcG9pbnQgdG8gZuKAmXMgZnJhbWUuIE9uY2UgZiByZXR1cm5zIGNvbnRyb2wgdG8gZywg d2hlcmUgaXMgdGhlIHJldHVybiB2YWx1ZT8KCiAgICAgICAgICAgIHwgYXJnMiAoeSkgICB8CnN0 YWNrVG9wIC0+IHwgYXJnMSAoeCkgICB8CiAgICAgICAgICAgIHwgTDIgICAgICAgICB8CiAgICAg ICAgICAgIHwgdG1wMyAgICAgICB8CiAgICAgICAgICAgIHwgdG1wMiAgICAgICB8CiAgICAgICAg ICAgIHwgdG1wMSAgICAgICB8CiAgICAgICAgICAgIHwgZWFyZzogWFggICB8CiAgICAgICAgICAg IHwgaGFuZDogTDMgICB8CiAgICAgICAgICAgIHwgbGluazogMTAzMiB8CiAgICAgICAgICAgIHwg YXJnMyAoYykgICB8CiAgICAgICAgICAgIHwgYXJnMiAoYikgICB8CiAgICAgICAgICAgIHwgYXJn MSAoYSkgICB8ICAmMTUwNAouLi4Kc3RhY2tCb3QgLT4gfCAuLi4uLi4uLi4uIHwgICAmMjg4CgoK CnRoYW5rcyBpbiBhZHZhbmNlIQoKamVmZgoKCgoKCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KTUx0b24tZGV2ZWwgbWFpbGluZyBsaXN0Ck1MdG9uLWRl dmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldDsgbWx0b24tZGV2ZWxAbWx0b24ub3JnCmh0dHBzOi8v bGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL21sdG9uLWRldmVsCg==