Remove unnecessary changes

This commit is contained in:
bjorn3 2019-07-26 11:45:01 +02:00
parent 0a833ba8a1
commit ffa34ae328
6 changed files with 71 additions and 15 deletions

View File

@ -5,12 +5,15 @@ version = "0.0.0"
[dependencies]
core = { path = "./sysroot_src/src/libcore" }
compiler_builtins = { version = "0.1", features = ["rustc-dep-of-std"] }
compiler_builtins = "0.1"
alloc = { path = "./sysroot_src/src/liballoc" }
std = { path = "./sysroot_src/src/libstd" }
alloc_system = { path = "./alloc_system" }
[patch.crates-io]
rustc-std-workspace-core = { path = "./sysroot_src/src/tools/rustc-std-workspace-core" }
rustc-std-workspace-alloc = { path = "./rustc-std-workspace-alloc" }
compiler_builtins = { path = "./compiler-builtins" }
[profile.release]
debug = true

View File

@ -4,6 +4,8 @@ cd $(dirname "$0")
# Cleanup for previous run
# v Clean target dir except for build scripts and incremental cache
rm -r target/*/{debug,release}/{build,deps,examples,libsysroot*,native} || true
rm Cargo.lock 2>/dev/null || true
rm -r sysroot 2>/dev/null || true
# FIXME find a better way to get the target triple

@ -1 +0,0 @@
Subproject commit 36da64f20e96206ac279f700586817c8abe3bdf8

View File

@ -1,6 +1,16 @@
#![feature(start, box_syntax, core_intrinsics, alloc_error_handler)]
#![feature(start, box_syntax, alloc_system, core_intrinsics, alloc_prelude, alloc_error_handler)]
#![no_std]
extern crate alloc;
extern crate alloc_system;
use alloc::prelude::v1::*;
use alloc_system::System;
#[global_allocator]
static ALLOC: System = System;
#[link(name = "c")]
extern "C" {
fn puts(s: *const u8);
@ -13,12 +23,19 @@ fn panic_handler(_: &core::panic::PanicInfo) -> ! {
}
}
#[alloc_error_handler]
fn alloc_error_handler(_: alloc::alloc::Layout) -> ! {
unsafe {
core::intrinsics::abort();
}
}
#[start]
fn main(_argc: isize, _argv: *const *const u8) -> isize {
extern "C" {
fn __rust_u128_mulo(a: u128, b: u128) -> (u128, bool);
let world: Box<&str> = box "Hello World!\0";
unsafe {
puts(*world as *const str as *const u8);
}
assert_eq!(unsafe { __rust_u128_mulo(353985398u128, 932490u128).0 }, 330087843781020u128);
0
}

View File

@ -318,14 +318,6 @@ fn neg(self) -> i16 {
}
}
impl Neg for i128 {
type Output = i128;
fn neg(self) -> i128 {
-self
}
}
impl Neg for isize {
type Output = isize;

43
test.sh
View File

@ -4,9 +4,52 @@ source config.sh
rm -r target/out || true
mkdir -p target/out/clif
echo "[BUILD] mini_core"
$RUSTC example/mini_core.rs --crate-name mini_core --crate-type dylib
echo "[BUILD] example"
$RUSTC example/example.rs --crate-type lib
echo "[JIT] mini_core_hello_world"
SHOULD_RUN=1 JIT_ARGS="abc bcd" $RUSTC --crate-type bin example/mini_core_hello_world.rs --cfg jit
echo "[AOT] mini_core_hello_world"
$RUSTC example/mini_core_hello_world.rs --crate-name mini_core_hello_world --crate-type bin
./target/out/mini_core_hello_world abc bcd
echo "[AOT] arbitrary_self_types_pointers_and_wrappers"
$RUSTC example/arbitrary_self_types_pointers_and_wrappers.rs --crate-name arbitrary_self_types_pointers_and_wrappers --crate-type bin
./target/out/arbitrary_self_types_pointers_and_wrappers
echo "[BUILD] sysroot"
time ./build_sysroot/build_sysroot.sh
echo "[BUILD+RUN] alloc_example"
$RUSTC example/alloc_example.rs --crate-type bin
./target/out/alloc_example
echo "[BUILD+RUN] std_example"
$RUSTC example/std_example.rs --crate-type bin
./target/out/std_example
echo "[BUILD] mod_bench"
$RUSTC example/mod_bench.rs --crate-type bin
# FIXME linker gives multiple definitions error on Linux
#echo "[BUILD] sysroot in release mode"
#./build_sysroot/build_sysroot.sh --release
COMPILE_MOD_BENCH_INLINE="$RUSTC example/mod_bench.rs --crate-type bin -Zmir-opt-level=3 -O --crate-name mod_bench_inline"
COMPILE_MOD_BENCH_LLVM_0="rustc example/mod_bench.rs --crate-type bin -Copt-level=0 -o target/out/mod_bench_llvm_0 -Cpanic=abort"
COMPILE_MOD_BENCH_LLVM_1="rustc example/mod_bench.rs --crate-type bin -Copt-level=1 -o target/out/mod_bench_llvm_1 -Cpanic=abort"
COMPILE_MOD_BENCH_LLVM_2="rustc example/mod_bench.rs --crate-type bin -Copt-level=2 -o target/out/mod_bench_llvm_2 -Cpanic=abort"
COMPILE_MOD_BENCH_LLVM_3="rustc example/mod_bench.rs --crate-type bin -Copt-level=3 -o target/out/mod_bench_llvm_3 -Cpanic=abort"
# Use 100 runs, because a single compilations doesn't take more than ~150ms, so it isn't very slow
hyperfine --runs 100 "$COMPILE_MOD_BENCH_INLINE" "$COMPILE_MOD_BENCH_LLVM_0" "$COMPILE_MOD_BENCH_LLVM_1" "$COMPILE_MOD_BENCH_LLVM_2" "$COMPILE_MOD_BENCH_LLVM_3"
echo
echo "[Bench] mod_bench"
hyperfine ./target/out/mod_bench{,_inline} ./target/out/mod_bench_llvm_*
cat target/out/log.txt | sort | uniq -c