about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSteve Klabnik <steve@steveklabnik.com>2017-02-15 17:43:03 -0500
committerSteve Klabnik <steve@steveklabnik.com>2017-02-21 21:12:52 -0500
commita1301c349510d9cd06ec618e905241f71a57f839 (patch)
tree53468895d05510cc62c7bfc8dbdd60b5a9fe530c
parentfc6f092c21a7a7249a9f8860f3cd10160aa36c02 (diff)
downloadrust-a1301c349510d9cd06ec618e905241f71a57f839.tar.gz
rust-a1301c349510d9cd06ec618e905241f71a57f839.zip
Create "The Unstable Book"
part of #39588
-rw-r--r--src/bootstrap/step.rs9
-rw-r--r--src/doc/unstable-book/.gitignore1
-rw-r--r--src/doc/unstable-book/src/SUMMARY.md91
-rw-r--r--src/doc/unstable-book/src/abi-msp430-interrupt.md1
-rw-r--r--src/doc/unstable-book/src/abi-ptx.md1
-rw-r--r--src/doc/unstable-book/src/abi-sysv64.md1
-rw-r--r--src/doc/unstable-book/src/abi-unadjusted.md1
-rw-r--r--src/doc/unstable-book/src/abi-vectorcall.md1
-rw-r--r--src/doc/unstable-book/src/advanced-slice-patterns.md1
-rw-r--r--src/doc/unstable-book/src/allocator.md1
-rw-r--r--src/doc/unstable-book/src/allow-internal-unstable.md1
-rw-r--r--src/doc/unstable-book/src/asm.md1
-rw-r--r--src/doc/unstable-book/src/associated-consts.md1
-rw-r--r--src/doc/unstable-book/src/associated-type-defaults.md1
-rw-r--r--src/doc/unstable-book/src/attr-literals.md1
-rw-r--r--src/doc/unstable-book/src/box-patterns.md1
-rw-r--r--src/doc/unstable-book/src/box-syntax.md1
-rw-r--r--src/doc/unstable-book/src/cfg-target-feature.md1
-rw-r--r--src/doc/unstable-book/src/cfg-target-has-atomic.md1
-rw-r--r--src/doc/unstable-book/src/cfg-target-thread-local.md1
-rw-r--r--src/doc/unstable-book/src/cfg-target-vendor.md1
-rw-r--r--src/doc/unstable-book/src/compiler-builtins.md1
-rw-r--r--src/doc/unstable-book/src/concat-idents.md1
-rw-r--r--src/doc/unstable-book/src/conservative-impl-trait.md1
-rw-r--r--src/doc/unstable-book/src/const-fn.md1
-rw-r--r--src/doc/unstable-book/src/const-indexing.md1
-rw-r--r--src/doc/unstable-book/src/custom-attribute.md1
-rw-r--r--src/doc/unstable-book/src/custom-derive.md1
-rw-r--r--src/doc/unstable-book/src/default-type-parameter-fallback.md1
-rw-r--r--src/doc/unstable-book/src/drop-types-in-const.md1
-rw-r--r--src/doc/unstable-book/src/dropck-eyepatch.md1
-rw-r--r--src/doc/unstable-book/src/dropck-parametricity.md1
-rw-r--r--src/doc/unstable-book/src/exclusive-range-pattern.md1
-rw-r--r--src/doc/unstable-book/src/field-init-shorthand.md1
-rw-r--r--src/doc/unstable-book/src/fundamental.md1
-rw-r--r--src/doc/unstable-book/src/generic-param-attrs.md1
-rw-r--r--src/doc/unstable-book/src/i128-type.md1
-rw-r--r--src/doc/unstable-book/src/inclusive-range-syntax.md1
-rw-r--r--src/doc/unstable-book/src/intrinsics.md1
-rw-r--r--src/doc/unstable-book/src/lang-items.md1
-rw-r--r--src/doc/unstable-book/src/link-args.md1
-rw-r--r--src/doc/unstable-book/src/link-cfg.md1
-rw-r--r--src/doc/unstable-book/src/link-llvm-intrinsics.md1
-rw-r--r--src/doc/unstable-book/src/linkage.md1
-rw-r--r--src/doc/unstable-book/src/log-syntax.md1
-rw-r--r--src/doc/unstable-book/src/loop-break-value.md1
-rw-r--r--src/doc/unstable-book/src/macro-reexport.md1
-rw-r--r--src/doc/unstable-book/src/main.md1
-rw-r--r--src/doc/unstable-book/src/naked-functions.md1
-rw-r--r--src/doc/unstable-book/src/needs-allocator.md1
-rw-r--r--src/doc/unstable-book/src/needs-panic-runtime.md1
-rw-r--r--src/doc/unstable-book/src/never-type.md1
-rw-r--r--src/doc/unstable-book/src/no-core.md1
-rw-r--r--src/doc/unstable-book/src/no-debug.md1
-rw-r--r--src/doc/unstable-book/src/non_ascii-idents.md1
-rw-r--r--src/doc/unstable-book/src/omit-gdb-pretty-printer-section.md1
-rw-r--r--src/doc/unstable-book/src/on-unimplemented.md1
-rw-r--r--src/doc/unstable-book/src/optin-builtin-traits.md1
-rw-r--r--src/doc/unstable-book/src/panic-runtime.md1
-rw-r--r--src/doc/unstable-book/src/placement-in-syntax.md1
-rw-r--r--src/doc/unstable-book/src/platform-intrinsics.md1
-rw-r--r--src/doc/unstable-book/src/plugin-registrar.md1
-rw-r--r--src/doc/unstable-book/src/plugin.md1
-rw-r--r--src/doc/unstable-book/src/prelude-import.md1
-rw-r--r--src/doc/unstable-book/src/proc-macro.md1
-rw-r--r--src/doc/unstable-book/src/pub-restricted.md1
-rw-r--r--src/doc/unstable-book/src/quote.md1
-rw-r--r--src/doc/unstable-book/src/relaxed-adts.md1
-rw-r--r--src/doc/unstable-book/src/repr-simd.md1
-rw-r--r--src/doc/unstable-book/src/rustc-attrs.md1
-rw-r--r--src/doc/unstable-book/src/rustc-diagnostic-macros.md1
-rw-r--r--src/doc/unstable-book/src/sanitizer-runtime.md1
-rw-r--r--src/doc/unstable-book/src/simd-ffi.md1
-rw-r--r--src/doc/unstable-book/src/simd.md1
-rw-r--r--src/doc/unstable-book/src/slice-patterns.md1
-rw-r--r--src/doc/unstable-book/src/specialization.md1
-rw-r--r--src/doc/unstable-book/src/staged-api.md1
-rw-r--r--src/doc/unstable-book/src/start.md1
-rw-r--r--src/doc/unstable-book/src/static-nobundle.md1
-rw-r--r--src/doc/unstable-book/src/static-recursion.md1
-rw-r--r--src/doc/unstable-book/src/stmt-expr-attributes.md1
-rw-r--r--src/doc/unstable-book/src/struct-field-attributes.md1
-rw-r--r--src/doc/unstable-book/src/structural-match.md1
-rw-r--r--src/doc/unstable-book/src/target-feature.md1
-rw-r--r--src/doc/unstable-book/src/the-unstable-book.md1
-rw-r--r--src/doc/unstable-book/src/thread-local.md1
-rw-r--r--src/doc/unstable-book/src/trace-macros.md1
-rw-r--r--src/doc/unstable-book/src/type-ascription.md1
-rw-r--r--src/doc/unstable-book/src/unboxed-closures.md1
-rw-r--r--src/doc/unstable-book/src/untagged-unions.md1
-rw-r--r--src/doc/unstable-book/src/unwind-attributes.md1
-rw-r--r--src/doc/unstable-book/src/use-extern-macros.md1
-rw-r--r--src/doc/unstable-book/src/windows-subsystem.md1
-rw-r--r--src/libsyntax/feature_gate.rs9
94 files changed, 198 insertions, 2 deletions
diff --git a/src/bootstrap/step.rs b/src/bootstrap/step.rs
index 36738b81c18..fe183c5bce8 100644
--- a/src/bootstrap/step.rs
+++ b/src/bootstrap/step.rs
@@ -577,6 +577,15 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
          })
          .default(build.config.docs)
          .run(move |s| doc::rustbook(build, s.target, "reference"));
