Skip to content

Commit 84cf27f

Browse files
committed
---
yaml --- r: 62960 b: refs/heads/snap-stage3 c: 5b09dca h: refs/heads/master v: v3
1 parent ecad624 commit 84cf27f

File tree

13 files changed

+108
-162
lines changed

13 files changed

+108
-162
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 2d28d645422c1617be58c8ca7ad9a457264ca850
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: c40baf68cb3306f1beaf1d5443bb2433043b7da7
4+
refs/heads/snap-stage3: 5b09dca90be0b60ebc29998dc75cdc497d061796
55
refs/heads/try: 7b78b52e602bb3ea8174f9b2006bff3315f03ef9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/doc/rustpkg.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ or the equivalent on Windows.
3030

3131
Each workspace may contain one or more packages.
3232

33+
When building code that contains one or more directives of the form `extern mod P`,
34+
rustpkg automatically searches for packages named `P` in the `RUST_PATH` (as described above).
35+
It builds those dependencies if necessary.
36+
Thus, when using rustpkg,
37+
there is no need for `-L` flags to tell the linker where to find libraries for external crates.
38+
3339
# Package structure
3440

3541
A valid workspace must contain each of the following subdirectories:
@@ -66,6 +72,10 @@ A package can be stored in a workspace on the local file system,
6672
or on a remote Web server, in which case the package ID resembles a URL.
6773
For example, `github.com/mozilla/rust` is a package ID
6874
that would refer to the git repository browsable at `http://github.com/mozilla/rust`.
75+
A package ID can also specify a version, like:
76+
`github.com/mozilla/rust#0.3`.
77+
In this case, `rustpkg` will check that the repository `github.com/mozilla/rust` has a tag named `0.3`,
78+
and report an error otherwise.
6979

7080
## Source files
7181

@@ -76,6 +86,15 @@ rustpkg searches for four different fixed filenames in order to determine the cr
7686
* `test.rs`: Assumed to contain tests declared with the `#[test]` attribute.
7787
* `bench.rs`: Assumed to contain benchmarks declared with the `#[bench]` attribute.
7888

89+
## Versions
90+
91+
`rustpkg` packages do not need to declare their versions with an attribute inside one of the source files,
92+
because `rustpkg` infers it from the version control system.
93+
When building a package that is in a `git` repository,
94+
`rustpkg` assumes that the most recent tag specifies the current version.
95+
When building a package that is not under version control,
96+
or that has no tags, `rustpkg` assumes the intended version is 0.1.
97+
7998
# Custom build scripts
8099

81100
A file called `pkg.rs` at the root level in a workspace is called a *package script*.

branches/snap-stage3/mk/tests.mk

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,18 +122,8 @@ CFG_ADB_TEST_DIR=/data/tmp
122122
$(info check: android device test dir $(CFG_ADB_TEST_DIR) ready \
123123
$(shell adb remount 1>/dev/null) \
124124
$(shell adb shell mkdir $(CFG_ADB_TEST_DIR) 1>/dev/null) \
125-
$(shell adb shell rm $(CFG_ADB_TEST_DIR)/*.so 1>/dev/null) \
126-
$(shell adb shell rm $(CFG_ADB_TEST_DIR)/*-arm-linux-androideabi 1>/dev/null) \
127-
$(shell adb shell rm $(CFG_ADB_TEST_DIR)/*-arm-linux-androideabi.* 1>/dev/null) \
128-
$(shell adb push $(S)src/etc/adb_run_wrapper.sh $(CFG_ADB_TEST_DIR) 1>/dev/null) \
129125
$(shell adb push $(CFG_ANDROID_CROSS_PATH)/arm-linux-androideabi/lib/armv7-a/libgnustl_shared.so \
130126
$(CFG_ADB_TEST_DIR) 1>/dev/null) \
131-
$(shell adb push $(TLIB2_T_arm-linux-androideabi_H_$(CFG_BUILD_TRIPLE))/$(CFG_RUNTIME_arm-linux-androideabi) \
132-
$(CFG_ADB_TEST_DIR)) \
133-
$(shell adb push $(TLIB2_T_arm-linux-androideabi_H_$(CFG_BUILD_TRIPLE))/$(STDLIB_GLOB_arm-linux-androideabi) \
134-
$(CFG_ADB_TEST_DIR)) \
135-
$(shell adb push $(TLIB2_T_arm-linux-androideabi_H_$(CFG_BUILD_TRIPLE))/$(EXTRALIB_GLOB_arm-linux-androideabi) \
136-
$(CFG_ADB_TEST_DIR)) \
137127
)
138128
else
139129
CFG_ADB_TEST_DIR=

branches/snap-stage3/src/compiletest/runtest.rs

Lines changed: 35 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -753,62 +753,53 @@ fn _arm_exec_compiled_test(config: &config, props: &TestProps,
753753
copy_result.out, copy_result.err));
754754
}
755755

756+
// execute program
756757
logv(config, fmt!("executing (%s) %s", config.target, cmdline));
757758

758-
let mut runargs = ~[];
759+
// adb shell dose not forward stdout and stderr of internal result
760+
// to stdout and stderr separately but to stdout only
761+
let mut newargs_out = ~[];
762+
let mut newargs_err = ~[];
763+
newargs_out.push(~"shell");
764+
newargs_err.push(~"shell");
759765

760-
// run test via adb_run_wrapper
761-
runargs.push(~"shell");
762-
runargs.push(fmt!("%s/adb_run_wrapper.sh", config.adb_test_dir));
763-
runargs.push(fmt!("%s", config.adb_test_dir));
764-
runargs.push(fmt!("%s", prog_short));
766+
let mut newcmd_out = ~"";
767+
let mut newcmd_err = ~"";
765768

766-
for args.args.each |tv| {
767-
runargs.push(tv.to_owned());
768-
}
769-
770-
procsrv::run("", config.adb_path, runargs, ~[(~"",~"")], Some(~""));
771-
772-
// get exitcode of result
773-
runargs = ~[];
774-
runargs.push(~"shell");
775-
runargs.push(~"cat");
776-
runargs.push(fmt!("%s/%s.exitcode", config.adb_test_dir, prog_short));
769+
newcmd_out.push_str(fmt!("LD_LIBRARY_PATH=%s %s/%s",
770+
config.adb_test_dir, config.adb_test_dir, prog_short));
777771

778-
let procsrv::Result{ out: exitcode_out, err: _, status: _ } =
779-
procsrv::run("", config.adb_path, runargs, ~[(~"",~"")],
780-
Some(~""));
772+
newcmd_err.push_str(fmt!("LD_LIBRARY_PATH=%s %s/%s",
773+
config.adb_test_dir, config.adb_test_dir, prog_short));
781774

782-
let mut exitcode : int = 0;
783-
for str::each_char(exitcode_out) |c| {
784-
if !c.is_digit() { break; }
785-
exitcode = exitcode * 10 + match c {
786-
'0' .. '9' => c as int - ('0' as int),
787-
_ => 101,
788-
}
775+
for args.args.each |tv| {
776+
newcmd_out.push_str(" ");
777+
newcmd_err.push_str(" ");
778+
newcmd_out.push_str(*tv);
779+
newcmd_err.push_str(*tv);
789780
}
790781

791-
// get stdout of result
792-
runargs = ~[];
793-
runargs.push(~"shell");
794-
runargs.push(~"cat");
795-
runargs.push(fmt!("%s/%s.stdout", config.adb_test_dir, prog_short));
782+
newcmd_out.push_str(" 2>/dev/null");
783+
newcmd_err.push_str(" 1>/dev/null");
796784

797-
let procsrv::Result{ out: stdout_out, err: _, status: _ } =
798-
procsrv::run("", config.adb_path, runargs, ~[(~"",~"")], Some(~""));
785+
newargs_out.push(newcmd_out);
786+
newargs_err.push(newcmd_err);
799787

800-
// get stderr of result
801-
runargs = ~[];
802-
runargs.push(~"shell");
803-
runargs.push(~"cat");
804-
runargs.push(fmt!("%s/%s.stderr", config.adb_test_dir, prog_short));
788+
let procsrv::Result{ out: out_out, err: _out_err, status: out_status } =
789+
procsrv::run("", config.adb_path, newargs_out, ~[(~"",~"")],
790+
Some(~""));
791+
let procsrv::Result{ out: err_out, err: _err_err, status: _err_status } =
792+
procsrv::run("", config.adb_path, newargs_err, ~[(~"",~"")],
793+
Some(~""));
805794

806-
let procsrv::Result{ out: stderr_out, err: _, status: _ } =
807-
procsrv::run("", config.adb_path, runargs, ~[(~"",~"")], Some(~""));
795+
dump_output(config, testfile, out_out, err_out);
808796

809-
dump_output(config, testfile, stdout_out, stderr_out);
810-
811-
ProcRes {status: exitcode, stdout: stdout_out, stderr: stderr_out, cmdline: cmdline }
797+
match err_out {
798+
~"" => ProcRes {status: out_status, stdout: out_out,
799+
stderr: err_out, cmdline: cmdline },
800+
_ => ProcRes {status: 101, stdout: out_out,
801+
stderr: err_out, cmdline: cmdline }
802+
}
812803
}
813804

814805
fn _dummy_exec_compiled_test(config: &config, props: &TestProps,

branches/snap-stage3/src/etc/adb_run_wrapper.sh

Lines changed: 0 additions & 35 deletions
This file was deleted.

branches/snap-stage3/src/libextra/arc.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ use core::cast;
4848
use core::unstable::sync::UnsafeAtomicRcBox;
4949
use core::ptr;
5050
use core::task;
51-
use core::borrow;
5251

5352
/// As sync::condvar, a mechanism for unlock-and-descheduling and signaling.
5453
pub struct Condvar<'self> {
@@ -426,7 +425,7 @@ impl<T:Const + Owned> RWARC<T> {
426425
// of this cast is removing the mutability.)
427426
let new_data = cast::transmute_immut(data);
428427
// Downgrade ensured the token belonged to us. Just a sanity check.
429-
assert!(borrow::ref_eq(&(*state).data, new_data));
428+
assert!(ptr::ref_eq(&(*state).data, new_data));
430429
// Produce new token
431430
RWReadMode {
432431
data: new_data,

branches/snap-stage3/src/libextra/sync.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
use core::prelude::*;
1919

20-
use core::borrow;
2120
use core::comm;
2221
use core::ptr;
2322
use core::task;
@@ -590,7 +589,7 @@ impl RWlock {
590589
/// To be called inside of the write_downgrade block.
591590
pub fn downgrade<'a>(&self, token: RWlockWriteMode<'a>)
592591
-> RWlockReadMode<'a> {
593-
if !borrow::ref_eq(self, token.lock) {
592+
if !ptr::ref_eq(self, token.lock) {
594593
fail!("Can't downgrade() with a different rwlock's write_mode!");
595594
}
596595
unsafe {

branches/snap-stage3/src/libstd/borrow.rs

Lines changed: 0 additions & 60 deletions
This file was deleted.

branches/snap-stage3/src/libstd/core.rc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ pub mod ascii;
125125
pub mod ptr;
126126
pub mod owned;
127127
pub mod managed;
128-
pub mod borrow;
129128

130129

131130
/* Core language traits */

branches/snap-stage3/src/libstd/ptr.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,18 @@ pub fn to_mut_unsafe_ptr<T>(thing: &mut T) -> *mut T {
255255
thing as *mut T
256256
}
257257

258+
/// Cast a region pointer - &T - to a uint.
259+
#[inline(always)]
260+
pub fn to_uint<T>(thing: &T) -> uint {
261+
thing as *T as uint
262+
}
263+
264+
/// Determine if two borrowed pointers point to the same thing.
265+
#[inline(always)]
266+
pub fn ref_eq<'a,'b,T>(thing: &'a T, other: &'b T) -> bool {
267+
to_uint(thing) == to_uint(other)
268+
}
269+
258270
/**
259271
Given a **T (pointer to an array of pointers),
260272
iterate through each *T, up to the provided `len`,
@@ -399,6 +411,40 @@ impl<T> Ord for *const T {
399411
}
400412
}
401413

414+
// Equality for region pointers
415+
#[cfg(not(test))]
416+
impl<'self,T:Eq> Eq for &'self T {
417+
#[inline(always)]
418+
fn eq(&self, other: & &'self T) -> bool {
419+
*(*self) == *(*other)
420+
}
421+
#[inline(always)]
422+
fn ne(&self, other: & &'self T) -> bool {
423+
*(*self) != *(*other)
424+
}
425+
}
426+
427+
// Comparison for region pointers
428+
#[cfg(not(test))]
429+
impl<'self,T:Ord> Ord for &'self T {
430+
#[inline(always)]
431+
fn lt(&self, other: & &'self T) -> bool {
432+
*(*self) < *(*other)
433+
}
434+
#[inline(always)]
435+
fn le(&self, other: & &'self T) -> bool {
436+
*(*self) <= *(*other)
437+
}
438+
#[inline(always)]
439+
fn ge(&self, other: & &'self T) -> bool {
440+
*(*self) >= *(*other)
441+
}
442+
#[inline(always)]
443+
fn gt(&self, other: & &'self T) -> bool {
444+
*(*self) > *(*other)
445+
}
446+
}
447+
402448
#[cfg(test)]
403449
pub mod ptr_tests {
404450
use super::*;

branches/snap-stage3/src/libstd/rt/task.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
//! local storage, and logging. Even a 'freestanding' Rust would likely want
1414
//! to implement this.
1515
16-
use borrow;
1716
use cast::transmute;
1817
use libc::{c_void, uintptr_t};
1918
use ptr;
@@ -65,7 +64,7 @@ impl Task {
6564
// This is just an assertion that `run` was called unsafely
6665
// and this instance of Task is still accessible.
6766
do Local::borrow::<Task> |task| {
68-
assert!(borrow::ref_eq(task, self));
67+
assert!(ptr::ref_eq(task, self));
6968
}
7069

7170
match self.unwinder {
@@ -90,7 +89,7 @@ impl Task {
9089
// This is just an assertion that `destroy` was called unsafely
9190
// and this instance of Task is still accessible.
9291
do Local::borrow::<Task> |task| {
93-
assert!(borrow::ref_eq(task, self));
92+
assert!(ptr::ref_eq(task, self));
9493
}
9594
match self.storage {
9695
LocalStorage(ptr, Some(ref dtor)) => {

0 commit comments

Comments
 (0)