1. A recursion limit catches developer mistakes. If you write a bad program, eventually Parrot will say, "Dude. You've written a bad program."

2. Tailcall optimizations are something that the machine can do to try to fix up places where a tailcall *should* have occurred, but didn't. If the coder, or the HLL developer, generates code that looks like a sub call, then a continuation will be passed to the sub, telling it "come back here when you finish." And when that sub finishes, the next instruction @here would be "oh, okay, return using this continuation I have." -Oc is an attempt to catch that mistake.

Keep in mind that Parrot is a virtual machine. Not a programming language. If somebody programming on the VM, or somebody implementing a language, makes a bad coding decision, it can still have bad results. Sometimes the machine can prevent those mistakes, or catch them early.

=Austin



Fishtank wrote:
Hello,
I read parrot uses CPS in its bytecode. If so why does it have a
recursion limit and why does it have tail call optimizations via -Oc

Thank you
fishs
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev


_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to