+    rules.doc("doc-unstable-book", "src/doc/unstable-book")
+         .dep(move |s| {
+             s.name("tool-rustbook")
+              .host(&build.config.build)
+              .target(&build.config.build)
+              .stage(0)
+         })
+         .default(build.config.docs)
+         .run(move |s| doc::rustbook(build, s.target, "unstable-book"));
     rules.doc("doc-standalone", "src/doc")
          .dep(move |s| {
              s.name("rustc")
diff --git a/src/doc/unstable-book/.gitignore b/src/doc/unstable-book/.gitignore
new file mode 100644
index 00000000000..7585238efed
--- /dev/null
+++ b/src/doc/unstable-book/.gitignore
@@ -0,0 +1 @@
+book
diff --git a/src/doc/unstable-book/src/SUMMARY.md b/src/doc/unstable-book/src/SUMMARY.md
new file mode 100644
index 00000000000..98fbffcf84d
--- /dev/null
+++ b/src/doc/unstable-book/src/SUMMARY.md
@@ -0,0 +1,91 @@
+[The Unstable Book](the-unstable-book.md)
+
+- [asm](asm.md)
+- [concat_idents](concat-idents.md)
+- [link_args](link-args.md)
+- [log_syntax](log-syntax.md)
+- [non_ascii_idents](non_ascii-idents.md)
+- [plugin_registrar](plugin-registrar.md)
+- [thread_local](thread-local.md)
+- [trace_macros](trace-macros.md)
+- [intrinsics](intrinsics.md)
+- [lang_items](lang-items.md)
+- [link_llvm_intrinsics](link-llvm-intrinsics.md)
+- [linkage](linkage.md)
+- [quote](quote.md)
+- [simd](simd.md)
+- [rustc_diagnostic_macros](rustc-diagnostic-macros.md)
+- [advanced_slice_patterns](advanced-slice-patterns.md)
+- [box_syntax](box-syntax.md)
+- [placement_in_syntax](placement-in-syntax.md)
+- [unboxed_closures](unboxed-closures.md)
+- [allocator](allocator.md)
+- [fundamental](fundamental.md)
+- [main](main.md)
+- [needs_allocator](needs-allocator.md)
+- [on_unimplemented](on-unimplemented.md)
+- [plugin](plugin.md)
+- [simd_ffi](simd-ffi.md)
+- [start](start.md)
+- [structural_match](structural-match.md)
+- [panic_runtime](panic-runtime.md)
+- [needs_panic_runtime](needs-panic-runtime.md)
+- [optin_builtin_traits](optin-builtin-traits.md)
+- [macro_reexport](macro-reexport.md)
+- [staged_api](staged-api.md)
+- [no_core](no-core.md)
+- [box_patterns](box-patterns.md)
+- [dropck_parametricity](dropck-parametricity.md)
+- [dropck_eyepatch](dropck-eyepatch.md)
+- [custom_attribute](custom-attribute.md)
+- [custom_derive](custom-derive.md)
+- [rustc_attrs](rustc-attrs.md)
+- [allow_internal_unstable](allow-internal-unstable.md)
+- [slice_patterns](slice-patterns.md)
+- [associated_consts](associated-consts.md)
+- [const_fn](const-fn.md)
+- [const_indexing](const-indexing.md)
+- [prelude_import](prelude-import.md)
+- [static_recursion](static-recursion.md)
+- [default_type_parameter_fallback](default-type-parameter-fallback.md)
+- [associated_type_defaults](associated-type-defaults.md)
+- [repr_simd](repr-simd.md)
+- [cfg_target_feature](cfg-target-feature.md)
+- [platform_intrinsics](platform-intrinsics.md)
+- [unwind_attributes](unwind-attributes.md)
+- [naked_functions](naked-functions.md)
+- [no_debug](no-debug.md)
+- [omit_gdb_pretty_printer_section](omit-gdb-pretty-printer-section.md)
+- [cfg_target_vendor](cfg-target-vendor.md)
+- [stmt_expr_attributes](stmt-expr-attributes.md)
+- [type_ascription](type-ascription.md)
+- [cfg_target_thread_local](cfg-target-thread-local.md)
+- [abi_vectorcall](abi-vectorcall.md)
+- [inclusive_range_syntax](inclusive-range-syntax.md)
+- [exclusive_range_pattern](exclusive-range-pattern.md)
+- [specialization](specialization.md)
+- [pub_restricted](pub-restricted.md)
+- [drop_types_in_const](drop-types-in-const.md)
+- [cfg_target_has_atomic](cfg-target-has-atomic.md)
+- [conservative_impl_trait](conservative-impl-trait.md)
+- [relaxed_adts](relaxed-adts.md)
+- [never_type](never-type.md)
+- [attr_literals](attr-literals.md)
+- [abi_sysv64](abi-sysv64.md)
+- [untagged_unions](untagged-unions.md)
+- [compiler_builtins](compiler-builtins.md)
+- [generic_param_attrs](generic-param-attrs.md)
+- [field_init_shorthand](field-init-shorthand.md)
+- [windows_subsystem](windows-subsystem.md)
+- [link_cfg](link-cfg.md)
+- [use_extern_macros](use-extern-macros.md)
+- [loop_break_value](loop-break-value.md)
+- [target_feature](target-feature.md)
+- [abi_ptx](abi-ptx.md)
+- [i128_type](i128-type.md)
+- [abi_unadjusted](abi-unadjusted.md)
+- [proc_macro](proc-macro.md)
+- [struct_field_attributes](struct-field-attributes.md)
+- [static_nobundle](static-nobundle.md)
+- [abi_msp430_interrupt](abi-msp430-interrupt.md)
+- [sanitizer_runtime](sanitizer-runtime.md)
diff --git a/src/doc/unstable-book/src/abi-msp430-interrupt.md b/src/doc/unstable-book/src/abi-msp430-interrupt.md
new file mode 100644
index 00000000000..ce5090829cb
--- /dev/null
+++ b/src/doc/unstable-book/src/abi-msp430-interrupt.md
@@ -0,0 +1 @@
+# abi_msp430_interrupt
diff --git a/src/doc/unstable-book/src/abi-ptx.md b/src/doc/unstable-book/src/abi-ptx.md
new file mode 100644
index 00000000000..56ae04a23f7
--- /dev/null
+++ b/src/doc/unstable-book/src/abi-ptx.md
@@ -0,0 +1 @@
+# abi_ptx
diff --git a/src/doc/unstable-book/src/abi-sysv64.md b/src/doc/unstable-book/src/abi-sysv64.md
new file mode 100644
index 00000000000..be00f080fef
--- /dev/null
+++ b/src/doc/unstable-book/src/abi-sysv64.md
@@ -0,0 +1 @@
+# abi_sysv64
diff --git a/src/doc/unstable-book/src/abi-unadjusted.md b/src/doc/unstable-book/src/abi-unadjusted.md
new file mode 100644
index 00000000000..6db74ede168
--- /dev/null
+++ b/src/doc/unstable-book/src/abi-unadjusted.md
@@ -0,0 +1 @@
+# abi_unadjusted
diff --git a/src/doc/unstable-book/src/abi-vectorcall.md b/src/doc/unstable-book/src/abi-vectorcall.md
new file mode 100644
index 00000000000..98a919171f2
--- /dev/null
+++ b/src/doc/unstable-book/src/abi-vectorcall.md
@@ -0,0 +1 @@
+# abi_vectorcall
diff --git a/src/doc/unstable-book/src/advanced-slice-patterns.md b/src/doc/unstable-book/src/advanced-slice-patterns.md
new file mode 100644
index 00000000000..a9645725e76
--- /dev/null
+++ b/src/doc/unstable-book/src/advanced-slice-patterns.md
@@ -0,0 +1 @@
+# advanced_slice_patterns
diff --git a/src/doc/unstable-book/src/allocator.md b/src/doc/unstable-book/src/allocator.md
new file mode 100644
index 00000000000..f01c5bfb110
--- /dev/null
+++ b/src/doc/unstable-book/src/allocator.md
@@ -0,0 +1 @@
+# allocator
diff --git a/src/doc/unstable-book/src/allow-internal-unstable.md b/src/doc/unstable-book/src/allow-internal-unstable.md
new file mode 100644
index 00000000000..f79e31ff57f
--- /dev/null
+++ b/src/doc/unstable-book/src/allow-internal-unstable.md
@@ -0,0 +1 @@
+# allow_internal_unstable
diff --git a/src/doc/unstable-book/src/asm.md b/src/doc/unstable-book/src/asm.md
new file mode 100644
index 00000000000..394345734ec
--- /dev/null
+++ b/src/doc/unstable-book/src/asm.md
@@ -0,0 +1 @@
+# asm
diff --git a/src/doc/unstable-book/src/associated-consts.md b/src/doc/unstable-book/src/associated-consts.md
new file mode 100644
index 00000000000..70d01c05c86
--- /dev/null
+++ b/src/doc/unstable-book/src/associated-consts.md
@@ -0,0 +1 @@
+# associated_consts
diff --git a/src/doc/unstable-book/src/associated-type-defaults.md b/src/doc/unstable-book/src/associated-type-defaults.md
new file mode 100644
index 00000000000..a1ecb4d3207
--- /dev/null
+++ b/src/doc/unstable-book/src/associated-type-defaults.md
@@ -0,0 +1 @@
+# associated_type_defaults
diff --git a/src/doc/unstable-book/src/attr-literals.md b/src/doc/unstable-book/src/attr-literals.md
new file mode 100644
index 00000000000..6a04ee86d30
--- /dev/null
+++ b/src/doc/unstable-book/src/attr-literals.md
@@ -0,0 +1 @@
+# attr_literals
diff --git a/src/doc/unstable-book/src/box-patterns.md b/src/doc/unstable-book/src/box-patterns.md
new file mode 100644
index 00000000000..64d082229f4
--- /dev/null
+++ b/src/doc/unstable-book/src/box-patterns.md
@@ -0,0 +1 @@
+# box_patterns
diff --git a/src/doc/unstable-book/src/box-syntax.md b/src/doc/unstable-book/src/box-syntax.md
new file mode 100644
index 00000000000..a8c596c1090
--- /dev/null
+++ b/src/doc/unstable-book/src/box-syntax.md
@@ -0,0 +1 @@
+# box_syntax
diff --git a/src/doc/unstable-book/src/cfg-target-feature.md b/src/doc/unstable-book/src/cfg-target-feature.md
new file mode 100644
index 00000000000..c7f58a32cf2
--- /dev/null
+++ b/src/doc/unstable-book/src/cfg-target-feature.md
@@ -0,0 +1 @@
+# cfg_target_feature
diff --git a/src/doc/unstable-book/src/cfg-target-has-atomic.md b/src/doc/unstable-book/src/cfg-target-has-atomic.md
new file mode 100644
index 00000000000..c33e61817ec
--- /dev/null
+++ b/src/doc/unstable-book/src/cfg-target-has-atomic.md
@@ -0,0 +1 @@
+# cfg_target_has_atomic
diff --git a/src/doc/unstable-book/src/cfg-target-thread-local.md b/src/doc/unstable-book/src/cfg-target-thread-local.md
new file mode 100644
index 00000000000..90f662f73f4
--- /dev/null
+++ b/src/doc/unstable-book/src/cfg-target-thread-local.md
@@ -0,0 +1 @@
+# cfg_target_thread_local
diff --git a/src/doc/unstable-book/src/cfg-target-vendor.md b/src/doc/unstable-book/src/cfg-target-vendor.md
new file mode 100644
index 00000000000..9f468d2cdc2
--- /dev/null
+++ b/src/doc/unstable-book/src/cfg-target-vendor.md
@@ -0,0 +1 @@
+# cfg_target_vendor
diff --git a/src/doc/unstable-book/src/compiler-builtins.md b/src/doc/unstable-book/src/compiler-builtins.md
new file mode 100644
index 00000000000..62ad0cdf807
--- /dev/null
+++ b/src/doc/unstable-book/src/compiler-builtins.md
@@ -0,0 +1 @@
+# compiler_builtins
diff --git a/src/doc/unstable-book/src/concat-idents.md b/src/doc/unstable-book/src/concat-idents.md
new file mode 100644
index 00000000000..081c32d7741
--- /dev/null
+++ b/src/doc/unstable-book/src/concat-idents.md
@@ -0,0 +1 @@
+# concat_idents
diff --git a/src/doc/unstable-book/src/conservative-impl-trait.md b/src/doc/unstable-book/src/conservative-impl-trait.md
new file mode 100644
index 00000000000..059006978a5
--- /dev/null
+++ b/src/doc/unstable-book/src/conservative-impl-trait.md
@@ -0,0 +1 @@
+# conservative_impl_trait
diff --git a/src/doc/unstable-book/src/const-fn.md b/src/doc/unstable-book/src/const-fn.md
new file mode 100644
index 00000000000..9c1a9025326
--- /dev/null
+++ b/src/doc/unstable-book/src/const-fn.md
@@ -0,0 +1 @@
+# const_fn
diff --git a/src/doc/unstable-book/src/const-indexing.md b/src/doc/unstable-book/src/const-indexing.md
new file mode 100644
index 00000000000..7490a40dc60
--- /dev/null
+++ b/src/doc/unstable-book/src/const-indexing.md
@@ -0,0 +1 @@
+# const_indexing
diff --git a/src/doc/unstable-book/src/custom-attribute.md b/src/doc/unstable-book/src/custom-attribute.md
new file mode 100644
index 00000000000..d1109bad1f4
--- /dev/null
+++ b/src/doc/unstable-book/src/custom-attribute.md
@@ -0,0 +1 @@
+# custom_attribute
diff --git a/src/doc/unstable-book/src/custom-derive.md b/src/doc/unstable-book/src/custom-derive.md
new file mode 100644
index 00000000000..36c3b8afe91
--- /dev/null
+++ b/src/doc/unstable-book/src/custom-derive.md
@@ -0,0 +1 @@
+# custom_derive
diff --git a/src/doc/unstable-book/src/default-type-parameter-fallback.md b/src/doc/unstable-book/src/default-type-parameter-fallback.md
new file mode 100644
index 00000000000..fa3a3ebbac2
--- /dev/null
+++ b/src/doc/unstable-book/src/default-type-parameter-fallback.md
@@ -0,0 +1 @@
+# default_type_parameter_fallback
diff --git a/src/doc/unstable-book/src/drop-types-in-const.md b/src/doc/unstable-book/src/drop-types-in-const.md
new file mode 100644
index 00000000000..bc05cca9c5e
--- /dev/null
+++ b/src/doc/unstable-book/src/drop-types-in-const.md
@@ -0,0 +1 @@
+# drop_types_in_const
diff --git a/src/doc/unstable-book/src/dropck-eyepatch.md b/src/doc/unstable-book/src/dropck-eyepatch.md
new file mode 100644
index 00000000000..380718a940f
--- /dev/null
+++ b/src/doc/unstable-book/src/dropck-eyepatch.md
@@ -0,0 +1 @@
+# dropck_eyepatch
diff --git a/src/doc/unstable-book/src/dropck-parametricity.md b/src/doc/unstable-book/src/dropck-parametricity.md
new file mode 100644
index 00000000000..bef2b344e0e
--- /dev/null
+++ b/src/doc/unstable-book/src/dropck-parametricity.md
@@ -0,0 +1 @@
+# dropck_parametricity
diff --git a/src/doc/unstable-book/src/exclusive-range-pattern.md b/src/doc/unstable-book/src/exclusive-range-pattern.md
new file mode 100644
index 00000000000..b098501e33b
--- /dev/null
+++ b/src/doc/unstable-book/src/exclusive-range-pattern.md
@@ -0,0 +1 @@
+# exclusive_range_pattern
diff --git a/src/doc/unstable-book/src/field-init-shorthand.md b/src/doc/unstable-book/src/field-init-shorthand.md
new file mode 100644
index 00000000000..12b3b5d3104
--- /dev/null
+++ b/src/doc/unstable-book/src/field-init-shorthand.md
@@ -0,0 +1 @@
+# field_init_shorthand
diff --git a/src/doc/unstable-book/src/fundamental.md b/src/doc/unstable-book/src/fundamental.md
new file mode 100644
index 00000000000..f27dcf97f3d
--- /dev/null
+++ b/src/doc/unstable-book/src/fundamental.md
@@ -0,0 +1 @@
+# fundamental
diff --git a/src/doc/unstable-book/src/generic-param-attrs.md b/src/doc/unstable-book/src/generic-param-attrs.md
new file mode 100644
index 00000000000..c6081f3867e
--- /dev/null
+++ b/src/doc/unstable-book/src/generic-param-attrs.md
@@ -0,0 +1 @@
+# generic_param_attrs
diff --git a/src/doc/unstable-book/src/i128-type.md b/src/doc/unstable-book/src/i128-type.md
new file mode 100644
index 00000000000..b4ed27e0d12
--- /dev/null
+++ b/src/doc/unstable-book/src/i128-type.md
@@ -0,0 +1 @@
+# i128_type
diff --git a/src/doc/unstable-book/src/inclusive-range-syntax.md b/src/doc/unstable-book/src/inclusive-range-syntax.md
new file mode 100644
index 00000000000..401ff66fdb8
--- /dev/null
+++ b/src/doc/unstable-book/src/inclusive-range-syntax.md
@@ -0,0 +1 @@
+# inclusive_range_syntax
diff --git a/src/doc/unstable-book/src/intrinsics.md b/src/doc/unstable-book/src/intrinsics.md
new file mode 100644
index 00000000000..8901490c7ad
--- /dev/null
+++ b/src/doc/unstable-book/src/intrinsics.md
@@ -0,0 +1 @@
+# intrinsics
diff --git a/src/doc/unstable-book/src/lang-items.md b/src/doc/unstable-book/src/lang-items.md
new file mode 100644
index 00000000000..54aaff35841
--- /dev/null
+++ b/src/doc/unstable-book/src/lang-items.md
@@ -0,0 +1 @@
+# lang_items
diff --git a/src/doc/unstable-book/src/link-args.md b/src/doc/unstable-book/src/link-args.md
new file mode 100644
index 00000000000..17c66f61dd2
--- /dev/null
+++ b/src/doc/unstable-book/src/link-args.md
@@ -0,0 +1 @@
+# link_args
diff --git a/src/doc/unstable-book/src/link-cfg.md b/src/doc/unstable-book/src/link-cfg.md
new file mode 100644
index 00000000000..3ea16dd3a0b
--- /dev/null
+++ b/src/doc/unstable-book/src/link-cfg.md
@@ -0,0 +1 @@
+# link_cfg
diff --git a/src/doc/unstable-book/src/link-llvm-intrinsics.md b/src/doc/unstable-book/src/link-llvm-intrinsics.md
new file mode 100644
index 00000000000..39224bc68a5
--- /dev/null
+++ b/src/doc/unstable-book/src/link-llvm-intrinsics.md
@@ -0,0 +1 @@
+# link_llvm_intrinsics
diff --git a/src/doc/unstable-book/src/linkage.md b/src/doc/unstable-book/src/linkage.md
new file mode 100644
index 00000000000..ff37c815fc5
--- /dev/null
+++ b/src/doc/unstable-book/src/linkage.md
@@ -0,0 +1 @@
+# linkage
diff --git a/src/doc/unstable-book/src/log-syntax.md b/src/doc/unstable-book/src/log-syntax.md
new file mode 100644
index 00000000000..7633fff5152
--- /dev/null
+++ b/src/doc/unstable-book/src/log-syntax.md
@@ -0,0 +1 @@
+# log_syntax
diff --git a/src/doc/unstable-book/src/loop-break-value.md b/src/doc/unstable-book/src/loop-break-value.md
new file mode 100644
index 00000000000..72ef138c791
--- /dev/null
+++ b/src/doc/unstable-book/src/loop-break-value.md
@@ -0,0 +1 @@
+# loop_break_value
diff --git a/src/doc/unstable-book/src/macro-reexport.md b/src/doc/unstable-book/src/macro-reexport.md
new file mode 100644
index 00000000000..2074dafa4e6
--- /dev/null
+++ b/src/doc/unstable-book/src/macro-reexport.md
@@ -0,0 +1 @@
+# macro_reexport
diff --git a/src/doc/unstable-book/src/main.md b/src/doc/unstable-book/src/main.md
new file mode 100644
index 00000000000..c693b5e4eb5
--- /dev/null
+++ b/src/doc/unstable-book/src/main.md
@@ -0,0 +1 @@
+# main
diff --git a/src/doc/unstable-book/src/naked-functions.md b/src/doc/unstable-book/src/naked-functions.md
new file mode 100644
index 00000000000..85af027cb7d
--- /dev/null
+++ b/src/doc/unstable-book/src/naked-functions.md
@@ -0,0 +1 @@
+# naked_functions
diff --git a/src/doc/unstable-book/src/needs-allocator.md b/src/doc/unstable-book/src/needs-allocator.md
new file mode 100644
index 00000000000..5a620a885ec
--- /dev/null
+++ b/src/doc/unstable-book/src/needs-allocator.md
@@ -0,0 +1 @@
+# needs_allocator
diff --git a/src/doc/unstable-book/src/needs-panic-runtime.md b/src/doc/unstable-book/src/needs-panic-runtime.md
new file mode 100644
index 00000000000..c3e91721360
--- /dev/null
+++ b/src/doc/unstable-book/src/needs-panic-runtime.md
@@ -0,0 +1 @@
+# needs_panic_runtime
diff --git a/src/doc/unstable-book/src/never-type.md b/src/doc/unstable-book/src/never-type.md
new file mode 100644
index 00000000000..c8e42b7c290
--- /dev/null
+++ b/src/doc/unstable-book/src/never-type.md
@@ -0,0 +1 @@
+# never_type
diff --git a/src/doc/unstable-book/src/no-core.md b/src/doc/unstable-book/src/no-core.md
new file mode 100644
index 00000000000..62f4f7cc969
--- /dev/null
+++ b/src/doc/unstable-book/src/no-core.md
@@ -0,0 +1 @@
+# no_core
diff --git a/src/doc/unstable-book/src/no-debug.md b/src/doc/unstable-book/src/no-debug.md
new file mode 100644
index 00000000000..041fe685057
--- /dev/null
+++ b/src/doc/unstable-book/src/no-debug.md
@@ -0,0 +1 @@
+# no_debug
diff --git a/src/doc/unstable-book/src/non_ascii-idents.md b/src/doc/unstable-book/src/non_ascii-idents.md
new file mode 100644
index 00000000000..2d244f06471
--- /dev/null
+++ b/src/doc/unstable-book/src/non_ascii-idents.md
@@ -0,0 +1 @@
+# non_ascii_idents
diff --git a/src/doc/unstable-book/src/omit-gdb-pretty-printer-section.md b/src/doc/unstable-book/src/omit-gdb-pretty-printer-section.md
new file mode 100644
index 00000000000..87ebf6affd7
--- /dev/null
+++ b/src/doc/unstable-book/src/omit-gdb-pretty-printer-section.md
@@ -0,0 +1 @@
+# omit_gdb_pretty_printer_section
diff --git a/src/doc/unstable-book/src/on-unimplemented.md b/src/doc/unstable-book/src/on-unimplemented.md
new file mode 100644
index 00000000000..f7f624aef21
--- /dev/null
+++ b/src/doc/unstable-book/src/on-unimplemented.md
@@ -0,0 +1 @@
+# on_unimplemented
diff --git a/src/doc/unstable-book/src/optin-builtin-traits.md b/src/doc/unstable-book/src/optin-builtin-traits.md
new file mode 100644
index 00000000000..a3c3dcd709c
--- /dev/null
+++ b/src/doc/unstable-book/src/optin-builtin-traits.md
@@ -0,0 +1 @@
+# optin_builtin_traits
diff --git a/src/doc/unstable-book/src/panic-runtime.md b/src/doc/unstable-book/src/panic-runtime.md
new file mode 100644
index 00000000000..20f436a7656
--- /dev/null
+++ b/src/doc/unstable-book/src/panic-runtime.md
@@ -0,0 +1 @@
+# panic_runtime
diff --git a/src/doc/unstable-book/src/placement-in-syntax.md b/src/doc/unstable-book/src/placement-in-syntax.md
new file mode 100644
index 00000000000..f41e3945bae
--- /dev/null
+++ b/src/doc/unstable-book/src/placement-in-syntax.md
@@ -0,0 +1 @@
+# placement_in_syntax
diff --git a/src/doc/unstable-book/src/platform-intrinsics.md b/src/doc/unstable-book/src/platform-intrinsics.md
new file mode 100644
index 00000000000..14353b1a505
--- /dev/null
+++ b/src/doc/unstable-book/src/platform-intrinsics.md
@@ -0,0 +1 @@
+# platform_intrinsics
diff --git a/src/doc/unstable-book/src/plugin-registrar.md b/src/doc/unstable-book/src/plugin-registrar.md
new file mode 100644
index 00000000000..70892438475
--- /dev/null
+++ b/src/doc/unstable-book/src/plugin-registrar.md
@@ -0,0 +1 @@
+# plugin_registrar
diff --git a/src/doc/unstable-book/src/plugin.md b/src/doc/unstable-book/src/plugin.md
new file mode 100644
index 00000000000..e504fb84db1
--- /dev/null
+++ b/src/doc/unstable-book/src/plugin.md
@@ -0,0 +1 @@
+# plugin
diff --git a/src/doc/unstable-book/src/prelude-import.md b/src/doc/unstable-book/src/prelude-import.md
new file mode 100644
index 00000000000..72c9d7b5d0d
--- /dev/null
+++ b/src/doc/unstable-book/src/prelude-import.md
@@ -0,0 +1 @@
+# prelude_import
diff --git a/src/doc/unstable-book/src/proc-macro.md b/src/doc/unstable-book/src/proc-macro.md
new file mode 100644
index 00000000000..d2bdb41b90e
--- /dev/null
+++ b/src/doc/unstable-book/src/proc-macro.md
@@ -0,0 +1 @@
+# proc_macro
diff --git a/src/doc/unstable-book/src/pub-restricted.md b/src/doc/unstable-book/src/pub-restricted.md
new file mode 100644
index 00000000000..eee0696d6ea
--- /dev/null
+++ b/src/doc/unstable-book/src/pub-restricted.md
@@ -0,0 +1 @@
+# pub_restricted
diff --git a/src/doc/unstable-book/src/quote.md b/src/doc/unstable-book/src/quote.md
new file mode 100644
index 00000000000..4c851b40b84
--- /dev/null
+++ b/src/doc/unstable-book/src/quote.md
@@ -0,0 +1 @@
+# quote
diff --git a/src/doc/unstable-book/src/relaxed-adts.md b/src/doc/unstable-book/src/relaxed-adts.md
new file mode 100644
index 00000000000..3fbbbe8728a
--- /dev/null
+++ b/src/doc/unstable-book/src/relaxed-adts.md
@@ -0,0 +1 @@
+# relaxed_adts
diff --git a/src/doc/unstable-book/src/repr-simd.md b/src/doc/unstable-book/src/repr-simd.md
new file mode 100644
index 00000000000..c313fbf3649
--- /dev/null
+++ b/src/doc/unstable-book/src/repr-simd.md
@@ -0,0 +1 @@
+# repr_simd
diff --git a/src/doc/unstable-book/src/rustc-attrs.md b/src/doc/unstable-book/src/rustc-attrs.md
new file mode 100644
index 00000000000..e021588a717
--- /dev/null
+++ b/src/doc/unstable-book/src/rustc-attrs.md
@@ -0,0 +1 @@
+# rustc_attrs
diff --git a/src/doc/unstable-book/src/rustc-diagnostic-macros.md b/src/doc/unstable-book/src/rustc-diagnostic-macros.md
new file mode 100644
index 00000000000..d213cd86192
--- /dev/null
+++ b/src/doc/unstable-book/src/rustc-diagnostic-macros.md
@@ -0,0 +1 @@
+# rustc_diagnostic_macros
diff --git a/src/doc/unstable-book/src/sanitizer-runtime.md b/src/doc/unstable-book/src/sanitizer-runtime.md
new file mode 100644
index 00000000000..c0e78d47001
--- /dev/null
+++ b/src/doc/unstable-book/src/sanitizer-runtime.md
@@ -0,0 +1 @@
+# sanitizer_runtime
diff --git a/src/doc/unstable-book/src/simd-ffi.md b/src/doc/unstable-book/src/simd-ffi.md
new file mode 100644
index 00000000000..72b9c9f5e68
--- /dev/null
+++ b/src/doc/unstable-book/src/simd-ffi.md
@@ -0,0 +1 @@
+# simd_ffi
diff --git a/src/doc/unstable-book/src/simd.md b/src/doc/unstable-book/src/simd.md
new file mode 100644
index 00000000000..1053fb68710
--- /dev/null
+++ b/src/doc/unstable-book/src/simd.md
@@ -0,0 +1 @@
+# simd
diff --git a/src/doc/unstable-book/src/slice-patterns.md b/src/doc/unstable-book/src/slice-patterns.md
new file mode 100644
index 00000000000..6a3c9c91f2f
--- /dev/null
+++ b/src/doc/unstable-book/src/slice-patterns.md
@@ -0,0 +1 @@
+# slice_patterns
diff --git a/src/doc/unstable-book/src/specialization.md b/src/doc/unstable-book/src/specialization.md
new file mode 100644
index 00000000000..3d15a9b650c
--- /dev/null
+++ b/src/doc/unstable-book/src/specialization.md
@@ -0,0 +1 @@
+# specialization
diff --git a/src/doc/unstable-book/src/staged-api.md b/src/doc/unstable-book/src/staged-api.md
new file mode 100644
index 00000000000..e5ee5216d0d
--- /dev/null
+++ b/src/doc/unstable-book/src/staged-api.md
@@ -0,0 +1 @@
+# staged_api
diff --git a/src/doc/unstable-book/src/start.md b/src/doc/unstable-book/src/start.md
new file mode 100644
index 00000000000..7513c0aece3
--- /dev/null
+++ b/src/doc/unstable-book/src/start.md
@@ -0,0 +1 @@
+# start
diff --git a/src/doc/unstable-book/src/static-nobundle.md b/src/doc/unstable-book/src/static-nobundle.md
new file mode 100644
index 00000000000..138f53e6af9
--- /dev/null
+++ b/src/doc/unstable-book/src/static-nobundle.md
@@ -0,0 +1 @@
+# static_nobundle
diff --git a/src/doc/unstable-book/src/static-recursion.md b/src/doc/unstable-book/src/static-recursion.md
new file mode 100644
index 00000000000..07309eb4fb8
--- /dev/null
+++ b/src/doc/unstable-book/src/static-recursion.md
@@ -0,0 +1 @@
+# static_recursion
diff --git a/src/doc/unstable-book/src/stmt-expr-attributes.md b/src/doc/unstable-book/src/stmt-expr-attributes.md
new file mode 100644
index 00000000000..033c324af3d
--- /dev/null
+++ b/src/doc/unstable-book/src/stmt-expr-attributes.md
@@ -0,0 +1 @@
+# stmt_expr_attributes
diff --git a/src/doc/unstable-book/src/struct-field-attributes.md b/src/doc/unstable-book/src/struct-field-attributes.md
new file mode 100644
index 00000000000..9aa5ac35f8e
--- /dev/null
+++ b/src/doc/unstable-book/src/struct-field-attributes.md
@@ -0,0 +1 @@
+# struct_field_attributes
diff --git a/src/doc/unstable-book/src/structural-match.md b/src/doc/unstable-book/src/structural-match.md
new file mode 100644
index 00000000000..af6e0efdb41
--- /dev/null
+++ b/src/doc/unstable-book/src/structural-match.md
@@ -0,0 +1 @@
+# structural_match
diff --git a/src/doc/unstable-book/src/target-feature.md b/src/doc/unstable-book/src/target-feature.md
new file mode 100644
index 00000000000..b2188ea11b1
--- /dev/null
+++ b/src/doc/unstable-book/src/target-feature.md
@@ -0,0 +1 @@
+# target_feature
diff --git a/src/doc/unstable-book/src/the-unstable-book.md b/src/doc/unstable-book/src/the-unstable-book.md
new file mode 100644
index 00000000000..92ccbcae920
--- /dev/null
+++ b/src/doc/unstable-book/src/the-unstable-book.md
@@ -0,0 +1 @@
+# The Unstable Book
diff --git a/src/doc/unstable-book/src/thread-local.md b/src/doc/unstable-book/src/thread-local.md
new file mode 100644
index 00000000000..acfc7b21af5
--- /dev/null
+++ b/src/doc/unstable-book/src/thread-local.md
@@ -0,0 +1 @@
+# thread_local
diff --git a/src/doc/unstable-book/src/trace-macros.md b/src/doc/unstable-book/src/trace-macros.md
new file mode 100644
index 00000000000..daaac68bab3
--- /dev/null
+++ b/src/doc/unstable-book/src/trace-macros.md
@@ -0,0 +1 @@
+# trace_macros
diff --git a/src/doc/unstable-book/src/type-ascription.md b/src/doc/unstable-book/src/type-ascription.md
new file mode 100644
index 00000000000..9b7c80c5b92
--- /dev/null
+++ b/src/doc/unstable-book/src/type-ascription.md
@@ -0,0 +1 @@
+# type_ascription
diff --git a/src/doc/unstable-book/src/unboxed-closures.md b/src/doc/unstable-book/src/unboxed-closures.md
new file mode 100644
index 00000000000..af14ea15db4
--- /dev/null
+++ b/src/doc/unstable-book/src/unboxed-closures.md
@@ -0,0 +1 @@
+# unboxed_closures
diff --git a/src/doc/unstable-book/src/untagged-unions.md b/src/doc/unstable-book/src/untagged-unions.md
new file mode 100644
index 00000000000..b50331aa93d
--- /dev/null
+++ b/src/doc/unstable-book/src/untagged-unions.md
@@ -0,0 +1 @@
+# untagged_unions
diff --git a/src/doc/unstable-book/src/unwind-attributes.md b/src/doc/unstable-book/src/unwind-attributes.md
new file mode 100644
index 00000000000..3f5dfa43bbb
--- /dev/null
+++ b/src/doc/unstable-book/src/unwind-attributes.md
@@ -0,0 +1 @@
+# unwind_attributes
diff --git a/src/doc/unstable-book/src/use-extern-macros.md b/src/doc/unstable-book/src/use-extern-macros.md
new file mode 100644
index 00000000000..1d880435f4e
--- /dev/null
+++ b/src/doc/unstable-book/src/use-extern-macros.md
@@ -0,0 +1 @@
+# use_extern_macros
diff --git a/src/doc/unstable-book/src/windows-subsystem.md b/src/doc/unstable-book/src/windows-subsystem.md
new file mode 100644
index 00000000000..a549acac675
--- /dev/null
+++ b/src/doc/unstable-book/src/windows-subsystem.md
@@ -0,0 +1 @@
+# windows_subsystem
diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs
index 1bed3e27847..b7be084fa0b 100644
--- a/src/libsyntax/feature_gate.rs
+++ b/src/libsyntax/feature_gate.rs
@@ -91,11 +91,14 @@ macro_rules! declare_features {
     }
 }
 
-// If you change this list without updating src/doc/reference.md, @cmr will be sad
+// If you change this, please modify src/doc/unstable-book as well.
+//
 // Don't ever remove anything from this list; set them to 'Removed'.
+//
 // The version numbers here correspond to the version in which the current status
 // was set. This is most important for knowing when a particular feature became
 // stable (active).
+//
 // NB: The featureck.py script parses this information directly out of the source
 // so take care when modifying it.
 
@@ -385,7 +388,9 @@ declare_features! (
     // Allows field shorthands (`x` meaning `x: x`) in struct literal expressions.
     (accepted, field_init_shorthand, "1.17.0", Some(37340)),
 );
-// (changing above list without updating src/doc/reference.md makes @cmr sad)
+// If you change this, please modify src/doc/unstable-book as well. You must
+// move that documentation into the relevant place in the other docs, and
+// remove the chapter on the flag.
 
 #[derive(PartialEq, Copy, Clone, Debug)]
 pub enum AttributeType {