[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==