Disabling tail-call optimization


#1

In ATS/Postiats, a recursive tail-call is compiled into a local jump by
default.
One can disable tail-call optimization with the flag ‘–tlcalopt-disable’:

patscc --tlcalopt-disable …
patsopt --tlcalopt-disable …

Erlang does its own tail-call optimization. It is a pure functional
language and
does not support local jumps. So while compiling ATS to Erlang (vial
atscc2erl),
please make sure that you use patscc/patsopt with the flag
’–tlcalopt-disable’.

–Hongwei


#2

ATS can now be compiled into Scheme via atscc2scm.

It is mandatory to disable tail-call optimization if the generated
C code is to be fed to atscc2scm.On Wednesday, August 5, 2015 at 9:28:30 AM UTC-4, gmhwxi wrote:

In ATS/Postiats, a recursive tail-call is compiled into a local jump by
default.
One can disable tail-call optimization with the flag ‘–tlcalopt-disable’:

patscc --tlcalopt-disable …
patsopt --tlcalopt-disable …

Erlang does its own tail-call optimization. It is a pure functional
language and
does not support local jumps. So while compiling ATS to Erlang (vial
atscc2erl),
please make sure that you use patscc/patsopt with the flag
’–tlcalopt-disable’.

–Hongwei