<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Sep 5, 2014 at 2:04 PM, Peter Wang <span dir="ltr"><<a href="mailto:novalazy@gmail.com" target="_blank">novalazy@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Fri, 5 Sep 2014 12:43:05 +1000, Paul Bone <<a href="mailto:paul@bone.id.au">paul@bone.id.au</a>> wrote:<br>
> On Fri, Sep 05, 2014 at 10:01:26AM +1000, Julien Fischer wrote:<br>
> ><br>
> > Hi,<br>
> ><br>
> > Has anyone tried Mercury (particularly the high-level C grades) with<br>
> > GCC's split stacks capability?  See: <<a href="https://gcc.gnu.org/wiki/SplitStacks" target="_blank">https://gcc.gnu.org/wiki/SplitStacks</a>>.<br>
> ><br>
><br>
> The trade offs seem interesting, not that they're trying to economise on<br>
> address space usage, especially on 32bit systems.  On a 64bit system this<br>
> isn't a big deal for C programs as only the parts of the stack that actually<br>
> get used get mapped to actual physical pages.<br>
<br>
</div>Go and Rust both moved away from segmented stacks in favour of extending<br>
(and moving?) the stack.  Mercury had stack-extension before stack segments,<br>
but it was a bit neglected.  It might be worth reviving for 64-bit systems.<br></blockquote><div><br></div><div>AFAIK, stack extension for Mercury was only supported in the low-level C grades.</div><div><br></div><div>Cheers,</div><div>Julien.</div><div><br></div><div><br></div><div> </div></div></div></div>