This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'example.0.rs' | |
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-pc-windows-msvc" | |
%"2.std::str::Chars" = type { %"2.std::slice::Iter<u8>" } | |
%"2.std::slice::Iter<u8>" = type { i8*, i8*, %"2.std::marker::PhantomData<&'static u8>" } | |
%"2.std::marker::PhantomData<&'static u8>" = type {} | |
%"2.std::option::Option<char>" = type { i32, [0 x i32], [1 x i32] } | |
%"2.std::option::Option<u32>" = type { i32, [0 x i32], [1 x i32] } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct Foo { | |
a: Box<u32>, | |
b: Box<u32>, | |
c: Box<u32>, | |
d: Box<u32> | |
} | |
fn star() -> u32 { 0 } | |
fn main() { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MIR for method clone in Foo.::std::clone::Clone::clone (id=14) | |
fn(arg0: &Foo) -> Foo { | |
let tmp0: &U; | |
let tmp1: &V; | |
let var0: U; | |
let var1: V; | |
begin: { | |
goto clone_0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'spawn_example.0.rs' | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%str_slice = type { i8*, i64 } | |
%"1.core::marker::PhantomData<&'static mut u8>" = type {} | |
%"1.core::fmt::Formatter" = type { i32, i32, i8, %"1.core::option::Option<usize>", %"1.core::option::Option<usize>", { i8*, void (i8*)** }, %"1.core::slice::Iter<core::fmt::ArgumentV1>", { %"1.core::fmt::ArgumentV1"*, i64 } } | |
%"1.core::option::Option<usize>" = type { i64, [0 x i64], [1 x i64] } | |
%"1.core::slice::Iter<core::fmt::ArgumentV1>" = type { %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"*, %"1.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" } | |
%"1.core::fmt::ArgumentV1" = type { %"1.core::fmt::Void"*, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* } |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+ RUSTFLAGS=-Z time-passes time make -j8 rustc-stage2 | |
cfg: version 1.1.0-dev (a86a88c93 2015-04-30) (built 2015-04-30) | |
cfg: build triple x86_64-unknown-linux-gnu | |
cfg: host triples x86_64-unknown-linux-gnu | |
cfg: target triples x86_64-unknown-linux-gnu | |
cfg: enabling debug assertions (CFG_ENABLE_DEBUG_ASSERTIONS) | |
cfg: host for x86_64-unknown-linux-gnu is x86_64 | |
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu | |
cfg: good valgrind for x86_64-unknown-linux-gnu is 1 | |
cfg: using CC=gcc (CFG_CC) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pub unsafe trait Acyclic {} | |
// struct Rc<T: RcSafe> | |
// struct Arc<T: RcSafe> | |
// R1: structural | |
unsafe impl Acyclic for .. {} | |
// R2: no-ownership |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::cell::RefCell; | |
use std::mem; | |
struct Destructor<'a> { | |
next: Option<Box<Destructor<'a>>>, | |
dtor: Box<FnMut() + 'a> | |
} | |
struct Scope<'a> { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Do we have to correctly compute the determinant of matrices whose determinant contains components that don't fit in a long, like this 4x4 matrix: | |
M= | |
0000001 4999999 4999999 4999999 | |
0000001 5000000 9999998 9999998 | |
0000001 5000000 9999998 9999999 | |
0000000 0000000 0000001 4999999 | |
This matrix's determinant is -1 (this can be discovered by noticing that it is the product of the 3 matrices |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ rustc -C no-stack-check source.rs --crate-type=staticlib # kernel also wants -C no-redzone -C code-model=kernel | |
$ gcc libsource.a | |
$ ldd ./a.out # no rust libs here | |
linux-vdso.so.1 => (0x00007fffb5343000) | |
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f59ef69b000) | |
/lib64/ld-linux-x86-64.so.2 (0x00007f59efaa4000) | |
$ ./a.out; echo $? | |
42 |