Add try_patch shell function and update glue for latest nightlies

This commit is contained in:
Jethro Beekman 2017-04-09 13:50:59 -07:00
parent 0ad4c19f7e
commit 64dd163434
4 changed files with 28 additions and 5 deletions

View File

@ -17,7 +17,7 @@ prompt_changes() {
GIT_DIR="$MAIN_GIT_DIR" git_commits_ordered '%H %cd' $(get_patch_commits) $IO_COMMIT | \
grep --color=always -1 $IO_COMMIT | sed /$IO_COMMIT/'s/$/ <=== your commit/'
echo
bold_arrow; echo -e "Try applying one of those using: \e[1;36mpatch -p1 < ../../patches/COMMIT.patch\e[0m"
bold_arrow; echo -e "Try applying one of those using: \e[1;36mtry_patch COMMIT\e[0m"
bold_arrow; echo -e "Remember to test your changes with: \e[1;36mcargo build\e[0m"
bold_arrow; echo -e "Make your changes now (\e[1;36mctrl-D\e[0m when finished)"
bash_diff_loop "No changes were made"

View File

@ -36,17 +36,25 @@ impl Sub<Mapping> for Vec<Mapping> {
}
fn main() {
let ver=rustc_version::version_meta();
let io_commit=match env::var("CORE_IO_COMMIT") {
Ok(c) => c,
Err(env::VarError::NotUnicode(_)) => panic!("Invalid commit specified in CORE_IO_COMMIT"),
Err(env::VarError::NotPresent) => {
let mappings=include!("mapping.rs");
let compiler=rustc_version::version_meta().commit_hash.expect("Couldn't determine compiler version");
let compiler=ver.commit_hash.expect("Couldn't determine compiler version");
mappings.iter().find(|&&Mapping(elem,_)|elem==compiler).expect("Unknown compiler version, upgrade core_io?").1.to_owned()
}
};
if ver.commit_date.as_ref().map_or(false,|d| &**d<"2016-12-15") {
println!("cargo:rustc-cfg=rustc_unicode");
} else if ver.commit_date.as_ref().map_or(false,|d| &**d<"2017-03-03") {
println!("cargo:rustc-cfg=std_unicode");
}
let mut dest_path=PathBuf::from(env::var_os("OUT_DIR").unwrap());
dest_path.push("io.rs");
let mut f=File::create(&dest_path).unwrap();

View File

@ -41,7 +41,9 @@ get_patch_commits() {
prepare_version() {
mkdir src/$IO_COMMIT
git_extract src/libstd/io/
if git_file_exists src/libstd/sys/common/memchr.rs; then
if git_file_exists src/libstd/sys_common/memchr.rs; then
git_extract src/libstd/sys_common/memchr.rs
elif git_file_exists src/libstd/sys/common/memchr.rs; then
git_extract src/libstd/sys/common/memchr.rs
else
git_extract src/libstd/memchr.rs
@ -53,8 +55,18 @@ bold_arrow() {
echo -ne '\e[1;36m==> \e[0m'
}
custom_bashrc() {
echo '
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
try_patch() {
patch -p1 < ../../patches/$1.patch
}
'
}
bash_diff_loop() {
bash <> /dev/stderr
bash --rcfile <(custom_bashrc) <> /dev/stderr
while git diff --exit-code > /dev/null; do
bold_arrow; echo "$1"
while true; do

View File

@ -3,13 +3,16 @@
//! the [std documentation](https://doc.rust-lang.org/nightly/std/io/index.html)
//! for a full description of the functionality.
#![allow(stable_features,unused_features)]
#![feature(question_mark,const_fn,collections,alloc,unicode,copy_from_slice,str_char,try_from)]
#![feature(question_mark,const_fn,collections,alloc,unicode,copy_from_slice,str_char,try_from,str_internals)]
#![no_std]
#[cfg_attr(feature="collections",macro_use)]
#[cfg(feature="collections")] extern crate collections;
#[cfg(feature="alloc")] extern crate alloc;
#[cfg(rustc_unicode)]
extern crate rustc_unicode;
#[cfg(std_unicode)]
extern crate std_unicode;
#[cfg(not(feature="collections"))]
pub type ErrorString = &'static str;