Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The pipes compiler produced data types that encoded efficient and safe bounded message passing protocols between two endpoints. It was also capable of producing unbounded protocols. It was useful research but was arguably done before its proper time. I am removing it for the following reasons: * In practice we used it only for producing the `oneshot` and `stream` unbounded protocols and all communication in Rust use those. * The interface between the proto! macro and the standard library has a large surface area and was difficult to maintain through language and library changes. * It is now written in an old dialect of Rust and generates code which would likely be considered non-idiomatic. * Both the compiler and the runtime are difficult to understand, and likewise the relationship between the generated code and the library is hard to understand. Debugging is difficult. * The new scheduler implements `stream` and `oneshot` by hand in a way that will be significantly easier to maintain. This shouldn't be taken as an indication that 'channel protocols' for Rust are not worth pursuing again in the future.
- Loading branch information
4b3e766
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
saw approval from pcwalton
at brson@4b3e766
4b3e766
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merging brson/rust/nopipes = 4b3e766 into auto
4b3e766
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
brson/rust/nopipes = 4b3e766 merged ok, testing candidate = eb5743b
4b3e766
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all tests pass:
success: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/669
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/672
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt/builds/674
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt-vg/builds/666
success: http://buildbot.rust-lang.org/builders/auto-mac-all-opt/builds/669
success: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/687
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt/builds/690
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/687
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt/builds/691
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt-vg/builds/696
success: http://buildbot.rust-lang.org/builders/auto-linux-all-opt/builds/689
success: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/671
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt/builds/686
success: http://buildbot.rust-lang.org/builders/auto-bsd-64-opt/builds/460
4b3e766
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fast-forwarding master to auto = eb5743b