Skip to content

Hotfix: Rebase PR #2 #3

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

Conversation

EricCousineau-TRI
Copy link
Collaborator

@EricCousineau-TRI EricCousineau-TRI commented Dec 21, 2017

This rebases PR #2 on top of latest pybind11:master (sha: a303c6f).

This is meant for testing CI. If approved:

  • Ensure existing drake is in new branch, no_prune: 433a6c7
  • Update upstream from 0a0758c to a303c6f
  • Force push this branch onto drake (from 433a6c7 to 48999b6)
  • Protect no_prune
  • Merge last_sha_of_previous_fork (6d72785) into no_prune with merge --no-ff --strategy=ours: 3471f54
  • Update last_sha_of_previous_fork from 6d72785 to ffcf754

\cc @m-chaturvedi @jamiesnape

wjakob and others added 9 commits November 16, 2017 22:24
This commit turns on `-Wdeprecated` in the test suite and fixes several
associated deprecation warnings that show up as a result:

- in C++17 `static constexpr` members are implicitly inline; our
  redeclaration (needed for C++11/14) is deprecated in C++17.

- various test suite classes have destructors and rely on implicit copy
  constructors, but implicit copy constructor definitions when a
  user-declared destructor is present was deprecated in C++11.

- Eigen also has various implicit copy constructors, so just disable
  `-Wdeprecated` in `eigen.h`.
This changes the travis-ci eigen download code to extract the tar on the
fly (rather than saving to a file first), and extracts into an `eigen`
directory rather than using upstream's `eigen-eigen-xxxxx` directory.

This also bumps the travis-ci eigen release to 3.3.4, in an attempt to
see if it fixed the -Wdeprecated warnings (it did not); the build setup
cleanup seems worth committing anyway.
None of the three currently recommended approaches works on PyPy, due to
it not garbage collecting things when you want it to. Added a note with
example showing how to get interpreter shutdown callbacks using the Python
atexit module.
Pybind11's default conversion to int always produces a long on Python 2 (`int`s and `long`s were unified in Python 3). This patch fixes `int` handling to match Python 2 on Python 2; for short types (`size_t` or smaller), the number will be returned as an `int` if possible, otherwise `long`. Requires Python 2.5+.

This is needed for things like `sys.exit`, which refuse to accept a `long`.
…` and `unique_ptr<T>` for pure C++ instances and single-inheritance instances
@EricCousineau-TRI
Copy link
Collaborator Author

@EricCousineau-TRI
Copy link
Collaborator Author

Finished tasks.

@EricCousineau-TRI
Copy link
Collaborator Author

EricCousineau-TRI commented Dec 21, 2017

After everything was said and done:

$ cd pybind11
$ git fetch robotlocomotion 
...
From http://github.com/RobotLocomotion/pybind11
 + ffcf754...48999b6 drake      -> robotlocomotion/drake  (forced update)
 + 6d72785...ffcf754 last_sha_of_previous_fork -> robotlocomotion/last_sha_of_previous_fork  (forced update)
 * [new branch]      no_prune   -> robotlocomotion/no_prune
   0a0758c..a303c6f  upstream   -> robotlocomotion/upstream
$ git rev-parse --short robotlocomotion/no_prune
3471f54

Tested rebuilding on drake:master (3610dec) on my system by removing old pybind11:ffcf754ae9e766632610975d22372a86a7b63014 (sha256: 7cd6f4efb02bf9ae17eeb2afba68023af913e61ae76e8b4254203d0eec019525) from --experimental_repository_cache.
Was able to fetch pybind11 with a cache miss.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants