1. 27 11月, 2013 1 次提交
  2. 25 11月, 2013 1 次提交
    • A
      Remove linked failure from the runtime · acca9e38
      Alex Crichton 提交于
      The reasons for doing this are:
      
      * The model on which linked failure is based is inherently complex
      * The implementation is also very complex, and there are few remaining who
        fully understand the implementation
      * There are existing race conditions in the core context switching function of
        the scheduler, and possibly others.
      * It's unclear whether this model of linked failure maps well to a 1:1 threading
        model
      
      Linked failure is often a desired aspect of tasks, but we would like to take a
      much more conservative approach in re-implementing linked failure if at all.
      
      Closes #8674
      Closes #8318
      Closes #8863
      acca9e38
  3. 19 11月, 2013 1 次提交
  4. 12 11月, 2013 2 次提交
    • A
      Move std::rt::io to std::io · 49ee4929
      Alex Crichton 提交于
      49ee4929
    • A
      Remove #[fixed_stack_segment] and #[rust_stack] · 7755ffd0
      Alex Crichton 提交于
      These two attributes are no longer useful now that Rust has decided to leave
      segmented stacks behind. It is assumed that the rust task's stack is always
      large enough to make an FFI call (due to the stack being very large).
      
      There's always the case of stack overflow, however, to consider. This does not
      change the behavior of stack overflow in Rust. This is still normally triggered
      by the __morestack function and aborts the whole process.
      
      C stack overflow will continue to corrupt the stack, however (as it did before
      this commit as well). The future improvement of a guard page at the end of every
      rust stack is still unimplemented and is intended to be the mechanism through
      which we attempt to detect C stack overflow.
      
      Closes #8822
      Closes #10155
      7755ffd0
  5. 09 11月, 2013 2 次提交
  6. 03 11月, 2013 1 次提交
    • C
      Rename files to match current recommendations. · 0369a41f
      Chris Morgan 提交于
      New standards have arisen in recent months, mostly for the use of
      rustpkg, but the main Rust codebase has not been altered to match these
      new specifications. This changeset rectifies most of these issues.
      
      - Renamed the crate source files `src/libX/X.rs` to `lib.rs`, for
        consistency with current styles; this affects extra, rustc, rustdoc,
        rustpkg, rustuv, std, syntax.
      
      - Renamed `X/X.rs` to `X/mod.rs,` as is now recommended style, for
        `std::num` and `std::terminfo`.
      
      - Shifted `src/libstd/str/ascii.rs` out of the otherwise unused `str`
        directory, to be consistent with its import path of `std::ascii`;
        libstd is flat at present so it's more appropriate thus.
      
      While this removes some `#[path = "..."]` directives, it does not remove
      all of them, and leaves certain other inconsistencies, such as `std::u8`
      et al. which are actually stored in `src/libstd/num/` (one subdirectory
      down). No quorum has been reached on this issue, so I felt it best to
      leave them all alone at present. #9208 deals with the possibility of
      making libstd more hierarchical (such as changing the crate to match the
      current filesystem structure, which would make the module path
      `std::num::u8`).
      
      There is one thing remaining in which this repository is not
      rustpkg-compliant: rustpkg would have `src/std/` et al. rather than
      `src/libstd/` et al. I have not endeavoured to change that at this point
      as it would guarantee prompt bitrot and confusion. A change of that
      magnitude needs to be discussed first.
      0369a41f
  7. 01 11月, 2013 1 次提交
  8. 29 10月, 2013 1 次提交
  9. 25 10月, 2013 1 次提交
    • A
      Remove even more of std::io · 61ed2cfb
      Alex Crichton 提交于
      Big fish fried here:
      
          extra::json
          most of the compiler
          extra::io_util removed
          extra::fileinput removed
      
      Fish left to fry
      
          extra::ebml
      61ed2cfb
  10. 24 10月, 2013 1 次提交
  11. 22 10月, 2013 1 次提交
  12. 20 10月, 2013 1 次提交
    • A
      Use __morestack to detect stack overflow · 6d8330af
      Alex Crichton 提交于
      This commit resumes management of the stack boundaries and limits when switching
      between tasks. This additionally leverages the __morestack function to run code
      on "stack overflow". The current behavior is to abort the process, but this is
      probably not the best behavior in the long term (for deails, see the comment I
      wrote up in the stack exhaustion routine).
      6d8330af
  13. 16 10月, 2013 2 次提交
    • K
      path2: Adjust the API to remove all the _str mutation methods · d6d9b926
      Kevin Ballard 提交于
      Add a new trait BytesContainer that is implemented for both byte vectors
      and strings.
      
      Convert Path::from_vec and ::from_str to one function, Path::new().
      
      Remove all the _str-suffixed mutation methods (push, join, with_*,
      set_*) and modify the non-suffixed versions to use BytesContainer.
      d6d9b926
    • K
      path2: Replace the path module outright · 73d3d00e
      Kevin Ballard 提交于
      Remove the old path.
      Rename path2 to path.
      Update all clients for the new path.
      
      Also make some miscellaneous changes to the Path APIs to help the
      adoption process.
      73d3d00e
  14. 09 10月, 2013 1 次提交
  15. 06 10月, 2013 1 次提交
    • A
      Implement feature-gating for the compiler · dd98f708
      Alex Crichton 提交于
      A few features are now hidden behind various #[feature(...)] directives. These
      include struct-like enum variants, glob imports, and macro_rules! invocations.
      
      Closes #9304
      Closes #9305
      Closes #9306
      Closes #9331
      dd98f708
  16. 05 10月, 2013 1 次提交
    • B
      rustc: Use static strings in a few literals · 9ac175c5
      blake2-ppc 提交于
      Avoid allocating extra copies of strings by using "" instead of ~"" for
      the debug options list and for the `time` function. This is a small
      change, but it is in a path that's always executed.
      9ac175c5
  17. 04 10月, 2013 1 次提交
    • A
      Document logging and remove old functions · 88593fc3
      Alex Crichton 提交于
      This adds a large doc-block to the top of the std::logging module explaining how
      to use it. This is mostly just making sure that all the information in the
      manual's section about logging is also here (in case someone decides to look
      into this module first).
      
      This also removes the old console_{on,off} methods. As far as I can tell, the
      functions were only used by the compiler, and there's no reason for them to be
      used because they're all turned off by default anyway (maybe they were turned on
      by default at some point...)
      
      I believe that this is the final nail in the coffin and closes #5021
      88593fc3
  18. 01 10月, 2013 1 次提交
  19. 27 9月, 2013 2 次提交
  20. 25 9月, 2013 1 次提交
    • B
      Don't use libc::exit. #9473 · 6d038973
      Brian Anderson 提交于
      This can cause unexpected errors in the runtime when done while
      scheduler threads are still initializing. Required some restructuring
      of the main_args functions in our libraries.
      6d038973
  21. 24 9月, 2013 2 次提交
  22. 22 9月, 2013 1 次提交
  23. 19 9月, 2013 1 次提交
  24. 18 9月, 2013 1 次提交
  25. 17 9月, 2013 1 次提交
  26. 10 9月, 2013 1 次提交
  27. 05 9月, 2013 1 次提交
  28. 01 9月, 2013 1 次提交
  29. 27 8月, 2013 1 次提交
    • A
      Rewrite pass management with LLVM · 73540551
      Alex Crichton 提交于
      Beforehand, it was unclear whether rust was performing the "recommended set" of
      optimizations provided by LLVM for code. This commit changes the way we run
      passes to closely mirror that of clang, which in theory does it correctly. The
      notable changes include:
      
      * Passes are no longer explicitly added one by one. This would be difficult to
        keep up with as LLVM changes and we don't guaranteed always know the best
        order in which to run passes
      * Passes are now managed by LLVM's PassManagerBuilder object. This is then used
        to populate the various pass managers run.
      * We now run both a FunctionPassManager and a module-wide PassManager. This is
        what clang does, and I presume that we *may* see a speed boost from the
        module-wide passes just having to do less work. I have no measured this.
      * The codegen pass manager has been extracted to its own separate pass manager
        to not get mixed up with the other passes
      * All pass managers now include passes for target-specific data layout and
        analysis passes
      
      Some new features include:
      
      * You can now print all passes being run with `-Z print-llvm-passes`
      * When specifying passes via `--passes`, the passes are now appended to the
        default list of passes instead of overwriting them.
      * The output of `--passes list` is now generated by LLVM instead of maintaining
        a list of passes ourselves
      * Loop vectorization is turned on by default as an optimization pass and can be
        disabled with `-Z no-vectorize-loops`
      73540551
  30. 23 8月, 2013 1 次提交
  31. 19 8月, 2013 2 次提交
  32. 15 8月, 2013 1 次提交
  33. 14 8月, 2013 1 次提交
  34. 13 8月, 2013 1 次提交