1. 01 7月, 2015 1 次提交
  2. 29 6月, 2015 13 次提交
  3. 28 6月, 2015 13 次提交
    • B
      Auto merge of #26631 - richo:comment-updates, r=steveklabnik · c1b8bd2d
      bors 提交于
      I've attempted to lurk these into a few PRs since they're tiny, but those PR's haven't landed so here they are.
      
      r? @steveklabnik 
      c1b8bd2d
    • B
      Auto merge of #26601 - alexcrichton:xp, r=brson · 5da0d415
      bors 提交于
      This series of commits (currently rebased on https://github.com/rust-lang/rust/pull/26569 to avoid conflicts) adds support for the standard library to run on Windows XP. The main motivation behind this PR is that to enable any Rust code in Firefox we need to support Windows XP.
      
      This PR doesn't yet intend to be a move to make Windows XP an officially supported platform, but instead simply get Rust code running on it. APIs like condition variables and RWLocks will immediately panic currently on XP, and it's unclear if that story wants to change much. Additionally, we may bind APIs like IOCP which aren't available on XP and would be *very* difficult to provide a fallback implementation. Essentially this PR enables running Rust on XP, but you still have to be careful to avoid non-XP portions of the standard library.
      
      The major components of this PR are:
      
      * Support for a new `i686-pc-windows-msvc` triple. This primarily involves a lot of build system hackery, but there are also a number of floating point functions which had to get switched up a bit.
      * All APIs not available on Windows are now accessed through our dynamic-detection mechanism
      * Mutexes on Windows were rewritten to use SRWLOCK as an optimization but can fall back to CRITICAL_SECTION.
      5da0d415
    • J
      Address nits · 15bc4a30
      Jared Roesch 提交于
      15bc4a30
    • A
      std: Fix Windows XP compatibility · 10b103af
      Alex Crichton 提交于
      This commit enables executables linked against the standard library to run on
      Windows XP. There are two main components of this commit:
      
      * APIs not available on XP are shimmed to have a fallback implementation and use
        runtime detection to determine if they are available.
      * Mutexes on Windows were reimplemented to use critical sections on XP where
        rwlocks are not available.
      
      The APIs which are not available on XP are:
      
      * SetFileInformationByHandle - this is just used by `File::truncate` and that
        function just returns an error now.
      * SetThreadStackGuarantee - this is used by the stack overflow support on
        windows, but if this isn't available then it's just ignored (it seems
        non-critical).
      * All condition variable APIs are missing - the shims added for these apis
        simply always panic for now. We may eventually provide a fallback
        implementation, but for now the standard library does not rely on condition
        variables for normal use.
      * RWLocks, like condition variables, are missing entirely. The same story for
        condition variables is taken here. These APIs are all now panicking stubs as
        the standard library doesn't rely on RWLocks for normal use.
      
      Currently, as an optimization, we use SRWLOCKs for the standard `sync::Mutex`
      implementation on Windows, which is indeed required for normal operation of the
      standard library. To allow the standard library to run on XP, this commit
      reimplements mutexes on Windows to use SRWLOCK instances *if available* and
      otherwise a CriticalSection is used (with some checking for recursive
      locking).
      
      With all these changes put together, a 32-bit MSVC-built executable can run on
      Windows XP and print "hello world"
      
      Closes #12842
      Closes #19992
      Closes #24776
      10b103af
    • R
      rt: Update comment for new location of unwind · 9e58fb85
      Richo Healey 提交于
      9e58fb85
    • R
      rustc_driver: Fix incorrect comment · ba7b47eb
      Richo Healey 提交于
      ba7b47eb
    • J
      Remove ClosureTyper impl for FnCtxt · e5b36848
      Jared Roesch 提交于
      e5b36848
    • J
      Ground work for replacing the ClosureTyper trait · 480cd8fe
      Jared Roesch 提交于
      480cd8fe
    • 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
    • A
      std: Avoid missing fns on i686-pc-windows-msvc · 87909582
      Alex Crichton 提交于
      It turns out that the 32-bit toolchain for MSVC has many of these functions as
      `static inline` functions in header files so there's not actually a symbol for
      Rust to call. All of the implementations just cast floats to their 64-bit
      variants and then cast back to 32-bit at the end, so the standard library now
      takes this strategy.
      87909582
    • A
      rustc_back: Learn about i686-pc-windows-msvc · 5de665e8
      Alex Crichton 提交于
      This commit adds the i686-pc-windows-msvc triple to the compiler's repertoire of
      triples to prepare for targeting 32-bit MSVC.
      5de665e8
    • A
      mk: Add support for i686-pc-windows-msvc · ae36d4f7
      Alex Crichton 提交于
      This commit modifies the configure script and our makefiles to support building
      32-bit MSVC targets. The MSVC toolchain is now parameterized over whether it can
      produce a 32-bit or 64-bit binary. The configure script was updated to export
      more variables at configure time, and the makefiles were rejiggered to
      selectively reexport the relevant environment variables for the applicable
      targets they're going to run for.
      ae36d4f7
    • B
      Auto merge of #26621 - tshepang:missed-removal, r=steveklabnik · 8fa2185e
      bors 提交于
      Should have happened in 69abc12b
      8fa2185e
  4. 27 6月, 2015 13 次提交