I'd be pretty surprised if it did. Clojure requires you to avoid the footgun of TCO on the JVM by using special constructs. I'd be pretty sure CFML would be similar. This is why we get StackOverFlowExceptions :)
Mark On Fri, Jul 12, 2013 at 9:38 AM, Robin Hilliard <[email protected]>wrote: > On 12/07/2013, at 8:07 AM, Chris Velevitch <[email protected]> > wrote: > > On Thu, Jul 11, 2013 at 3:15 PM, Robin Hilliard <[email protected]> > wrote: > > >> I should point out that because the recursion is on the last line of the >> function this is "tail recursive" - the compiler will notice this and >> optimise the code by throwing away the current stack frame (which would >> have been used by later statements in the function had they existed) each >> time the recursive call is made, so you don't need to worry about a stack >> overflow - this is how functional languages iterate efficiently. >> >> > Are you saying that Railo does tail recursion optimisation? Do you know > if ACF does tail recursion optimisation? > > > Actually I'd like to make a (very surprising to me) correction - unlike > many VMs and interpreters for other languages the Sun JVM does not support > "hard" (in VM) tail call optimisation, whereas the IBM JVM does support it > where possible. There is ongoing discussion as to whether or not Java 8 > will support it. I assumed tail call optimisation was universal - it's not > hard to implement, for example little virtual machine I wrote for my > Greener Threads talk at CFOANZ included tail call optimisation for a simple > subset of cfscript. Apparently the java permission mechanism and the need > to include a stack trace in exceptions have prevented it to date. > > I do not know off hand if ColdFusion or Railo support any soft tail call > optimisation when compiling CFML to byte code. > > Thanks, > Robin > > > > > Robin Hilliard > Chief Technology Officer > > > RocketBoots Pty Ltd > Level 11 > 189 Kent Street > Sydney NSW 2001 > Australia map <http://goo.gl/maps/RKyY9> > Phone +61 2 9323 2507 > Facsimile +61 2 9323 2501 > Mobile +61 418 414 341 > email [email protected] > web www.rocketboots.com.au > > > > > -- > You received this message because you are subscribed to the Google Groups > "cfaussie" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/cfaussie. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- E: [email protected] T: http://www.twitter.com/neurotic W: www.compoundtheory.com 2 Devs from Down Under Podcast http://www.2ddu.com/ -- You received this message because you are subscribed to the Google Groups "cfaussie" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/cfaussie. For more options, visit https://groups.google.com/groups/opt_out.
<<rb_logo.png>>
