1. 19 3月, 2014 2 次提交
  2. 17 3月, 2014 3 次提交
  3. 11 3月, 2014 1 次提交
    • A
      rustc: Support various flavors of linkages · 699b33d0
      Alex Crichton 提交于
      It is often convenient to have forms of weak linkage or other various types of
      linkage. Sadly, just using these flavors of linkage are not compatible with
      Rust's typesystem and how it considers some pointers to be non-null.
      
      As a compromise, this commit adds support for weak linkage to external symbols,
      but it requires that this is only placed on extern statics of type `*T`.
      Codegen-wise, we get translations like:
      
          // rust code
          extern {
              #[linkage = "extern_weak"]
              static foo: *i32;
          }
      
          // generated IR
          @foo = extern_weak global i32
          @_some_internal_symbol = internal global *i32 @foo
      
      All references to the rust value of `foo` then reference `_some_internal_symbol`
      instead of the symbol `_foo` itself. This allows us to guarantee that the
      address of `foo` will never be null while the value may sometimes be null.
      
      An example was implemented in `std::rt::thread` to determine if
      `__pthread_get_minstack()` is available at runtime, and a test is checked in to
      use it for a static value as well. Function pointers a little odd because you
      still need to transmute the pointer value to a function pointer, but it's
      thankfully better than not having this capability at all.
      699b33d0
  4. 09 3月, 2014 2 次提交
  5. 05 3月, 2014 1 次提交
  6. 02 3月, 2014 1 次提交
  7. 14 2月, 2014 1 次提交
  8. 09 2月, 2014 1 次提交
    • M
      Fixed error starting with uppercase · ee3fa68f
      mr.Shu 提交于
      Error messages cleaned in librustc/middle
      
      Error messages cleaned in libsyntax
      
      Error messages cleaned in libsyntax more agressively
      
      Error messages cleaned in librustc more aggressively
      
      Fixed affected tests
      
      Fixed other failing tests
      
      Last failing tests fixed
      ee3fa68f
  9. 01 2月, 2014 1 次提交
  10. 31 1月, 2014 1 次提交
  11. 27 1月, 2014 1 次提交
  12. 19 1月, 2014 1 次提交
    • H
      syntax: convert ast_map to use a SmallIntMap. · 68517a2c
      Huon Wilson 提交于
      NodeIds are sequential integers starting at zero, so we can achieve some
      memory savings by just storing the items all in a line in a vector.
      
      The occupancy for typical crates seems to be 75-80%, so we're already
      more efficient than a HashMap (maximum occupancy 75%), not even counting
      the extra book-keeping that HashMap does.
      68517a2c
  13. 17 1月, 2014 2 次提交
  14. 16 1月, 2014 2 次提交
    • N
      Use as_slice() method on option · e71571a3
      Niko Matsakis 提交于
      e71571a3
    • N
      Issue #3511 - Rationalize temporary lifetimes. · 419ac4a1
      Niko Matsakis 提交于
      Major changes:
      
      - Define temporary scopes in a syntax-based way that basically defaults
        to the innermost statement or conditional block, except for in
        a `let` initializer, where we default to the innermost block. Rules
        are documented in the code, but not in the manual (yet).
        See new test run-pass/cleanup-value-scopes.rs for examples.
      - Refactors Datum to better define cleanup roles.
      - Refactor cleanup scopes to not be tied to basic blocks, permitting
        us to have a very large number of scopes (one per AST node).
      - Introduce nascent documentation in trans/doc.rs covering datums and
        cleanup in a more comprehensive way.
      419ac4a1
  15. 15 1月, 2014 1 次提交
  16. 11 1月, 2014 1 次提交
  17. 10 1月, 2014 1 次提交
  18. 08 1月, 2014 1 次提交
  19. 04 1月, 2014 1 次提交
  20. 27 12月, 2013 4 次提交
  21. 19 12月, 2013 1 次提交
  22. 30 11月, 2013 1 次提交
  23. 29 11月, 2013 1 次提交
  24. 27 11月, 2013 1 次提交
  25. 20 11月, 2013 1 次提交
  26. 19 11月, 2013 2 次提交
  27. 10 11月, 2013 1 次提交
    • A
      Add a "system" ABI · 2fcc70ec
      Alex Crichton 提交于
      This adds an other ABI option which allows a custom selection over the target
      architecture and OS. The only current candidate for this change is that kernel32
      on win32 uses stdcall, but on win64 it uses the cdecl calling convention.
      Otherwise everywhere else this is defined as using the Cdecl calling convention.
      
      cc #10049
      Closes #8774
      2fcc70ec
  28. 05 11月, 2013 1 次提交
  29. 22 10月, 2013 1 次提交
  30. 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