Skip to content

Commit 8737b8e

Browse files
committed
---
yaml --- r: 140684 b: refs/heads/try2 c: 3e0400f h: refs/heads/master v: v3
1 parent e43ac06 commit 8737b8e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+839
-527
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 606bd75586419948f109de313ab37e31397ca7a3
8+
refs/heads/try2: 3e0400fb86170baff30282edcdccff73e243fd6e
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/mk/platform.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,12 @@ AR_mips-unknown-linux-gnu=mips-linux-gnu-ar
247247
CFG_LIB_NAME_mips-unknown-linux-gnu=lib$(1).so
248248
CFG_LIB_GLOB_mips-unknown-linux-gnu=lib$(1)-*.so
249249
CFG_LIB_DSYM_GLOB_mips-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
250-
CFG_GCCISH_CFLAGS_mips-unknown-linux-gnu := -Wall -g -fPIC -mips32r2 -msoft-float -mabi=32
250+
CFG_GCCISH_CFLAGS_mips-unknown-linux-gnu := -Wall -g -fPIC -mips32r2 -msoft-float -mabi=32 -mno-compact-eh
251251
CFG_GCCISH_CXXFLAGS_mips-unknown-linux-gnu := -fno-rtti
252252
CFG_GCCISH_LINK_FLAGS_mips-unknown-linux-gnu := -shared -fPIC -g -mips32r2 -msoft-float -mabi=32
253253
CFG_GCCISH_DEF_FLAG_mips-unknown-linux-gnu := -Wl,--export-dynamic,--dynamic-list=
254254
CFG_GCCISH_PRE_LIB_FLAGS_mips-unknown-linux-gnu := -Wl,-whole-archive
255-
CFG_GCCISH_POST_LIB_FLAGS_mips-unknown-linux-gnu := -Wl,-no-whole-archive -Wl,-znoexecstack
255+
CFG_GCCISH_POST_LIB_FLAGS_mips-unknown-linux-gnu := -Wl,-no-whole-archive
256256
CFG_DEF_SUFFIX_mips-unknown-linux-gnu := .linux.def
257257
CFG_INSTALL_NAME_mips-unknown-linux-gnu =
258258
CFG_LIBUV_LINK_FLAGS_mips-unknown-linux-gnu =

branches/try2/src/libcore/condition.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
use prelude::*;
1414
use task;
15-
use task::local_data::{local_data_pop, local_data_set};
15+
use local_data::{local_data_pop, local_data_set};
1616

1717
// helper for transmutation, shown below.
1818
type RustClosure = (int, int);
@@ -24,14 +24,14 @@ pub struct Handler<T, U> {
2424

2525
pub struct Condition<'self, T, U> {
2626
name: &'static str,
27-
key: task::local_data::LocalDataKey<'self, Handler<T, U>>
27+
key: local_data::LocalDataKey<'self, Handler<T, U>>
2828
}
2929

