On Thursday 02 April 2009 15:36:38 kirk wrote: > Jon Harrop wrote: > > On Thursday 02 April 2009 15:09:12 Charles Oliver Nutter wrote: > >> It's not necessarily Sun's choice when it exhibits external behavioral > >> changes. Such changes must be standardized so all JVMs will support > >> them. If it were just up to Sun, it would probably go in (since I know I > >> want it and several others want it). > > > > Ok. I only care about Sun's JVM because it is the defacto standard. If > > tail calls are not adopted as a standard across all JVMs, what are the > > odds of Sun including them just in its own JVM as an extension? > > why do they have to be exposed? Isn't tail recursion and implementation > detail? And an optimization at that?
Elimination of tail calls is a requirement for certain kinds of program to run correctly. If tail calls are not eliminated, such programs leak stack space until they die from a stack overflow exception. In particular, tail calls are important in functional programs because that paradigm encourages the composition of functions into arbitrarily-long pipelines that data flow through in order to produce the desired result. Without tail calls, every stage in the pipeline leaks stack space. Note that "tail recursion" is a term typically used to describe the special case of tail calls where the branch target is statically known and is often a self-call. In general, tail calls refer to any calls in tail position and they may well be calls to locations that are not statically known. Hence TCO implementations often globally alter the calling convention used internally by the VM and this can introduce disadvantages such as degraded performance on other code. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to jvm-languages@googlegroups.com To unsubscribe from this group, send email to jvm-languages+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---