From 333965318a5d000140d54be2a2a9e0832372f271 Mon Sep 17 00:00:00 2001 From: Adam Carpenter <53hornet@gmail.com> Date: Thu, 21 Mar 2019 17:10:15 -0400 Subject: Added advanced features. --- advanced/unsafe-rust/Cargo.toml | 7 +++ advanced/unsafe-rust/src/main.rs | 62 +++++++++++++++++++++ advanced/unsafe-rust/target/.rustc_info.json | 1 + advanced/unsafe-rust/target/debug/.cargo-lock | 0 .../bin-unsafe_rust-c28e180aed6b1879 | 1 + .../bin-unsafe_rust-c28e180aed6b1879.json | 1 + .../dep-bin-unsafe_rust-c28e180aed6b1879 | Bin 0 -> 12 bytes .../unsafe-rust-c28e180aed6b1879/invoked.timestamp | 1 + .../target/debug/deps/unsafe_rust-c28e180aed6b1879 | Bin 0 -> 2437264 bytes .../debug/deps/unsafe_rust-c28e180aed6b1879.d | 5 ++ .../1gfyn0tm39r747ad.o | Bin 0 -> 3520 bytes .../23eb85ricvscbd12.o | Bin 0 -> 10688 bytes .../2sdrl1lm2yvj0gxu.o | Bin 0 -> 13072 bytes .../30gce4cd2hq0uwsp.o | Bin 0 -> 9224 bytes .../3iheyheinuvmg6ds.o | Bin 0 -> 5728 bytes .../4hodvrxy8ugbncf7.o | Bin 0 -> 6200 bytes .../5oo0hnz9c2qo9ox.o | Bin 0 -> 4776 bytes .../dep-graph.bin | Bin 0 -> 296578 bytes .../query-cache.bin | Bin 0 -> 82486 bytes .../work-products.bin | Bin 0 -> 413 bytes .../s-fak878gvcu-15iobpi.lock | 0 advanced/unsafe-rust/target/debug/unsafe-rust | Bin 0 -> 2437264 bytes advanced/unsafe-rust/target/debug/unsafe-rust.d | 1 + 23 files changed, 79 insertions(+) create mode 100644 advanced/unsafe-rust/Cargo.toml create mode 100644 advanced/unsafe-rust/src/main.rs create mode 100644 advanced/unsafe-rust/target/.rustc_info.json create mode 100644 advanced/unsafe-rust/target/debug/.cargo-lock create mode 100644 advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879 create mode 100644 advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879.json create mode 100644 advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/dep-bin-unsafe_rust-c28e180aed6b1879 create mode 100644 advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/invoked.timestamp create mode 100755 advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879 create mode 100644 advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879.d create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/1gfyn0tm39r747ad.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/23eb85ricvscbd12.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/2sdrl1lm2yvj0gxu.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/30gce4cd2hq0uwsp.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/3iheyheinuvmg6ds.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/4hodvrxy8ugbncf7.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/5oo0hnz9c2qo9ox.o create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/dep-graph.bin create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/query-cache.bin create mode 100644 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/work-products.bin create mode 100755 advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi.lock create mode 100755 advanced/unsafe-rust/target/debug/unsafe-rust create mode 100644 advanced/unsafe-rust/target/debug/unsafe-rust.d (limited to 'advanced/unsafe-rust') diff --git a/advanced/unsafe-rust/Cargo.toml b/advanced/unsafe-rust/Cargo.toml new file mode 100644 index 0000000..b37474a --- /dev/null +++ b/advanced/unsafe-rust/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "unsafe-rust" +version = "0.1.0" +authors = ["Adam Carpenter <53hornet@gmail.com>"] +edition = "2018" + +[dependencies] diff --git a/advanced/unsafe-rust/src/main.rs b/advanced/unsafe-rust/src/main.rs new file mode 100644 index 0000000..c9967a8 --- /dev/null +++ b/advanced/unsafe-rust/src/main.rs @@ -0,0 +1,62 @@ +fn main() { + let mut num = 5; + + let r1 = &num as *const i32; + let r2 = &mut num as *mut i32; + + let address = 0x012345usize; + let r = address as *const i32; + + unsafe { + println!("{}", *r1); + println!("{}", *r2); + } + + unsafe { + dangerous(); + } + + + unsafe { + println!("c call: {}", abs(-3)); + } + + + unsafe { + HELLO_WORLD = "test"; + println!("{}", HELLO_WORLD); + } + println!("{}", HI_THERE); + + add_to_count(3); + + unsafe { + println!("counter: {}", COUNTER); + } +} + +unsafe fn dangerous() {} + +extern "C" { + fn abs(input: i32) -> i32; +} + +static mut HELLO_WORLD: &str = "hello world"; +static mut COUNTER: u32 = 0; + +fn add_to_count(inc: u32) { + unsafe { + COUNTER += inc; + } +} + +const HI_THERE: &str = "hi there"; + +unsafe trait Foo { + // methods +} + +unsafe impl Foo for i32 { + // implementations +} + diff --git a/advanced/unsafe-rust/target/.rustc_info.json b/advanced/unsafe-rust/target/.rustc_info.json new file mode 100644 index 0000000..9d7b53d --- /dev/null +++ b/advanced/unsafe-rust/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":13873747241073698561,"outputs":{"15337506775154344876":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/carpenat/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n",""],"1164083562126845933":["rustc 1.33.0 (2aa4c46cf 2019-02-28)\nbinary: rustc\ncommit-hash: 2aa4c46cfdd726e97360c2734835aa3515e8c858\ncommit-date: 2019-02-28\nhost: x86_64-unknown-linux-gnu\nrelease: 1.33.0\nLLVM version: 8.0\n",""],"1617349019360157463":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/carpenat/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n",""]},"successes":{}} \ No newline at end of file diff --git a/advanced/unsafe-rust/target/debug/.cargo-lock b/advanced/unsafe-rust/target/debug/.cargo-lock new file mode 100644 index 0000000..e69de29 diff --git a/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879 b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879 new file mode 100644 index 0000000..482713d --- /dev/null +++ b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879 @@ -0,0 +1 @@ +c1637025d3fcd0b5 \ No newline at end of file diff --git a/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879.json b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879.json new file mode 100644 index 0000000..57b65ce --- /dev/null +++ b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/bin-unsafe_rust-c28e180aed6b1879.json @@ -0,0 +1 @@ +{"rustc":14715343205281380114,"features":"[]","target":13550359907968648163,"profile":11066475326754421590,"path":1036222786711178230,"deps":[],"local":[{"MtimeBased":[[1553195584,22060500],".fingerprint/unsafe-rust-c28e180aed6b1879/dep-bin-unsafe_rust-c28e180aed6b1879"]}],"rustflags":[],"edition":"Edition2018"} \ No newline at end of file diff --git a/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/dep-bin-unsafe_rust-c28e180aed6b1879 b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/dep-bin-unsafe_rust-c28e180aed6b1879 new file mode 100644 index 0000000..e046c38 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/dep-bin-unsafe_rust-c28e180aed6b1879 differ diff --git a/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/invoked.timestamp b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/advanced/unsafe-rust/target/debug/.fingerprint/unsafe-rust-c28e180aed6b1879/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879 b/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879 new file mode 100755 index 0000000..4e2ac17 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879 differ diff --git a/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879.d b/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879.d new file mode 100644 index 0000000..f91b92f --- /dev/null +++ b/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879.d @@ -0,0 +1,5 @@ +/home/carpenat/devel/learning-rust/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879: src/main.rs + +/home/carpenat/devel/learning-rust/advanced/unsafe-rust/target/debug/deps/unsafe_rust-c28e180aed6b1879.d: src/main.rs + +src/main.rs: diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/1gfyn0tm39r747ad.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/1gfyn0tm39r747ad.o new file mode 100644 index 0000000..f32ee36 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/1gfyn0tm39r747ad.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/23eb85ricvscbd12.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/23eb85ricvscbd12.o new file mode 100644 index 0000000..af6cc3b Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/23eb85ricvscbd12.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/2sdrl1lm2yvj0gxu.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/2sdrl1lm2yvj0gxu.o new file mode 100644 index 0000000..41b97d1 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/2sdrl1lm2yvj0gxu.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/30gce4cd2hq0uwsp.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/30gce4cd2hq0uwsp.o new file mode 100644 index 0000000..710891c Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/30gce4cd2hq0uwsp.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/3iheyheinuvmg6ds.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/3iheyheinuvmg6ds.o new file mode 100644 index 0000000..12ea699 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/3iheyheinuvmg6ds.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/4hodvrxy8ugbncf7.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/4hodvrxy8ugbncf7.o new file mode 100644 index 0000000..bb0d9b2 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/4hodvrxy8ugbncf7.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/5oo0hnz9c2qo9ox.o b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/5oo0hnz9c2qo9ox.o new file mode 100644 index 0000000..70db773 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/5oo0hnz9c2qo9ox.o differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/dep-graph.bin b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/dep-graph.bin new file mode 100644 index 0000000..8e2b895 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/dep-graph.bin differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/query-cache.bin b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/query-cache.bin new file mode 100644 index 0000000..ef70a51 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/query-cache.bin differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/work-products.bin b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/work-products.bin new file mode 100644 index 0000000..fd9cb86 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi-2a6ycufm2z9xi/work-products.bin differ diff --git a/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi.lock b/advanced/unsafe-rust/target/debug/incremental/unsafe_rust-1at6ysk050g0v/s-fak878gvcu-15iobpi.lock new file mode 100755 index 0000000..e69de29 diff --git a/advanced/unsafe-rust/target/debug/unsafe-rust b/advanced/unsafe-rust/target/debug/unsafe-rust new file mode 100755 index 0000000..4e2ac17 Binary files /dev/null and b/advanced/unsafe-rust/target/debug/unsafe-rust differ diff --git a/advanced/unsafe-rust/target/debug/unsafe-rust.d b/advanced/unsafe-rust/target/debug/unsafe-rust.d new file mode 100644 index 0000000..4a06b79 --- /dev/null +++ b/advanced/unsafe-rust/target/debug/unsafe-rust.d @@ -0,0 +1 @@ +/home/carpenat/devel/learning-rust/advanced/unsafe-rust/target/debug/unsafe-rust: /home/carpenat/devel/learning-rust/advanced/unsafe-rust/src/main.rs -- cgit v1.2.3