Explicit recursion?

if i read this correctly:
http://www.cs.bu.edu/~hwxi/ATS/DOCUMENT/TUTORIALATS/HTML/c199.html

i can easily doom myself by writing what i think is tail recursive
code, but in fact is not.

so i think i want ATS to make tail recursion be the programmer has to
declare somehow and the compiler gives an error if it is not. (or
probably better, the programmer has to mark when recursion is not
tail recursive.)
cf.
http://lambda-the-ultimate.org/node/3702#comment-52749

This shoud be done by inspecting the output of the ATS compiler.
I am working on a parser for parsing the output of ATS/Postiats. Once
it is available, someone can use it to easily implement a tool for doing
tail-call checking/enforcing.

hmmmm… i can undersand “this could be done by inspecting…”
rather than “this should…” since i would (utterly naively,
cluelessly) assume that the compiler knows if the thing is in a tail
call position or not before it has to emit the code? point being that
if something can be done earlier that’s better for turn-around-cycle
time. (i will pretty much do my best to not ever use scala or
typescript since their compilers are so horribly slow.)

Yes, the compiler knows. However, doing tail-call inspection during
compilation complicates the compilation process. Doing it externally
makes it possible for someone else to contribute. Actually, I am thinking
about a tool for building call graphs, and doing tail-call inspection is
just
a minor functionality supported by this tool.On Thursday, July 17, 2014 7:59:28 PM UTC-4, Raoul Duke wrote:

This shoud be done by inspecting the output of the ATS compiler.
I am working on a parser for parsing the output of ATS/Postiats. Once
it is available, someone can use it to easily implement a tool for doing
tail-call checking/enforcing.

hmmmm… i can undersand “this could be done by inspecting…”
rather than “this should…” since i would (utterly naively,
cluelessly) assume that the compiler knows if the thing is in a tail
call position or not before it has to emit the code? point being that
if something can be done earlier that’s better for turn-around-cycle
time. (i will pretty much do my best to not ever use scala or
typescript since their compilers are so horribly slow.)

This shoud be done by inspecting the output of the ATS compiler.

I am working on a parser for parsing the output of ATS/Postiats. Once
it is available, someone can use it to easily implement a tool for doing
tail-call checking/enforcing.On Thursday, July 17, 2014 4:55:56 PM UTC-4, Raoul Duke wrote:

if i read this correctly:
http://www.cs.bu.edu/~hwxi/ATS/DOCUMENT/TUTORIALATS/HTML/c199.html

i can easily doom myself by writing what i think is tail recursive
code, but in fact is not.

so i think i want ATS to make tail recursion be the programmer has to
declare somehow and the compiler gives an error if it is not. (or
probably better, the programmer has to mark when recursion is not
tail recursive.)
cf.
Why Object-Oriented Languages Need Tail Calls | Lambda the Ultimate