-
Notifications
You must be signed in to change notification settings - Fork 937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update corecext.ppyx #1077
Merged
Merged
Update corecext.ppyx #1077
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Member
jamadden
commented
Jan 23, 2018
- Eliminate the use of the CPP. This is a prerequisite to Require cython when installing from a PyPI sdist? #1076. It also revealed a number of bugs in cythonpp.py, so we're much better off. This cuts 45s off the build process.
- Watcher objects are slightly larger (two pointers), but additional optimizations made during the process are producing small but consistent performance gains on the test suite and the benchmarks.
Move to the safer __cinit__ for all watchers. Now that the base watcher has access to its libev ev_watcher pointer, start moving the properties there, starting with ref.
…K less than we started.
…ker timer member.
cython ignores the preprocessor directives we previously had in libev.pxd, so that was doing nothing, and it was treating vfd_socket_t just as something it had to turn into an int. The function it used to do this was the same function it used to turn a generic PyObject into an int, once all the typedefs were substituted in (which does use the c preprocessor from libev_vfd.h). So it should be functionally equivalent. The vfd_* functions are no-op macros on POSIX, so there shouldn't be a performance difference. The minor exception is that __dealloc__ is always defined, and although it's a static function suitable to inline, there is an extra Python API call to PyErr_Fetch and PyErr_Restore. But if that makes a difference, I didn't spot it.
…n windows, and forbid them from being created. This gets us down to only one CPP def, LIBEV_EMBED
…the VFD object to the watcher.
… stdint.h. Also correct a compiler warning.
… fix a compiler warning.
This eliminates the need to call cythonpp.py on it. It also leads to a more consistent API. We could take the same approach to bring back sig_fd if necessary, but that's still not available to cython.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.