2948 Commits

Author SHA1 Message Date
Alex Crichton
91ede1f09a core: Inherit non-allocating slice functionality
This commit adds a new trait, MutableVectorAllocating, which represents
functions on vectors which can allocate.

This is another extension trait to slices which should be removed once a lang
item exists for the ~ allocation.
2014-05-07 08:15:58 -07:00
Alex Crichton
be0a11729e core: Inherit the specific numeric modules
This implements all traits inside of core::num for all the primitive types,
removing all the functionality from libstd. The std modules reexport all of the
necessary items from the core modules.
2014-05-07 08:15:58 -07:00
Alex Crichton
0c30293886 core: Inherit what's possible from the num module
This strips out all string-related functionality from the num module. The
inherited functionality is all that will be implemented in libcore (for now).
Primarily, libcore will not implement the Float trait or any string-related
functionality.

It may be possible to migrate string parsing functionality into libcore in the
future, but for now it will remain in libstd.

All functionality in core::num is reexported in std::num.
2014-05-07 08:15:58 -07:00
Alex Crichton
c5229e5d2e core: Inhert ~/@/& cmp traits, remove old modules
This commit removes the std::{managed, reference} modules. The modules serve
essentially no purpose, and the only free function removed was `managed::ptr_eq`
which can be achieved by comparing references.

[breaking-change]
2014-05-07 08:15:58 -07:00
Alex Crichton
5592a8f5db core: Inherit the cmp module
This removes the TotalOrd and TotalEq implementation macros, they will be added
later to the numeric modules (where the other comparison implementations live).
2014-05-07 08:15:19 -07:00
Alex Crichton
b024ba544c core: Inherit the iter module 2014-05-07 08:14:56 -07:00
Alex Crichton
06fcb6b1c8 core: Inherit the option module 2014-05-07 08:14:56 -07:00
Alex Crichton
6636215a44 core: Inherit the bool module 2014-05-07 08:14:56 -07:00
Alex Crichton
92095d125a core: Inherit the tuple module 2014-05-07 08:14:54 -07:00
Alex Crichton
1a989d6769 core: Bring clone tests up to date in style 2014-05-07 08:14:26 -07:00
Alex Crichton
54b81997f3 core: Inherit the clone module 2014-05-07 08:13:56 -07:00
Alex Crichton
e7eed5f670 core: Inherit the unit module 2014-05-07 08:13:56 -07:00
Alex Crichton
dfd967f239 core: Inherit the default module 2014-05-07 08:13:56 -07:00
Alex Crichton
17cb238ee8 core: Inherit the raw module 2014-05-07 08:13:56 -07:00
Alex Crichton
8ed728babb core: Inherit the any module 2014-05-07 08:13:56 -07:00
Alex Crichton
85a8e6b80a core: Inherit the finally module 2014-05-07 08:13:24 -07:00
Alex Crichton
7192452545 core: Inherit the char module 2014-05-07 08:13:24 -07:00
Alex Crichton
d9708539af core: Inherit the container module 2014-05-07 08:13:24 -07:00
Alex Crichton
2ad98fbb27 core: Inherit the ty module 2014-05-07 08:13:24 -07:00
Alex Crichton
ead6e16a60 core: Inherit the ops module 2014-05-07 08:13:06 -07:00
Alex Crichton
ec8a805b6d core: Inherit the kinds module 2014-05-07 08:13:06 -07:00
Alex Crichton
28624661c3 core: Inherit the cast module 2014-05-07 08:13:06 -07:00
Alex Crichton
645b157564 core: Inherit the ptr module 2014-05-07 08:13:06 -07:00
Alex Crichton
dca8a0d6e4 core: Inherit the mem module 2014-05-07 08:12:48 -07:00
Alex Crichton
5b75e44fb0 core: Inherit the intrinsics module 2014-05-07 08:12:48 -07:00
Alex Crichton
836d4b96a9 mk: Add libcore 2014-05-07 08:12:48 -07:00
Patrick Walton
18df18c817 libstd: Fix merge fallout. 2013-05-22 21:57:11 -07:00
Patrick Walton
0c820d4123 libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00
Jyun-Yan You
499b02213d fix arm stack alignment 2013-05-22 08:49:16 +08:00
bors
dc7b83d186 auto merge of #6650 : crabtw/rust/mips-rt, r=sanxiyn
Results of libcore and libstd tests

