title: Does the JVM prevent tail call optimizations?
body: <p>I saw this quote on the question: <a href="https://stackoverflow.com/questions/105710">What is a good functional language on which to build a web service?</a></p>
  
  <blockquote>
    <p>Scala in particular doesn't support tail-call elimination except in self-recursive functions, which limits the kinds of composition you can do (this is a fundamental limitation of the JVM).</p>
  </blockquote>
  
  <p>Is this true?  If so, what is it about the JVM that creates this fundamental limitation?</p>