Create an empty Rust project for treedirstate. This will be a
re-implementation of the dirstate map using a tree structure, where nodes in
the tree are directories, and leaves are files.
Details
- Reviewers
quark durham - Group Reviewers
Restricted Project - Commits
- rFBHGX401e19090975: treedirstate: create empty Rust project
Diff Detail
- Repository
- rFBHGX Facebook Mercurial Extensions
- Lint
Lint Skipped - Unit
Unit Tests Skipped
Event Timeline
lgtm, but I don't know rust, so someone who does may want to take a look.
rust/treedirstate/.cargo/config | ||
---|---|---|
5 | Do we need a linux target here? |
rust/treedirstate/.cargo/config | ||
---|---|---|
5 | On OS X you need to pass extra arguments to the linker to let it produce a library that has unresolved symbols that need to be resolved dynamically on load. On Linux (and Windows, I believe) that's the default behaviour. I should probably add a comment, though. |
rust/treedirstate/.cargo/config | ||
---|---|---|
3 | Correct. We get whichever libpython was part of the process that loaded us. These symbols are all referred to by the rust-cpython crate, and the rust-cpython continuous integration has tests that ensure that only symbols that are definitely available in libpython available are used, so this is ok. | |
treedirstate/Makefile | ||
38–39 | $(RM) expands to rm -f. I think the clean rule should fail if it fails to clean, so that make clean && make all will fail appropriately. |
rust/treedirstate/.cargo/config | ||
---|---|---|
3 | I saw your comment about cython installation place. I wonder if you're using a wrong Python to run setup.py. Try source hg-dev and it will make python same as what hg.real uses, which is different from the default python used on OSX. If that is used to run setup.py, is the link args still necessary? |
Does this mean that at the build time, we don't know which libpython to link against?