Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove the pipes compiler #8170

Closed
wants to merge 1 commit into from
Closed

Remove the pipes compiler #8170

wants to merge 1 commit into from

Commits on Aug 1, 2013

  1. Remove the pipes compiler

    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.
    brson committed Aug 1, 2013
    5 Configuration menu
    Copy the full SHA
    4b3e766 View commit details
    Browse the repository at this point in the history