Skip to content

Instantly share code, notes, and snippets.

@bstrie
Created June 16, 2012 20:55
Show Gist options
  • Save bstrie/2942491 to your computer and use it in GitHub Desktop.
Save bstrie/2942491 to your computer and use it in GitHub Desktop.
Rust ICE
⌁ RUST_LOG=rustc=0,::rt::backtrace make -j2
cfg: shell host triple x86_64-unknown-linux-gnu
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: unix-y environment
cfg: using gcc
cfg: no pdflatex found, omitting doc/rust.pdf
cfg: no llnextgen found, omitting grammar-verification
compile_and_link: x86_64-unknown-linux-gnu/stage0/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore.so
rust: upcall fail 'explicit failure', /home/rustbuild/src/rustbot/workspace-snap-stage3-x86_64-unknown-linux-gnu/src/src/libsyntax/ast_util.rs:59
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x5d)[0x2b28ef7f2c6d]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(+0x2e09d)[0x2b28ef80809d]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(upcall_fail+0x163)[0x2b28ef7f6d93]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libsyntax-b45cc7d0b085bc34-0.2.so(+0x456fe)[0x2b28ee4f76fe]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0x240656)[0x2b28ef0af656]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0x23f6cc)[0x2b28ef0ae6cc]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0x240f8a)[0x2b28ef0aff8a]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0x240cb5)[0x2b28ef0afcb5]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0x505fa4)[0x2b28ef374fa4]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0xf84e9)[0x2b28eef674e9]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0xf41fc)[0x2b28eef631fc]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(_ZN6middle7resolve13resolve_crate17_57ec892aafc22e3e3_02E+0x1341)[0x2b28ef06ea81]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(_ZN6driver6driver12compile_upto17_663553df3bfd9d163_02E+0xd53)[0x2b28ef3538e3]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(+0x505fa4)[0x2b28ef374fa4]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustc-73389320c1332876-0.2.so(_ZN6driver6driver13compile_input17_54bae5369b8a41e03_02E+0xbb)[0x2b28ef35c1fb]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x4070a9]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x416628]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x414d5e]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x414448]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x3eb45)[0x2b28edc16b45]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x2d)[0x2b28ef7f3dcd]
1;31merror:0m internal compiler error: unexpected failure
1;32mnote:0m the compiler hit an unexpected failure path. this is a bug
1;32mnote:0m try running with RUST_LOG=rustc=0,::rt::backtrace to get further details and report the results to github.com/mozilla/rust/issues
rust: upcall fail 'explicit failure', /home/rustbuild/src/rustbot/workspace-snap-stage3-x86_64-unknown-linux-gnu/src/src/rustc/driver/rustc.rs:256
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x5d)[0x2b28ef7f2c6d]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(+0x2e09d)[0x2b28ef80809d]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(upcall_fail+0x163)[0x2b28ef7f6d93]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x413bf2]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x416628]
x86_64-unknown-linux-gnu/stage0/bin/rustc[0x415e09]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x2d)[0x2b28ef7f3dcd]
rust: domain main @0x1b71ec0 root task failed
rust: upcall fail 'killed', /home/rustbuild/src/rustbot/workspace-snap-stage3-x86_64-unknown-linux-gnu/src/src/libcore/task.rs:454
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x5d)[0x2b28ef7f2c6d]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(+0x2e09d)[0x2b28ef80809d]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(upcall_fail+0x163)[0x2b28ef7f6d93]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(_ZN4task5yield17_8bfde8cf2fff81633_02E+0xd1)[0x2b28edc144f1]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x50a94)[0x2b28edc28a94]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(_ZN4priv11weaken_task17_f917a0b32e225daa3_02E+0xbf)[0x2b28edc2891f]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x66734)[0x2b28edc3e734]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x507e6)[0x2b28edc287e6]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x4fb4f)[0x2b28edc27b4f]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x4f1c5)[0x2b28edc271c5]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/libcore-d27e4777a53c3e50-0.2.so(+0x3eb45)[0x2b28edc16b45]
/media/warehouse/Linux/Programs/rust/x86_64-unknown-linux-gnu/stage0/bin/../lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x2d)[0x2b28ef7f3dcd]
make: *** [x86_64-unknown-linux-gnu/stage0/lib/rustc/x86_64-unknown-linux-gnu/lib/libcore.so] Error 101
⌁ git diff
diff --git a/src/libcore/core.rs b/src/libcore/core.rs
index 2522a98..46fca22 100644
--- a/src/libcore/core.rs
+++ b/src/libcore/core.rs
@@ -11,9 +11,10 @@ import option::extensions;
import option_iter::extensions;
import ptr::extensions;
import rand::extensions;
+import int;
export path, option, some, none, unreachable;
-export extensions;
+export int::extensions::num;
// Export the log levels as global constants. Higher levels mean
// more-verbosity. Error is the bottom level, default logging level is
diff --git a/src/libcore/int-template.rs b/src/libcore/int-template.rs
index 1ee9149..e83cb25 100644
--- a/src/libcore/int-template.rs
+++ b/src/libcore/int-template.rs
@@ -12,7 +12,7 @@ export range;
export compl;
export abs;
export parse_buf, from_str, to_str, to_str_bytes, str;
-export ord, eq, num;
+export ord, eq, extensions;
const min_value: T = -1 as T << (inst::bits - 1 as T);
const max_value: T = min_value - 1 as T;
@@ -124,16 +124,18 @@ impl eq of eq for T {
}
}
-impl num of num::num for T {
- fn add(&&other: T) -> T { ret self + other; }
- fn sub(&&other: T) -> T { ret self - other; }
- fn mul(&&other: T) -> T { ret self * other; }
- fn div(&&other: T) -> T { ret self / other; }
- fn modulo(&&other: T) -> T { ret self % other; }
- fn neg() -> T { ret -self; }
-
- fn to_int() -> int { ret self as int; }
- fn from_int(n: int) -> T { ret n as T; }
+mod extensions {
+ impl num of num::num for T {
+ fn add(&&other: T) -> T { ret self + other; }
+ fn sub(&&other: T) -> T { ret self - other; }
+ fn mul(&&other: T) -> T { ret self * other; }
+ fn div(&&other: T) -> T { ret self / other; }
+ fn modulo(&&other: T) -> T { ret self % other; }
+ fn neg() -> T { ret -self; }
+
+ fn to_int() -> int { ret self as int; }
+ fn from_int(n: int) -> T { ret n as T; }
+ }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment