Kyle J Strand
3a43983b76
Changes for `c_unwind` ( #365 )
...
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
3 years ago
Arthur Milchior
09044272ec
Clarification of borrowck ( #354 )
3 years ago
Daniel Henry-Mantilla
7284d09164
Update the now stale warning about `PhantomData<T>` and dropck ( #363 )
...
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
3 years ago
diffuse
708c774ff5
Minor language fixes ( #364 )
3 years ago
Arthur Milchior
10d40c59a5
Introducing init/uninit before its use ( #355 )
3 years ago
Arthur Milchior
eaa3a92cc5
Change will to would to discuss what don't occur ( #361 )
3 years ago
Arthur Milchior
20dec1d016
State that pop for length 1 is an example ( #360 )
3 years ago
Arthur Milchior
c564f0fbf3
Correct a sentence that didn't seem to be proper ( #358 )
3 years ago
Arthur Milchior
6ea5877b07
Indicate that C reference are C reference ( #357 )
3 years ago
Arthur Milchior
784685cc48
Introduce and avoid dropck ( #353 )
3 years ago
Arthur Milchior
45a76e867a
Rephrase improperly reduced borrows introduction ( #352 )
...
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
3 years ago
Arthur Milchior
44428ea589
Two lifetime clarification ( #350 )
3 years ago
Arthur Milchior
946038b2f9
"UB" vs "Undefined Behavior" ( #349 )
3 years ago
Marijn Schouten
c7d8467ca9
Change "writers" to "readers" for Deref. ( #346 )
3 years ago
Aria Beingessner
11f1165e8a
Make the Vec impl be slightly more careful with ZSTs and alignment.
...
This also incidentally makes the ZST code and final code have the same formatting for the divide.
3 years ago
Kirin
e64ea939f0
implement `IntoIterator` for `Vec` ( #337 )
3 years ago
Ramnivas Laddad
7ea147e4f6
Add an explanation shared to exclusive transmute ( #344 )
3 years ago
Qingyou Meng
f6d6126fc9
ffi: explicitly declare hello_from_rust for C99 ( #343 )
3 years ago
Marcelo Diop-Gonzalez
90993eeac9
Fix a small typo in exception-safety.md ( #341 )
3 years ago
Kirin
78da21c40b
Make `Vec::new` public in vec-alloc.md ( #336 )
3 years ago
Kirin
32733960df
Fix a syntax error in leaking.md
3 years ago
Kevin Ji
62d1967825
send-and-sync: it's -> its
3 years ago
fmease
f4d1b4200d
Clarify the HRTB chapter ( #330 )
3 years ago
Nicolas Abram
ca00ee8314
Clarify repr(transparent) in other-reprs ( #329 )
...
Co-authored-by: Yuki Okushi <yuki.okushi@huawei.com>
3 years ago
Alan Wu
0e5a200124
Make C code more recognizably C ( #331 )
3 years ago
khollbach
66d097d3d8
Fix typo / type error in FFI code example ( #327 )
3 years ago
Alyssa Haroldsen
c05c452b36
Update the guidance on uninitialized data with ptr::addr_of_mut ( #325 )
3 years ago
Paul C
49681ea4a9
Clarify that drop flag fields only apply to older Rust versions ( #324 )
...
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
3 years ago
chubei
c6b4bf831e
Replace some use of variant with covariant ( #322 )
3 years ago
Eric Huss
358e6a61d5
Merge pull request #296 from JohnTitor/call-rust-code-from-c
...
Write a basic "call Rust from C" example
3 years ago
Eric Huss
6c2aeef84b
Merge pull request #294 from JohnTitor/clarify-safe-vs-unsafe-relation
...
Clarify the Safe vs. Unsafe Rust relationship
3 years ago
syoh0708
b6808de76b
Fix typo with respect to dangling pointer ( #319 )
3 years ago
Victor Costan
2d66852a27
Fix typo/minor grammar error in subtyping.md ( #317 )
3 years ago
Pure White
650d2454d7
doc: clarify `thread::scoped::JoinGuard` chapter ( #313 )
3 years ago
Josh Triplett
7cf00d4381
Clarify niche optimization on enums with reprs ( #315 )
3 years ago
Andrew Meredith
e0aa678dee
Update rc decrement snipped ( #316 )
3 years ago
Waffle Maybe
191c06c79c
Remove useless `unsafe`, `mut` and ptr casts in example in `send-and-sync.md` ( #308 )
3 years ago
DrMeepster
dcd6c28312
add thiscall abi
3 years ago
Noah Lev
2747c4bb2c
Clarify a bit of wording ( #310 )
3 years ago
Yuki Okushi
88b2dbcce6
Apply review comments
3 years ago
Yuki Okushi
543c9b1bd7
Show the output
3 years ago
Yuki Okushi
044051c0ed
Move the section higher
3 years ago
Yuki Okushi
64553aa569
Write a basic "call Rust from C" example
3 years ago
Gus Wynn
fe6227eb3c
update lifetime-elision to show what elided code under `rust_2018_idi… ( #306 )
...
This was a bit confusing for me to read, as it was using an old style of rust that I am not used to
Unfortunately, this lint group isn't on by default, but I think `elided_lifetimes_in_paths` may be on track to be deny-by-default in edition 2021?
3 years ago
zachmatson
8da31d7a28
Change code for `into_iter` on the `RawVec` section for consistency/soundness ( #302 )
3 years ago
Devin Jeanpierre
3abf036ebf
Document lifetime elision for fn types, Fn*, impl
...
Currently, the lifetime elision doc only documents function definitions, but lifetime elision is also allowed in the following other locations:
* `fn` types, such as `fn(&T)`
* `Fn`/`FnMut`/`FnOnce`, such as `Fn(&T)`
* `impl` headers
To demo this up, I made some type aliases for `fn`/`Fn` which you can pass `&T` as a parameter to (to follow the lifetime rules of the surrounding context), and compared what you get with that instead of using `fn`/`Fn` directly, where lifetime elision takes on the rules from `fn`/`Fn`/etc.
I also demoed up an `impl` header that used lifetime elision twice, although the error message in that case is broken (filed https://github.com/rust-lang/rust/issues/87763 )
The demo was half for this change description, and half just to make sure I understand Rust -- in particular, I really had to reverse engineer it for `impl` because I wasn't sure, and it didn't seem to be documented anywhere (at least not here!)
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f82b280de4b992f225bc32121f333e96
3 years ago
Yuki Okushi
3e8f80c6cc
Note that this book is edition 2018
3 years ago
Yuki Okushi
c42314b09b
Remove unnecessary `extern crate`s
3 years ago
Yuki Okushi
e43b81128f
Clarify the Safe vs. Unsafe Rust relationship
3 years ago
Thirds
f51734eb55
Add cloning example for dot operator behaviour ( #292 )
...
Co-authored-by: Yuki Okushi <yuki.okushi@huawei.com>
3 years ago
Yuki Okushi
7a13537f96
Apply review comments
3 years ago
Yuki Okushi
b0ec7251db
Fix some style issues
3 years ago
Yuki Okushi
c162bb71e9
Move the list of coercions to the reference
3 years ago
Yuki Okushi
ff25fa253d
Add an example that shows the null-pointer opt does not happen
3 years ago
Eric Huss
ca4aa393d7
Merge pull request #287 from JohnTitor/casting
...
Remove casting list from the nomicon
3 years ago
Yuki Okushi
5e789618d9
Audit `ignore` annotations
3 years ago
Yuki Okushi
b12f36805c
Re-organize casting section
3 years ago
Yuki Okushi
f2e228e8eb
Remove casting list from the nomicon
3 years ago
Evan Lu
5de61f9784
rename typo "lifetime" to "reference" ( #286 )
...
Co-authored-by: evan l00 <evan_l00@qq.com>
3 years ago
Yuki Okushi
3bdccf4402
Add an incomplete warning to the top page ( #274 )
3 years ago
Jason Heeris
b9ca313e68
The #[repr(C)] attribute on the callback example is not necessary, since the type is not used in C.
3 years ago
Yuki Okushi
edd83c5d7e
Fix linkcheck failures
3 years ago
Yuki Okushi
1ff9110134
Refine the introduction chapter
3 years ago
Yuki Okushi
edf0d9001d
Move Arc-Mutex chapters into the subdir
3 years ago
Yuki Okushi
04616a672b
Move Vec chapters into the subdir
3 years ago
Eric Huss
2e159b0d30
Merge pull request #273 from JohnTitor/mention-extern-types
...
Mention "extern types" on the opaque structs section
3 years ago
Eric Huss
b44af9d964
Merge pull request #272 from JohnTitor/clarify-aliasing
...
Clarify the conditions on the aliasing section
3 years ago
Yuki Okushi
538345ab83
Turn explanation into a sidenote
3 years ago
Yuki Okushi
c996703c28
Clarify the conditions on the aliasing section
3 years ago
Yuki Okushi
35f420981b
Upgrade to edition 2018
3 years ago
Eric Huss
f30bc440db
Merge pull request #271 from JohnTitor/clean-up
...
Update some wording making reference to issues/RFCs
4 years ago
Eric Huss
484c6104db
Merge pull request #278 from JohnTitor/compile-fail-subtyping
...
Some improvements on the "subtyping" chapter
4 years ago
Eric Huss
19f63118e3
Merge pull request #277 from JohnTitor/note-fixed-int-2s-complement
...
Clarify casting between the same size fixed ints
4 years ago
Yuki Okushi
ae5ad9b7ad
Add a link for the variance table on the reference
4 years ago
Yuki Okushi
bcfb3b58a1
Mark on example `compile_fail`
4 years ago
Yuki Okushi
2df3009309
Clarify casting between the same size fixed ints
4 years ago
Yuki Okushi
0d8cefe8dd
Add a link to show why unused lifetimes on structs are forbidden
4 years ago
Vlad Ion
b825a46d15
Fix small typo in the Drop Check chapter
4 years ago
Yuki Okushi
9387d35984
Mention "extern types" on the opaque structs section
4 years ago
Yuki Okushi
4b6eb0ff96
Update some wording making reference to issues/RFCs
4 years ago
Yuki Okushi
1fe5457479
Fix minor style issues
4 years ago
mukund
55de6fa3c1
Clarify some of the language around marking traits safe/unsafe. ( #268 )
4 years ago
Brent Kerby
a462a3ae5c
Use pointer 'add' instead of 'offset' ( #265 )
4 years ago
Brent Kerby
951371fb74
Adjust Vec to build on stable Rust ( #223 )
...
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
4 years ago
Mark Lodato
132a746984
Update link to c++ atomic ordering docs ( #264 )
...
I'm not sure if this is actually desirable. For one thing, the link I used isn't
locked to c++20 exactly. But it is the same page the [std lib](https://doc.rust-lang.org/std/sync/atomic/enum.Ordering.html ) links to
so that may be good for something.
I'm also not sure if other references to `C++11` should be updated or removed.
Basically, I feel like _something_ should change here but I'm not really sure what :-\
4 years ago
Daniel Franklin
8551afbb2c
Add example of thinking about Send/Sync's soundness ( #259 )
...
Co-authored-by: Daniel Henry-Mantilla <daniel.henry.mantilla@gmail.com>
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
4 years ago
Yuki Okushi
6fe476943a
Merge pull request #257 from skade/opaque-types-fix
4 years ago
Florian Gilcher
90811705ca
Fix opaque type representation.
...
Co-authored-by: Nikolai Vazquez <github@nikolaivazquez.com>
4 years ago
Yuki Okushi
adca786547
Merge pull request #254 from mdaverde/ml/adds-compiler-err-lifetimes
4 years ago
cherryblossom000
7278a42dd5
Fix alloc link in exotic-sizes for local docs
...
This changes `https://doc.rust-lang.org/std/alloc/trait.GlobalAlloc.html#tymethod.alloc ` to `../std/alloc/trait.GlobalAlloc.html#tymethod.alloc` so that it uses the local docs installation if the page is viewed with the local docs.
4 years ago
Milan
856595872a
Adds compile error for example in improperly reduced borrows
4 years ago
Milan
cba5941207
Changes wording under improperly reduced borrows
4 years ago
ThePuzzlemaker
1713e9fe80
Remove TODO
4 years ago
James [Undefined]
6b6c0a6bf1
Fix small punctuation error
...
Co-authored-by: Alexis Beingessner <a.beingessner@gmail.com>
4 years ago
ThePuzzlemaker
c2919c685f
Arc revisions (Clone atomic explanation) (pt2/3(+?))
4 years ago
ThePuzzlemaker
e16ed7f336
Fix Arc Clone
4 years ago
ThePuzzlemaker
57fd6cf32b
Arc revisions (pt1/2(+?))
4 years ago
ThePuzzlemaker
9da6fbf6cd
Simple Arc implementation (without Weak refs)
...
This is a squash of the following commits:
- Fix code, remove WIP message as that was while writing this, and link to stable @ fixed 1.49 rather than latest nightly
- Improve wording on deref and ignore some code blocks
- Improve wording and formatting a bit cause I'm insane
- Fix links
- Fix links again because we all love relative links
- Remove unnecessary Drop import
- Use Box::from_raw instead of ptr::drop_in_place as that actually dealloc's the Box (i'm dumb and misinterpreted the std code :/); fix some desync between code in between sections
- Fix tests
4 years ago
Lukas Hettwer
a8584998ea
Update vector code examples
...
The code samples were different from the final code and included
deprecated API calls.
4 years ago
Yuki Okushi
a3180eb461
Remove outdated information about `jemalloc`
4 years ago