Work around cython parameter passing bug. #81
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the words of Mae West, "goodness had nothing to do with it".
In this case, she was wrong though,
__goodness
tickled a cython code generation bug if__goodness
was compiled as a cdef function.Made
__goodness
work as a cdef function by removing its default parameter values.Boiling this down to a human comprehensible example suitable for a cython bug report is a work in progress.
It appears that cython has a bug in passing parameters with defaults to some recursive functions.
__goodness
is one of them. In this case if any of the parameters had defaultsparts
was passed a 0 (False). Removing the defaults fixes this.Also added the
showgood
submodule to the list of submodules to doctest.