src | ||
.gitignore | ||
build.rs | ||
Cargo.toml | ||
doc.sh | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
mapping.rs | ||
README.md | ||
sync.sh |
core_io
std::io
with all the parts that don't work in core removed.
Adding new nightly versions
First, make sure the commit you want to add is fetch in the git tree at
/your/rust/dir/.git
. Then, import the right source files:
$ echo FULL_COMMIT_ID ...|GIT_DIR=/your/rust/dir/.git ./sync.sh
Instead of echoing in the commit IDs, you might pipe in rustc-commit-db list-valid
.
Now look at the changes with git status
. If nothing changed then the commit
you tried to add was already there. Otherwise commit all changes and new files
now. If only mapping.rs
changed, the I/O code has not changed for this
particular commit. If a directory in src/
was added, after committing, cd
into it to apply the patch.
Find out which previously-existing commit is closest to the new one and search
this git repository for a commit with the description Patch COMMIT for core
.
For example, if you're adding dd56a6ad0845b76509c4f8967e8ca476471ab7e0, the
best closest commit is 80d733385aa2ff150a5d6f83ecfe55afc7e19e68.
$ git log --pretty=oneline --grep=80d733385aa2ff150a5d6f83ecfe55afc7e19e68
92fc0ad81c432b5fa3e848fc1892815ca2f55100 Patch 80d733385aa2ff150a5d6f83ecfe55afc7e19e68 for core
The commit ID at the start of the line is the patch we'll try to apply:
$ git show 92fc0ad81c432b5fa3e848fc1892815ca2f55100|patch -p3
$ cargo build
Now, fix any errors cargo
reports. If patch
also reported errors, you may
look at the rejects for inspiration ;).
Finally, commit this new version:
$ git commit -m "Patch dd56a6ad0845b76509c4f8967e8ca476471ab7e0 for core" .
Do not commit any files in different directories, this will break the patching scheme.