Commit Graph

20107 Commits

Author SHA1 Message Date
Brendan Cully e6e4f52bcf remove unused imports 2013-07-10 22:08:50 -07:00
bors 495741498c auto merge of #7690 : kevinmehall/rust/document-c_void, r=huonw
I added documentation for when to use and not to use `c_void`, since it tripped me up when I started. (See issue #7627)
2013-07-10 21:40:39 -07:00
Seo Sanghyeon f20c78c984 Add a compile-fail test for qualification lint 2013-07-11 12:54:06 +09:00
Gary Linscott f091a1e075 Convert json Reader to iterators
This is much faster for strings, and eventually when there is a
buffered reader of some sort.

Reading example.json 100 times before was around 1.18s.
After:
- reading from string 0.68s
- reading from file 1.08s (extra time is all in io::Reader)
2013-07-10 23:08:13 -04:00
bors 9b5d523126 auto merge of #7683 : alexcrichton/rust/issue-7625, r=thestinger
Closes #7625
2013-07-10 17:13:50 -07:00
bors e7040e8a24 auto merge of #7698 : nikomatsakis/rust/issue-2951-type-parameter-names, r=cmr
Fixes #2951
2013-07-10 14:37:39 -07:00
bors 90db8628c5 auto merge of #7631 : MarkJr94/rust/ptr_arithmetic, r=thestinger
Added Add and Sub traits for pointer arithmetic. Any type that is a ```std::num::Int``` can be added to or subtracted from a pointer. Also my additions did not require any unsafe code, and the operators themselves are safe. Fixes #2122.
2013-07-10 11:46:41 -07:00
Niko Matsakis 4412df20ae Add an identifier to TypeParameterDefs and use it to pretty print type parameters 2013-07-10 14:42:53 -04:00
Corey Richardson 26f0a55f76 fix test 2013-07-10 13:14:31 -04:00
Corey Richardson 8dc6445e38 Change the assert_eq message to be more verbose.
Closes #6221
2013-07-10 13:12:10 -04:00
Seo Sanghyeon 2bc06b40ba Implement SIMD arithmetics 2013-07-10 23:35:59 +09:00
Niko Matsakis 9ee5ce2215 Add a `mut_split()` method for dividing one `&mut [T]` into two 2013-07-10 10:03:29 -04:00
korenchkin 3cb3d754a5 Fixed examples
The examples were still using `core::` instead of `std::`
All of the examples needed a `use std::rand;` at the top to compile
Most of the examples had
    `rng = rand::rng();`
instead of
    `let mut rng = rand::rng();`
2013-07-10 15:49:39 +02:00
Kevin Mehall 663a9597b2 Document std::libc::c_void. 2013-07-10 08:55:14 -04:00
=Mark Sinclair 294999c350 Added overloaded Add and Sub traits for pointer arithmetic
Implemented ptr arithmetic for *T and *mut T. Tests passing
2013-07-10 06:34:00 -04:00
bors 8fa09736ef auto merge of #7658 : excepttheweasel/rust/mut_default_param_list_issue_7483, r=pcwalton 2013-07-10 03:25:28 -07:00
Seo Sanghyeon f81986031c Add a lint to detect unnecessarily qualified names 2013-07-10 19:09:03 +09:00
bors 8a7b636649 auto merge of #7637 : pnkfelix/rust/fsk-guard-against-stale-libraries-issue3225-safeguarded, r=graydon
When building Rust libraries (e.g. librustc, libstd, etc), checks for
and verbosely removes previous build products before invoking rustc.
(Also, when Make variable VERBOSE is defined, it will list all of the
libraries matching the object library's glob after the rustc
invocation has completed.)

When installing Rust libraries, checks for previous libraries in
target install directory, but does not remove them.

The thinking behind these two different modes of operation is that the
installation target, unlike the build tree, is not under the control
of this infrastructure and it is not up to this Makefile to decide if
the previous libraries should be removed.

Fixes #3225 (at least in terms of mitigating the multiple library
problem by proactively warning the user about it.)
2013-07-10 01:10:29 -07:00
Daniel Micay b5e9194836 Merge pull request #7682 from thestinger/vec
vec::with_capacity: do one alloc for non-managed + ptr module improvements
2013-07-10 01:06:34 -07:00
Felix S. Klock II db0a13b986 Switch over to new range_rev semantics; fix #5270. 2013-07-10 09:35:35 +02:00
Felix S. Klock II 3c19f1bca8 Refactored int/uint range code in preparation for change to range_rev semantics.
Also added unit tests of range code to test refactoring.  The
num-range-rev.rs test will need to be updated when the range_rev
semantics change.
2013-07-10 09:35:35 +02:00
Alex Crichton 6d4d2c9a33 Don't loop infinitely on 0-size structs in repr
Closes #7625
2013-07-10 00:07:03 -07:00
Daniel Micay 6f5be9063d ptr: optimize {swap,replace,read}_ptr 2013-07-09 22:44:11 -04:00
Daniel Micay f74250e3a9 vec::with_capacity: do one alloc for non-managed 2013-07-09 22:05:42 -04:00
bors 41dcec2fe1 auto merge of #7265 : brson/rust/io-upstream, r=brson
r? @graydon, @nikomatsakis, @pcwalton, or @catamorphism

Sorry this is so huge, but it's been accumulating for about a month. There's lots of stuff here, mostly oriented toward enabling multithreaded scheduling and improving compatibility between the old and new runtimes. Adds task pinning so that we can create the 'platform thread' in servo.

