rust/src
bors 4268e7ee22 Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichton
Add support for UWP targets

Hi,

This pull request aims at adding support for UWP (Universal Windows Apps) platform.
A few notes:
- This requires a very recent mingw-w64 version (containing this commit and the previous related ones: e8c433c871 (diff-eefdfbfe9cec5f4ebab88c9a64d423a9))
- This was tested using LLVM/clang rather than gcc, and so far it assumes that LLVM/clang will be the native compiler. This is mostly due to the fact that the support for exceptions/stack unwinding for UWP got much more attention in libunwind
- The "uwp" part of the target needs support for it in the `cc-rs` & `backtrace-rs` crates. I'll create the MR there right after I submit this one and will link everything together, but I'm not sure what's the correct way of dealing with external dependencies in the context of rust
- Enabling import libraries and copying them across stages requires a change in cargo, for which I'll open a MR right after I submit this one as well
- The i686 stack unwinding is unsupported for now, because LLVM assumes SjLj, while rust seems to assume SEH will be used. I'm unsure how to fix this

Also, this is my first encounter with rust, so please bear with my code, it might not feel so idiomatic or even correct :)

I'm pretty sure there's a way of doing things in a cleaner way when it comes to win/c.rs, maybe having a UWP & desktop specific modules, and import those conditionally? It doesn't feel right to sprinkle `#[cfg(...)]` all over the place

Off course, I'll gladly update anything you see fit (to the extent of my abilities/knowledge :) )!

Thanks,
2019-07-26 02:18:12 +00:00
..
bootstrap Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichton 2019-07-26 02:18:12 +00:00
build_helper
ci Rollup merge of #62906 - cuviper:debuginfo-level, r=Mark-Simulacrum 2019-07-25 01:05:07 +02:00
doc Rollup merge of #60938 - jonas-schievink:doc-include-paths, r=petrochenkov 2019-07-25 23:20:51 +02:00
etc
grammar
liballoc Auto merge of #62990 - Centril:rollup-k9n0hvs, r=Centril 2019-07-25 22:34:23 +00:00
libarena Auto merge of #60340 - mgeier:cap-vs-capacity, r=alexcrichton 2019-07-25 18:45:42 +00:00
libcore Auto merge of #62990 - Centril:rollup-k9n0hvs, r=Centril 2019-07-25 22:34:23 +00:00
libfmt_macros add rustc_private as a proper language feature gate 2019-07-22 16:32:13 +03:00
libgraphviz
libpanic_abort
libpanic_unwind add support for hexagon-unknown-linux-musl 2019-07-22 09:44:58 -05:00
libproc_macro
libprofiler_builtins
librustc Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
librustc_apfloat
librustc_asan
librustc_ast_borrowck
librustc_codegen_llvm Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
librustc_codegen_ssa Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichton 2019-07-26 02:18:12 +00:00
librustc_codegen_utils
librustc_data_structures Rollup merge of #62901 - petrochenkov:serde, r=Centril 2019-07-25 01:05:03 +02:00
librustc_driver Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
librustc_errors cleanup: Remove `extern crate serialize as rustc_serialize`s 2019-07-23 19:20:16 +03:00
librustc_fs_util
librustc_incremental cleanup: Remove `extern crate serialize as rustc_serialize`s 2019-07-23 19:20:16 +03:00
librustc_interface Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
librustc_lexer Rollup merge of #62869 - matklad:feature-gate, r=Mark-Simulacrum 2019-07-23 12:51:18 -04:00
librustc_lint syntax_ext: Reuse built-in attribute template checking for macro attributes 2019-07-24 12:29:45 +03:00
librustc_llvm Don't link mcjit/interpreter LLVM components 2019-07-20 17:17:48 +02:00
librustc_lsan
librustc_macros
librustc_metadata Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
librustc_mir Rollup merge of #60066 - sfackler:type-name, r=Centril 2019-07-25 23:20:49 +02:00
librustc_msan
librustc_passes Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
librustc_plugin
librustc_privacy
librustc_resolve normalize use of backticks for compiler messages in remaining modules 2019-07-23 23:09:59 +02:00
librustc_save_analysis normalize use of backticks for compiler messages in remaining modules 2019-07-23 23:09:59 +02:00
librustc_target Add UWP mingw targets 2019-07-25 21:30:08 +02:00
librustc_traits
librustc_tsan
librustc_typeck Rollup merge of #62921 - iluuu1994:improve-help-for-method-disambiguation, r=estebank 2019-07-25 23:21:04 +02:00
librustdoc Rollup merge of #62905 - fakenine:normalize_use_of_backticks_compiler_messages_p16, r=Centril 2019-07-24 16:13:17 +02:00
libserialize Rollup merge of #60066 - sfackler:type-name, r=Centril 2019-07-25 23:20:49 +02:00
libstd Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichton 2019-07-26 02:18:12 +00:00
libsyntax Rollup merge of #62887 - estebank:issue-62881, r=petrochenkov 2019-07-25 23:21:03 +02:00
libsyntax_ext Fix rebase 2019-07-24 12:29:45 +03:00
libsyntax_pos cleanup: Remove `extern crate serialize as rustc_serialize`s 2019-07-23 19:20:16 +03:00
libterm
libtest Add supporting for vxWorks 2019-07-16 00:13:07 -07:00
libunwind libunwind: Use libunwind when targeting UWP 2019-07-25 21:30:08 +02:00
llvm-emscripten@7f23313edf
llvm-project@f6446fa8e9
rtstartup
rustc
rustllvm Don't link mcjit/interpreter LLVM components 2019-07-20 17:17:48 +02:00
stdarch@4791ba85e7 Update stdarch submodule 2019-07-23 17:19:32 +02:00
test Auto merge of #60260 - videolabs:rust_uwp2, r=alexcrichton 2019-07-26 02:18:12 +00:00
tools Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton 2019-07-25 23:21:00 +02:00
.gitignore
README.md
stage0.txt Update stage0.txt 2019-07-23 11:07:06 -04:00

README.md

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc guide.

There is also useful content in the following READMEs, which are gradually being moved over to the guide: