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
Yuki Okushi
a5a48441d4
Merge pull request #249 from jflatow/patch-1
...
Update atomics.md
4 years ago
Jared Flatow
bdb189862a
Update atomics.md
4 years ago
Yuki Okushi
3fd89d64e7
Rename `AllocRef` to `Allocator` and `(de)alloc` to `(de)allocate`
4 years ago
unknown
d8383b65f7
Clarify that any alignment is valid for ZSTs
4 years ago
Yuki Okushi
23c49f1d5c
Merge pull request #238 from mexus/master
4 years ago
Yuki Okushi
cb88439ac9
Update src/coercions.md
4 years ago
Eric Huss
ea054bb935
Merge pull request #244 from JohnTitor/some-tweaks
...
Some tweaks
4 years ago
Camelid
038a7e6238
Uppercase `repr(Rust)`
...
There were two spots where it referred to `repr(rust)` when it is
usually referred to as `repr(Rust)` in accordance with `repr(C)`.
I updated those to use the uppercase form.
4 years ago
Yuki Okushi
e948943445
Remove unnecessary chapter
4 years ago
Yuki Okushi
ee0d4be726
Replace hard tabs with whitespaces
4 years ago
Yuki Okushi
0cfd181886
Merge pull request #224 from updogliu/patch-1
...
Update atomics.md
4 years ago
Yuki Okushi
8d3237ffd4
Merge pull request #187 from ChrisGreenaway/patch-2
...
Update send-and-sync.md
4 years ago
Yuki Okushi
45b640d76a
Merge pull request #231 from lwintermelon/patch-1
...
fix a typo
4 years ago
Camelid
ebe16b1455
Improve formatting of "Transmutes" chapter
...
* Use inline code style for `&` and `&mut`
* Add blank lines between list items to make source easier to read
* Use new-style mdBook link
4 years ago
Simon Lammes
52b55e0db0
fix minor grammar mistake
4 years ago
Yuki Okushi
f8b9921a77
Fix link for `[T]`
4 years ago
Yuki Okushi
c2ffc216d5
Merge pull request #232 from turtleslow/saturating-cast-patch-1
...
Update casts.md
4 years ago
Yuki Okushi
8641e70955
Merge pull request #180 from jyn514/master
...
[WIP] Add more links
4 years ago
Yuki Okushi
737029d362
Merge pull request #219 from isakcodes/patch-1
...
Data Race definition should be more precise
4 years ago
Yuki Okushi
d7cb40b29f
Merge pull request #157 from chansuke/update-error-diagnostic
...
Update the diagnostic of `error[E0597]` in dropck.md
4 years ago
Yuki Okushi
9c912bf812
Merge pull request #225 from mxxo/typo
...
fix typo in Lifetimes mutable reference aliasing section
4 years ago
mexus
393e54b749
coercions.md: non-capturing closures to function pointers
4 years ago
Eric Huss
ee45186b37
Fix API change to alloc::Global::grow.
4 years ago
Yuki Okushi
81797cf059
Follow-up of rust-lang/rust#75152
4 years ago
Yuki Okushi
be0687ab1d
Follow-up for rust-lang/rust#74850
4 years ago
turtleslow
5b26dfbf4d
Update casts.md
...
Float to integer cast unsoundness was fixed in Rust 1.45.0.
4 years ago
Max Orok
d052363c6a
fix typo in Lifetimes mutable reference aliasing section
4 years ago
Hu Shuai
b5d7df3c9a
fix a typo
4 years ago
Zihan Liu
4de216c82c
Update atomics.md
...
add "including non-atomic and relaxed atomic writes" for clarity
4 years ago
Konrad Borowski
bfe1ab96d7
Clarify that str data must still be initialized
5 years ago
Konrad Borowski
b8344ef88f
Remove language-level UB for non-UTF-8 str
5 years ago
Isak
45a997aabd
Data Race definition should be more precise
...
"one of them is a write" did not seem right to me. Doesn't generalise to the case with two concurrent threads writing to shared memory. [Related Wikipedia article](https://en.wikipedia.org/wiki/Race_condition#Example_definitions_of_data_races_in_particular_concurrency_models )
5 years ago
Ralf Jung
c94172314b
fix Nomicon transmute UB
5 years ago
Eric Huss
d1517d4e3f
Rename Unique::empty to Unique::dangling
5 years ago
dbdr
91dd12be34
Use simpler link syntax
...
Thanks @lzutao
Co-authored-by: lzutao <taolzu@gmail.com>
5 years ago
Daniel Bonniot de Ruisselet
76d0799a8d
Replace catch_panic by catch_unwind
5 years ago
amosonn
4d2d275997
Fix example in FFI, section NPO
5 years ago
Youngsuk Kim
1e1dd962c7
Update implementation code of `split_at_mut`
5 years ago
Linus Färnstrand
9f131b5b9c
Use just `std::_` instead of `::std::_`
...
Accessing std this way has been stable since Rust 1.30.0
5 years ago
WarmongeringBeaver
8413980b07
Remove illegal space.
...
Sorry, I'm the useless-details sheriff.
5 years ago
Linus Färnstrand
1d517f87dc
Fix Global.realloc by changing to Global.grow
5 years ago
Linus Färnstrand
6cceae61c9
Fix usage of Global.alloc
5 years ago
Linus Färnstrand
a2d606f49c
Use isize::MAX directly on type instead of module
5 years ago
Eric Huss
218da782b8
Fix negative_impls feature.
5 years ago
Yuki Okushi
d2ed4ebed9
Rustup to latest rustc
5 years ago
Mazdak Farrokhzad
71241f4030
Merge pull request #197 from JOE1994/patch-1
...
(minor) Add backticks around type names
5 years ago
Youngsuk Kim
e3812150dd
follow-up to review from Centril
5 years ago
Mazdak Farrokhzad
8e07b14b15
Merge pull request #188 from TimDiekmann/rename-alloc
...
Rename `Alloc` to `AllocRef`
5 years ago
Youngsuk Kim
d37282bfff
(minor) Add backticks around type names
...
Added backticks around type names for consistency of document.
5 years ago
japm48
0fd7306f5a
Lifetimes: explain how to fix destructor example
5 years ago
Ralf Jung
7c93203063
mention soundness
5 years ago
Mazdak Farrokhzad
8c57c4e299
Merge pull request #193 from amosonn/patch-2
...
Fix example in FFI section Calling Rust from C
5 years ago
amosonn
6e93a7cbf8
Fix example in FFI section Calling Rust from C
...
Make it explicit we're using `"C"` calling convention.
5 years ago
Christian Vallentin
cf36a0f9c0
Removed repeated word
5 years ago
Tim Diekmann
99d5b65882
Rename `Alloc` to `AllocRef`
5 years ago
ChrisGreenaway
c7d67b599a
Update send-and-sync.md
5 years ago
Joshua Nelson
e0702e4b9a
Add more links
5 years ago
Peter Todd
ce08025be2
Remove mention of contravariance possibly getting scrapped
...
Contravariance is part of stable Rust, and it's a natural outcome of how
`fn(T)` interacts with lifetimes, so it's hard to imagine this ever
going away.
tl;dr: LONG LIVE CONTRAVARIANCE!
5 years ago
CreepySkeleton
8be35b201f
Update unwinding.md
...
`catch_unwind` is not unstable anymore
5 years ago
Yuki Okushi
4f29478b14
Update unsafe-code-guidelines link
5 years ago
Ralf Jung
ddc460c245
further clarify C11
5 years ago
Ralf Jung
37a0693e0e
mention C11 in case someone wonders
5 years ago
Ralf Jung
9c5dc0be63
atomics: C11 -> C++20
5 years ago
Ralf Jung
cbbe63b561
use sound/unsound terminology
5 years ago
Ralf Jung
fdcf179d75
fix links for copy, copy_nonoverlapping
5 years ago
Ralf Jung
3600533888
Merge pull request #153 from RalfJung/uninit
...
update uninit section to MaybeUninit
5 years ago
Ralf Jung
9fae750261
remark on structs and mem::uninitialized
5 years ago
Ralf Jung
2ab1783f2d
remove a pointless remark
5 years ago
Ralf Jung
0a2172f104
clarify 'easy to change'
5 years ago
Ralf Jung
f2c2491427
Apply feedback
...
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
5 years ago
Mazdak Farrokhzad
0f469dcadd
Merge pull request #163 from RalfJung/zst
...
fix and expand what we say about ZST
5 years ago
Ralf Jung
d176807b2e
Update src/what-unsafe-does.md
...
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
5 years ago
Ralf Jung
04823fd22b
use agreed-upon wording
5 years ago
Ralf Jung
d3a5f5b21d
impove wording
...
Co-Authored-By: gnzlbg <gnzlbg@users.noreply.github.com>
5 years ago
Ralf Jung
c6bf198f75
adjust fn unwinding clause to match reference
5 years ago
Ralf Jung
5287c526f7
fix noun
5 years ago
Ralf Jung
78c247398f
note on not-too-large slices
5 years ago
Ralf Jung
8db5ad17bf
fix slice wide ptr metadata
5 years ago
Ralf Jung
61b001f52c
Oxford
...
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
5 years ago
Ralf Jung
9cf4a9a6f1
clarify, also cover Box
5 years ago
Ralf Jung
8a3cc78962
fix and expand what we say about ZST
5 years ago
Ralf Jung
5e082af681
adjust for current reality wrt. wide raw pointers
5 years ago
Ralf Jung
d1cf763599
update uninit section to MaybeUninit
5 years ago
Lzu Tao
38b9a76bc8
Fix transmute_copy link
5 years ago
Ralf Jung
92b7198c10
some edits
5 years ago
Ralf Jung
d9709e1b74
drop parenthetical
5 years ago
Ralf Jung
02b64d1672
clarify dangling
5 years ago
Ralf Jung
052159694e
fix def.n of dangling
5 years ago
Ralf Jung
121a5a01a1
fold uninit integer rule with reading uninit memory
5 years ago
Ralf Jung
98a71fde9f
refactor null a bit
5 years ago
Ralf Jung
6596772610
resolve some nits
5 years ago
Ralf Jung
929fd20709
raw ptrs must be initialized like integers
5 years ago
Ralf Jung
307db2a17b
Apply suggestions from code review
...
Co-Authored-By: gnzlbg <gnzlbg@users.noreply.github.com>
5 years ago
Ralf Jung
b41ef53e57
explain when metadata is invalid
5 years ago
Ralf Jung
c113664204
mention !
5 years ago
Ralf Jung
01d11b8429
add more cases of UB
5 years ago
Ralf Jung
a7aa0a8944
avoid redundant UB
5 years ago
Ralf Jung
1824951736
stick to broader UB for raw ptr offsets/derefs for now
5 years ago
Ralf Jung
93c626d0d0
be more precise about dangling
5 years ago
Ralf Jung
447fdb0cd9
subsume the NonNull things as library types
5 years ago
Ralf Jung
2d8338bea7
handle recursion in the heading
5 years ago
Ralf Jung
450041032c
Define 'producing'
5 years ago
Ralf Jung
c9db421053
NonNull, NonZero*
5 years ago
Ralf Jung
423f6b926d
list more ptr offset computations
5 years ago
Ralf Jung
12b34a6570
UB
5 years ago
chansuke
dc9019c9e2
Update the diagnostic of `error[E0597]`
5 years ago
chansuke
87159b8656
Fix typo in subtyping
5 years ago
chansuke
e12b1ba8ba
Add colon to `MySuperSliceable` too
5 years ago
Joe Schafer
fc81aa405d
Fix typo `str::mem` to `std::mem`
5 years ago
Graydon Hoare
2482d92778
s/railguard/guardrail/
5 years ago
lzutao
b7f0aba2f8
chore: Remove redundant Eq import
5 years ago
lzutao
d23b1c86ff
Fix link to rfc1857
5 years ago
Joseph Lyons
47d081061e
Move word "reading" out of the link to "The Book"
5 years ago
Eric Huss
341c221116
Fix some links.
...
rust-lang/rust does not allow bare directory links.
This unblocks updating the submodule.
5 years ago
Alexis Beingessner
eb662e85e3
cleanup the intro, and clarify how it relates to the reference
6 years ago
Michal 'vorner' Vaner
0cc13816d7
Lifetimes: Updates to incorporate NLL
...
* Updated the explanations around lifetimes a bit.
* Made sure the examples that should fail still fail in edition 2018.
* Prefer `rust,compile_fail` instead of `rust,ignore` ‒ the latter
allows the user to click on button and see the actual compile errors.
Also, this'll tell us if something stops failing.
6 years ago
Eric Huss
e27d66a472
Fix link to copy_nonoverlapping
...
This unblocks updating upstream.
6 years ago
Alexis Beingessner
e4042e69a1
Merge pull request #130 from vorner/uninit-improvements
...
Various unchecked-uninit improvements
6 years ago
Michal 'vorner' Vaner
7b6cc4ffc9
Various unchecked-uninit improvements
...
* Links to the std for some functions
* Mention the MaybeUninit
* Unify indentation (spaces, not tabs)
6 years ago
Denis
5ceb4253f7
Fix "illegal cpu instruction" in `vec-alloc.md`
...
As per #132
6 years ago
Alexis Beingessner
02ef0fbb2d
Merge pull request #131 from anderejd/master
...
Added missing "things".
6 years ago
Alexis Beingessner
43be8c9a66
Merge pull request #128 from casey/number
...
Fix number agreement in subtyping chapter
6 years ago
anderejd
5fb237f0f8
Added a missing word.
6 years ago
Michal 'vorner' Vaner
5d56de9fcc
Minor improvements
...
* Prefer compile_fail over ignore, to catch if the code accidentally
starts compiling in future versions.
* Make an example compile by providing mocked environment around it in
case it should be correct.
* Links into std.
6 years ago
Casey Rodarmor
51df283213
Fix number agreement in subtyping chapter
6 years ago
Alexis Beingessner
c02e0e7754
Merge pull request #113 from vorner/defined-drop-order
...
dropck: The drop order is now defined
6 years ago
Michal 'vorner' Vaner
1da7d384d5
dropck: The drop order is now defined
...
So the examples are out of date, they no longer pose a problem. However,
there's still a case where it does, so let's use that instead.
Also, mention the definition of drop order in the text, as it is
related.
6 years ago
Alexis Beingessner
f1ff93b668
Merge pull request #112 from peter50216/patch-2
...
Fix typo in other-reprs.md
6 years ago
Alexis Beingessner
a2d86d34b0
Merge pull request #117 from cmyr/patch-4
...
Fix typo in subtyping.md
6 years ago
Alexis Beingessner
839e7b6056
Merge pull request #118 from vorner/coercion-dyn
...
Trivial updates to the coercions chapter
6 years ago
Alexis Beingessner
8b8c4d18b6
Merge pull request #119 from msarris/patch-1
...
Fix double "the" in aliasing.md
6 years ago
Alexis Beingessner
882c2bf033
Merge pull request #110 from jrvidal/bindgen-link
...
Fixes outdated bindgen link
6 years ago
Roberto Vidal
a89bf29bb4
Fixes broken reference link
6 years ago
lzutao
57511140aa
Fix link to type layout reference [skip ci]
6 years ago
Michali Sarris
f7dfdfb31d
Fix double "the" in aliasing.md
6 years ago
Michal 'vorner' Vaner
c61953a5b2
Trivial updates to the coercions chapter
...
* The modern way is `dyn Trait
* Use `compile_fail` instead of ignore, to make sure it doesn't start
compiling by accident in some future version of Rust (and also to
provide link to playground).
6 years ago
Colin Rofls
4f7df6c3d9
Fix typo in subtyping.md
6 years ago
Peter Shih
4efc85aa77
Fix typo in other-reprs.md
6 years ago
Roberto Vidal
85a9cacbf9
Fixes outdated bindgen link
6 years ago
Alexis Beingessner
bc9c1db3ab
Merge pull request #107 from rusch95/patch-1
...
Fix capitalization of Rust in races.md
6 years ago
Steve Klabnik
b7eb4a0872
Merge pull request #102 from Gankro/subtyping2
...
Subtyping rewrite
6 years ago
Alexis Beingessner
7f019ec5c8
fixup
6 years ago
rusch95
bb75621e3a
Fix capitalization of Rust in races.md
6 years ago
Alexis Beingessner
885c5bc5e7
cleanups for Rust 2018
6 years ago
Bruno Kirschner
a73391dd35
Add missing source code language hints in drop-flags and phantom-data.
6 years ago
Alexis Beingessner
f8a4e96feb
Merge pull request #96 from vorner/reprs
...
Updates to the data layout chapter
6 years ago
Michal 'vorner' Vaner
dd8054bef8
Updates to the data layout chapter
...
* We now have `union` as another composite data type
* The compiler now reorders fields and makes enums a bit smaller in
certain situations.
* We have repr(align(n)) in addition to packed.
6 years ago
Alexis Beingessner
a805a667ba
fixup
6 years ago
Alexis Beingessner
f3fb7c9a8f
Use the alloc_layout_extra feature for Layout::array::<T>
6 years ago
Alexis Beingessner
6ec81e17f6
cleanup
6 years ago
Alexis Beingessner
b28d364f0f
Subtyping rewrite
6 years ago
Alexis Beingessner
7a5aa3ab3a
Merge pull request #97 from fintelia/patch-1
...
Discuss thread::scoped API in past tense
6 years ago
Alexis Beingessner
a73ef29e0a
Merge pull request #91 from vmalloc/patch-1
...
Correct small typo
6 years ago
Jonathan Behrens
148a9625a3
Discuss thread::scoped API in past tense
6 years ago
Michal 'vorner' Vaner
b6e3cbf5b0
There are now 3 unsafe traits in rust
...
Updating the stale information, adding the GlobalAllocator trait.
6 years ago
Rotem Yaari
9e1c1703ec
Correct small typo
...
The term is "out of the way"
6 years ago
Ryan Levick
d870b6788b
Change compiler error message format to new format
6 years ago
Steve Klabnik
7fd493465b
Merge pull request #75 from japaric/panic
...
document #[panic_handler]
6 years ago
Jorge Aparicio
676e7d1aaa
ignore tests
...
mdbook doesn't support no_std code
6 years ago
Jorge Aparicio
5f36fc705b
make link relative
6 years ago
Jorge Aparicio
c005be9493
panic_implementation -> panic_handler; remove unstable features
6 years ago
Alexis Beingessner
ae42ad7aa4
Merge pull request #86 from izderadicka/vector-tests
...
Test and fix to vec-final
6 years ago
Ivan
cce3265e81
Modified test create_push_pop to insert unique values
6 years ago
Steve Klabnik
80ccb196c4
Merge pull request #85 from mbrubeck/fn
...
Add fn to the list of invalid primitive values
6 years ago
Ivan
2edf3dae92
main to print message if all tests succeeds
6 years ago
Ivan
0ab1a6618e
Make tests as doctests - to be run by mdbook test
6 years ago
Ivan
c07c45bd6d
Test and fix to vec-final
...
Fixed Iterator implementation for Drain
Added some tests to code
6 years ago
Matt Brubeck
715585b421
Add fn to the list of invalid primitive values
6 years ago
Boris-Chengbiao Zhou
94964dee31
Remove `unique` feature which doesn't exist anymore
...
`Unique` was marked permanently-unstable in rust#46952 and its feature
flag was changed to `ptr_internals` which we're already using.
6 years ago
Steve Klabnik
4b3335d0da
Merge pull request #82 from RalfJung/ffi
...
Don’t recommend empty enums for opaque types
6 years ago
Ralf Jung
b3d532f55b
explain the empty type better, and explain to NOT use enums
6 years ago
Ralf Jung
d4bc3b59c5
fix for oom rename
6 years ago
Hynek Schlawack
d9abcb680e
Fix definition of contravariance
...
Also clarify what F *is*.
6 years ago
Jorge Aparicio
a0c1de174a
document #[panic_implementation]
6 years ago
Mark Simulacrum
a9b58851a0
Fix nomicon for allocator changes
7 years ago
Alexis Beingessner
c5d5e583ac
Merge pull request #67 from Gankro/subtyping
...
Admit that contravariance exists and clean up the subtyping section
7 years ago
Alexis Beingessner
23e4f08171
Global.oom -> heap::alloc::oom and explanation fixup
7 years ago
Alexis Beingessner
3f12284a7b
Admit that contravariance exists and clean up the subtyping section
7 years ago
Robin Kruppe
9e800adf6f
Update description of float casts
...
https://github.com/rust-lang/rust/issues/15536 has been closed, there's no UB there, so let's stop linking to it. And for the same reasons (LLVM's assumption of the default floating point environment), f64->f32 and int->float casts do actually have a defined rounding mode, ties-to-even.
7 years ago
Simon Sapin
4808cf302d
Cast to `*mut _` to avoid importing std::alloc::Opaque
...
Per https://github.com/rust-lang-nursery/nomicon/pull/62#issuecomment-380555676
7 years ago
Simon Sapin
3c56329d1b
Rename Void to Opaque
7 years ago
Simon Sapin
498ac29974
Use the new GlobalAlloc trait
7 years ago
David A. Ramos
fa41e367bf
Remove box
7 years ago
David A. Ramos
68eb664b6a
Clarify non-nullable pointer optimization in repr(C) section
7 years ago
Hidehito Yabuuchi
89f36d58fc
Replace word 'covariance' with 'variance' for consistency.
7 years ago
Corey Farwell
5aa2345269
Fix code example compilation errors related to `unique`.
7 years ago
Alexis Beingessner
ad5ddd62c0
Merge pull request #53 from bmusin/fix_typo
...
fix typo
7 years ago
Simon Sapin
fec3182d0b
Merge remote-tracking branch 'upstream/master' into rust-pr-46952
7 years ago
Bulat Musin
b0275ab6fd
fix typo, put quotes around Rc
7 years ago
Simon Sapin
79d7569b69
Clarify "unsafe pollutes the module"
...
`unsafe` and `mod` are not magically linked, it’s entirely up to code authors to actively use privacy to limit limit the scope of unsafety and only expose safe APIs (or `unsafe fn`s).
7 years ago