[Here](e1555f9b56/src/libstd/rt/mod.rs (L201)) is the current runtime setup code.

About half of this has already been reviewed.
2013-07-09 18:28:46 -07:00
Alex Crichton cb5b9a477c Rename local_data methods/types for less keystrokes 2013-07-09 17:39:49 -07:00
Alex Crichton 5c3a2e7eeb Change TLS to almost be able to contain owned types 2013-07-09 17:31:01 -07:00
Alex Crichton 692a22e69d Change the elements in the task-local map to be actual key-value pairs 2013-07-09 17:31:01 -07:00
Alex Crichton a89af1fa4c Use purely an owned vector for storing TLS data 2013-07-09 17:31:01 -07:00
Brian Anderson 413d51e32d std::rt: Ignore 0-byte udp reads 2013-07-09 16:54:56 -07:00
Brian Anderson 6fb92f8cab std::rt: Do local tests in a bare thread to not interfere with the scheduler 2013-07-09 15:48:22 -07:00
bors 137d1fb210 auto merge of #7657 : thestinger/rust/rollup, r=thestinger
d3be8ab r=brson
05eb3cf r=thestinger
c80f4e1 r=huonw
8c27af1 r=huonw
0eee0b6 r=cmr
ea2756a r=thestinger
2013-07-09 15:13:40 -07:00
Brian Anderson 2c1315719d rt: Make the old rand builtins work with newsched 2013-07-09 15:05:43 -07:00
Alex Crichton 31114acdd7 Require `extern "Rust" fn main()` exactly 2013-07-09 16:56:16 -04:00
Daniel Micay b727b9efd7 rm silly compile-fail test
it's a test to make sure a feature is *not* implemented, but it is now
implemented
2013-07-09 16:56:16 -04:00
Kevin Ballard a7e3f06257 Fix typo in docs for MutableCloneableVector 2013-07-09 16:56:16 -04:00
Lenny222 ed54999065 bright white for the message, similar to clang 2013-07-09 16:56:16 -04:00
Brendan Zabarauskas 763d846dd3 Impl Not for bool 2013-07-09 16:35:56 -04:00
Andrew Paseltiner f2bd4416fa std: Implement `Iterator::size_hint` method for `Option` iterators 2013-07-09 16:35:56 -04:00
Daniel Micay a4af0960bd remove the unused exchange_malloc `align` parameter
`malloc` already returns memory correctly aligned for every possible
type in standard C, and that's enough for all types in Rust too
2013-07-09 16:35:56 -04:00
bors e388a80c23 auto merge of #7117 : jensnockert/rust/freestanding, r=cmr
The free-standing functions in f32, f64, i8, i16, i32, i64, u8, u16,
u32, u64, float, int, and uint are replaced with generic functions in
num instead.

This means that instead of having to know everywhere what the type is, like

~~~
f64::sin(x)
~~~

You can simply write code that uses the type-generic versions in num instead, this works for all types that implement the corresponding trait in num.

~~~
num::sin(x)
~~~

Note 1: If you were previously using any of those functions, just replace them
with the corresponding function with the same name in num.

Note 2: If you were using a function that corresponds to an operator, use the
operator instead.

Note 3: This is just https://github.com/mozilla/rust/pull/7090 reopened against master.
2013-07-09 13:34:50 -07:00
Brian Anderson 07e52eb7fc std: Make os::set_exit_status work with newsched 2013-07-09 13:29:05 -07:00
Brian Anderson ec6d4a1733 std::rt: size_t, not u64 2013-07-09 11:05:57 -07:00
bors 5aa0ca9b2e auto merge of #7528 : indutny/rust/feature/memory-api, r=cmr
@cmr this is still WIP and I haven't tested it on windows, but anyway.
2013-07-09 10:22:37 -07:00
Jens Nockert 20a2fbd055 I forgot the changes to the docs as well
Apparently yesterday wasn't my day, and I forgot to add the changes to
all the tests apparently, and in the end forgot the docs extra much.
Please documentation, forgive me, I really do love you, I hope you
forgive me.

Next time we'll meet tutorial, I promise to bring cookies and tea. I
really want to be best-friends-forever with you, <3.

XOXO
2013-07-09 18:24:30 +02:00
bors 0a1fc4561c auto merge of #7665 : chris-morgan/rust/better-vim-support, r=cmr
General tweaks for Vim support, especially proper indenting.
2013-07-09 08:43:32 -07:00
Chris Morgan 121ae82be0 Do indentation properly in Vim.
The cases that this improves are clearly documented inside the
committed file, so this commit message is comparatively brief.
2013-07-10 01:33:30 +10:00
Chris Morgan cf65870962 Add a Vim filetype plugin with useful tweaks.
This improves things like doc comment handling when you press Enter and
making using `gf` or `<C-W>f` work on a `use x;` statement in the
current directory.
2013-07-10 01:30:32 +10:00
Chris Morgan 3fa4cef876 A few slight tweaks to the Vim syntax file.
- Add fold support (NOT turned on by default)
- Highlight `::` by default
- Support the common `NOTE` as an important note
- Highlight `assert!` and `fail!` differently
- Don't highlight `deriving(...)` except in `#[...]`
2013-07-10 01:27:35 +10:00
Fedor Indutny db24ee9db0 os: introduce cross-platform MemoryMap bindings
Basically, one may just do:

    MemoryMap::new(16, ~[
      MapExecutable,
      MapReadable,
      MapWritable
    ])

And executable+readable+writable chunk of at least 16 bytes size will be
allocated and freed with the result of `MemoryMap::new`.
2013-07-09 19:20:26 +04:00