Riley S. Faelan<p><span class="h-card" translate="no"><a href="https://bitbang.social/@procrastin8" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>procrastin8</span></a></span> By "running C efficiently", I assume you mean proper facilities for stack data storage.</p><p>So, I've been playing around with porting some C++ code, originally from Unix world, sort of, to PC DOS and 8086 recently. Mostly, for hack value, partly also in the hope that I'll be able to run the resulting code in a tiny 16-bit CPU living in an FPGA project. I've found the experience of having plenty of legitimate pointers pointing outside my own program's memory, and of having to manage the segmented architecture's weirdness, quite educational. Eventually, I want to give a try to smarter-than-VROOMM overlay management and reasonably portable Synthesis-like quajects, and quajects' value is particularly illuminative in tiny systems.</p><p>=> I think I could gain interesting insights by learning to wrestle with the 8-bit systems' weirdnesses in a high-level programming style, without keeping my focus on hand-assemblying the parts of the code where standard compilation techniques could generate reasonable code, but on <a href="https://toot.cat/tags/ifdef" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ifdef</span></a>:ing in the interesting parts.</p><p>(Also, the code already uses recursion quite sparingly, because, well, tiny 16-bit CPU living in an FPGA could have shortage of allotted stack space.)</p>