# Brson's "someday" list

**URL:** <https://internals.rust-lang.org/t/brsons-someday-list/3948>\
**Category:** Uncategorized\
**Created:** [August 29, 2016, 4:37pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948 "2016-08-29T16:37:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [August 29, 2016, 4:37pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/1 "2016-08-29T16:37:35Z")

</div>

There’s so much to do, y’know? Personally, I can’t ever catch up. It’s just physically and temporaly impossible. So my “todo” list spills into my “someday” list, and that ultimately turns into an “oh well, I guess this will never happen” list.

So here’s an experiment. This morning I triaged my someday list to remove everything that is grossly out of date, and to ensure that what remains makes vague sense and/or is actionable by somebody other than myself. I’m posting it here in hopes that is useful to others. If even one of these gets done as a result that seems like success. And I’ll endeavor to continue spilling my todo list into this thread in the future.

Everything on here is either important for Rust or was important to me personally at one time, but never rises to the level of “important enough to work on today”. If anything here strikes you as interesting I’d encourage you to do it. If you have questions about what anything means, feel free to ask and I’ll clarify.

## brson’s “someday” list (high priority)

- finish anthology
- start rust on fuchsia project
- update cargo crusader so it works again
- outline possibilities for getting more rust funding
- teach cargobomb to print rustc version in every run
- fix skeptic linkage issue [https://github.com/brson/rust-skeptic/issues/18](https://github.com/brson/rust-skeptic/issues/18)
- solicit cargobomb help
- create 1.0 crate scoreboard
- write irlo post about triage opportunities
- initiate project to serdify crates
- find somebody else to do release milestone predictions
- write release checklist
- switch rustup to use the win-msvc host by default
- do panic\_fmt stabilization rfc
- update smoke in terms of cross [https://github.com/japaric/smoke](https://github.com/japaric/smoke)
- extract cargo\_home / home\_dir into their own crate
  - update rustup, cargo, cargo-index-tool

- look for project management assistant
- solicit ‘this release in rust’
- ask for help running cargobombs
- advance ‘train the trainer’ idea
- solicit help on cookbook design
- help budziq with cookbook recipe ideas
- write fast scrypt library
  - corrode the fastest c scrypt implementation and convert it to safe rust?

- update platform support page with richer info about which are tested
- teach cargobomb to print rustc version in every run
- fix skeptic linkage issue [https://github.com/brson/rust-skeptic/issues/18](https://github.com/brson/rust-skeptic/issues/18)
- solicit cargobomb help
- upload libz blitz videos to youtube
- create 1.0 crate scoreboard
- conduct research project on structuring projects for contribution
- extract ‘create\_dir\_racy’ crate from rustbuild
- document interfaces that are not-really stable
- port cargobomb to windows
- add stdx ci testing
- install more things in cargobomb docker container
- write security roadmap
- write release qa checklist
- investigate rustup disk usage during transactions
- change rustup to panic=abort
- write rust packaging guidelines
- get rustup working via powershell one-liner
- add cargo-template quickstart instructions to error-chain docs
- set up static linking for msvc rustc
- fix rustup windows dojob issue (make cargo and rustup use the same dojob code)
- simple crates in need - extract these from rustup/cargo and share
  - copy\_dir
  - remove\_dir\_all
  - dojob
  - flock
  - symlink\_dir
  - homedir

- implement the update framework
- investigate aws deployment and bindings in rust
- implement tuf [https://github.com/rust-lang-nursery/rustup.rs/issues/241#issuecomment-253394566](https://github.com/rust-lang-nursery/rustup.rs/issues/241#issuecomment-253394566)
- do 1.13 relnotes
- create beta/nightly testing system for rust projects via travis/appveyor
  - maybe inspired by [https://github.com/ember-cli/ember-try](https://github.com/ember-cli/ember-try)
  - reporting to the mothership
  - create list of projects and help authors deploy it

- continue work on platform abstraction layer
- create rust-wasm showcase site (maybe [http://www.hellorust.com/emscripten/](http://www.hellorust.com/emscripten/))
- write some easy fmt rfcs [https://github.com/rust-lang-nursery/fmt-rfcs/issues?utf8=✓&q=is%3Aopen%20is%3Aissue%20label%3AE-easy](https://github.com/rust-lang-nursery/fmt-rfcs/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3AE-easy)
- make P-high changes - either introduce release milestones or add P-critical
- loosen bootstrap key logic [https://github.com/rust-lang/rust/issues/36548](https://github.com/rust-lang/rust/issues/36548)
- fix emscripten unwinding and unimplemented symbols
  - [https://github.com/rust-lang/rust/issues/36514](https://github.com/rust-lang/rust/issues/36514)
  - [https://github.com/rust-lang/rust/issues/36515](https://github.com/rust-lang/rust/issues/36515)

- investigate emscripten patch without fastcomp [https://github.com/rust-lang/rust/issues/36356](https://github.com/rust-lang/rust/issues/36356)
- organize bors-next effort
  - [https://github.com/rust-community/bors](https://github.com/rust-community/bors)
  - [https://github.com/rust-community/team/issues/58](https://github.com/rust-community/team/issues/58)
  - [https://github.com/AelitaBot/aelita](https://github.com/AelitaBot/aelita)
  - [http://github.com/servo/homu](http://github.com/servo/homu)
  - @locks, @booya, @notriddle, @aLi, @frewsxcv, @Manishearth

- follow up on bitcode issue [https://github.com/rust-lang/rust/issues/35968](https://github.com/rust-lang/rust/issues/35968)
- write packaging guidelines [https://github.com/rust-lang/rust/issues/29563](https://github.com/rust-lang/rust/issues/29563)
- convert niko’s tutorial deck to an HTML format [https://github.com/nikomatsakis/rust-tutorials-keynote](https://github.com/nikomatsakis/rust-tutorials-keynote)
- continue producing weekly project changelogs (like [https://users.rust-lang.org/t/rust-project-changelog-for-2016-07-15/6555](https://users.rust-lang.org/t/rust-project-changelog-for-2016-07-15/6555))
- write up ideal rust reporting/accounting/triage procedures
- update and maintain regression sheet [https://docs.google.com/spreadsheets/d/1t3Wb77\_hNsfnD2ZsCRiBaMYCw3qBQoVhUyP9hPNiczg/edit#gid=0](https://docs.google.com/spreadsheets/d/1t3Wb77_hNsfnD2ZsCRiBaMYCw3qBQoVhUyP9hPNiczg/edit#gid=0)
- weekly compiler-perf report
- document rustup source code installation in rustup README
- write up infra thoughts and roadmap for irlo
- cross-platform application demo
  - demonstrate cross-platform application with core logic in Rust
  - mac/win/linux/ios/android
  - with ui in the native language/api
  - unit testing on all platforms
  - integrate most comon rust libraries

- cross-platform testing project
  - nightly regression testing for all rust targets
  - multiple profiles
    - std ([good progress on this here](https://internals.rust-lang.org/t/brsons-someday-list/3948/12)).
    - std + core platform libraries (log, etc)

- “rust reps”
  - each rep gets a kit
  - “ask me about rust” t-shirts - reps only
  - bag of rust stickers
  - rust rep / community-team “business” cards
  - 1-sheet talking points and outreach guidance

- follow through on release cycle milestones [Release cycle milestones and P-high](https://internals.rust-lang.org/t/release-cycle-milestones-and-p-high/3920)
- `cargo test` for cross-targets, maybe `xargo test`
- rustup cross testing [https://github.com/rust-lang-nursery/rustup.rs/issues/690](https://github.com/rust-lang-nursery/rustup.rs/issues/690)
- make [forge.rust-lang.org](http://forge.rust-lang.org) more visible
  - move platform support list out of the book into forge, linked from book

- crater2
  - run tests
  - windows
  - test rust code not published to [crates.io](http://crates.io)

- put [docs.rs](http://docs.rs) link on www docs page [https://docs.rs](https://docs.rs) ([done](https://github.com/rust-lang/rust-www/pull/532))
- write new single-text file plan to rustup checksum issue
  - [https://github.com/rust-lang-nursery/rustup.rs/issues/346](https://github.com/rust-lang-nursery/rustup.rs/issues/346)

- rename .multirust [https://github.com/rust-lang-nursery/rustup.rs/issues/537](https://github.com/rust-lang-nursery/rustup.rs/issues/537)
- write rustup roadmap
- write cross-compile roadmap
- write mir2wasm roadmap
- write rusty-dash roadmap
- prototype new version of Error trait that solves known problems
  - [Why can't I `impl\<E\> From\<E\> for EzError where E: StdError + Send`?](https://internals.rust-lang.org/t/why-cant-i-impl-e-from-e-for-ezerror-where-e-stderror-send/3857)
  - [https://github.com/rust-lang/rust/issues/35943](https://github.com/rust-lang/rust/issues/35943)

- write 1.12 release notes
- write up opinion of issue tracker tag meanings ([done](https://internals.rust-lang.org/t/how-the-rust-issue-tracker-works/3951/2)).
- add test running to crater
- propose variance testing tool [Std variance testing](https://internals.rust-lang.org/t/std-variance-testing/3865)
- create rustup ui feedback thread
- write RFC about alternatives to lock poisoning [https://github.com/rust-lang/rust/issues/35092](https://github.com/rust-lang/rust/issues/35092)
- rustup feature request: upgrade notifications
- start kudos thread [https://github.com/rust-community/team/issues/51](https://github.com/rust-community/team/issues/51)
- follow up on rand crate [Rand crate brainstorming (minimal API in std?)](https://internals.rust-lang.org/t/rand-crate-brainstorming-minimal-api-in-std/3731/2)
- make mir2wasm releases
- investigate tuf for rustup [https://github.com/rust-lang-nursery/rustup.rs/issues/241](https://github.com/rust-lang-nursery/rustup.rs/issues/241)
- solicit help with “ring + ed25519” signatures for rust [https://github.com/rust-lang-nursery/rustup.rs/issues/241](https://github.com/rust-lang-nursery/rustup.rs/issues/241)
- fix rustup PATH setup [https://github.com/rust-lang-nursery/rustup.rs/issues/371](https://github.com/rust-lang-nursery/rustup.rs/issues/371)
- refactor rustup installer code [https://github.com/rust-lang-nursery/rustup.rs/issues/253#issuecomment-234386411](https://github.com/rust-lang-nursery/rustup.rs/issues/253#issuecomment-234386411)
- drive fs::read\_to\_string [https://github.com/rust-lang/rust/issues/34857](https://github.com/rust-lang/rust/issues/34857)
- write new perf testing framework for pull requests
- post thread of compiler perf improvement ideas
- convert rustup notifications to logs
- write ‘getting started with error-chain’ blog post
- write RFC to add authors field to RFCs
- rustup upgrade tests [https://github.com/rust-lang-nursery/rustup.rs/issues/480](https://github.com/rust-lang-nursery/rustup.rs/issues/480)
- finish standard library comparison [https://docs.google.com/spreadsheets/d/1cWzulriPQOimUBK\_EowRO8rM-g977DLOq773wZAgFkw/edit?pref=2&pli=1](https://docs.google.com/spreadsheets/d/1cWzulriPQOimUBK_EowRO8rM-g977DLOq773wZAgFkw/edit?pref=2&pli=1)
- continue work on rust-z [https://github.com/brson/rust-z](https://github.com/brson/rust-z)
- do infra security audit

## brson’s “someday” list (low priority)

- do a new “annotated std”
- work on rust-timeline (timeline of rust history)
- rebrand ‘thanks’ thread
- write a post about rust jobs [http://rustjobs.rs/](http://rustjobs.rs/)
- conduct research project on structuring projects for contribution
- upload libz blitz videos to youtube
- update platform support page with richer info about which are tested
- run emscriptenized tests under cargobomb
- do standard library survey
- getopts 1.0
- do a linux distro rust/cargo/firefox packaging summary
  - status of all three packages in many distros
  - upstream package urls
  - get updates from packagers
  - irlo thread

- cfg-ize servo to remove js, opengl, etc.
- run bloaty mcbloatface on rust stuff [https://github.com/google/bloaty](https://github.com/google/bloaty)
- teach rustup to install with no toolchain
- update basic-http-server to use modern crates
- set up better tracking of regressions - use version-specific tags?
- create a local (non-Send) alloc/collections crate
- [update research papers on the forge](https://gist.github.com/brson/45247b36c02be45a1b8c425f3714d765)
- update rust highlight definitions for benchmark game [http://www.andre-simon.de/doku/highlight/en/highlight.php](http://www.andre-simon.de/doku/highlight/en/highlight.php)
- update basic-http-server to use modern crates
- set up better tracking of regressions - use version-specific tags?
- create a local (non-Send) alloc/collections crate
- [update research papers on the forge](https://gist.github.com/brson/45247b36c02be45a1b8c425f3714d765)
- update rust highlight definitions for benchmark game [http://www.andre-simon.de/doku/highlight/en/highlight.php](http://www.andre-simon.de/doku/highlight/en/highlight.php)
- run custom shootout server with additional nightly benchmarks
- write hello.exe size test
- switch default rustup to -gnu
- do analysis of servo crash fixes vs firefox crash fixes
- propose proprietary Rust testing service
- file issue about cap-lints + macro expansion re [https://github.com/rust-lang/rust/issues/38977](https://github.com/rust-lang/rust/issues/38977)
- fix rust-skeptic resolve bug
- document error-chain backtrace feature
- link rustc statically on windows
- create mostly-Rust userspace from [https://github.com/docker-library/busybox](https://github.com/docker-library/busybox)
- convert FreeRTOS to Rust
- write LAPACK -\> Rust transpiler
- look at emscripten bug [https://github.com/rust-lang/rust/issues/37130](https://github.com/rust-lang/rust/issues/37130)
- make issue about reducing giant rustc stacks
- write typescript / spidermonkey bindings for tokio
- commission rust artworks
- investigate opportunities for a lustre-like in Rust
  - [http://www-verimag.imag.fr/The-Lustre-Programming-Language.html](http://www-verimag.imag.fr/The-Lustre-Programming-Language.html)

- post twir ideas to urlo
- follow up on oo question [https://github.com/rust-lang/rust-www/issues/476](https://github.com/rust-lang/rust-www/issues/476)
- move rustup release staging off master [https://github.com/rust-lang-nursery/rustup.rs/issues/582](https://github.com/rust-lang-nursery/rustup.rs/issues/582)
- put temple-of-rust logo on a t-shirt on teespring
- contact fuschia team about rust
- extract rustup self\_update module [https://github.com/rust-lang-nursery/rustup.rs/issues/678](https://github.com/rust-lang-nursery/rustup.rs/issues/678)
- investigate temple-of-rust pendants
- create a wouldnt-it-be-great-if thread for strategic project ideas
- write community-funding kickstarter proposal
- publish rustup download crate
- do something with discourse feedback [https://users.rust-lang.org/t/feedback-on-discourse-u-rlo-and-i-rlo/6166/17](https://users.rust-lang.org/t/feedback-on-discourse-u-rlo-and-i-rlo/6166/17)
- work on tystack, efficient stack-based language compiled to rust

---

<div class="post-metadata">

**Author:** ![leonardo](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/leonardo/32/1344_2.png) [@leonardo](https://internals.rust-lang.org/u/leonardo)\
**Post date:** [August 29, 2016, 4:48pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/2 "2016-08-29T16:48:21Z")

</div>

> [@brson](#):
>
> prototype new version of Error trait that solves known problems

Do you have more info on this?

> [@brson](#):
>
> write RFC about alternatives to lock poisoning [Add fs::read\_to\_string · Issue #34857 · rust-lang/rust · GitHub](https://github.com/rust-lang/rust/issues/34857)

This link could be wrong.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [August 29, 2016, 5:13pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/3 "2016-08-29T17:13:01Z")

</div>

@leonardo

I added these two links to the error handling item:

- [Why can't I `impl\<E\> From\<E\> for EzError where E: StdError + Send`?](https://internals.rust-lang.org/t/why-cant-i-impl-e-from-e-for-ezerror-where-e-stderror-send/3857)
- [https://github.com/rust-lang/rust/issues/35943](https://github.com/rust-lang/rust/issues/35943)

But basically what I want to do is take the in-tree Error trait and put it in its own crate, name it `Error2` perhaps, then create various crates around it that prove it can support all the patterns one might want, some of which are discussed in the linked threads, some of which are just notions in my head that may be lost already. The end result I want though is that other people can write support crates that allow the easiest-possible error handling solutions for newbies and those that don’t want to think hard about it. Potential requirements: it is possible to define an error type in one crate, and reuse it conveniently in other crates; don’t need to define a local error type or variants, but can reuse other crates error types; don’t need to define any conversions to support `?` (i.e. box everything); preserve the cause chain with minimal work (ala error-chain).

Then see if its possible to create easy conversions between `Error` and `Error2` so that `Error2` can be viable without merging into std as `Error` and breaking the world.

Fixed the poisoning link.

---

<div class="post-metadata">

**Author:** ![jntrnr](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/jntrnr/32/3046_2.png) [@jntrnr](https://internals.rust-lang.org/u/jntrnr)\
**Post date:** [August 29, 2016, 8:24pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/4 "2016-08-29T20:24:33Z")

</div>

Do you have a loose bucketing of priorities for these items? Might be good to have them grouped by “top priority”, “second-highest priority”, etc

---

<div class="post-metadata">

**Author:** ![cbreeden](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/cbreeden/32/7014_2.png) [@cbreeden](https://internals.rust-lang.org/u/cbreeden)\
**Post date:** [August 29, 2016, 11:30pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/5 "2016-08-29T23:30:47Z")

</div>

Or someday, some later day, someday much later 😂

---

<div class="post-metadata">

**Author:** ![withoutboats](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/withoutboats/32/4560_2.png) [@withoutboats](https://internals.rust-lang.org/u/withoutboats)\
**Post date:** [August 30, 2016, 12:13am UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/6 "2016-08-30T00:13:46Z")

</div>

> [@brson](#):
>
> write community-funding kickstarter proposal

What is this (in brief)?

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [August 30, 2016, 5:02pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/7 "2016-08-30T17:02:45Z")

</div>

> [@jntrnr](#):
>
> Do you have a loose bucketing of priorities for these items? Might be good to have them grouped by "top priority", "second-highest priority", etc

I've split it into high/low.

> [@withoutboats](#):
>
> What is this (in brief)?

It's important for funding of Rust development to diversify, and right now there is no directed action toward this goal. One potentially engaging option is to explore whether it's possible to kickstart any amount of Rust feature work. Consider that community is Rust's strength and we have high visibility on social media compared to many software projects. Though software is hard to crowd-fund we may have a chance. Figuring out how to formulate it in a successful way would be tricky: need to have an especially inspiring pitch; the kinds of devs with the skills to have a big short-term impact on Rust can demand a high price.

My best idea on this front is to ahead of time discuss in the community the most impactful way to spend a 3 month contract, get lots of buy in and excitement. Make arrangements with one of the many talented students who work on Rust and have a strong reputation to complete a 3 month project for some (relatively low) fixed price. As students they can tolerate lower income and have motivation to do a high-profile contract as a prestigious resume builder. They would have to be prepared for extreme scrutiny.

We have a lot of experience with contracting for Rust so there's some evidence we could pull it off.

If we could do it once successfully on a very small scale, then we could build off that success to do it over and over.

High risk and a lot of effort just to plan.

---

<div class="post-metadata">

**Author:** ![Ericson2314](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/ericson2314/32/246_2.png) [@Ericson2314](https://internals.rust-lang.org/u/Ericson2314)\
**Post date:** [August 31, 2016, 6:33pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/8 "2016-08-31T18:33:02Z")

</div>

> write cross-compile roadmap

I'd do that, though I have about 2 weeks before my time for side things will shrink a lot.

> contact fuschia team about rust

That sounds fun!

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [August 31, 2016, 10:24pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/9 "2016-08-31T22:24:17Z")

</div>

> [@Ericson2314](#):
>
> I'd do that, though I have about 2 weeks before my time for side things will shrink a lot.

That would be amazing. Even just a rough sketch would help.

---

<div class="post-metadata">

**Author:** ![Ericson2314](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/ericson2314/32/246_2.png) [@Ericson2314](https://internals.rust-lang.org/u/Ericson2314)\
**Post date:** [September 1, 2016, 7:53am UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/10 "2016-09-01T07:53:31Z")

</div>

I don’t know what timescale you were thinking, but my long-term roadmap for cross-compilation “done right” is:

1. stdlib deps RFC
2. needs-provides for panic and allocating
3. `cargo build -p std` just works.
4. Cargo always use metadata of hashed content of package with [deterministic tarball hash](https://github.com/rust-lang/cargo/issues/2948) (content-addressed, so works for all dependency types).
5. Mozilla signs that metadata of stdlib crates, Cargo tells stable rust to use unstable features on mozilla-signed crates.
6. Cargo learns how to use global target dir—deterministic as described above metadata helps avoid collisions, sysroot mock binary source becomes just another cargo target dir as far as Cargo is concerned
7. Done! std will be transparently built only the first time compiling for a new target.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [September 1, 2016, 8:03pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/11 "2016-09-01T20:03:08Z")

</div>

Thanks @Ericson2314. That’s a great start! I’ll try to augment that with my thoughts soon.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [September 1, 2016, 8:05pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/12 "2016-09-01T20:05:31Z")

</div>

New someday tasks (updated in the op):

- document rustup source code installation in rustup README
- write up infra thoughts and roadmap for irlo
- cross-platform application demo
  - demonstrate cross-platform application with core logic in Rust
  - mac/win/linux/ios/android
  - with ui in the native language/api
  - unit testing on all platforms
  - integrate most comon rust libraries

- cross-platform testing project
  - nightly regression testing for all rust targets
  - multiple profiles
    - std
    - std + core platform libraries (log, etc)

- “rust reps”
  - each rep gets a kit
  - “ask me about rust” t-shirts - reps only
  - bag of rust stickers
  - rust rep / community-team “business” cards
  - 1-sheet talking points and outreach guidance

- follow through on release cycle milestones [Release cycle milestones and P-high](https://internals.rust-lang.org/t/release-cycle-milestones-and-p-high/3920)
- `cargo test` for cross-targets, maybe `xargo test`
- rustup cross testing [https://github.com/rust-lang-nursery/rustup.rs/issues/690](https://github.com/rust-lang-nursery/rustup.rs/issues/690)
- make [forge.rust-lang.org](http://forge.rust-lang.org) more visible
  - move platform support list out of the book into forge, linked from book

- crater2
  - run tests
  - windows
  - test rust code not published to [crates.io](http://crates.io)

- put [docs.rs](http://docs.rs) link on www docs page [https://docs.rs](https://docs.rs)
- write new single-text file plan to rustup checksum issue
  - [https://github.com/rust-lang-nursery/rustup.rs/issues/346](https://github.com/rust-lang-nursery/rustup.rs/issues/346)

- rename .multirust [https://github.com/rust-lang-nursery/rustup.rs/issues/537](https://github.com/rust-lang-nursery/rustup.rs/issues/537)

---

<div class="post-metadata">

**Author:** ![BatmanAoD](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/batmanaod/32/1512_2.png) [@BatmanAoD](https://internals.rust-lang.org/u/BatmanAoD)\
**Post date:** [September 2, 2016, 4:48am UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/13 "2016-09-02T04:48:16Z")

</div>

What kind of people are you picturing as “Rust reps”, and what needs to be done to organize this? I think I understand Rust philosophically and am eager to use it more, and in fact I’ve nicknamed myself “Rust evangelist” on my company’s internal IM client. However, I haven’t actually done any coding in Rust beyond some tutorials, because we currently use C++ at work, and my family life has been pretty all-consuming outside of work these last few years.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [September 2, 2016, 9:22pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/14 "2016-09-02T21:22:08Z")

</div>

@BatmanAoD Regarding “Rust reps”, the kernel of the idea came from a conversation I had with @Manishearth where he mentioned that he was at a non-Rust related Mozilla event, and people were excited to talk to him about Rust. And I have that experience a fair bit too - I tell people I work on Rust and they’re excited to hear about it. So it seems to me there’s a lot of recognition we could achieve just by having Rust folks seen in various relevant social settings.

So the way I pictured it is that we would have people just get out and attend the normal industry events they usually would (though maybe more-so - I know I don’t get out enough), and be known as “the Rust guy/girl”. In particular, we’re in a phase where we’re in a period where we’re trying to [raise the profile of Rust in the Mozilla community](https://discourse.mozilla-community.org/t/activate-mozilla-dive-into-rust/10073), so I figured we would start by just having Rust folks go to Mozilla events (there are a lot of them). That’s really safe: they would be welcome there and not have much risk of coming off as pushy sales people. We could of course also think about expanding to all sorts of events in relevant industries.

The big risk though with such an imitative is representing Rust _poorly_. It’s easy for evangelism to turn into salesmanship or zealotry, and some already have a negative opinion of the boundless enthusiasm of Rust fans. So we’d want to make sure reps were well prepared with an approach that is consistent with Rust values.

---

<div class="post-metadata">

**Author:** ![japaric](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/japaric/32/28_2.png) [@japaric](https://internals.rust-lang.org/u/japaric)\
**Post date:** [September 3, 2016, 5:13pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/15 "2016-09-03T17:13:58Z")

</div>

> [@brson](#):
>
> cross-platform testing project

I've been working on something like this. Basically, docker + travis + appveyor to test as many (cross) targets as possible. The repository is [here](https://github.com/japaric/smoke). So far I count a test coverage of 21 of 49 targets.

My original goal was to create something where we could test our binary releases of std because, right now, those are untested on most platforms but I guess this could be turned into a general purpose cross testing framework for other Rust projects.

---

<div class="post-metadata">

**Author:** ![BatmanAoD](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/batmanaod/32/1512_2.png) [@BatmanAoD](https://internals.rust-lang.org/u/BatmanAoD)\
**Post date:** [September 4, 2016, 4:57pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/16 "2016-09-04T16:57:28Z")

</div>

That makes sense.

I do think that the really big problem right now is incorrect _assumptions_ about Rust based on what little people have heard about it. For instance, in [a discussion](http://disq.us/p/155ve3f) in which I was criticizing C++14’s failure to permit `std::function` to contain a `std::unqiue_ptr` (or any other non-copyable object), someone was defending C++ by stating that my original design had a “logical” error, and that in fact [“given the pedal-to-the-metal nature of C++, this specific issue is unavoidable”](http://disq.us/p/156bu5v). (This idea among the C++ community that all of its flaws are _necessary_ flaws for a “power language” is frighteningly prevalent.) I explained that this issue _would_ be avoidable if `std::function` supported move-semantics, and that this gave me the feeling that C++'s move-semantics are a “tacked-on” part of the language rather than a core part of the design as in Rust. The person responded by saying that [his “theory” was that Rust handles this situation is “garbage-collected pointers”](http://disq.us/p/156c2ex). I of course explained that Rust _does not_ have garbage collection, but I think the discussion highlights a fairly common misunderstanding–that memory-safe languages _necessarily_ use garbage collection. And in the C++ community, garbage collection seems to be anathema (despite the fact that Bjarne Stroustrup has stated that he has no doubt C++ will some day incorporate garbage collection–a prediction I think is actually pretty unlikely).

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [September 6, 2016, 6:41pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/17 "2016-09-06T18:41:09Z")

</div>

> [@japaric](#):
>
> I've been working on something like this. Basically, docker + travis + appveyor to test as many (cross) targets as possible. The repository is here. So far I count a test coverage of 21 of 49 targets.

@japaric Yay, this is exactly what I was hoping for! Do you know why so many targets are red (and why the badge says the build is passing)? I updated the op to link to your project.

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [September 6, 2016, 6:44pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/18 "2016-09-06T18:44:02Z")

</div>

I’ve updated the op with the following new tasks:

- write packaging guidelines [https://github.com/rust-lang/rust/issues/29563](https://github.com/rust-lang/rust/issues/29563)
- convert niko’s tutorial deck to an HTML format [https://github.com/nikomatsakis/rust-tutorials-keynote](https://github.com/nikomatsakis/rust-tutorials-keynote)
- continue producing weekly project changelogs (like [https://users.rust-lang.org/t/rust-project-changelog-for-2016-07-15/6555](https://users.rust-lang.org/t/rust-project-changelog-for-2016-07-15/6555))
- write up ideal rust reporting/accounting/triage procedures
- update and maintain regression sheet [https://docs.google.com/spreadsheets/d/1t3Wb77\_hNsfnD2ZsCRiBaMYCw3qBQoVhUyP9hPNiczg/edit#gid=0](https://docs.google.com/spreadsheets/d/1t3Wb77_hNsfnD2ZsCRiBaMYCw3qBQoVhUyP9hPNiczg/edit#gid=0)
- weekly compiler-perf report
- commission rust artworks
- investigate opportunities for a lustre-like in Rust
  - [http://www-verimag.imag.fr/The-Lustre-Programming-Language.html](http://www-verimag.imag.fr/The-Lustre-Programming-Language.html)

---

<div class="post-metadata">

**Author:** ![japaric](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/japaric/32/28_2.png) [@japaric](https://internals.rust-lang.org/u/japaric)\
**Post date:** [September 7, 2016, 2:23am UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/19 "2016-09-07T02:23:43Z")

</div>

> Do you know why so many targets are red?

So right now I'm running all these tests on all the non-windows targets:

- `println!("Hello, world!")`
- `panic!()`
- Basic unit testing: #[test], #[should\_panic]
- `catch_panic`
- [libc\_test](https://github.com/rust-lang/libc/tree/master/libc-test)
- unit tests of each standard crate (e.g. libcollectionstest)

The current HEAD of the repository now runs _all_ these tests even if one of them fails (I basically re-implemented `make`'s "keep going" flag) and report at the end which tests failed (if any). That report looks like this:

```rust
FAILURES
--------
std.debug
std.release
libc_test

```

That's for the `aarch64-unknown-linux-gnu`.

So far I'm seeing the targets fail for these reasons:

- `catch_panic`: this doesn't work on the i686-musl target. This is a legit failure and has been [reported](https://github.com/rust-lang/rust/issues/35599) to the rust-lang/rust issue tracker.
- libc\_test: these seem to be due to the glibc/toolchain version I'm using. Note that the test suite doesn't actually fail, instead it doesn't even compile (compiling libc-test involves compiling an auto-generated C file, that file doesn't compile). Most of the targets that appear as failing in my repo pass the test suite on the libc repo, but the libc repo is using older glibcs/toolchains. cf. rust-lang/libc#23 and rust-lang/libc#357
- QEMU is broken for this arch: This is the case for powerpc64le. qemu-ppc64le segfaults when I try to run any binary for this architecture. cf. [Debian bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813698)
- libstd's unit tests segfault: This only happens on cross targets whose unit tests are run under QEMU. And I think these may be false positive caused by QEMU limitation of handling several threads. Because I've tested a few of these targets locally (also under QEMU) but running only the test that fails (instead of the whole test suite) and on some runs the test passes and on some runs the test segfaults. NOTE that in all cases (also in the repository), I always run unit tests with `RUST_TEST_THREADS=1` to limit the number of unit tests that runs concurrently to one but a single unit test may still spawn several threads.
- libstd's unit tests hang: Pretty much the same as above. I think this may be caused by QEMU.

These are the libstd unit tests I've seen fail so far:

```rust
fs::tests::canonicalize_works_simple
net::tcp::tests::connect_loopback
net::tcp::tests::multiple_connect_interleaved_greedy_schedule
net::tcp::tests::set_nonblocking
sync::mpsc::tests::stress_recv_timeout_shared

```

I've yet to dig deeper into these unit tests to figure out which are real failures and which are false positives with 100% certainty though.

The good news is that all the other standard crates (libcoretest, librand, etc) pass their test suites with 100% success on all the targets 🎉.

> and why the badge says the build is passing

I think you were observing the build result of a branch that was not yet merged. The badge is no longer green now :-).

---

<div class="post-metadata">

**Author:** ![brson](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/brson/32/5197_2.png) [@brson](https://internals.rust-lang.org/u/brson)\
**Post date:** [September 7, 2016, 2:45pm UTC](https://internals.rust-lang.org/t/brsons-someday-list/3948/20 "2016-09-07T14:45:16Z")

</div>

Thanks for the details. This is great stuff.

[Next page](https://internals.rust-lang.org/t/brsons-someday-list/3948.md?page=2)
