1. 06 8月, 2015 1 次提交
  2. 28 7月, 2015 1 次提交
    • A
      std: Deprecate a number of unstable features · b3aa1a6d
      Alex Crichton 提交于
      Many of these have long since reached their stage of being obsolete, so this
      commit starts the removal process for all of them. The unstable features that
      were deprecated are:
      
      * cmp_partial
      * fs_time
      * hash_default
      * int_slice
      * iter_min_max
      * iter_reset_fuse
      * iter_to_vec
      * map_in_place
      * move_from
      * owned_ascii_ext
      * page_size
      * read_and_zero
      * scan_state
      * slice_chars
      * slice_position_elem
      * subslice_offset
      b3aa1a6d
  3. 26 7月, 2015 1 次提交
  4. 17 7月, 2015 1 次提交
    • A
      trans: Clean up handling the LLVM data layout · 958d5638
      Alex Crichton 提交于
      Turns out for OSX our data layout was subtly wrong and the LLVM update must have
      exposed this. Instead of fixing this I've removed all data layouts from the
      compiler to just use the defaults that LLVM provides for all targets. All data
      layouts (and a number of dead modules) are removed from the compiler here.
      Custom target specifications can still provide a custom data layout, but it is
      now an optional key as the default will be used if one isn't specified.
      958d5638
  5. 12 7月, 2015 1 次提交
  6. 11 7月, 2015 1 次提交
    • A
      trans: Use LLVM's writeArchive to modify archives · 4a824275
      Alex Crichton 提交于
      We have previously always relied upon an external tool, `ar`, to modify archives
      that the compiler produces (staticlibs, rlibs, etc). This approach, however, has
      a number of downsides:
      
      * Spawning a process is relatively expensive for small compilations
      * Encoding arguments across process boundaries often incurs unnecessary overhead
        or lossiness. For example `ar` has a tough time dealing with files that have
        the same name in archives, and the compiler copies many files around to ensure
        they can be passed to `ar` in a reasonable fashion.
      * Most `ar` programs found do **not** have the ability to target arbitrary
        platforms, so this is an extra tool which needs to be found/specified when
        cross compiling.
      
      The LLVM project has had a tool called `llvm-ar` for quite some time now, but it
      wasn't available in the standard LLVM libraries (it was just a standalone
      program). Recently, however, in LLVM 3.7, this functionality has been moved to a
      library and is now accessible by consumers of LLVM via the `writeArchive`
      function.
      
      This commit migrates our archive bindings to no longer invoke `ar` by default
      but instead make a library call to LLVM to do various operations. This solves
      all of the downsides listed above:
      
      * Archive management is now much faster, for example creating a "hello world"
        staticlib is now 6x faster (50ms => 8ms). Linking dynamic libraries also
        recently started requiring modification of rlibs, and linking a hello world
        dynamic library is now 2x faster.
      * The compiler is now one step closer to "hassle free" cross compilation because
        no external tool is needed for managing archives, LLVM does the right thing!
      
      This commit does not remove support for calling a system `ar` utility currently.
      We will continue to maintain compatibility with LLVM 3.5 and 3.6 looking forward
      (so the system LLVM can be used wherever possible), and in these cases we must
      shell out to a system utility. All nightly builds of Rust, however, will stop
      needing a system `ar`.
      4a824275
  7. 02 7月, 2015 1 次提交
  8. 28 6月, 2015 1 次提交
    • J
      Begin refactor type checking state · 79d02895
      Jared Roesch 提交于
      This first patch starts by moving around pieces of state related to
      type checking. The goal is to slowly unify the type checking state
      into a single typing context. This initial patch moves the
      ParameterEnvironment into the InferCtxt and moves shared tables
      from Inherited and ty::ctxt into their own struct Tables. This
      is the foundational work to refactoring the type checker to
      enable future evolution of the language and tooling.
      79d02895
  9. 19 6月, 2015 1 次提交
  10. 18 6月, 2015 5 次提交
  11. 10 6月, 2015 1 次提交
  12. 29 5月, 2015 1 次提交
  13. 27 5月, 2015 1 次提交
  14. 19 5月, 2015 1 次提交
  15. 16 5月, 2015 1 次提交
  16. 14 5月, 2015 1 次提交
    • A
      std: Redesign Duration, implementing RFC 1040 · 556e76bb
      Alex Crichton 提交于
      This commit is an implementation of [RFC 1040][rfc] which is a redesign of the
      currently-unstable `Duration` type. The API of the type has been scaled back to
      be more conservative and it also no longer supports negative durations.
      
      [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/1040-duration-reform.md
      
      The inner `duration` module of the `time` module has now been hidden (as
      `Duration` is reexported) and the feature name for this type has changed from
      `std_misc` to `duration`. All APIs accepting durations have also been audited to
      take a more flavorful feature name instead of `std_misc`.
      
      Closes #24874
      556e76bb
  17. 06 5月, 2015 1 次提交
    • A
      rustc: Fix more verbatim paths leaking to gcc · 2dc0e561
      Alex Crichton 提交于
      Turns out that a verbatim path was leaking through to gcc via the PATH
      environment variable (pointing to the bundled gcc provided by the main
      distribution) which was wreaking havoc when gcc itself was run. The fix here is
      to just stop passing verbatim paths down by adding more liberal uses of
      `fix_windows_verbatim_for_gcc`.
      
      Closes #25072
      2dc0e561
  18. 30 4月, 2015 1 次提交
  19. 29 4月, 2015 2 次提交
  20. 28 4月, 2015 1 次提交
    • A
      std: Expand the area of std::fs · 93487000
      Alex Crichton 提交于
      This commit is an implementation of [RFC 1044][rfc] which adds additional
      surface area to the `std::fs` module. All new APIs are `#[unstable]` behind
      assorted feature names for each one.
      
      [rfc]: https://github.com/rust-lang/rfcs/pull/1044
      
      The new APIs added are:
      
      * `fs::canonicalize` - bindings to `realpath` on unix and
        `GetFinalPathNameByHandle` on windows.
      * `fs::symlink_metadata` - similar to `lstat` on unix
      * `fs::FileType` and accessor methods as `is_{file,dir,symlink}`
      * `fs::Metadata::file_type` - accessor for the raw file type
      * `fs::DirEntry::metadata` - acquisition of metadata which is free on Windows
        but requires a syscall on unix.
      * `fs::DirEntry::file_type` - access the file type which may not require a
        syscall on most platforms.
      * `fs::DirEntry::file_name` - access just the file name without leading
        components.
      * `fs::PathExt::symlink_metadata` - convenience method for the top-level
        function.
      * `fs::PathExt::canonicalize` - convenience method for the top-level
        function.
      * `fs::PathExt::read_link` - convenience method for the top-level
        function.
      * `fs::PathExt::read_dir` - convenience method for the top-level
        function.
      * `std::os::raw` - type definitions for raw OS/C types available on all
        platforms.
      * `std::os::$platform` - new modules have been added for all currently supported
        platforms (e.g. those more specific than just `unix`).
      * `std::os::$platform::raw` - platform-specific type definitions. These modules
        are populated with the bare essentials necessary for lowing I/O types into
        their raw representations, and currently largely consist of the `stat`
        definition for unix platforms.
      
      This commit also deprecates `Metadata::{modified, accessed}` in favor of
      inspecting the raw representations via the lowering methods of `Metadata`.
      93487000
  21. 22 4月, 2015 2 次提交
    • K
      implement rfc 1054: split_whitespace() fn, deprecate words() · c361e13d
      kwantam 提交于
      For now, words() is left in (but deprecated), and Words is a type alias for
      struct SplitWhitespace.
      
      Also cleaned up references to s.words() throughout codebase.
      
      Closes #15628
      c361e13d
    • A
      std: Remove deprecated/unstable num functionality · eeb94886
      Alex Crichton 提交于
      This commit removes all the old casting/generic traits from `std::num` that are
      no longer in use by the standard library. This additionally removes the old
      `strconv` module which has not seen much use in quite a long time. All generic
      functionality has been supplanted with traits in the `num` crate and the
      `strconv` module is supplanted with the [rust-strconv crate][rust-strconv].
      
      [rust-strconv]: https://github.com/lifthrasiir/rust-strconv
      
      This is a breaking change due to the removal of these deprecated crates, and the
      alternative crates are listed above.
      
      [breaking-change]
      eeb94886
  22. 18 4月, 2015 1 次提交
    • N
      Rather than storing the relations between free-regions in a global · 6dfeda7d
      Niko Matsakis 提交于
      table, introduce a `FreeRegionMap` data structure. regionck computes the
      `FreeRegionMap` for each fn and stores the result into the tcx so that
      borrowck can use it (this could perhaps be refactored to have borrowck
      recompute the map, but it's a bid tedious to recompute due to the
      interaction of closures and free fns). The main reason to do this is
      because of #22779 -- using a global table was incorrect because when
      validating impl method signatures, we want to use the free region
      relationships from the *trait*, not the impl.
      
      Fixes #22779.
      6dfeda7d
  23. 17 4月, 2015 3 次提交
  24. 01 4月, 2015 2 次提交
    • A
      Test fixes and rebase conflicts, round 2 · 30532884
      Alex Crichton 提交于
      30532884
    • A
      Stabilize `std::convert` and related code · 9fc51efe
      Aaron Turon 提交于
      * Marks `#[stable]` the contents of the `std::convert` module.
      
      * Added methods `PathBuf::as_path`, `OsString::as_os_str`,
        `String::as_str`, `Vec::{as_slice, as_mut_slice}`.
      
      * Deprecates `OsStr::from_str` in favor of a new, stable, and more
        general `OsStr::new`.
      
      * Adds unstable methods `OsString::from_bytes` and `OsStr::{to_bytes,
        to_cstring}` for ergonomic FFI usage.
      
      [breaking-change]
      9fc51efe
  25. 31 3月, 2015 2 次提交
  26. 28 3月, 2015 3 次提交
  27. 27 3月, 2015 2 次提交