The deep recursion message is not necessarily an error, it is a warning telling you that you have stacked more than 100 calls. But in this case, it tells you something useful, because you actially have an error.
In general, if you want to recurse, you need to pass at least one parameter to the function that is called recursively, so that it can work on a local copy of that parameter. Here, you don't pass any parameter to your start function. BTW the &start syntax is deprecated, use rather start() or start(list of params).