```
failures:
    rand::tests::test_rng_seeded_custom_seed2
    time::tests::run_tests
    uv_ll::test::test_uv_ll_struct_size_addrinfo
    uv_ll::test::test_uv_ll_struct_size_uv_timer_t

segfaults:
    stackwalk::test_simple
    stackwalk::test_simple_deep
```
2013-05-21 03:01:17 -07:00
bors
329d8e2622 auto merge of #6648 : alexcrichton/rust/issue-6633, r=graydon
Resolves #6633 and removes an unnecessary import in libcore
2013-05-21 01:04:16 -07:00
bors
5a3e320514 auto merge of #6647 : alexcrichton/rust/unnecessary-alloc, r=graydon
This adds a lint mode for detecting unnecessary allocations on the heap. This isn't super fancy, currently it only has two rules

1. For a function's arguments, if you allocate a `[~|@]str` literal, when the type of the argument is a `&str`, emit a warning.
2. For the same case, emit warnings for boxed vectors when slices are required.

After adding the lint, I rampaged through the libraries and removed all the unnecessary allocations I could find.
2013-05-20 23:55:20 -07:00
bors
d49a9dbc7f auto merge of #6646 : dotdash/rust/method_lookup, r=brson 2013-05-20 22:52:22 -07:00
bors
7abcc142e5 auto merge of #6626 : brson/rust/io-upstream, r=graydon
r?

Mostly refactoring, and adding some of the remaining types described in #4419.

The [`Local`](3b4ff41511/src/libcore/rt/local.rs (L17)) trait collects some common, often unsafe patterns around task-local and thread-local values. Making all these types safe is largely the aim of #6210.
2013-05-20 21:40:27 -07:00
Jyun-Yan You
d86a32bbb2 fix mips stack alignment 2013-05-21 11:58:30 +08:00
bors
adaae45c3e auto merge of #6604 : bjz/rust/ptr-to-option, r=brson 2013-05-20 20:31:26 -07:00
bors
24609675eb auto merge of #6528 : brson/rust/docs, r=brson
Remove the uncommon term 'object tree' in favor of 'value'.
2013-05-20 16:55:36 -07:00
Brian Anderson
a246e8faf3 core::rt: Convert unsafe_borrow_io to a Local impl 2013-05-20 15:21:29 -07:00
Brian Anderson
2042696236 core::rt: Implement Local for Task 2013-05-20 15:21:29 -07:00
Brian Anderson
2f99fb8efa core::rt: Remove local_sched module 2013-05-20 15:21:29 -07:00
Brian Anderson
06f1a64bd6 core::rt: Convert users of local_sched to Local trait 2013-05-20 15:21:09 -07:00
Brian Anderson
18fab45aab core::rt: Make local_sched a wrapper around Local 2013-05-20 15:20:50 -07:00
Brian Anderson
71aa6b6631 core::rt: Move more TLS functionality into local_ptr 2013-05-20 15:20:50 -07:00
Brian Anderson
97c2fd1a96 core::rt: Move some TLS functions from local_sched to local_ptr 2013-05-20 15:20:50 -07:00
Brian Anderson
86ba457349 rt: Rename rust_initialize_global_state to rust_initialize_rt_tls_key 2013-05-20 15:20:50 -07:00
Brian Anderson
f59fcd5d5f core::rt: Store Task as a ~ pointer 2013-05-20 15:20:50 -07:00
Brian Anderson
43c6f32ece core::rt: Add Local trait 2013-05-20 15:20:50 -07:00
Brian Anderson
b0722c55f8 core:rt:: Rename LocalServices to Task 2013-05-20 15:20:49 -07:00
Brian Anderson
fa18a861fb core::rt: Queues MessageQueue and WorkQueue are cloneable 2013-05-20 15:20:49 -07:00
Brian Anderson
d2a1378ed8 core::rt: Add MessageQueue type
This is the queue used to send messages to Schedulers
2013-05-20 15:20:49 -07:00