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
Alexis Beingessner
03697eba8d
Merge pull request #49 from SimonSapin/unique
...
The `unique` feature is renamed `ptr_internals`
7 years ago
Simon Sapin
2b35ebad1d
The `unique` feature is renamed `ptr_internals`
...
CC https://github.com/rust-lang/rust/pull/46952
7 years ago
Dan Robertson
c1dcf1db8c
Fix RFC 1327 hyperlink in dropck
...
- Fix hyperlink to RFC 1327 in the section on the dropck.
- Fix other nits
7 years ago
Havvy
3dc8969723
Rename C-like enums to field-less enums
7 years ago
Alexis Beingessner
2629717682
Merge pull request #43 from bennyyip/master
...
Update for field reordering
7 years ago
BennyYip
918485eb16
Remove note in repr-rust.md
7 years ago
Henri Lunnikivi
60d2621b32
Expand first-in-book use of certain abbreviations
...
- Expand first-in-book use of foreign function interface (FFI) in
safe-unsafe-meaning.md
- Expand first-in-book use of application binary interface (ABI) in
other-reprs.md
7 years ago
Simon Sapin
5b45a89c37
Prefix private fields with _
7 years ago
Simon Sapin
36a7633208
Don’t recommend empty enums for opaque types
...
Fix https://github.com/rust-lang-nursery/nomicon/issues/29
7 years ago
BennyYip
59b4cd530c
Update repr-rust.md
7 years ago
viktor kharitonovich
e45316fbe8
Update vec-drain.md
...
missed comma
7 years ago
Peter Hall
a02cdb73ce
Update exotic-sizes.md
...
[This issue](https://github.com/rust-lang/rust/issues/26403 ) was fixed quite some time ago. The warning should no longer be necessary.
7 years ago
Vojtech Kral
6d91367540
Fix #37
...
Remove obsolete drop flags remark in the 'Other reprs' chapter
7 years ago
Steve Klabnik
a4322ccb28
Merge pull request #28 from Gankro/cleanup
...
Cleanup the first chapter
7 years ago
Alexis Beingessner
680e284b0a
Merge pull request #32 from SimonSapin/nonzero-checked
...
Update for https://github.com/rust-lang/rust/pull/42959
7 years ago
Alexis Beingessner
a08085479b
Cleanup the first chapter
7 years ago
Wilfred Hughes
16399a1e23
Clarify that repr(any integer type) is legal
...
The previous title suggested that `repr(isize)`, for example, was not valid.
I'm not sure if this is great wording, or whether we should add some examples, but I think we can improve the heading.
7 years ago
Simon Sapin
f8fd671039
Update for https://github.com/rust-lang/rust/pull/42959
7 years ago
Steve Klabnik
81134a4dff
Merge pull request #30 from pablocouto/output-update
...
Update compiler output in §3.9
7 years ago
Alex Crichton
56d90fa3c3
Touch up where `Alloc` is imported from
7 years ago
Mark Simulacrum
2e67cfed79
Update to use the new allocator APIs.
7 years ago
Pablo Couto
85de648985
Update compiler output
7 years ago
Steve Klabnik
794c2d6302
Merge pull request #27 from Gankro/reref
...
rewrite references.md
8 years ago
Alexis Beingessner
c4822cd907
rewrite references.md, splitting it out into aliasing.md
...
This stuff didn't end up being useful. A discussing of aliasing is more
useful.
8 years ago
Steve Klabnik
c0e8c56d76
Merge pull request #26 from Rufflewind/master
...
subtyping: clarify the concreteness of 'a in example
8 years ago
Phil Ruffwind
91dbbbcfbd
subtyping: clarify the concreteness of 'a in example
...
This matters because if 'a were free to choose, then the argument would
be trivial. But in reality the argument also holds if 'a was already
chosen, which is what makes lifetimes special.
8 years ago
Nathaniel Ringo
fc58ace60c
Fixes formatting.
...
A line starting with `2.` unfortunately emits `<ol start="2">`, causing the bad formatting seen here: http://i.imgur.com/iaZHmIg.png
8 years ago
Steve Klabnik
95e43bcbc5
Merge pull request #13 from geofft/null
...
other-reprs: Null-pointer-optimized enums are FFI safe unless repr(C)
8 years ago
Steve Klabnik
b4ada32dd3
Merge pull request #8 from geofft/master
...
Document `#[repr(u8)] enum` to enable LLVM optimizations
8 years ago
Geoffrey Thomas
7753a3cc8a
other-reprs: `Option` is FFI-safe, even though it's an enum
...
See also the improper_ctypes lint, specifically is_repr_nullable_ptr in
src/librustc_lint/types.rs.
8 years ago
Geoffrey Thomas
687556987c
Document ABI changes from `#[repr(u*)] enum`
8 years ago
projektir
8acf410db2
Fixing link to Drop trait and catch_unwind; closes rust-lang/rust#42064
8 years ago
projektir
d0f2868141
Adding the FFI chapter from the first edition of TRPL to nomicon rust-lang/rust#42064
8 years ago
Alexis Beingessner
f680164a91
remove spurious ?Sized bound
8 years ago
Alexis Beingessner
e9335c82a2
use new Unique/heap APIs
8 years ago
portal
9cc14cd6a4
Replace occurrences of `uint` with `usize`
8 years ago
steveklabnik
b5f1f9d75e
Add @aldeka's safe and unsafe Ferris
...
https://github.com/rust-lang/rust/pull/33845 lives!
8 years ago
Steve Klabnik
0e31470870
Merge pull request #10 from king6cong/master
...
fix typo
8 years ago
king6cong
3abe4910eb
rewording
8 years ago
king6cong
6dd445b8e7
fix typo
8 years ago
Phil Ruffwind
d08fe97d12
Add Gankro's table to nomicon/src/phantom-data.md
...
Original: https://github.com/rust-lang/rust/issues/30069#issuecomment-159928136
Testing confirms that:
- PhantomData<fn() -> T> does not actually enable drop checking.
- PhantomData<fn(T) -> T> is neither variant nor contravariant.
8 years ago
Luxko
c4ef161ed0
Update exception-safety.md
8 years ago
Luxko
c6dd2ea600
Update exception-safety.md
...
Fix variable name typo
8 years ago
Steve Klabnik
7f2e5abd96
Revert "Fix up links"
...
This reverts commit 7f1d1c6d9a7be5e427bace30e740b16b25f25c92.
The original commit was created because mdBook and rustdoc had
different generation algorithms for header links; now with
https://github.com/rust-lang/rust/pull/39966 , the algorithms
are the same. So let's undo this change.
... when I came across this problem, I said "eh, this isn't fun,
but it doesn't take that long." I probably should have just actually
taken the time to fix upstream, given that they were amenable. Oh
well!
8 years ago
Jeff Muizelaar
8e1e112170
Remove obsolete documentation about drop-flags
8 years ago
Steve Klabnik
853058536b
Fix up links
...
mdbook and rustdoc generate links differently, so we need to change all
these links.
8 years ago
Steve Klabnik
0e6c680ebd
Port Nomicon to mdbook
...
1. move everything under a src directory
2. add README.md to the SUMMARY.md
8 years ago
Steve Klabnik
59c90266d3
Re-implement rustbook in terms of mdbook
...
mdbook has a lot of optional dependencies that we don't want, so instead
of using it directly, we re-build rustbook to use mdbook as a library.
For convenience' sake, we keep the same CLI interface as mdbook; the
only difference is that it only accepts build and test subcommands,
rather than the full range.
8 years ago