Document all features #9

Closed
chriskrycho opened this Issue Mar 11, 2017 · 44 comments

Comments

Projects
None yet
@chriskrycho
Contributor

chriskrycho commented Mar 11, 2017

Overview

Tracking issue for RFC #1636. Let's make the reference a reliable resource for all Rustaceans! 馃帀 This might seem intimidating, but the reality is that if we just chip away at it together, we'll be done in no time!

I'm going to be updating this parent issue with a master list of items that need to be documented in the reference as I find them. Quoting the RFC text:

Updating the reference should proceed stepwise:

  1. Begin by adding an appendix in the reference with links to all accepted RFCs which have been implemented but are not yet referenced in the documentation.
  2. As the reference material is written for each of those RFC features, remove it from that appendix.

Note that step 1 should be fairly straightforward; the main issue will be assembling the list of accepted-and-implemented-but-undocumented RFCs. (Also, any RFCs accepted before RFC 1636 but not yet stabilized should presumably be documented under the rules it establishes, but if I'm wrong about that, someone should let me know and I'll include them as well.)

Also, a pre-emptive apology for the scale of this issue description. We have let things get into a rough spot. (I plan to create documentation issues for each of the required items below once this list is completed, so this thread doesn't become completely unmanageable.)

Status: Last updated May 13, 2017, now processing a copy of @Eh2406's wonderful gist based on @matthewjasper's fork here.

"How Can I Help?"

For right now, since you can't submit updates to the issue directly, there are two major ways you can help:

  1. Write documentation. For the RFCs already triaged and filed under the major section C. Documentation Needed and specifically the subsection 2. Write reference material for undocumented, implemented, stabilized RFC features below, you can open a pull request and reference this issue in its description. I'll keep an eye out for inbound links here and add those links to the relevant items, and once they're merged, we'll mark that item as done.

  2. Triage issues. Work the gist where I'm tracking the triaged-state, specifically looking at the Not Reviewed at All and Stabilized, Not Reviewed sections and evaluating whether they're documented or not. You can fork the gist and I will keep an eye out, checking roughly daily, for any changes to merge back into that document. (Do take a look at what others may have forked it so you don't duplicate work needlessly!) I'll then pull those over into this master issue.

    When working through those, if you determine that they're already documented, please leave a note (and link!) on your copy of the gist as to where so I can link it in this document. That dramatically decreases the time it takes me to confirm it鈥擨 double-check all of these.

A. Tracking

(This section will go away entirely once all of the RFCs have been flagged for documenting or marked documentation-not-needed here.)

RFCs reviewed

Currently: 115/301

  • 0001-private-fields.md
  • 0002-rfc-process.md
  • 0003-attribute-usage.md
  • 0008-new-intrinsics.md
  • 0016-more-attributes.md
  • 0019-opt-in-builtin-traits.md
  • 0026-remove-priv.md
  • 0034-bounded-type-parameters.md
  • 0040-libstd-facade.md
  • 0042-regexps.md
  • 0048-traits.md
  • 0049-match-arm-attributes.md
  • 0050-assert.md
  • 0059-remove-tilde.md
  • 0060-rename-strbuf.md
  • 0063-module-file-system-hierarchy.md
  • 0066-better-temporary-lifetimes.md
  • 0068-const-unsafe-pointers.md
  • 0069-ascii-literals.md
  • 0071-const-block-expr.md
  • 0079-undefined-struct-layout.md
  • 0086-plugin-registrar.md
  • 0092-struct-grammar.md
  • 0093-remove-format-intl.md
  • 0109-remove-crate-id.md
  • 0112-remove-cross-borrowing.md
  • 0115-rm-integer-fallback.md
  • 0123-share-to-threadsafe.md
  • 0131-target-specification.md
  • 0132-ufcs.md
  • 0135-where.md
  • 0139-remove-cross-borrowing-entirely.md
  • 0155-anonymous-impl-only-in-same-module.md
  • 0164-feature-gate-slice-pats.md
  • 0179-and-mut-patterns.md
  • 0184-tuple-accessors.md
  • 0199-ownership-variants.md
  • 0202-subslice-syntax-change.md
  • 0214-while-let.md
  • 0218-empty-struct-with-braces.md
  • 0230-remove-runtime.md
  • 0240-unsafe-api-location.md
  • 0235-collections-conventions.md
  • 0236-error-conventions.md
  • 0256-remove-refcounting-gc-of-t.md
  • 0341-remove-virtual-structs.md
  • 0342-keywords.md
  • 0344-conventions-galore.md
  • 0356-no-module-prefixes.md
  • 0379-remove-reflection.md
  • 0385-module-system-cleanup.md
  • 0390-enum-namespacing.md
  • 0403-cargo-build-command.md
  • 0430-finalizing-naming-conventions.md
  • 0445-extension-trait-conventions.md
  • 0446-es6-unicode-escapes.md
  • 0450-un-feature-gate-some-more-gates.md
  • 0495-array-pattern-changes.md
  • 0505-api-comment-conventions.md
  • 0507-release-channels.md
  • 0520-new-array-repeat-syntax.md
  • 0531-define-rfc-scope.md
  • 0533-no-array-elem-moves.md
  • 0544-rename-int-uint.md
  • 0556-raw-lifetime.md
  • 0558-require-parentheses-for-chained-comparisons.md
  • 0560-integer-overflow.md
  • 0563-remove-ndebug.md
  • 0565-show-string-guidelines.md
  • 0803-type-ascription.md
  • 1054-str-words.md
  • 1057-io-error-sync.md
  • 1058-slice-tail-redesign.md
  • 1066-safe-mem-forget.md
  • 1068-rust-governance.md
  • 1096-remove-static-assert.md
  • 1102-rename-connect-to-join.md
  • 1105-api-evolution.md
  • 1119-result-expect.md
  • 1122-language-semver.md
  • 1123-str-split-at.md
  • 1131-likely-intrinsic.md
  • 1199-simd-infrastructure.md
  • 1214-projections-lifetimes-and-wf.md
  • 1242-rust-lang-crates.md
  • 1317-ide.md
  • 1331-grammar-is-canonical.md
  • 1358-repr-align.md
  • 1398-kinds-of-allocators.md
  • 1432-replace-slice.md
  • 1566-proc-macros.md
  • 1567-long-error-codes-explanation-normalization.md
  • 1574-more-api-documentation-conventions.md
  • 1576-macros-literal-matcher.md
  • 1589-rustc-bug-fix-procedure.md
  • 1590-macro-lifetimes.md
  • 1607-style-rfcs.md
  • 1618-ergonomic-format-args.md
  • 1620-regex-1.0.md
  • 1624-loop-break-value.md
  • 1636-document_all_features.md
  • 1640-duration-checked-sub.md
  • 1643-memory-model-strike-team.md
  • 1644-default-and-expanded-rustc-errors.md
  • 1665-windows-subsystem.md
  • 1683-docs-team.md
  • 1721-crt-static.md
  • 1725-unaligned-access.md
  • 1728-north-star.md
  • 1774-roadmap-2017.md
  • 1828-rust-bookshelf.md
  • 1845-shared-from-slice.md
  • 1860-manually-drop.md
  • 1869-eprintln.md
  • 1884-unstable-sort.md

RFCs unreviewed

  • 0085-pattern-macros.md
  • 0087-trait-bounds-with-plus.md
  • 0089-loadable-lints.md
  • 0090-lexical-syntax-simplification.md
  • 0100-partial-cmp.md
  • 0107-pattern-guards-with-bind-by-move.md
  • 0111-index-traits.md
  • 0114-closures.md
  • 0116-no-module-shadowing.md
  • 0130-box-not-special.md
  • 0136-no-privates-in-public.md
  • 0141-lifetime-elision.md
  • 0151-capture-by-value.md
  • 0160-if-let.md
  • 0168-mod.md
  • 0169-use-path-as-id.md
  • 0192-bounds-on-object-and-generic-types.md
  • 0194-cfg-syntax.md
  • 0195-associated-items.md
  • 0198-slice-notation.md
  • 0201-error-chaining.md
  • 0212-restore-int-fallback.md
  • 0213-defaulted-type-params.md
  • 0216-collection-views.md
  • 0221-panic.md
  • 0231-upvar-capture-inference.md
  • 0234-variants-namespace.md
  • 0241-deref-conversions.md
  • 0243-trait-based-exception-handling.md
  • 0246-const-vs-static.md
  • 0255-object-safety.md
  • 0320-nonzeroing-dynamic-drop.md
  • 0326-restrict-xXX-to-ascii.md
  • 0339-statically-sized-literals.md
  • 0369-num-reform.md
  • 0378-expr-macros.md
  • 0380-stabilize-std-fmt.md
  • 0387-higher-ranked-trait-bounds.md
  • 0401-coercions.md
  • 0404-change-prefer-dynamic.md
  • 0418-struct-variants.md
  • 0438-precedence-of-plus.md
  • 0439-cmp-ops-reform.md
  • 0447-no-unused-impl-parameters.md
  • 0453-macro-reform.md
  • 0458-send-improvements.md
  • 0459-disallow-shadowing.md
  • 0461-tls-overhaul.md
  • 0463-future-proof-literal-suffixes.md
  • 0469-feature-gate-box-patterns.md
  • 0474-path-reform.md
  • 0486-std-ascii-reform.md
  • 0490-dst-syntax.md
  • 0494-c_str-and-c_vec-stability.md
  • 0501-consistent_no_prelude_attributes.md
  • 0503-prelude-stabilization.md
  • 0504-show-stabilization.md
  • 0509-collections-reform-part-2.md
  • 0517-io-os-reform.md
  • 0522-self-impl.md
  • 0526-fmt-text-writer.md
  • 0528-string-patterns.md
  • 0529-conversion-traits.md
  • 0532-self-in-use.md
  • 0534-deriving2derive.md
  • 0546-Self-not-sized-by-default.md
  • 0550-macro-future-proofing.md
  • 0572-rustc-attribute.md
  • 0574-drain-range.md
  • 0580-rename-collections.md
  • 0587-fn-return-should-be-an-associated-type.md
  • 0592-c-str-deref.md
  • 0593-forbid-Self-definitions.md
  • 0599-default-object-bound.md
  • 0601-replace-be-with-become.md
  • 0639-discriminant-intrinsic.md
  • 0640-debug-improvements.md
  • 0702-rangefull-expression.md
  • 0735-allow-inherent-impls-anywhere.md
  • 0736-privacy-respecting-fru.md
  • 0738-variance.md
  • 0769-sound-generic-drop.md
  • 0771-std-iter-once.md
  • 0809-box-and-in-for-stdlib.md
  • 0823-hash-simplification.md
  • 0832-from-elem-with-love.md
  • 0839-embrace-extend-extinguish.md
  • 0840-no-panic-in-c-string.md Update 0840-no-panic-in-c-string.md
  • 0873-type-macros.md
  • 0879-small-base-lexing.md
  • 0888-compiler-fence-intrinsics.md
  • 0909-move-thread-local-to-std-thread.md
  • 0911-const-fn.md
  • 0921-entry_v3.md
  • 0940-hyphens-considered-harmful.md
  • 0953-op-assign.md
  • 0968-closure-return-type-syntax.md
  • 0979-align-splitn-with-other-languages.md
  • 0980-read-exact.md
  • 0982-dst-coercion.md
  • 1011-process.exit.md
  • 1014-stdout-existential-crisis.md
  • 1023-rebalancing-coherence.md
  • 1030-prelude-additions.md
  • 1040-duration-reform.md
  • 1044-io-fs-2.1.md
  • 1047-socket-timeouts.md
  • 1048-rename-soft-link-to-symlink.md
  • 1135-raw-pointer-comparisons.md
  • 1152-slice-string-symmetry.md
  • 1156-adjust-default-object-bounds.md
  • 1174-into-raw-fd-socket-handle-traits.md
  • 1183-swap-out-jemalloc.md
  • 1184-stabilize-no_std.md
  • 1191-hir.md
  • 1192-inclusive-ranges.md
  • 1193-cap-lints.md
  • 1194-set-recovery.md
  • 1200-cargo-install.md
  • 1201-naked-fns.md
  • 1210-impl-specialization.md
  • 1211-mir.md
  • 1212-line-endings.md
  • 1216-bang-type.md
  • 1219-use-group-as.md
  • 1228-placement-left-arrow.md
  • 1229-compile-time-asserts.md
  • 1236-stabilize-catch-panic.md
  • 1238-nonparametric-dropck.md
  • 1240-repr-packed-unsafe-ref.md
  • 1241-no-wildcard-deps.md
  • 1252-open-options.md
  • 1257-drain-range-2.md
  • 1260-main-reexport.md
  • 1268-allow-overlapping-impls-on-marker-traits.md
  • 1270-deprecation.md
  • 1288-time-improvements.md
  • 1291-promote-libc.md
  • 1298-incremental-compilation.md
  • 1300-intrinsic-semantics.md
  • 1307-osstring-methods.md
  • 1327-dropck-param-eyepatch.md
  • 1328-global-panic-handler.md
  • 1359-process-ext-unix.md
  • 1361-cargo-cfg-dependencies.md Add extension ".md
  • 1399-repr-pack.md
  • 1415-trim-std-os.md
  • 1419-slice-copy.md
  • 1422-pub-restricted.md
  • 1434-contains-method-for-ranges.md
  • 1440-drop-types-in-const.md
  • 1443-extended-compare-and-swap.md
  • 1444-union.md
  • 1445-restrict-constants-in-patterns.md Remove duplicate 0000-restrict-constants-in-patterns.md
  • 1461-net2-mutators.md
  • 1467-volatile.md
  • 1479-unix-socket.md
  • 1492-dotdot-in-patterns.md
  • 1498-ipv6addr-octets.md
  • 1504-int128.md
  • 1506-adt-kinds.md
  • 1510-cdylib.md Rename 1510-rdylib.md to 1510-cdylib.md
  • 1513-less-unwinding.md
  • 1521-copy-clone-semantics.md
  • 1522-conservative-impl-trait.md
  • 1525-cargo-workspace.md
  • 1535-stable-overflow-checks.md
  • 1542-try-from.md
  • 1543-integer_atomics.md
  • 1548-global-asm.md
  • 1552-contains-method-for-various-collections.md
  • 1559-attributes-with-literals.md
  • 1560-name-resolution.md
  • 1561-macro-naming.md
  • 1581-fused-iterator.md
  • 1623-static.md
  • 1649-atomic-access.md
  • 1653-assert_ne.md
  • 1660-try-borrow.md
  • 1679-panic-safe-slicing.md
  • 1681-macros-1.1.md
  • 1682-field-init-shorthand.md
  • 1696-discriminant.md
  • 1717-dllimport.md

B. Status unclear

Some of these are still in-flight; and some of them are just the kind of thing that I don't even fully grok yet well enough to see if they're documented. For these, unchecked means "status unknown"; checked means "status known and added to the latter bits appropriately."

C. Documentation needed

0. Accepted, not-yet-stabilized, undocumented RFCs

0.1. Document implemented, unstable RFCs

These should be considered the highest priority for documentation, as these are issues which fall under the rest of the rules of [RFC #1636], in that they need to be documented before stabilization. (That will presumably just happen before stabilizing as usual, but I'm including them here for completeness.)

  • #0086 plugin-registrar API
  • #0202: subslice syntax change -- implemented here, not stabilized; see discussion of [#0405] below under C.0.2.
  • #1131: Add an expect intrinsic
  • #1358: repr_align 鈥 implementation is in-progress, not yet landed on nightly
  • #1624: loop_break_value
  • #1665: Windows subsystem support

0.2. Track accepted, not-yet-implemented or implementation-in-progress, undocumented RFCs

These will eventually require documentation, but as they aren't even (fully) implemented yet, there is no urgency here.

1. List accepted, implemented, already-stabilized, undocumented RFCs

This list can be added directly to a newly(-to-be)-created appendix to the Reference.

  • Create the appendix (once finished, this list should do just fine, perhaps with some massaging for descriptiveness)

    • #0040: libstd-facade 鈥 there is one reference to the facade, in 6.3.13 Compiler Features under a discussion of #[no_std], but no explanation of its meaning. Nor, as far as I can tell, do the relevant sections of the standard library documentation explain this.
    • #0048: Trait reform聽鈥撀爏ome pieces of this are partially documented (the use of Self), but others aren't at all: coherence and orphan rules are covered nowhere. (Currently, the writeup here seems to be the best source on coherence?)
    • #0049: Allow attributes on match arms. 鈥撀爐he underlying idea is documented in 6.3 Attributes but the applicability to internal items is never specified.
    • #0131: Some but not all of the flags are documented in 6.3.8 Conditional compilation
    • #0132: Unambiguous function call syntax 鈥 not even mentioned
    • #0558: require parentheses for chained comparisons
    • #0560: Integer overflow not unsafe, documented with a reference to the RFC but requires further details
    • #1717: dllimport, one element mentioned but not explained at 6.3.5 FFI attributes
    • #1721: define crt_link
    • #1725: define unaligned_access

2. Write reference material for undocumented, implemented, stabilized RFC features

Each of the features listed above in (1) needs to be documented more formally in the reference.

  • #0040: libstd-facade
  • #0048: (#5) Trait reform, requires documenting coherence and orphan rules (overlaps with Coherence and Orphan rules below in 搂3)
  • #0049: Allow attributes on match arms: specify applicability to internal items
  • [#71]: (#13) Allow blocks in constants
  • #0131: Target specification 鈥 some but not all of these are in 6.3.8
  • #0132: Unambiguous/universal function call syntax 鈥 not even mentioned
  • #0179: &mut patterns 鈥 symmetry of pattern syntax not documented
  • #0558: (#41) require parentheses for chained comparisons 鈥 the requirement is not documented in the reference
  • #0560: Integer overflow not unsafe, documented with a reference to the RFC but requires further details
  • #1717: dllimport
  • #1721: crt_link
  • #1725: unaligned_access

3. Update out-of-date/incomplete sections of the reference

  • List of language items

    The set of language items is currently considered unstable. A complete list of the built-in language items will be added in the future.

  • Coherence

  • Orphan rules (#5)

  • Lifetime elision

D. Documentation not needed

0. Already documented

1. Retired

These items were accepted, but never implemented and not currently *planned* to be implemented and therefore not in need of documentation.
  • #0008: New intrinsics
  • #0112: Remove cross borrowing coercion. Replaced by the removal in #0139.
  • #0115: do not fall back to int if cannot infer integer; replaced with #0212.
  • #0155: only allow "anonymous impl" (impl Foo) in the same module as the data type is defined (struct Foo or mod Foo). Replaced by #0735.

2. Removals

Some items constitute not *additions to be documented* but *things removed* from the language. These do not require documentation (for obvious reasons!).
  • #0026: Remove the priv keyword
  • #0059: Remove ~ in favor of box and Box
  • #0063: Tighten restrictions on mod
  • #0093: Remove localization from format!
  • #0139: Remove cross borrowing entirely.
  • #0230: Remove runtime
  • #0256: Remove refcounting Gc<T> from stdlib
  • #0341: Remove "virtual struct"/struct inheritance feature
  • #0379: Remove reflection (libdebug, Poly trait, and an earlier version of :?, since repurposed)
  • #0385: Module system cleanup and simplification (current module rules are documented; these changes removed restrictions)
  • #0533: Remove support for moving individual elements into uninitialized arrays or out of fixed-sized arrays
  • #1096: Remove static_assert

3. Parser-specific

Some changes are specific to the parsing (though they affect the language). These should be documented not in the reference but in the language grammar.

4. Process and conventions

  • #0199: Conventions for ownership variants (naming conventions, mostly internal interest)
  • #0235: Conventions for collections and iterables (and a few other things)
  • #0236: Conventions for error handling
  • #0240: Conventions for unsafe API locations
  • #0344: Conventions for naming conventions: types in method names, iterator type names, iterator method names, getter/setter APIs, associated types, traits, lints, suffix ordering, and prelude traits.
  • #0356: Conventions for exported items (Io:Error, not Io::IoError)
  • #0430: Conventions for capitalization, underscores, and unwrap
  • #0445: Conventions for naming extension traits
  • #0505: Conventions for API docs for Rust projects (including the language)
  • #0507: Release channels
  • #0531: RFC scope and Rust "distribution" definition
  • #0556: Conventions for unsafe functions constructing references out of raw pointers
  • #1068: Scaling Rust's governance
  • #1105: API evolution and versioning guidelines
  • #1122: Rust language SemVer definitions
  • #1242: Policy for rust-lang GitHub organization crates governance
  • #1331: grammar: make the formal grammer canonical and formal 鈥 Note: I think this should probably be linked in the reference (as well as other places) once it's finished, and it's already linked from the head of the reference.
  • #1567: Normalize long error codes with a baseline template
  • #1574: More API Documentation Conventions
  • #1589: Define the rustc bugfix best practices
  • #1607: RFC process for formatting style and Rustfmt defaults (results will be captured in a non-reference document)
  • #1636: Document All Features (process) (this PR!)
  • #1643: Dedicated strike team to resolve unsafe code guidelines (results should be captured in the Reference, but this issue itself not so much)
  • #1644: Default and expanded errors for rustc
  • #1683: Create a docs subteam
  • #1728: North Star (process)
  • #1774: Roadmap for 2017
  • #1828: Rust bookshelf

5. Non-language features

  • #1317: Rust Language Server

Note: I've just copied over the original issue as it was鈥攚holesale. Note that some of the links here referencing things as "already documented" will degrade given the new structure of the book.

@mattico

This comment has been minimized.

Show comment
Hide comment
@mattico

mattico Mar 16, 2017

Also needs documenting: #[cfg(target_feature = "")]. I'll get around to it if I don't forget.

mattico commented Mar 16, 2017

Also needs documenting: #[cfg(target_feature = "")]. I'll get around to it if I don't forget.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Mar 29, 2017

Contributor

Sorry it took me so long to respond, @mattico鈥攖hanks for the note! I'll flag it as something to do when adding the other similar configurable compilation bits with e.g. #0131.

Contributor

chriskrycho commented Mar 29, 2017

Sorry it took me so long to respond, @mattico鈥攖hanks for the note! I'll flag it as something to do when adding the other similar configurable compilation bits with e.g. #0131.

@mrhota

This comment has been minimized.

Show comment
Hide comment
@mrhota

mrhota Mar 29, 2017

Contributor

Would it be useful to have a link in the nightly lang reference to this issue?

Contributor

mrhota commented Mar 29, 2017

Would it be useful to have a link in the nightly lang reference to this issue?

@steveklabnik

This comment has been minimized.

Show comment
Hide comment
@steveklabnik

steveklabnik Mar 29, 2017

Member

@mrhota that's a great idea!

Member

steveklabnik commented Mar 29, 2017

@mrhota that's a great idea!

@Eh2406

This comment has been minimized.

Show comment
Hide comment
@Eh2406

Eh2406 Mar 29, 2017

Note for anyone viewing this page there is a long list of RFC that still need the documentation status evaluated. I am happy to merge changes from forks of the gist.

Eh2406 commented Mar 29, 2017

Note for anyone viewing this page there is a long list of RFC that still need the documentation status evaluated. I am happy to merge changes from forks of the gist.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Mar 29, 2017

Contributor

Even simpler, let's have interested people fork my new copy of the original (for which a thousand thanks, @Eh2406!) and I can more easily merge them and track them myself!

Contributor

chriskrycho commented Mar 29, 2017

Even simpler, let's have interested people fork my new copy of the original (for which a thousand thanks, @Eh2406!) and I can more easily merge them and track them myself!

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Mar 29, 2017

Contributor

Update to above comment, @mattico: target_feature will be covered in #1199!

Contributor

chriskrycho commented Mar 29, 2017

Update to above comment, @mattico: target_feature will be covered in #1199!

@sunjay

This comment has been minimized.

Show comment
Hide comment
@sunjay

sunjay Mar 30, 2017

Member

Could you add something in the description for those of us who want to help but don't know what you want us to do? Right now all I see is a big list of stuff but I'm not sure what you want us to help with and how exactly you want us to go about it. This is a very monolithic issue and it's hard to know what to do if you haven't helped with this kind of thing before.

Member

sunjay commented Mar 30, 2017

Could you add something in the description for those of us who want to help but don't know what you want us to do? Right now all I see is a big list of stuff but I'm not sure what you want us to help with and how exactly you want us to go about it. This is a very monolithic issue and it's hard to know what to do if you haven't helped with this kind of thing before.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Mar 30, 2017

Contributor
Contributor

chriskrycho commented Mar 30, 2017

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Mar 30, 2017

Contributor

Note: This is integrated into the body of the issue as well; just adding it here so everyone who's watching the issue sees it via notification!

"How Can I Help?"

For right now, since you can't submit updates to the issue directly, there are two major ways you can help:

  1. Write documentation. For the RFCs already triaged and filed under the major section C. Documentation Needed and specifically the subsection 2. Write reference material for undocumented, implemented, stabilized RFC features below, you can open a pull request and reference this issue in its description. I'll keep an eye out for inbound links here and add those links to the relevant items, and once they're merged, we'll mark that item as done.

  2. Triage issues. Work the gist where I'm tracking the triaged-state, specifically looking at the Not Reviewed at All and Stabilized, Not Reviewed sections and evaluating whether they're documented or not. You can fork the gist and I will keep an eye out, checking roughly daily, for any changes to merge back into that document. (Do take a look at what others may have forked it so you don't duplicate work needlessly!) I'll then pull those over into this master issue.

    When working through those, if you determine that they're already documented, please leave a note (and link!) on your copy of the gist as to where so I can link it in this document. That dramatically decreases the time it takes me to confirm it鈥擨 double-check all of these.

Contributor

chriskrycho commented Mar 30, 2017

Note: This is integrated into the body of the issue as well; just adding it here so everyone who's watching the issue sees it via notification!

"How Can I Help?"

For right now, since you can't submit updates to the issue directly, there are two major ways you can help:

  1. Write documentation. For the RFCs already triaged and filed under the major section C. Documentation Needed and specifically the subsection 2. Write reference material for undocumented, implemented, stabilized RFC features below, you can open a pull request and reference this issue in its description. I'll keep an eye out for inbound links here and add those links to the relevant items, and once they're merged, we'll mark that item as done.

  2. Triage issues. Work the gist where I'm tracking the triaged-state, specifically looking at the Not Reviewed at All and Stabilized, Not Reviewed sections and evaluating whether they're documented or not. You can fork the gist and I will keep an eye out, checking roughly daily, for any changes to merge back into that document. (Do take a look at what others may have forked it so you don't duplicate work needlessly!) I'll then pull those over into this master issue.

    When working through those, if you determine that they're already documented, please leave a note (and link!) on your copy of the gist as to where so I can link it in this document. That dramatically decreases the time it takes me to confirm it鈥擨 double-check all of these.

@mrhota

This comment has been minimized.

Show comment
Hide comment
@mrhota

mrhota Apr 15, 2017

Contributor

@chriskrycho You can tick C.1 (or convert all the sub-bullets to boxes and tick them all!). See #35.

Contributor

mrhota commented Apr 15, 2017

@chriskrycho You can tick C.1 (or convert all the sub-bullets to boxes and tick them all!). See #35.

@ekse

This comment has been minimized.

Show comment
Hide comment
@ekse

ekse Apr 17, 2017

Contributor

@chriskrycho I opened a pull request for #558.

#41

Contributor

ekse commented Apr 17, 2017

@chriskrycho I opened a pull request for #558.

#41

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Apr 17, 2017

Contributor

@mrhota outstanding! I'll make that tweak in a bit. (There will be more to add, but it's an awesome start!)

@ekse 馃挜

Contributor

chriskrycho commented Apr 17, 2017

@mrhota outstanding! I'll make that tweak in a bit. (There will be more to add, but it's an awesome start!)

@ekse 馃挜

@ekse

This comment has been minimized.

Show comment
Hide comment
@ekse

ekse Apr 17, 2017

Contributor

#41 has been merged (thanks @steveklabnik), you can tick "#0558: require parentheses for chained comparisons 鈥 the requirement is not documented in the reference".

Contributor

ekse commented Apr 17, 2017

#41 has been merged (thanks @steveklabnik), you can tick "#0558: require parentheses for chained comparisons 鈥 the requirement is not documented in the reference".

@matthewjasper

This comment has been minimized.

Show comment
Hide comment
@matthewjasper

matthewjasper May 8, 2017

Collaborator

@chriskrycho I think that I've got all of the simple RFCs done in the gist now, and have categories and links for just about everything else to help anyone wanting to check the more complicated RFCs more carefully.

Collaborator

matthewjasper commented May 8, 2017

@chriskrycho I think that I've got all of the simple RFCs done in the gist now, and have categories and links for just about everything else to help anyone wanting to check the more complicated RFCs more carefully.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho May 8, 2017

Contributor
Contributor

chriskrycho commented May 8, 2017

@sanmai-NL

This comment has been minimized.

Show comment
Hide comment
@sanmai-NL

sanmai-NL May 23, 2017

rust-lang/rfcs#1869 can be ticked off as well.

sanmai-NL commented May 23, 2017

rust-lang/rfcs#1869 can be ticked off as well.

@mrhota

This comment has been minimized.

Show comment
Hide comment
@mrhota

mrhota May 26, 2017

Contributor

@chriskrycho OK, you can check off C.2 UFCS discussion: see #45

Contributor

mrhota commented May 26, 2017

@chriskrycho OK, you can check off C.2 UFCS discussion: see #45

@dhardy

This comment has been minimized.

Show comment
Hide comment
@dhardy

dhardy Jun 3, 2017

Contributor

#1624 loop_break_value is done

Contributor

dhardy commented Jun 3, 2017

#1624 loop_break_value is done

@mrhota

This comment has been minimized.

Show comment
Hide comment
@mrhota

mrhota Jun 5, 2017

Contributor

@chriskrycho another one! merged #44, so you can check off C.2 integer overflow. Also, remember to check off C.2 Unambiguous function call syntax since we resolved that with #45

Contributor

mrhota commented Jun 5, 2017

@chriskrycho another one! merged #44, so you can check off C.2 integer overflow. Also, remember to check off C.2 Unambiguous function call syntax since we resolved that with #45

@brson

This comment has been minimized.

Show comment
Hide comment
@brson

brson Jun 9, 2017

Contributor

I checked off integer overflow, ufcs, loop/break, and windows subsystem.

Contributor

brson commented Jun 9, 2017

I checked off integer overflow, ufcs, loop/break, and windows subsystem.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Jun 10, 2017

Contributor

Thanks @brson @mrhota @dhardy @sanmai-NL!

My vacation was far more productive than I planned in non-Rust categories, in that we bought a house; but accordingly less productive here. Current goal is to spend at least one hour every week working on this going forward. Here's hoping. 馃槈

Contributor

chriskrycho commented Jun 10, 2017

Thanks @brson @mrhota @dhardy @sanmai-NL!

My vacation was far more productive than I planned in non-Rust categories, in that we bought a house; but accordingly less productive here. Current goal is to spend at least one hour every week working on this going forward. Here's hoping. 馃槈

@lukaramu

This comment has been minimized.

Show comment
Hide comment
@lukaramu

lukaramu Aug 12, 2017

Looks like the tracking list hasn't been updated in a while, it's missing the following RFCs:

  • 1414-rvalue_static_promotion.md
  • 1558-closure-to-fn-coercion.md
  • 1584-macros.md
  • 1647-allow-self-in-where-clauses.md
  • 1651-movecell.md
  • 1685-deprecate-anonymous-parameters.md
  • 1695-add-error-macro.md
  • 1733-trait-alias.md
  • 1758-repr-transparent.md
  • 1789-as-cell.md
  • 1824-crates.io-default-ranking.md
  • 1849-non-static-type-id.md
  • 1857-stabilize-drop-order.md
  • 1859-try-trait.md
  • 1861-extern-types.md
  • 1866-more-readable-assert-eq.md
  • 1868-portability-lint.md
  • 1937-ques-in-main.md
  • 1940-must-use-functions.md
  • 1946-intra-rustdoc-links.md
  • 1951-expand-impl-trait.md
  • 1969-cargo-prepublish.md
  • 1974-global-allocators.md
  • 1985-tiered-browser-support.md
  • 2005-match-ergonomics.md
  • 2027-object_safe_for_dispatch.md
  • 2033-experimental-coroutines.md
  • 2044-license-rfcs.md
  • 2057-refcell-replace.md

Looks like the tracking list hasn't been updated in a while, it's missing the following RFCs:

  • 1414-rvalue_static_promotion.md
  • 1558-closure-to-fn-coercion.md
  • 1584-macros.md
  • 1647-allow-self-in-where-clauses.md
  • 1651-movecell.md
  • 1685-deprecate-anonymous-parameters.md
  • 1695-add-error-macro.md
  • 1733-trait-alias.md
  • 1758-repr-transparent.md
  • 1789-as-cell.md
  • 1824-crates.io-default-ranking.md
  • 1849-non-static-type-id.md
  • 1857-stabilize-drop-order.md
  • 1859-try-trait.md
  • 1861-extern-types.md
  • 1866-more-readable-assert-eq.md
  • 1868-portability-lint.md
  • 1937-ques-in-main.md
  • 1940-must-use-functions.md
  • 1946-intra-rustdoc-links.md
  • 1951-expand-impl-trait.md
  • 1969-cargo-prepublish.md
  • 1974-global-allocators.md
  • 1985-tiered-browser-support.md
  • 2005-match-ergonomics.md
  • 2027-object_safe_for_dispatch.md
  • 2033-experimental-coroutines.md
  • 2044-license-rfcs.md
  • 2057-refcell-replace.md
@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Aug 12, 2017

Contributor

Thank you very much @lukaramu!

And status update for everyone else: I ended up in a surprising spot as maintainer of ember-cli-typescript and that ate my summer. I'm close to getting that stable and coming back to this.

Contributor

chriskrycho commented Aug 12, 2017

Thank you very much @lukaramu!

And status update for everyone else: I ended up in a surprising spot as maintainer of ember-cli-typescript and that ate my summer. I'm close to getting that stable and coming back to this.

@Havvy Havvy added the Enhancement label Sep 24, 2017

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Dec 30, 2017

Collaborator

I'm confused both as to what the statuses are (what do stabilized and reviewed mean?) and where the current work is.

Collaborator

alercah commented Dec 30, 2017

I'm confused both as to what the statuses are (what do stabilized and reviewed mean?) and where the current work is.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Dec 30, 2017

Contributor
Contributor

chriskrycho commented Dec 30, 2017

This was referenced Dec 30, 2017

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Jan 6, 2018

Collaborator

Any progress? I'd like to start trying to submit PRs for easier RFCs.

Collaborator

alercah commented Jan 6, 2018

Any progress? I'd like to start trying to submit PRs for easier RFCs.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Jan 6, 2018

Contributor
Contributor

chriskrycho commented Jan 6, 2018

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Jan 20, 2018

Collaborator

Is there anything I can do to help you out at this point?

Collaborator

alercah commented Jan 20, 2018

Is there anything I can do to help you out at this point?

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Jan 21, 2018

Contributor
Contributor

chriskrycho commented Jan 21, 2018

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Jan 21, 2018

Collaborator

Unfortunately I'm on the wrong continent at the moment!

I'm sorry to hear about your family, I hope things go well. I look forward to getting things sorted. When you do, would it perhaps make sense to file a bug for each RFC?

Collaborator

alercah commented Jan 21, 2018

Unfortunately I'm on the wrong continent at the moment!

I'm sorry to hear about your family, I hope things go well. I look forward to getting things sorted. When you do, would it perhaps make sense to file a bug for each RFC?

@Eh2406

This comment has been minimized.

Show comment
Hide comment
@Eh2406

Eh2406 Jan 21, 2018

People can at any time fined a RFC that is not documented and make a pr to improve the documentation. That is not dependent on this organisation getting updated.

Eh2406 commented Jan 21, 2018

People can at any time fined a RFC that is not documented and make a pr to improve the documentation. That is not dependent on this organisation getting updated.

@mrhota

This comment has been minimized.

Show comment
Hide comment
@mrhota

mrhota Jan 21, 2018

Contributor

@alercah just a thought: could you provide a snapshot or summary of where this issue currently is, accounting for all comments and stuff? That would probably take some pressure off @chriskrycho since he could then just copy your snapshot/summary into the OP when he gets a free moment.

Come to think of it, if you want to work on it together, I'm going to get on IRC in the #rust-docs channel. I recently wanted to summarize this issue myself, and I'm feeling inspired now.

Contributor

mrhota commented Jan 21, 2018

@alercah just a thought: could you provide a snapshot or summary of where this issue currently is, accounting for all comments and stuff? That would probably take some pressure off @chriskrycho since he could then just copy your snapshot/summary into the OP when he gets a free moment.

Come to think of it, if you want to work on it together, I'm going to get on IRC in the #rust-docs channel. I recently wanted to summarize this issue myself, and I'm feeling inspired now.

@mrhota

This comment has been minimized.

Show comment
Hide comment
@mrhota

mrhota Jan 21, 2018

Contributor

ok, @chriskrycho, I'm updating your gist in my fork here. Hopefully it'll be easy to incorporate the updates into your copy. I'm also incorporating changes from other forks of your gist, so you'll just be able to copy over changes from mine.

Contributor

mrhota commented Jan 21, 2018

ok, @chriskrycho, I'm updating your gist in my fork here. Hopefully it'll be easy to incorporate the updates into your copy. I'm also incorporating changes from other forks of your gist, so you'll just be able to copy over changes from mine.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Jan 21, 2018

Contributor
Contributor

chriskrycho commented Jan 21, 2018

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Jan 31, 2018

Collaborator

I've added a new project to help track things more easily, and am moving data from @mrhota's Gist over to it. Proposed instructions to use are in #220.

Collaborator

alercah commented Jan 31, 2018

I've added a new project to help track things more easily, and am moving data from @mrhota's Gist over to it. Proposed instructions to use are in #220.

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Jan 31, 2018

Collaborator

I've now put all the "needs review" RFCs in, except for ones which I poked at and they completely obviously didn't (either not stable or not related to the language).

Collaborator

alercah commented Jan 31, 2018

I've now put all the "needs review" RFCs in, except for ones which I poked at and they completely obviously didn't (either not stable or not related to the language).

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Jan 31, 2018

Contributor
Contributor

chriskrycho commented Jan 31, 2018

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Jan 31, 2018

Collaborator

I removed all the unstable RFCs from the Needs Review column, since they'll get docs as part of their work. A few I moved into the Awaiting column, and a few I closed as unrelated since they were obviously e.g. library-only PRs.

Collaborator

alercah commented Jan 31, 2018

I removed all the unstable RFCs from the Needs Review column, since they'll get docs as part of their work. A few I moved into the Awaiting column, and a few I closed as unrelated since they were obviously e.g. library-only PRs.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Jan 31, 2018

Contributor

GitHub needs a "You're my hero!" response-moji.

Contributor

chriskrycho commented Jan 31, 2018

GitHub needs a "You're my hero!" response-moji.

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Feb 7, 2018

Collaborator

I've gone through and added all the ones marked as needing documentation, up to but not including the "Macros" section on the Gist. Only a few left.

Collaborator

alercah commented Feb 7, 2018

I've gone through and added all the ones marked as needing documentation, up to but not including the "Macros" section on the Gist. Only a few left.

@alercah

This comment has been minimized.

Show comment
Hide comment
@alercah

alercah Apr 3, 2018

Collaborator

I've opened a bigger issue for macros, and linked the relevant RFCs, since macro documentation is sorely lacking. The remaining ones in "It's complicated..." are either library-only or documented to the extent that they need to be in the reference, so no need to do further work. I would say the Gist is now fully ported into the issue tracker & project page. I propose closing this issue.

Collaborator

alercah commented Apr 3, 2018

I've opened a bigger issue for macros, and linked the relevant RFCs, since macro documentation is sorely lacking. The remaining ones in "It's complicated..." are either library-only or documented to the extent that they need to be in the reference, so no need to do further work. I would say the Gist is now fully ported into the issue tracker & project page. I propose closing this issue.

@chriskrycho

This comment has been minimized.

Show comment
Hide comment
@chriskrycho

chriskrycho Apr 3, 2018

Contributor

馃憦 Thank you so much for picking up where I left off, not least b/c I never got back to it. 馃槶 I'm in favor of closing if everyone else working on this is satisfied that it is indeed full ported into the issue tracker!

Contributor

chriskrycho commented Apr 3, 2018

馃憦 Thank you so much for picking up where I left off, not least b/c I never got back to it. 馃槶 I'm in favor of closing if everyone else working on this is satisfied that it is indeed full ported into the issue tracker!

@steveklabnik

This comment has been minimized.

Show comment
Hide comment
@steveklabnik

steveklabnik Apr 4, 2018

Member

This is awesome! I agree, looks like you've gotten everything. Let's close.

Member

steveklabnik commented Apr 4, 2018

This is awesome! I agree, looks like you've gotten everything. Let's close.

@markmmm markmmm referenced this issue in GuillaumeGomez/this-week-in-rust-docs May 13, 2018

Closed

Link for "Document all features in the Rust reference" is outdated? #150

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment