Update docs to include Sized trait, which is needed
This commit is contained in:
parent
48bc291a80
commit
eafeb335a0
1 changed files with 11 additions and 2 deletions
|
|
@ -461,11 +461,12 @@ fn start(_argc: int, _argv: *const *const u8) -> int {
|
|||
0
|
||||
}
|
||||
|
||||
// These functions are invoked by the compiler, but not
|
||||
// These functions and traits are used by the compiler, but not
|
||||
// for a bare-bones hello world. These are normally
|
||||
// provided by libstd.
|
||||
#[lang = "stack_exhausted"] extern fn stack_exhausted() {}
|
||||
#[lang = "eh_personality"] extern fn eh_personality() {}
|
||||
#[lang = "sized"] trait Sized { }
|
||||
# // fn main() {} tricked you, rustdoc!
|
||||
```
|
||||
|
||||
|
|
@ -488,13 +489,14 @@ pub extern fn main(argc: int, argv: *const *const u8) -> int {
|
|||
|
||||
#[lang = "stack_exhausted"] extern fn stack_exhausted() {}
|
||||
#[lang = "eh_personality"] extern fn eh_personality() {}
|
||||
#[lang = "sized"] trait Sized { }
|
||||
# // fn main() {} tricked you, rustdoc!
|
||||
```
|
||||
|
||||
|
||||
The compiler currently makes a few assumptions about symbols which are available
|
||||
in the executable to call. Normally these functions are provided by the standard
|
||||
library, but without it you must define your own.
|
||||
xlibrary, but without it you must define your own.
|
||||
|
||||
The first of these two functions, `stack_exhausted`, is invoked whenever stack
|
||||
overflow is detected. This function has a number of restrictions about how it
|
||||
|
|
@ -508,6 +510,12 @@ mechanisms of the compiler. This is often mapped to GCC's personality function
|
|||
information), but crates which do not trigger failure can be assured that this
|
||||
function is never called.
|
||||
|
||||
The final item in the example is a trait called `Sized`. This a trait
|
||||
that represents data of a known static size: it is integral to the
|
||||
Rust type system, and so the compiler expects the standard library to
|
||||
provide it. Since you are not using the standard library, you have to
|
||||
provide it yourself.
|
||||
|
||||
## Using libcore
|
||||
|
||||
> **Note**: the core library's structure is unstable, and it is recommended to
|
||||
|
|
@ -686,6 +694,7 @@ fn main(argc: int, argv: *const *const u8) -> int {
|
|||
|
||||
#[lang = "stack_exhausted"] extern fn stack_exhausted() {}
|
||||
#[lang = "eh_personality"] extern fn eh_personality() {}
|
||||
#[lang = "sized"] trait Sized {}
|
||||
```
|
||||
|
||||
Note the use of `abort`: the `exchange_malloc` lang item is assumed to
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue