1. 07 3月, 2014 13 次提交
  2. 06 3月, 2014 27 次提交
    • K
      rustc: Get LLVM error message safely · f6afd40f
      klutzy 提交于
      On Windows, `LLVMRustGetLastError()` may return non-utf8 mojibake string
      if system uses non-English locale. It caused ICE when llvm fails.
      This patch doesn't fix the real problem, but just make rustc not die.
      f6afd40f
    • B
      auto merge of #12727 : lifthrasiir/rust/buffalo-buffalo, r=huonw · fb80b384
      bors 提交于
      Cosmetic changes at best, but there are so many such typos that I couldn't ignore them. :) Some occurrences of typos are linked to the generated documentations but no changes should break the builds.
      fb80b384
    • B
      auto merge of #12726 : alexcrichton/rust/travis, r=brson · 0a7b06e9
      bors 提交于
      This version is slightly more up to date and is closer to the 3.5 that we're
      using. This also updates the travis config to have a build matrix which tests
      rust against LLVM 3.3 and 3.4. For pull requests only LLVM 3.4 is tested to
      reduce the load on travis.
      
      This is mostly just fluff, there's no real reason to gate rust on these results,
      it's more of just a nice thing to know when we break compatibility with LLVM 3.3
      and 3.4 (and eventually 3.5). This turns off notifications of failed commits
      (which are sent out for pushes to master).
      0a7b06e9
    • K
      1c52c818
    • B
      auto merge of #12719 : alexcrichton/rust/fix-llvm-33, r=brson · 68903f2c
      bors 提交于
      The llvm.copysign and llvm.round intrinsics weren't added until LLVM 3.4, so if
      we're on LLVM 3.3 we lower these to calls in libm instead of LLVM intrinsics.
      
      This should fix our travis failures.
      68903f2c
    • B
      auto merge of #12714 : michaelwoerister/rust/limited-debuginfo, r=alexcrichton · 14c62071
      bors 提交于
      This PR brings back limited debuginfo which allows for nice backtraces and breakpoints, but omits any info about variables and types.
      
      The `-g` and `--debuginfo` command line options have been extended to take an optional argument:
      `-g0` means no debug info.
      `-g1` means line-tables only.
      `-g2` means full debug info.
      
      Specifying `-g` without argument is equivalent to `-g2`.
      
      Fixes #12280
      14c62071
    • B
      auto merge of #12705 : alexcrichton/rust/issue-12692, r=brson · 2fba2fea
      bors 提交于
      Details are in the commit messages, but this closes a few issues seen with `libnative` recently.
      2fba2fea
    • A
      travis: Use LLVM 3.4 instead of LLVM 3.3 · 37b3a60b
      Alex Crichton 提交于
      This version is slightly more up to date and is closer to the 3.5 that we're
      using. This also updates the travis config to have a build matrix which tests
      rust against LLVM 3.3 and 3.4. For pull requests only LLVM 3.4 is tested to
      reduce the load on travis.
      
      This is mostly just fluff, there's no real reason to gate rust on these results,
      it's more of just a nice thing to know when we break compatibility with LLVM 3.3
      and 3.4 (and eventually 3.5). This turns off notifications of failed commits
      (which are sent out for pushes to master).
      37b3a60b
    • B
      auto merge of #12687 : alexcrichton/rust/issue-12681, r=huonw · 2153293a
      bors 提交于
      This commit adds a appear-on-over link to all section headers to generated
      documentation. Each header also receives an id now, even those generated through
      markdown. The purpose of this is to provide easy to link to sections.
      
      This modifies the default header markdown generation because the default id
      added looks like "toc_NN" which is difficult to reconcile among all sections (by
      default each section gets a "toc_0" id), and it's also not very descriptive of
      where you're going.
      
      This chooses to adopt the github-style anchors by taking the contents of the
      title and hyphen-separating them (after lower casing).
      
      Closes #12681
      2153293a
    • M
      debuginfo: Add test case for limited debuginfo · a5b4d94e
      Michael Woerister 提交于
      a5b4d94e
    • M
      e15fd400
    • M
    • A
      rustdoc: Add anchors to section headers · 31e7e676
      Alex Crichton 提交于
      This commit adds a appear-on-over link to all section headers to generated
      documentation. Each header also receives an id now, even those generated through
      markdown. The purpose of this is to provide easy to link to sections.
      
      This modifies the default header markdown generation because the default id
      added looks like "toc_NN" which is difficult to reconcile among all sections (by
      default each section gets a "toc_0" id), and it's also not very descriptive of
      where you're going.
      
      This chooses to adopt the github-style anchors by taking the contents of the
      title and hyphen-separating them (after lower casing).
      
      Closes #12681
      31e7e676
    • B
      auto merge of #12703 : jld/rust/issue-8506, r=alexcrichton · 253dbcb8
      bors 提交于
      Closes #8506.
      253dbcb8
    • A
      std: Move libnative task count bookkeeping to std · 9668ab58
      Alex Crichton 提交于
      When using tasks in Rust, the expectation is that the runtime does not exit
      before all tasks have exited. This is enforced in libgreen through the
      `SchedPool` type, and it is enforced in libnative through a `bookkeeping` module
      and a global count/mutex pair. Unfortunately, this means that a process which
      originates with libgreen will not wait for spawned native tasks.
      
      In order to fix this problem, the bookkeeping module was moved from libnative to
      libstd so the runtime itself can wait for native tasks to exit. Green tasks do
      not manage themselves through this bookkeeping module, but native tasks will
      continue to manage themselves through this module.
      
      Closes #12684
      9668ab58
    • J
      Fix ICE on statics with fancy nullable enums. · d9083022
      Jed Davis 提交于
      Closes #8506.
      
      The `trans::adt` code for statics uses fields with `C_undef` values to
      insert alignment padding (because LLVM's own alignment padding isn't
      always sufficient for aggregate constants), and assumes that all fields
      in the actual Rust value are represented by non-undef LLVM values, to
      distinguish them from that padding.
      
      But for nullable pointer enums, if non-null variant has fields other
      than the pointer used as the discriminant, they would be set to undef in
      the null case, to reflect that they're never accessed.
      
      To avoid the obvious conflict between these two items, the latter undefs
      were wrapped in unary LLVM structs to distinguish them from the former
      undefs.  Except this doesn't actually work -- LLVM, not unreasonably,
      treats the "wrapped undef" as a regular undef.
      
      So this commit just sets all fields to null in the null pointer case of
      a nullable pointer enum static, because the other fields don't really
      need to be undef in the first place.
      d9083022
    • A
      rustc: Fix support for LLVM 3.3 · 93964525
      Alex Crichton 提交于
      The llvm.copysign and llvm.round intrinsics weren't added until LLVM 3.4, so if
      we're on LLVM 3.3 we lower these to calls in libm instead of LLVM intrinsics.
      
      This should fix our travis failures.
      93964525
    • B
      67c5d793
    • D
      stats: fix handling of NaN in `min` and `max` · a871068b
      Daniel Micay 提交于
      The `cmp::min` and `cmp::max` functions are not correct with partially
      ordered values. #12712
      a871068b
    • D
      add tests for `min` and `max` from `Float` · 5973b0c4
      Daniel Micay 提交于
      5973b0c4
    • B
      auto merge of #12715 : dmski/rust/no-extern-fn-pat, r=alexcrichton · ff22e47c
      bors 提交于
      Fixes #10877
      
      There was another PR which attempted to fix this in the parser (#11804) and which was closed due to inactivity.
      This PR modifies typeck instead (as suggested in #11804), which indeed seems to be simpler than modifying the parser and allows for a better error message.
      ff22e47c
    • D
      Disallowed patterns in extern fn declarations. · 53f3442e
      Dmitry Promsky 提交于
      Closes #10877
      53f3442e
    • B
      auto merge of #12711 : edwardw/rust/mtwt, r=pcwalton · 8a55cd98
      bors 提交于
      - Moves mtwt hygiene code into its own file
      - Fixes FIXME's which leads to ~2x speed gain in expansion pass
      - It is now @-free
      8a55cd98
    • B
      auto merge of #12709 : aepsil0n/rust/update_man_version, r=alexcrichton · db4f7573
      bors 提交于
      Just realized that these were quite outdated and quickly fixed it. I have to admit that I did not run the test suite on this one though…
      db4f7573
    • A
      native: Fix usage of a deallocated mutex · e6acff82
      Alex Crichton 提交于
      When the timer_helper thread exited, it would attempt to re-acquire the global
      task count mutex, but the mutex had previously been deallocated, leading to
      undefined behavior of the mutex, and in some cases deadlock.
      
      Another mutex is used to coordinate shutting down the timer helper thread.
      
      Closes #12699
      e6acff82
    • A
      native: Move from usleep() to nanosleep() · d8bd8de8
      Alex Crichton 提交于
      Using nanosleep() allows us to gracefully recover from EINTR because on error it
      fills in the second parameter with the remaining time to sleep.
      
      Closes #12689
      d8bd8de8
    • A
      native: Stop using readdir() · 8334dd44
      Alex Crichton 提交于
      This function is not threadsafe, and is deprecated in favor of the threadsafe
      readdir_r variant.
      
      Closes #12692
      8334dd44