summary refs log tree commit diff
path: root/src/doc/reference.md
AgeCommit message (Collapse)AuthorLines
2016-05-09Add #[cfg(target_has_atomic)] to get atomic support for the current targetAmanieu d'Antras-0/+5
2016-05-05doc: Update reference with better description of target_envBrian Anderson-18/+26
The definition of this value recently changed slightly. It no longer corresponds directly to the target triple. Also shuffled things around to make the order of cfg descriptions more logical and added text related them to the target triple. cc #33403
2016-03-26Rollup merge of #32383 - aidanhs:aphs-heap-move-guarantee, r=alexcrichtonManish Goregaokar-0/+3
Document heap allocation location guarantee ``` 14:25 < aidanhs> is there any guarantee that boxes will not move the value on the heap when they are moved? 14:26 <@steveklabnik> aidanhs: ... i'm not sure if it's a guarantee, but it follows, generally 14:26 <@steveklabnik> aidanhs: moves mean memcpy, so you're memcpying the structure of the box itself, which is copying the pointer 14:26 <@steveklabnik> so the pointer won't be updated 14:26 <@steveklabnik> moves cannot do complex things like move the memory around on the heap 14:26 <@kmc> aidanhs: I would say it's guaranteed 14:27 < aidanhs> steveklabnik: yeah, that's what I was thinking, it'd be pretty strange for rust to do something, but I couldn't find any docs one way or the other 14:27 <@steveklabnik> kmc: aidanhs yeah, it's like a borderline thing that we don't explicitly guanratee but i think IS guaranteed by our other guarantees 14:27 <@steveklabnik> mostly that move == memcpy 14:28 < aidanhs> kmc: steveklabnik great thanks! would a PR to the rust reference along these lines be ok? 14:28 < jmesmon> aidanhs: I believe owning_ref has some discussion of that (stable references) 14:29 <@steveklabnik> aidanhs: i would probably take that, yeah 14:29 < aidanhs> jmesmon: thanks, I'll take a look at that ``` https://botbot.me/mozilla/rust/2016-02-22/?msg=60657619&page=18 r? @steveklabnik
2016-03-21Add support for naked functionsTicki-0/+2
2016-03-20Document heap allocation location guaranteeAidan Hobson Sayers-0/+3
2016-03-10Rollup merge of #32149 - steveklabnik:gh31628, r=blussSteve Klabnik-0/+4
Add other primitive types to the reference Fixes #31628
2016-03-09Add other primitive types to the referenceSteve Klabnik-0/+4
Fixes #31628
2016-03-08Rollup merge of #32083 - nodakai:reference-scoped-enum-alias, r=nikomatsakisSteve Klabnik-0/+10
reference.md: clarify the limitation of type alias on an enum Tentatively define the current behavior as the specification. Cf. rust-lang/rust#26264, rust-lang/rust#28556, rust-lang/rust#30936
2016-03-08Rollup merge of #31772 - nodakai:patch-1, r=steveklabnikSteve Klabnik-3/+9
Clarify the semantics of enum discriminants cf. https://doc.rust-lang.org/error-index.html#E0082 > The default type for enum discriminants is isize, but it can be adjusted by adding the repr attribute to the enum declaration. It would be great if anyone could check my English.
2016-03-08reference.md: clarify the limitation of type alias on an enumNODA, Kai-0/+10
Cf. rust-lang/rust#26264 Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-03-07reference.md: clarify negation.NODA, Kai-1/+7
Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-03-07Clarify the semantics of enum discriminantsKai Noda-3/+9
cf. https://doc.rust-lang.org/error-index.html#E0082
2016-03-06Auto merge of #30884 - durka:inclusive-ranges, r=aturonbors-0/+23
This PR implements [RFC 1192](https://github.com/rust-lang/rfcs/blob/master/text/1192-inclusive-ranges.md), which is triple-dot syntax for inclusive range expressions. The new stuff is behind two feature gates (one for the syntax and one for the std::ops types). This replaces the deprecated functionality in std::iter. Along the way I simplified the desugaring for all ranges. This is my first contribution to rust which changes more than one character outside of a test or comment, so please review carefully! Some of the individual commit messages have more of my notes. Also thanks for putting up with my dumb questions in #rust-internals. - For implementing `std::ops::RangeInclusive`, I took @Stebalien's suggestion from https://github.com/rust-lang/rfcs/pull/1192#issuecomment-137864421. It seemed to me to make the implementation easier and increase type safety. If that stands, the RFC should be amended to avoid confusion. - I also kind of like @glaebhoerl's [idea](https://github.com/rust-lang/rfcs/pull/1254#issuecomment-147815299), which is unified inclusive/exclusive range syntax something like `x>..=y`. We can experiment with this while everything is behind a feature gate. - There are a couple of FIXMEs left (see the last commit). I didn't know what to do about `RangeArgument` and I haven't added `Index` impls yet. Those should be discussed/finished before merging. cc @Gankro since you [complained](https://www.reddit.com/r/rust/comments/3xkfro/what_happened_to_inclusive_ranges/cy5j0yq) cc #27777 #30877 rust-lang/rust#1192 rust-lang/rfcs#1254 relevant to #28237 (tracking issue)
2016-02-29std: Stabilize APIs for the 1.8 releaseAlex Crichton-3/+0
This commit is the result of the FCPs ending for the 1.8 release cycle for both the libs and the lang suteams. The full list of changes are: Stabilized * `braced_empty_structs` * `augmented_assignments` * `str::encode_utf16` - renamed from `utf16_units` * `str::EncodeUtf16` - renamed from `Utf16Units` * `Ref::map` * `RefMut::map` * `ptr::drop_in_place` * `time::Instant` * `time::SystemTime` * `{Instant,SystemTime}::now` * `{Instant,SystemTime}::duration_since` - renamed from `duration_from_earlier` * `{Instant,SystemTime}::elapsed` * Various `Add`/`Sub` impls for `Time` and `SystemTime` * `SystemTimeError` * `SystemTimeError::duration` * Various impls for `SystemTimeError` * `UNIX_EPOCH` * `ops::{Add,Sub,Mul,Div,Rem,BitAnd,BitOr,BitXor,Shl,Shr}Assign` Deprecated * Scoped TLS (the `scoped_thread_local!` macro) * `Ref::filter_map` * `RefMut::filter_map` * `RwLockReadGuard::map` * `RwLockWriteGuard::map` * `Condvar::wait_timeout_with` Closes #27714 Closes #27715 Closes #27746 Closes #27748 Closes #27908 Closes #29866
2016-02-29Add the 'T' present in the rust bookAidan Hobson Sayers-1/+1
2016-02-27document inclusive range syntaxAlex Burka-0/+23
2016-02-27Rollup merge of #31909 - benaryorg:patch-2, r=ManishearthManish Goregaokar-1/+1
`continue` expression's description mentioned `break` instead of `continue`
2016-02-26documentation fixKatze-1/+1
`continue` expression's description mentioned `break` instead of `continue` Signed-off-by: benaryorg <binary@benary.org>
2016-02-25Document the null-char/null-byte escape in the referenceGeorg Brandl-0/+4
It appears in the examples, but is not covered by any of the cases in the prose description.
2016-02-25Rollup merge of #31868 - fhahn:capitalize-Rust, r=steveklabnikManish Goregaokar-1/+1
2016-02-25Rollup merge of #31863 - matklad:clarify-reference, r=steveklabnikManish Goregaokar-2/+2
Reference implied that use declarations may appear *only* at the top of blocks and modules, but it is not the case, and the following is valid: ```Rust fn foo() { let x = 92; use baz::bar; } ``` r? @steveklabnik
2016-02-24Capitalize some occurences of Rust in documentationFlorian Hahn-1/+1
2016-02-24reference: clarify use declaration locationAleksey Kladov-2/+2
2016-02-18reference: vtable entries: copy @nikomatsakis's wordingIvan Kozik-2/+3
2016-02-15reference: vtable entries are resolved at runtimeIvan Kozik-1/+1
2016-02-04Rollup merge of #31413 - tshepang:improve, r=steveklabnikSteve Klabnik-2/+2
2016-02-04Rollup merge of #31412 - tshepang:add-trailing-commas, r=steveklabnikSteve Klabnik-5/+5
2016-02-04Rollup merge of #31411 - tshepang:idiom, r=steveklabnikSteve Klabnik-1/+1
2016-02-04reference: add trailing commasTshepang Lekhonkhobe-5/+5
2016-02-04reference: make the line a little more readableTshepang Lekhonkhobe-2/+2
2016-02-04reference: explicit return at function end is not idiomaticTshepang Lekhonkhobe-1/+1
2016-02-01Remove "powerpc64le" and "mipsel" target_archAlex Crichton-1/+1
Currently the `mipsel-unknown-linux-gnu` target doesn't actually set the `target_arch` value to `mipsel` but it rather uses `mips`. Alternatively the `powerpc64le` target does indeed set the `target_arch` as `powerpc64le`, causing a bit of inconsistency between theset two. As these are just the same instance of one instruction set, let's use `target_endian` to switch between them and only set the `target_arch` as one value. This should cut down on the number of `#[cfg]` annotations necessary and all around be a little more ergonomic.
2016-01-29Rollup merge of #31264 - est31:block_coment_parent, r=alexcrichtonManish Goregaokar-1/+1
Block comments don't have to be in the format `/*! ... !*/` in order to be read as doc comments about the parent block. The format `/*! ... */` is enough.
2016-01-28Fix reference info about parent doc block commentsest31-1/+1
Block comments don't have to be in the format `/*! ... !*/` in order to be read as doc comments about the parent block. The format `/*! ... */` is enough.
2016-01-26Fix examples that use missing_docs lintMatt Brubeck-4/+4
The missing_docs lint only applies to public items in public modules, so this example code did not actually generate any warnings or errors.
2016-01-16Auto merge of #30567 - steffengy:master, r=alexcrichtonbors-0/+3
Add support to use functions exported using vectorcall. This essentially only allows to pass a new LLVM calling convention from rust to LLVM. ```rust extern "vectorcall" fn abc(param: c_void); ``` references ---- http://llvm.org/docs/doxygen/html/CallingConv_8h_source.html https://msdn.microsoft.com/en-us/library/dn375768.aspx
2016-01-15Rollup merge of #30776 - antonblanchard:powerpc64_merge, r=alexcrichtonManish Goregaokar-1/+1
This adds support for big endian and little endian PowerPC64. make check runs clean apart from one big endian backtrace issue.
2016-01-13the reference was inferring values that didn't fit into their target typeOliver 'ker' Schneider-8/+8
2016-01-13Add powerpc64 and powerpc64le supportAnton Blanchard-1/+1
This adds support for big endian and little endian PowerPC64. make check runs clean apart from one big endian backtrace issue.
2016-01-11add feature gate "abi_vectorcall" for the vectorcall calling conventionSteffen-0/+3
2016-01-06Clarify how Rust treats backslashes at end of line in string literalsTobias Bucher-4/+4
Rust differs in that behavior from C: In C, the newline escapes are resolved before anything else, and in Rust this depends on whether the backslash is escaped itself. A difference can be observed in the following two programs: ```c #include <stdio.h> int main() { printf("\\ n\n"); return 0; } ``` ```rust fn main() { println!("\\ n"); } ``` The first program prints two newlines, the second one prints a backslash, a newline, the latin character n and a final newline.
2015-12-19Auto merge of #30184 - petrochenkov:ascr, r=nikomatsakisbors-0/+2
This PR is a rebase of the original PR by @eddyb https://github.com/rust-lang/rust/pull/21836 with some unrebasable parts manually reapplied, feature gate added + type equality restriction added as described below. This implementation is partial because the type equality restriction is applied to all type ascription expressions and not only those in lvalue contexts. Thus, all difficulties with detection of these contexts and translation of coercions having effect in runtime are avoided. So, you can't write things with coercions like `let slice = &[1, 2, 3]: &[u8];`. It obviously makes type ascription less useful than it should be, but it's still much more useful than not having type ascription at all. In particular, things like `let v = something.iter().collect(): Vec<_>;` and `let u = t.into(): U;` work as expected and I'm pretty happy with these improvements alone. Part of https://github.com/rust-lang/rust/issues/23416
2015-12-18Require exact type equality + add testsVadim Petrochenkov-0/+2
+ Rebase fixes
2015-12-18Rewrite VisiblePrivateTypesVisitorVadim Petrochenkov-4/+0
2015-12-12Implement `#[deprecated]` attribute (RFC 1270)Vadim Petrochenkov-0/+2
2015-12-09Rollup merge of #30224 - matklad:super-docs, r=steveklabnikSteve Klabnik-0/+19
Make clear that `super` may be included in the path several times. r? @steveklabnik
2015-12-05DOCS: update reference about pathsAleksey Kladov-0/+19
2015-11-26Added stmt_expr_attribute feature gateMarvin Löbel-0/+3
2015-11-25Remove `#[staged_api]`Vadim Petrochenkov-4/+0
2015-11-24Rollup merge of #30020 - Manishearth:unit, r=blussSteve Klabnik-2/+2
`unit` was in code formatting, which is wrong, since it's not actual code. The correct code is `()`.