syntax: Feature gate #[start] and #[main]

These two attributes are used to change the entry point into a Rust program, but
for now they're being put behind feature gates until we have a chance to think
about them a little more. The #[start] attribute specifically may have its
signature changed.

This is a breaking change to due the usage of these attributes generating errors
by default now. If your crate is using these attributes, add this to your crate
root:

    #![feature(start)] // if you're using the #[start] attribute
    #![feature(main)]  // if you're using the #[main] attribute

cc #20064
This commit is contained in:
Alex Crichton 2015-01-16 10:55:24 -08:00
parent ee2bfae011
commit 38cb91e66c
26 changed files with 71 additions and 13 deletions

View file

@ -447,7 +447,7 @@ in the same format as C:
```
#![no_std]
#![feature(lang_items)]
#![feature(lang_items, start)]
// Pull in the system libc library for what crt0.o likely requires
extern crate libc;
@ -475,7 +475,7 @@ compiler's name mangling too:
```ignore
#![no_std]
#![no_main]
#![feature(lang_items)]
#![feature(lang_items, start)]
extern crate libc;
@ -529,7 +529,7 @@ vectors provided from C, using idiomatic Rust practices.
```
#![no_std]
#![feature(lang_items)]
#![feature(lang_items, start)]
# extern crate libc;
extern crate core;
@ -653,7 +653,7 @@ sugar for dynamic allocations via `malloc` and `free`:
```
#![no_std]
#![feature(lang_items, box_syntax)]
#![feature(lang_items, box_syntax, start)]
extern crate libc;