about summary refs log tree commit diff
path: root/src/rt/sync/timer.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-01 14:37:31 -0700
committerbors <bors@rust-lang.org>2013-08-01 14:37:31 -0700
commiteb5743bfb2f634d2f5c8ef484a04e63d1a24cef6 (patch)
tree96074b5281a6b4cbcb36cc5739768eca457dc5ef /src/rt/sync/timer.cpp
parent82b24559e6aa0914f8a49e0a9dbfb3cf35372515 (diff)
parent4b3e766ac6a6f89430b65a5bc2f55bb29f6290ab (diff)
downloadrust-eb5743bfb2f634d2f5c8ef484a04e63d1a24cef6.tar.gz
rust-eb5743bfb2f634d2f5c8ef484a04e63d1a24cef6.zip
auto merge of #8170 : brson/rust/nopipes, r=pcwalton
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` protcol  and
  the unbounded `stream` protocol 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.

Concerned parties may include: @graydon, @pcwalton, @eholk, @bblum

The most likely candidates for closing are #7666, #3018, #3020, #7021, #7667, #7303, #3658, #3295.
Diffstat (limited to 'src/rt/sync/timer.cpp')
0 files changed, 0 insertions, 0 deletions