Commit Graph

2577 Commits

Author SHA1 Message Date
Björn Steinbrink
e5ca35d567 Reduce code bloat from managed allocations
In commit d7f5e43 "core::rt: Add the local heap to newsched tasks",
local_malloc and local_free have become rather big and their forced
inlining causes quite a bit of code bloat. Compile times for crates
affected by the bloat (e.g. rustc) improve, while others (e.g. libstd)
seem to be unaffected, so I guess the inlining doesn't gain us much.

Sizes:
               | librustc   | libsytax
---------------|–-----------|------------
with inlining  | 18,547,824 |  7,110,848
w/o inlining   | 15,092,040 |  5,518,608
2013-05-04 18:21:27 +02:00
bors
1f65e4a1d5 auto merge of #6230 : thestinger/rust/whitespace, r=catamorphism
I just had `git apply` fix most of them and then did a quick skim over the diff to fix a few cases where it did the wrong thing (mostly replacing tabs with 4 spaces, when someone's editor had them at 8 spaces).
2013-05-04 00:48:37 -07:00
bors
a47e4cb22f auto merge of #6229 : catamorphism/rust/warning-police, r=catamorphism 2013-05-03 23:48:36 -07:00
bors
c3ab74b8b9 auto merge of #6227 : graydon/rust/issue-6112-box-annihilator, r=graydon
during task annihilation, since it is easy to tread on freed memory.
2013-05-03 22:06:37 -07:00
Daniel Micay
86efd97a10 add gitattributes and fix whitespace issues 2013-05-03 20:01:42 -04:00
Tim Chevalier
5fb5a94118 core: Warning police 2013-05-03 16:56:33 -07:00
Tim Chevalier
4d4cabff9e rustpkg: Implement install command
The install command should work now, though it only installs
    in-place (anything else has to wait until I implement RUST_PATH).

Also including:
    core: Add remove_directory_recursive, change copy_file

    Make copy_file preserve permissions, and add a remove_directory_recursive
    function.
2013-05-03 16:06:07 -07:00
Niko Matsakis
c15fa3a02a Be more careful about the order in which we read the next field
during task annihilation, since it is easy to tread on freed memory.
2013-05-03 13:07:28 -07:00
bors
bfd3cd8171 auto merge of #6217 : Sodel-the-Vociferous/rust/export-ToBytes, r=graydon 2013-05-03 13:00:47 -07:00
bors
4332f8188b auto merge of #6216 : Sodel-the-Vociferous/rust/dralston-6146, r=graydon
cc #6146
2013-05-03 11:33:38 -07:00
bors
9a31cdb9bf auto merge of #6213 : kud1ing/rust/patch-1, r=graydon
...re/index.html
2013-05-03 10:21:37 -07:00
bors
79aeb529d5 auto merge of #6046 : brson/rust/io, r=graydon
r? @pcwalton

Sorry this is so big, and sorry the first commit is just titled 'wip'.

Some interesting bits

* [LocalServices](f9069baa70) - This is the set of runtime capabilities that *all* Rust code should expect access to, including the local heap, GC, logging, unwinding.
* [impl Reader, etc. for Option](5fbb0949a5) - Constructors like `File::open` return Option<FileStream>. This lets you write I/O code without ever unwrapping an option.

This series adds a lot of [documentation](https://github.com/brson/rust/blob/io/src/libcore/rt/io/mod.rs#L11) to `core::rt::io`.
2013-05-03 09:09:40 -07:00
bors
d9c7d0bc93 auto merge of #6185 : gifnksm/rust/prelude-from_str, r=graydon
`core::prelude`  re-exports `core::to_str::ToStr`, but doesn't re-export `core::from_str::FromStr`.
That is inconsistent.
2013-05-03 08:15:38 -07:00
Daniel Ralston
47050c499a FIX: Export to_bytes::ToBytes 2013-05-03 02:25:02 -07:00
Daniel Ralston
02889f7507 Add core::cmp::Equiv to prelude 2013-05-03 01:22:52 -07:00
gifnksm
e34a7ecbab Remove extra #[cfg(stage0)] 2013-05-03 15:57:05 +09:00
kud1ing
f45c6b878f Add a brief description to show up in http://static.rust-lang.org/doc/core/index.html 2013-05-03 09:20:01 +03:00
Brian Anderson
6c478c7de8 Merge remote-tracking branch 'brson/io' into incoming
Conflicts:
	mk/rt.mk
	src/libcore/run.rs
2013-05-02 20:51:56 -07:00
bors
baa1c1834f auto merge of #6140 : Dretch/rust/run-with-rust, r=brson
Even more of `core::run` could be rust-ified -- I believe that access to the C extern environ can be done with rust now. I did not do this because some special casing is needed for OSX and I don't have a mac I can test with.

I think this will also fix #6096.
2013-05-02 19:15:36 -07:00
Brian Anderson
f8dffc6789 core: Wire up the unwinder to newsched again
This was some merge fallout
2013-05-02 19:13:56 -07:00
gareth
bd979c1fbf Fix some issues with test_destroy_actually_kills:
- it is now cross platform, instead of just unix
- it now avoids sleeping (fixing issue #6156)
- it now calls force_destroy() when force = true (was a bug)
2013-05-02 21:19:12 +01:00
bors
ec9c7c324e auto merge of #6184 : kud1ing/rust/master, r=sanxiyn 2013-05-02 11:30:41 -07:00
gareth
23e97ae893 Remove errant trailing whitespace. 2013-05-02 19:26:52 +01:00
gareth
544ac620ba Convert most of rust_run_program.cpp to rust (issue #2674). 2013-05-02 19:26:52 +01:00
bors
69316f06f6 auto merge of #6182 : huonw/rust/core-str-opts, r=nikomatsakis
This adds #[inline] to many very common string routines (e.g. `len`).

It also rewrites `repeat` to not use `+=` and make it O(n) rather than O(n^2), and also concat/connect(_slices) to reduce the overhead of reallocations, and constantly `set_len`ing (etc) in `push_str`. (The added complexity might not be worth the 20% speedup though.)
2013-05-02 09:18:37 -07:00
bors
326d9661b7 auto merge of #6177 : gifnksm/rust/iter-chain, r=thestinger
`T: Iterator<A>` and `U: Iterator<A>` should be able to `chain` whether `T` and `U` are same or not.
2013-05-02 06:15:37 -07:00
gifnksm
cff6aba76e libcore: Export core::from_str::FromStr from core::prelude 2013-05-02 20:42:54 +09:00
kud1ing
18c46b8fd4 The following code was generated by "src/etc/unicode.py" 2013-05-02 13:38:39 +03:00
Huon Wilson
5714e2c11b libcore: optimize string joining routines.
This makes concat/connect/connect_slices about 20% faster, and takes
`repeat` from O(n^2) to O(n), and lowers the constant factor.
2013-05-02 19:49:15 +10:00
Huon Wilson
afcb9e9d86 core: inlining on common functions 2013-05-02 18:03:43 +10:00
Felix S. Klock II
a636f5160a More cases of [cfg(test)] instead of [test]. 2013-05-02 08:55:08 +02:00
Felix S. Klock II
880e300ed7 mod items need to be marked with cfg(test) not test. 2013-05-02 08:55:08 +02:00
Felix S. Klock II
c14aa7eba8 mod items need to be marked with cfg(test) not test. 2013-05-02 08:55:08 +02:00
bors
efcabc41e4 auto merge of #6151 : bjz/rust/local-variable-cleanup, r=brson
I have noticed these comments scattered across the codebase. They appear to be vestigial Emacs formatting settings and they don't appear in newer files. For the sake of consistency it's probably best to remove them.
2013-05-01 21:00:39 -07:00
Brendan Zabarauskas
e596128bd8 Remove 'Local Variable' comments 2013-05-02 13:22:04 +10:00
bors
a64aa28efe auto merge of #6173 : sammykim/rust/doc-vec, r=yichoi
I think whether vector element is mutable is decided by whether vector reference is mutable.
2013-05-01 19:54:36 -07:00
gifnksm
8a28970ed3 libcore: Make ChainIterator take two different-typed Iterators. 2013-05-02 11:10:13 +09:00
bors
d3e7c746dd auto merge of #6162 : graydon/rust/random-retry, r=graydon
Sample from the normal and exponential distributions using the Ziggurat
algorithm.
2013-05-01 17:45:37 -07:00
Huon Wilson
1eb5efc5e2 libcore: add N(0,1) and Exp(1) distributions to core::rand.
Sample from the normal and exponential distributions using the Ziggurat
algorithm.
2013-05-01 16:51:45 -07:00
Jesse Luehrs
ed81e3353e glob_t should be public on all platforms 2013-05-01 16:49:58 -07:00
Jesse Luehrs
685baed34e add a higher level glob() function to os
this could probably use expansion - it just uses all of the default
options, which is usually what we want, but not always. maybe add a
separate function that takes more options?
2013-05-01 16:49:58 -07:00
Jesse Luehrs
058346219a libc bindings for glob.h
only tested on linux/x86_64, but i got the values for other platforms
from their system header files.

no bindings for win32, because win32 doesn't include glob.h.

also, glob() takes a callback for error handling, but i'm just making
this a *c_void for now, since i don't know how to represent c calling
back into rust (if that's even currently possible).
2013-05-01 16:49:58 -07:00
bors
55fbc47af1 auto merge of #6148 : erickt/rust/remove-drop, r=pcwalton
The drop block has been deprecated for quite some time. This patch series removes support for parsing it and all the related machinery that made drop work.

As a side feature of all this, I also added the ability to annote fields in structs. This allows comments to be properly associated with an individual field. However, I didn't update `rustdoc` to integrate these comment blocks into the documentation it generates.
2013-05-01 09:18:59 -07:00
Erick Tryzelaar
7c9d089ee7 pipes: use finally to fix pipes::try_recv 2013-05-01 07:50:13 -07:00
Erick Tryzelaar
5d79f94a2f core: Remove use of deprecated drop 2013-05-01 07:49:40 -07:00
bors
f67239fac3 auto merge of #6147 : bjz/rust/numeric-traits, r=brson
After much discussion on IRC and #4819, we have decided to revert to the old naming of the `/` operator. This does not change its behavior. In making this change, we also have had to rename some of the methods in the `Integer` trait. Here is a list of the methods that have changed:

- `Quot::quot` -> `Div::div`
- `Rem::rem` - stays the same
- `Integer::quot_rem` -> `Integer::div_rem`
- `Integer::div` -> `Integer::div_floor`
- `Integer::modulo` -> `Integer::mod_floor`
- `Integer::div_mod` -> `Integer::div_mod_floor`
2013-05-01 01:51:35 -07:00
bors
bfccfdc780 auto merge of #6144 : catamorphism/rust/mkdir_recursive-breakage, r=thestinger
r? @brson or @thestinger : Added a change_dir_locked function to os, and use it in the
mkdir_recursive tests so that the tests don't clobber each other's
directory changes.
2013-05-01 00:57:35 -07:00
Brendan Zabarauskas
ee26c7c433 Revert rename of Div to Quot 2013-05-01 15:40:05 +10:00
bors
db2451477b auto merge of #6131 : thestinger/rust/new_iter, r=graydon 2013-04-30 22:24:35 -07:00
bors
c1ea72d88f auto merge of #6113 : brson/rust/task-drop, r=graydon 2013-04-30 20:09:36 -07:00