3030
pub impl<'self, T, U> Condition<'self, T, U> {
3131
fn trap(&'self self, h: &'self fn(T) -> U) -> Trap<'self, T, U> {
3232
unsafe {
3333
let p : *RustClosure = ::cast::transmute(&h);
34-
let prev = task::local_data::local_data_get(self.key);
34+
let prev = local_data::local_data_get(self.key);
3535
let h = @Handler { handle: *p, prev: prev };
3636
Trap { cond: self, handler: h }
3737
}

branches/try2/src/libcore/core.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ pub mod trie;
215215
pub mod task;
216216
pub mod comm;
217217
pub mod pipes;
218+
pub mod local_data;
218219

219220

220221
/* Runtime and platform support */

branches/try2/src/libcore/libc.rs

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,14 +268,17 @@ pub mod types {
268268
pub type ssize_t = i32;
269269
}
270270
pub mod posix01 {
271-
use libc::types::os::arch::c95::{c_short, c_long, time_t};
271+
use libc::types::os::arch::c95::{c_short, c_long, c_ulong, time_t};
272272
use libc::types::os::arch::posix88::{dev_t, gid_t, ino_t};
273273
use libc::types::os::arch::posix88::{mode_t, off_t};
274274
use libc::types::os::arch::posix88::{uid_t};
275275

276276
pub type nlink_t = u32;
277277
pub type blksize_t = i32;
278278
pub type blkcnt_t = i32;
279+
280+
#[cfg(target_arch = "x86")]
281+
#[cfg(target_arch = "arm")]
279282
pub struct stat {
280283
st_dev: dev_t,
281284
__pad1: c_short,
@@ -298,6 +301,30 @@ pub mod types {
298301
__unused4: c_long,
299302
__unused5: c_long,
300303
}
304+
305+
#[cfg(target_arch = "mips")]
306+
pub struct stat {
307+
st_dev: c_ulong,
308+
st_pad1: [c_long, ..3],
309+
st_ino: ino_t,
310+
st_mode: mode_t,
311+
st_nlink: nlink_t,
312+
st_uid: uid_t,
313+
st_gid: gid_t,
314+
st_rdev: c_ulong,
315+
st_pad2: [c_long, ..2],
316+
st_size: off_t,
317+
st_pad3: c_long,
318+
st_atime: time_t,
319+
st_atime_nsec: c_long,
320+
st_mtime: time_t,
321+
st_mtime_nsec: c_long,
322+
st_ctime: time_t,
323+
st_ctime_nsec: c_long,
324+
st_blksize: blksize_t,
325+
st_blocks: blkcnt_t,
326+
st_pad5: [c_long, ..14],
327+
}
301328
}
302329
pub mod posix08 {}
303330
pub mod bsd44 {}
@@ -963,6 +990,9 @@ pub mod consts {
963990
}
964991
pub mod c99 {
965992
}
993+
#[cfg(target_arch = "x86")]
994+
#[cfg(target_arch = "x86_64")]
995+
#[cfg(target_arch = "arm")]
966996
pub mod posix88 {
967997
pub static O_RDONLY : int = 0;
968998
pub static O_WRONLY : int = 1;
@@ -1007,6 +1037,51 @@ pub mod consts {
10071037
pub static SIGALRM : int = 14;
10081038
pub static SIGTERM : int = 15;
10091039
}
1040+
#[cfg(target_arch = "mips")]
1041+
pub mod posix88 {
1042+
pub static O_RDONLY : int = 0;
1043+
pub static O_WRONLY : int = 1;
1044+
pub static O_RDWR : int = 2;
1045+
pub static O_APPEND : int = 8;
1046+
pub static O_CREAT : int = 256;
1047+
pub static O_EXCL : int = 1024;
1048+
pub static O_TRUNC : int = 512;
1049+
pub static S_IFIFO : int = 4096;
1050+
pub static S_IFCHR : int = 8192;
1051+
pub static S_IFBLK : int = 24576;
1052+
pub static S_IFDIR : int = 16384;
1053+
pub static S_IFREG : int = 32768;
1054+
pub static S_IFMT : int = 61440;
1055+
pub static S_IEXEC : int = 64;
1056+
pub static S_IWRITE : int = 128;
1057+
pub static S_IREAD : int = 256;
1058+
pub static S_IRWXU : int = 448;
1059+
pub static S_IXUSR : int = 64;
1060+
pub static S_IWUSR : int = 128;
1061+
pub static S_IRUSR : int = 256;
1062+
pub static F_OK : int = 0;
1063+
pub static R_OK : int = 4;
1064+
pub static W_OK : int = 2;
1065+
pub static X_OK : int = 1;
1066+
pub static STDIN_FILENO : int = 0;
1067+
pub static STDOUT_FILENO : int = 1;
1068+
pub static STDERR_FILENO : int = 2;
1069+
pub static F_LOCK : int = 1;
1070+
pub static F_TEST : int = 3;
1071+
pub static F_TLOCK : int = 2;
1072+
pub static F_ULOCK : int = 0;
1073+
pub static SIGHUP : int = 1;
1074+
pub static SIGINT : int = 2;
1075+
pub static SIGQUIT : int = 3;
1076+
pub static SIGILL : int = 4;
1077+
pub static SIGABRT : int = 6;
1078+
pub static SIGFPE : int = 8;
1079+
pub static SIGKILL : int = 9;
1080+
pub static SIGSEGV : int = 11;
1081+
pub static SIGPIPE : int = 13;
1082+
pub static SIGALRM : int = 14;
1083+
pub static SIGTERM : int = 15;
1084+
}
10101085
pub mod posix01 {
10111086
pub static SIGTRAP : int = 5;
10121087

@@ -1026,11 +1101,20 @@ pub mod consts {
10261101
}
10271102
pub mod bsd44 {
10281103
}
1104+
#[cfg(target_arch = "x86")]
1105+
#[cfg(target_arch = "x86_64")]
1106+
#[cfg(target_arch = "arm")]
10291107
pub mod extra {
10301108
pub static O_RSYNC : int = 1052672;
10311109
pub static O_DSYNC : int = 4096;
10321110
pub static O_SYNC : int = 1052672;
10331111
}
1112+
#[cfg(target_arch = "mips")]
1113+
pub mod extra {
1114+
pub static O_RSYNC : int = 16400;
1115+
pub static O_DSYNC : int = 16;
1116+
pub static O_SYNC : int = 16400;
1117+
}
10341118
}
10351119

10361120
#[cfg(target_os = "freebsd")]

branches/try2/src/libcore/os.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,7 +1217,7 @@ fn overridden_arg_key(_v: @OverriddenArgs) {}
12171217
12181218
pub fn args() -> ~[~str] {
12191219
unsafe {
1220-
match task::local_data::local_data_get(overridden_arg_key) {
1220+
match local_data::local_data_get(overridden_arg_key) {
12211221
None => real_args(),
12221222
Some(args) => copy args.val
12231223
}
@@ -1227,7 +1227,7 @@ pub fn args() -> ~[~str] {
12271227
pub fn set_args(new_args: ~[~str]) {
12281228
unsafe {
12291229
let overridden_args = @OverriddenArgs { val: copy new_args };
1230-
task::local_data::local_data_set(overridden_arg_key, overridden_args);
1230+
local_data::local_data_set(overridden_arg_key, overridden_args);
12311231
}
12321232
}
12331233

branches/try2/src/libcore/path.rs

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ pub trait GenericPath {
122122
mod stat {
123123
#[cfg(target_arch = "x86")]
124124
#[cfg(target_arch = "arm")]
125-
#[cfg(target_arch = "mips")]
126125
pub mod arch {
127126
use libc;
128127

@@ -152,6 +151,36 @@ mod stat {
152151
}
153152
}
154153

154+
#[cfg(target_arch = "mips")]
155+
pub mod arch {
156+
use libc;
157+
158+
pub fn default_stat() -> libc::stat {
159+
libc::stat {
160+
st_dev: 0,
161+
st_pad1: [0, ..3],
162+
st_ino: 0,
163+
st_mode: 0,
164+
st_nlink: 0,
165+
st_uid: 0,
166+
st_gid: 0,
167+
st_rdev: 0,
168+
st_pad2: [0, ..2],
169+
st_size: 0,
170+
st_pad3: 0,
171+
st_atime: 0,
172+
st_atime_nsec: 0,
173+
st_mtime: 0,
174+
st_mtime_nsec: 0,
175+
st_ctime: 0,
176+
st_ctime_nsec: 0,
177+
st_blksize: 0,
178+
st_blocks: 0,
179+
st_pad5: [0, ..14],
180+
}
181+
}
182+
}
183+
155184
#[cfg(target_arch = "x86_64")]
156185
pub mod arch {
157186
use libc;

branches/try2/src/libcore/prelude.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ pub use io;
8181
pub use iter;
8282
pub use old_iter;
8383
pub use libc;
84+
pub use local_data;
8485
pub use num;
8586
pub use ops;
8687
pub use option;

branches/try2/src/libcore/rand.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -836,13 +836,13 @@ fn tls_rng_state(_v: @@mut IsaacRng) {}
836836
pub fn task_rng() -> @@mut IsaacRng {
837837
let r : Option<@@mut IsaacRng>;
838838
unsafe {
839-
r = task::local_data::local_data_get(tls_rng_state);
839+
r = local_data::local_data_get(tls_rng_state);
840840
}
841841
match r {
842842
None => {
843843
unsafe {
844844
let rng = @@mut IsaacRng::new_seeded(seed());
845-
task::local_data::local_data_set(tls_rng_state, rng);
845+
local_data::local_data_set(tls_rng_state, rng);
846846
rng
847847
}
848848
}

branches/try2/src/libcore/rt/local_services.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ mod test {
198198
199199
#[test]
200200
fn tls() {
201-
use task::local_data::*;
201+
use local_data::*;
202202
do run_in_newsched_task() {
203203
unsafe {
204204
fn key(_x: @~str) { }

branches/try2/src/libcore/task/local_data_priv.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use cmp::Eq;
1515
use libc;
1616
use prelude::*;
1717
use task::rt;
18-
use task::local_data::LocalDataKey;
18+
use local_data::LocalDataKey;
1919

2020
use super::rt::rust_task;
2121
use rt::local_services::LocalStorage;

branches/try2/src/libcore/task/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ use unstable::finally::Finally;
4747
#[cfg(test)] use comm::SharedChan;
4848

4949
mod local_data_priv;
50-
pub mod local_data;
5150
pub mod rt;
5251
pub mod spawn;
5352

branches/try2/src/libcore/unstable/intrinsics.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,17 @@ pub extern "rust-intrinsic" {
4242

4343
pub fn get_tydesc<T>() -> *();
4444

45-
pub fn init<T>() -> T;
45+
/// init is unsafe because it returns a zeroed-out datum,
46+
/// which is unsafe unless T is POD. We don't have a POD
47+
/// kind yet. (See #4074)
48+
pub unsafe fn init<T>() -> T;
4649

4750
#[cfg(not(stage0))]
4851
pub unsafe fn uninit<T>() -> T;
4952

50-
pub fn forget<T>(_: T) -> ();
53+
/// forget is unsafe because the caller is responsible for
54+
/// ensuring the argument is deallocated already
55+
pub unsafe fn forget<T>(_: T) -> ();
5156

5257
pub fn needs_drop<T>() -> bool;
5358

branches/try2/src/librustc/back/link.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -698,8 +698,8 @@ pub fn exported_name(sess: Session,
698698
vers: &str) -> ~str {
699699
return mangle(sess,
700700
vec::append_one(
701-
vec::append_one(path, path_name(sess.ident_of(hash.to_owned()))),
702-
path_name(sess.ident_of(vers.to_owned()))));
701+
vec::append_one(path, path_name(sess.ident_of(hash))),
702+
path_name(sess.ident_of(vers))));
703703
}
704704
705705
pub fn mangle_exported_name(ccx: @CrateContext,
@@ -717,14 +717,14 @@ pub fn mangle_internal_name_by_type_only(ccx: @CrateContext,
717717
let s = ppaux::ty_to_short_str(ccx.tcx, t);
718718
let hash = get_symbol_hash(ccx, t);
719719
return mangle(ccx.sess,
720-
~[path_name(ccx.sess.ident_of(name.to_owned())),
720+
~[path_name(ccx.sess.ident_of(name)),
721721
path_name(ccx.sess.ident_of(s)),
722-
path_name(ccx.sess.ident_of(hash.to_owned()))]);
722+
path_name(ccx.sess.ident_of(hash))]);
723723
}
724724
725725
pub fn mangle_internal_name_by_path_and_seq(ccx: @CrateContext,
726726
path: path,
727-
flav: ~str) -> ~str {
727+
flav: &str) -> ~str {
728728
return mangle(ccx.sess,
729729
vec::append_one(path, path_name((ccx.names)(flav))));
730730
}
@@ -733,7 +733,7 @@ pub fn mangle_internal_name_by_path(ccx: @CrateContext, path: path) -> ~str {
733733
return mangle(ccx.sess, path);
734734
}
735735
736-
pub fn mangle_internal_name_by_seq(ccx: @CrateContext, flav: ~str) -> ~str {
736+
pub fn mangle_internal_name_by_seq(ccx: @CrateContext, flav: &str) -> ~str {
737737
return fmt!("%s_%u", flav, (ccx.names)(flav).repr);
738738
}
739739

branches/try2/src/librustc/driver/session.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,8 @@ pub impl Session_ {
285285
fn str_of(@self, id: ast::ident) -> @~str {
286286
self.parse_sess.interner.get(id)
287287
}
288-
fn ident_of(@self, st: ~str) -> ast::ident {
289-
self.parse_sess.interner.intern(@st)
288+
fn ident_of(@self, st: &str) -> ast::ident {
289+
self.parse_sess.interner.intern(st)
290290
}
291291
fn intr(@self) -> @syntax::parse::token::ident_interner {
292292
self.parse_sess.interner

branches/try2/src/librustc/front/core_inject.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fn inject_libcore_ref(sess: Session,
4242
let n1 = sess.next_node_id();
4343
let vi1 = @ast::view_item {
4444
node: ast::view_item_extern_mod(
45-
sess.ident_of(~"core"), ~[], n1),
45+
sess.ident_of("core"), ~[], n1),
4646
attrs: ~[
4747
spanned(ast::attribute_ {
4848
style: ast::attr_inner,
@@ -78,8 +78,8 @@ fn inject_libcore_ref(sess: Session,
7878
span: dummy_sp(),
7979
global: false,
8080
idents: ~[
81-
sess.ident_of(~"core"),
82-
sess.ident_of(~"prelude")
81+
sess.ident_of("core"),
82+
sess.ident_of("prelude")
8383
],
8484
rp: None,
8585
types: ~[]

0 commit comments

Comments
 (0)