From 782c7ef19c7ad423c24b893fa9e95622ae08b7fb Mon Sep 17 00:00:00 2001 From: roblabla Date: Sat, 10 Sep 2022 13:23:28 +0200 Subject: [PATCH 1/6] Update to new rust version --- Cargo.lock | 2135 +++--- Makefile.toml | 4 +- Xargo.toml | 4 +- ahci/Cargo.toml | 5 +- ahci/src/hba.rs | 6 +- ahci/src/main.rs | 4 +- bootstrap/src/bootstrap_logging.rs | 8 +- bootstrap/src/gdt/i386.rs | 40 +- bootstrap/src/gdt/mod.rs | 17 +- bootstrap/src/main.rs | 33 +- bootstrap/src/paging/mod.rs | 38 +- docs/BUILDING.md | 2 +- fs/Cargo.toml | 2 +- fs/src/ipc/mod.rs | 2 +- fs/src/main.rs | 2 +- i386-unknown-none.json | 2 +- i386-unknown-sunrise-user.json | 2 +- kernel/Cargo.toml | 2 +- kernel/src/event.rs | 4 +- kernel/src/i386/interrupt_service_routines.rs | 8 +- kernel/src/i386/mod.rs | 53 +- kernel/src/i386/process_switch.rs | 47 +- kernel/src/i386/registers.rs | 14 +- kernel/src/i386/stack.rs | 19 +- kernel/src/main.rs | 13 +- kernel/src/mem.rs | 4 +- kernel/src/paging/arch/i386/mod.rs | 43 +- kernel/src/paging/hierarchical_table.rs | 2 +- kernel/src/paging/process_memory.rs | 2 +- kernel/src/panic.rs | 3 +- kernel/src/timer.rs | 2 +- keyboard/src/main.rs | 3 +- keyboard/src/ps2.rs | 7 +- libkern/src/lib.rs | 2 +- libuser/Cargo.toml | 2 +- libuser/src/allocator.rs | 8 +- libuser/src/crt0/mod.rs | 25 +- libuser/src/crt0/relocation.rs | 2 +- libuser/src/ipc/server.rs | 9 +- libuser/src/lib.rs | 4 +- libuser/src/syscalls.rs | 5 +- libuser/src/threads.rs | 3 +- libutils/src/io/mmio.rs | 6 +- libutils/src/io/pio.rs | 13 +- libutils/src/lib.rs | 7 +- linker-scripts/bootstrap.ld | 1 + ...ace-remove-unneeded-deps-in-lockfile.patch | 5972 ----------------- ...ex-RwLock-const-constructors-work-wi.patch | 103 + ...iler_builtins-alloc-are-in-sysroot-w.patch | 187 + ...ler-builtins-with-soft-float-feature.patch | 25 + ...of-std-crate-with-alloc-from-sysroot.patch | 113 + ...Add-workspace-to-allow-xargo-to-work.patch | 43 + rust-patches/0006-Redox-style-path-API.patch | 287 + ...d-sunrise.patch => 0007-Add-sunrise.patch} | 2053 ++---- rust-toolchain | 2 +- shell/src/main.rs | 4 +- shell/src/subcommands/test_divide_by_zero.rs | 5 +- shell/src/subcommands/test_page_fault.rs | 7 +- sm/src/main.rs | 2 +- swipc-parser/src/lib.rs | 2 +- time/src/main.rs | 5 +- vi/src/main.rs | 2 +- wall-clock/src/main.rs | 2 +- 63 files changed, 2540 insertions(+), 8893 deletions(-) delete mode 100644 rust-patches/0001-Create-workspace-remove-unneeded-deps-in-lockfile.patch create mode 100644 rust-patches/0001-make-Condvar-Mutex-RwLock-const-constructors-work-wi.patch create mode 100644 rust-patches/0002-Assume-core-compiler_builtins-alloc-are-in-sysroot-w.patch create mode 100644 rust-patches/0003-Build-compiler-builtins-with-soft-float-feature.patch create mode 100644 rust-patches/0004-Fix-compilation-of-std-crate-with-alloc-from-sysroot.patch create mode 100644 rust-patches/0005-Add-workspace-to-allow-xargo-to-work.patch create mode 100644 rust-patches/0006-Redox-style-path-API.patch rename rust-patches/{0002-Add-sunrise.patch => 0007-Add-sunrise.patch} (53%) diff --git a/Cargo.lock b/Cargo.lock index db153da41..f6721a6ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,204 +1,235 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "acpi" version = "0.1.0" source = "git+https://github.com/sunriseos/acpi.git#38526dd0774003ca71c822b882b646dbfb7ee548" dependencies = [ - "bit_field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bit_field 0.9.0", + "log", ] [[package]] name = "advapi32-sys" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb8a9a" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8", + "winapi-build", ] [[package]] name = "ahash" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" dependencies = [ - "const-random 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "const-random", ] [[package]] name = "aho-corasick" version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.1", ] [[package]] name = "aho-corasick" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.1", ] [[package]] name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7", ] [[package]] name = "arch" version = "0.0.1" dependencies = [ - "platform-info 0.0.1 (git+https://github.com/sunriseos/platform-info.git)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "platform-info", + "uucore", ] [[package]] name = "arrayvec" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" dependencies = [ - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop", ] [[package]] name = "atomic" version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c210c1f4db048cda477b652d170572d84c9640695835f17663595d3bd543fc28" [[package]] name = "atty" version = "0.2.13" -source = "git+https://github.com/sunriseos/atty.git#2ac1c868a2fc532fde6cbe228c161d27ba0fd231" +source = "git+https://github.com/sunriseos/atty.git?branch=master#2ac1c868a2fc532fde6cbe228c161d27ba0fd231" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "winapi 0.3.7", ] [[package]] name = "autocfg" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22130e92352b948e7e82a49cdb0aa94f2211761117f29e052dd397c1ac33542b" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base32" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "base64" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "basename" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "bit-set" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" dependencies = [ - "bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bit-vec", ] [[package]] name = "bit-vec" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" [[package]] name = "bit_field" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed8765909f9009617974ab6b7d332625b320b33c326b1e9321382ef1999b5d56" [[package]] name = "bit_field" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a165d606cf084741d4ac3a28fb6e9b1eb0bd31f6cd999098cfddb0b2ab381dc0" [[package]] name = "bitfield" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" [[package]] name = "bitflags" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" [[package]] name = "bitflags" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd" [[package]] name = "block-buffer" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" dependencies = [ - "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "byte-tools 0.2.0", + "generic-array 0.8.3", ] [[package]] name = "block-buffer" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", + "block-padding", + "byte-tools 0.3.1", + "byteorder", + "generic-array 0.12.3", ] [[package]] name = "block-padding" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d4dc3af3ee2e12f3e5d224e5e1e3d73668abbeb69e566d361f7d5563a4fdf09" dependencies = [ - "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "byte-tools 0.3.1", ] [[package]] name = "bstr" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cdf78eb7e94c566c1f5dbe2abf8fc70a548fc902942a48c4b3a98b48ca9ade" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.1", ] [[package]] name = "build_const" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" [[package]] name = "byte-tools" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" [[package]] name = "byte-tools" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" [[package]] name = "cargo-5730" @@ -209,94 +240,98 @@ source = "git+https://github.com/Thog/cargo-5730.git?branch=feature/windows-supp name = "cat" version = "0.0.1" dependencies = [ - "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "quick-error", + "unix_socket", + "uucore", ] [[package]] name = "cc" version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0213d356d3c4ea2c18c40b037c3be23cd639825c18f25ee670ac7813beeef99c" [[package]] name = "cfg-if" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" [[package]] name = "chgrp" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "uucore", + "walkdir", ] [[package]] name = "chmod" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "walker 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "uucore", + "walker", ] [[package]] name = "chown" version = "0.0.1" dependencies = [ - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "glob", + "uucore", + "walkdir", ] [[package]] name = "chrono" version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", + "libc", + "num-integer", + "num-traits", + "time", ] [[package]] name = "chroot" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "cksum" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "clap" version = "2.33.0" -source = "git+https://github.com/sunriseos/clap.git#6dd48d847dd9149a34a9c8f55001ea3492e24950" +source = "git+https://github.com/sunriseos/clap.git?branch=master#6dd48d847dd9149a34a9c8f55001ea3492e24950" dependencies = [ - "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.13 (git+https://github.com/sunriseos/atty.git)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term", + "atty", + "bitflags 1.1.0", + "strsim 0.8.0", + "textwrap", + "unicode-width", + "vec_map", ] [[package]] name = "cloudabi" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.1.0", ] [[package]] @@ -308,233 +343,249 @@ source = "git+https://github.com/SunriseOS/color_quant#3f7a1f3a166ace12001ebd932 name = "comm" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "const-random" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" dependencies = [ - "const-random-macro 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", + "const-random-macro", + "proc-macro-hack 0.5.16", ] [[package]] name = "const-random-macro" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" dependencies = [ - "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", + "getrandom", + "proc-macro-hack 0.5.16", ] [[package]] name = "cp" version = "0.0.1" dependencies = [ - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "filetime 0.2.7 (git+https://github.com/sunriseos/filetime.git)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "ioctl-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "clap", + "filetime", + "getopts", + "ioctl-sys", + "kernel32-sys", + "libc", + "quick-error", + "uucore", + "walkdir", + "winapi 0.3.7", + "xattr", ] [[package]] name = "cpp" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d1cd8699ffa1b18fd388183f7762e0545eddbd5c6ec95e9e3b42a4a71a507ff" dependencies = [ - "cpp_macros 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cpp_macros", ] [[package]] name = "cpp_build" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c47531e7e09532ad4827098729794f5e1a5b1c2ccbb5e295498d2e7ab451c445" dependencies = [ - "cc 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_common 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_syn 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_synmap 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_synom 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "cpp_common", + "cpp_syn", + "cpp_synmap", + "cpp_synom", + "lazy_static", ] [[package]] name = "cpp_common" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e39149a7943affa02f5b6e347ca2840a129cc78d5883ee229f0f1c4027d628" dependencies = [ - "cpp_syn 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_synom 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", + "cpp_syn", + "cpp_synom", + "lazy_static", + "quote 0.3.15", ] [[package]] name = "cpp_macros" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bba562eb4d65561efb6cef4e5f0de5936edfee7c6af7a4dfc323f6f2c997e40" dependencies = [ - "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_common 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_syn 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_synom 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.10", + "byteorder", + "cpp_common", + "cpp_syn", + "cpp_synom", + "lazy_static", + "quote 0.3.15", ] [[package]] name = "cpp_syn" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8cd649bf5b3804d92fe12a60c7698f5a538a6033ed8a668bf5241d4d4f1644e" dependencies = [ - "cpp_synom 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cpp_synom", + "quote 0.3.15", + "unicode-xid 0.0.4", ] [[package]] name = "cpp_synmap" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897e4f9cdbe2874edd3ffe53718ee5d8b89e2a970057b2c93d3214104f2e90b6" dependencies = [ - "cpp_syn 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_synom 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cpp_syn", + "cpp_synom", + "memchr 1.0.2", ] [[package]] name = "cpp_synom" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc8da5694233b646150c785118f77835ad0a49680c7f312a10ef30957c67b6d" dependencies = [ - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.0.4", ] [[package]] name = "crc" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" dependencies = [ - "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "build_const", ] [[package]] name = "cut" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "darling" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcfbcb0c5961907597a7d1148e3af036268f2b773886b8bb3eeb1e1281d3d3d6" dependencies = [ - "darling_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "darling_macro 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "darling_core", + "darling_macro", ] [[package]] name = "darling_core" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afc018370c3bff3eb51f89256a6bdb18b4fdcda72d577982a14954a7a0b402c" dependencies = [ - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv", + "ident_case", + "proc-macro2", + "quote 0.6.13", + "strsim 0.7.0", + "syn", ] [[package]] name = "darling_macro" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6d8dac1c6f1d29a41c4712b4400f878cb4fcc4c7628f298dd75038e024998d1" dependencies = [ - "darling_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", + "darling_core", + "quote 0.6.13", + "syn", ] [[package]] name = "data-encoding" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" [[package]] name = "date" version = "0.0.1" dependencies = [ - "chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "chrono", + "clap", + "uucore", ] [[package]] name = "df" version = "0.1.0" dependencies = [ - "sunrise-libuser 0.1.0", + "sunrise-libuser", ] [[package]] name = "digest" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5b29bf156f3f4b3c4f610a25ff69370616ae6e0657d416de22645483e72af0a" dependencies = [ - "generic-array 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.8.3", ] [[package]] name = "digest" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.12.3", ] [[package]] name = "dircolors" version = "0.0.1" dependencies = [ - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "glob", + "uucore", ] [[package]] name = "dirname" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "disk-initializer" version = "0.1.0" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libfat 0.1.0 (git+https://github.com/sunriseos/libfat.git)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "storage_device 1.0.0 (git+https://github.com/sunriseos/storage_device.git)", - "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "crc", + "env_logger", + "libfat", + "log", + "plain", + "static_assertions 0.3.3", + "storage_device", + "uuid", ] [[package]] @@ -545,131 +596,137 @@ version = "0.1.0" name = "du" version = "0.0.1" dependencies = [ - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "time", + "uucore", ] [[package]] name = "echo" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "either" version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" [[package]] name = "env" version = "0.0.1" dependencies = [ - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rust-ini 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "clap", + "libc", + "rust-ini", + "uucore", ] [[package]] name = "env_logger" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ecdb7dd54465526f0a56d666e3b2dd5f3a218665a030b6e4ad9e70fa95d8fa" dependencies = [ - "atty 0.2.13 (git+https://github.com/sunriseos/atty.git)", - "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "atty", + "humantime", + "log", + "regex", + "termcolor", ] [[package]] name = "expand" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "unicode-width", + "uucore", ] [[package]] name = "expr" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "onig 4.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "onig", + "uucore", ] [[package]] name = "factor" version = "0.0.1" dependencies = [ - "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "rand 0.5.6", + "uucore", ] [[package]] name = "failure" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" dependencies = [ - "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive", ] [[package]] name = "failure_derive" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote 0.6.13", + "syn", + "synstructure", ] [[package]] name = "fake-simd" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "false" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "filetime" version = "0.2.7" -source = "git+https://github.com/sunriseos/filetime.git#9e9e419fccc29ee6e2f06b4bbe03926b184a1f9b" +source = "git+https://github.com/sunriseos/filetime.git?branch=master#9e9e419fccc29ee6e2f06b4bbe03926b184a1f9b" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "redox_syscall", + "winapi 0.3.7", ] [[package]] name = "fmt" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "unicode-width", + "uucore", ] [[package]] name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" [[package]] name = "fold" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] @@ -677,130 +734,144 @@ name = "font-rs" version = "0.1.3" source = "git+https://github.com/SunriseOS/font-rs#ae9d2f89e0b538c3233fe3ae8a082ddfe0ee978d" dependencies = [ - "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "hashbrown 0.5.0", + "log", ] [[package]] name = "fuchsia-cprng" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" [[package]] name = "futures-channel-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd523712fc272e9b714669165a2832debee5a5b7e409bfccdc7c0d5cd0cf07a" dependencies = [ - "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview", ] [[package]] name = "futures-core-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719770f328642b657b849856bb5a607db9538dd5bb3000122e5ead55d0a58c36" [[package]] name = "futures-executor-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "315dc58c908535d059576a329b86cd185933433382cfcd394fb2fa353330de03" dependencies = [ - "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview", + "futures-core-preview", + "futures-util-preview", + "pin-utils", ] [[package]] name = "futures-io-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cca0bf7a1f39c9d32b797b0def93d5932aa71796236aad6b549bac6f7df159a3" dependencies = [ - "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview", ] [[package]] name = "futures-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcfeac5f016a4b5835bb93eb7961f50a64f0e001207562703d9ddf4109d7b263" dependencies = [ - "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-executor-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview", + "futures-core-preview", + "futures-executor-preview", + "futures-io-preview", + "futures-sink-preview", + "futures-util-preview", ] [[package]] name = "futures-sink-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49dcfdacd6b5974ca0b9b78bc38ffd1071da0206179735c3df82e279f5b784e4" dependencies = [ - "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview", + "futures-core-preview", ] [[package]] name = "futures-util-preview" version = "0.3.0-alpha.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7a0451b9c5047c2b9ab93425ffd0793165511e93c04b977cd45fbd41c6e34b2" dependencies = [ - "futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-io-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-sink-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-channel-preview", + "futures-core-preview", + "futures-io-preview", + "futures-sink-preview", + "pin-utils", ] [[package]] name = "generational-arena" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921c3803adaeb9f9639de5149d9f0f9f4b79f00c423915b701db2e02ed80b9ce" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "generic-array" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fceb69994e330afed50c93524be68c42fa898c2d9fd4ee8da03bd7363acd26f2" dependencies = [ - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop", + "typenum", ] [[package]] name = "generic-array" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" dependencies = [ - "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "typenum", ] [[package]] name = "generic-array" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" dependencies = [ - "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "typenum", ] [[package]] name = "getopts" version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" dependencies = [ - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] name = "getrandom" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", + "libc", + "wasi", ] [[package]] @@ -808,78 +879,84 @@ name = "gif" version = "0.10.0" source = "git+https://github.com/SunriseOS/image-gif#ccb6eff2ae357caf0eed83facde9d88171f18379" dependencies = [ - "color_quant 1.0.1 (git+https://github.com/SunriseOS/color_quant)", - "lzw 0.10.0 (git+https://github.com/SunriseOS/lzw)", + "color_quant", + "lzw", ] [[package]] name = "glob" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "groups" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "half" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff54597ea139063f4225f1ec47011b03c9de4a486957ff3fc506881dac951d0" [[package]] name = "hashbrown" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353" [[package]] name = "hashbrown" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" dependencies = [ - "ahash 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", - "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "ahash", + "autocfg 0.1.5", ] [[package]] name = "hashsum" version = "0.0.1" dependencies = [ - "digest 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha3 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "digest 0.6.2", + "getopts", + "hex 0.2.0", + "libc", + "md5", + "regex", + "regex-syntax", + "sha1", + "sha2", + "sha3", + "uucore", ] [[package]] name = "head" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "heck" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" dependencies = [ - "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation", ] [[package]] name = "hex" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e153aa" [[package]] name = "hex" @@ -890,94 +967,100 @@ source = "git+https://github.com/KokaKiwi/rust-hex#264b89f9ca171efe3bf9ca105617e name = "hostid" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "hostname" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "getopts", + "libc", + "uucore", + "winapi 0.3.7", ] [[package]] name = "humantime" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" dependencies = [ - "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-error", ] [[package]] name = "id" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "install" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "time", + "uucore", ] [[package]] name = "ioctl-sys" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2c4b26352496eaaa8ca7cfa9bd99e93419d3f7983dc6e99c2a35fe9e33504a" [[package]] name = "itertools" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" dependencies = [ - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "either", ] [[package]] name = "join" version = "0.0.1" dependencies = [ - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "clap", + "uucore", ] [[package]] name = "kernel32-sys" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8", + "winapi-build", ] [[package]] name = "kill" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "lazy_static" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" dependencies = [ - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "spin", ] [[package]] @@ -990,91 +1073,114 @@ name = "libfat" version = "0.1.0" source = "git+https://github.com/sunriseos/libfat.git#aa7ebf7fa4c936a1978ef276ae426fad556b7b1a" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "storage_device 1.0.0 (git+https://github.com/sunriseos/storage_device.git)", + "arrayvec", + "log", + "num-traits", + "spin", + "storage_device", ] [[package]] name = "libstdbuf" version = "0.0.1" dependencies = [ - "cpp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cpp_build 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "cpp", + "cpp_build", + "libc", + "uucore", ] [[package]] name = "link" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", +] + +[[package]] +name = "linked_list_allocator" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "822add9edb1860698b79522510da17bef885171f75aa395cff099d770c609c24" +dependencies = [ + "spinning_top 0.1.0", ] [[package]] name = "linked_list_allocator" -version = "0.8.4" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "636c3bc929db632724303109c88d5d559a2a60f62243bb041387f03fa081d94a" dependencies = [ - "spinning_top 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "spinning_top 0.2.4", ] [[package]] name = "ln" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "lock_api" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ - "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 1.1.0", + "scopeguard", ] [[package]] name = "log" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if", ] [[package]] name = "logname" version = "0.0.1" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "libc", + "uucore", ] [[package]] name = "lru" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb997a7ef669f5d9e59c297db18ba05df203fbca59ae00e8b5ceea329d9f4ddf" dependencies = [ - "hashbrown 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "hashbrown 0.6.3", ] [[package]] name = "ls" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "term_grid 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "termsize 0.1.6 (git+https://github.com/sunriseos/termsize.git)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "lazy_static", + "number_prefix", + "term_grid", + "termsize", + "time", + "unicode-width", + "uucore", ] [[package]] @@ -1086,89 +1192,95 @@ source = "git+https://github.com/SunriseOS/lzw#b4ca11f83315129ee683aa3d9ca8d6c3a name = "maplit" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43" [[package]] name = "mashup" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d82b34c7fb11bb41719465c060589e291d505ca4735ea30016a91f6fc79c3b" dependencies = [ - "mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-hack 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "mashup-impl", + "proc-macro-hack 0.4.2", ] [[package]] name = "mashup-impl" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" dependencies = [ - "proc-macro-hack 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack 0.4.2", + "proc-macro2", ] [[package]] name = "md5" version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79c56d6a0b07f9e19282511c83fc5b086364cbae4ba8c7d5f190c3d9b0425a48" [[package]] name = "memchr" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", + "libc", ] [[package]] name = "memchr" version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" [[package]] name = "mkdir" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "mkfifo" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "mknod" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "mktemp" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "rand 0.5.6", + "tempfile", + "uucore", ] [[package]] name = "more" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "nix 0.8.1", + "redox_syscall", + "redox_termios", + "uucore", ] [[package]] @@ -1176,752 +1288,821 @@ name = "multiboot2" version = "0.7.1" source = "git+https://github.com/sunriseos/multiboot2-elf64.git#01f37450ae3d7f996c34337853e96124bfa07822" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.1.0", ] [[package]] name = "mv" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "nice" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "nix" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e49f6982987135c5e9620ab317623e723bd06738fd85377e8d55f57c8b6487" dependencies = [ - "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 0.7.0", + "cfg-if", + "libc", + "void", ] [[package]] name = "nix" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbdc256eaac2e3bd236d93ad999d3479ef775c863dbda3068c4006a92eec51b" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.1.0", + "cc", + "cfg-if", + "libc", + "void", ] [[package]] name = "nl" version = "0.0.1" dependencies = [ - "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "aho-corasick 0.7.6", + "getopts", + "libc", + "memchr 2.2.1", + "regex", + "regex-syntax", + "uucore", ] [[package]] name = "nodrop" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" [[package]] name = "nohup" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "nom" version = "4.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" dependencies = [ - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.1", + "version_check", ] [[package]] name = "nproc" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "num_cpus", + "uucore", ] [[package]] name = "num-integer" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" dependencies = [ - "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.5", + "num-traits", ] [[package]] name = "num-traits" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" dependencies = [ - "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.5", ] [[package]] name = "num_cpus" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", + "libc", ] [[package]] name = "number_prefix" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee" dependencies = [ - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", ] [[package]] name = "numfmt" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "numtoa" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" [[package]] name = "od" version = "0.0.1" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "half 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "byteorder", + "getopts", + "half", + "libc", + "uucore", ] [[package]] name = "onig" version = "4.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8518fcb2b1b8c2f45f0ad499df4fda6087fc3475ca69a185c173b8315d2fb383" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "onig_sys 69.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.1.0", + "lazy_static", + "libc", + "onig_sys", ] [[package]] name = "onig_sys" version = "69.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388410bf5fa341f10e58e6db3975f4bea1ac30247dd79d37a9e5ced3cb4cc3b0" dependencies = [ - "cc 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "pkg-config", ] [[package]] name = "opaque-debug" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409" [[package]] name = "paste" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "pathchk" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "pest" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "933085deae3f32071f135d799d75667b63c8dc1f4537159756e3d4ceab41868c" dependencies = [ - "ucd-trie 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-trie", ] [[package]] name = "pest_derive" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" dependencies = [ - "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pest", + "pest_generator", ] [[package]] name = "pest_generator" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646" dependencies = [ - "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pest_meta 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", + "pest", + "pest_meta", + "proc-macro2", + "quote 0.6.13", + "syn", ] [[package]] name = "pest_meta" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f249ea6de7c7b7aba92b4ff4376a994c6dbd98fd2166c89d5c4947397ecb574d" dependencies = [ - "maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "maplit", + "pest", + "sha-1", ] [[package]] name = "pin-utils" version = "0.1.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" [[package]] name = "pinky" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "pkg-config" version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea" [[package]] name = "plain" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-info" version = "0.0.1" -source = "git+https://github.com/sunriseos/platform-info.git#6f38ff0cf0e4c872567b8bdf20317a4836607461" +source = "git+https://github.com/sunriseos/platform-info.git?branch=master#6f38ff0cf0e4c872567b8bdf20317a4836607461" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "winapi 0.3.7", ] [[package]] name = "printenv" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "printf" version = "0.0.1" dependencies = [ - "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "itertools", + "uucore", ] [[package]] name = "proc-macro-hack" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "463bf29e7f11344e58c9e01f171470ab15c925c6822ad75028cc1c0e1d1eb63b" dependencies = [ - "proc-macro-hack-impl 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-hack-impl", ] [[package]] name = "proc-macro-hack" version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" [[package]] name = "proc-macro-hack-impl" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c47dcb1594802de8c02f3b899e2018c78291168a22c281be21ea0fb4796842" [[package]] name = "proc-macro2" version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0", ] [[package]] name = "ptx" version = "0.0.1" dependencies = [ - "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "aho-corasick 0.7.6", + "getopts", + "libc", + "memchr 2.2.1", + "regex", + "regex-syntax", + "uucore", ] [[package]] name = "pwd" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "quick-error" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" [[package]] name = "quote" version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" [[package]] name = "quote" version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", ] [[package]] name = "rand" version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "rand 0.4.6", ] [[package]] name = "rand" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" dependencies = [ - "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi 0.3.7", ] [[package]] name = "rand" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "winapi 0.3.7", ] [[package]] name = "rand" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" dependencies = [ - "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.5", + "libc", + "rand_chacha", + "rand_core 0.4.2", + "rand_hc", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg", + "rand_xorshift", + "winapi 0.3.7", ] [[package]] name = "rand_chacha" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" dependencies = [ - "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.5", + "rand_core 0.3.1", ] [[package]] name = "rand_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" dependencies = [ - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.2", ] [[package]] name = "rand_core" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" [[package]] name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "rand_isaac" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "rand_core 0.4.2", + "winapi 0.3.7", ] [[package]] name = "rand_os" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi 0.3.7", ] [[package]] name = "rand_pcg" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" dependencies = [ - "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.5", + "rand_core 0.4.2", ] [[package]] name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "rdrand" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "readlink" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "realpath" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "redox_syscall" version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" [[package]] name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" dependencies = [ - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall", ] [[package]] name = "regex" version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd" dependencies = [ - "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.7.6", + "memchr 2.2.1", + "regex-syntax", + "thread_local", ] [[package]] name = "regex-syntax" version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716" [[package]] name = "relpath" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "remove_dir_all" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" dependencies = [ - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7", ] [[package]] name = "rm" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "getopts", + "remove_dir_all", + "uucore", + "walkdir", ] [[package]] name = "rmdir" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "rust-ini" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" [[package]] name = "rust-users" version = "0.6.0" source = "git+https://github.com/uutils/rust-users#e64253f2b995e7f1a458c68a7eca66e0171d183a" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", + "libc", ] [[package]] name = "rustc-demangle" version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" [[package]] name = "same-file" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421" dependencies = [ - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util", ] [[package]] name = "scopeguard" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "semver" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "semver-parser", ] [[package]] name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "seq" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "sha-1" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23962131a91661d643c98940b20fcaffe62d776a823247be80a48fcb8b6fce68" dependencies = [ - "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug", ] [[package]] name = "sha1" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" [[package]] name = "sha2" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d963c78ce367df26d7ea8b8cc655c651b42e8a1e584e869c1e17dae3ccb116a" dependencies = [ - "block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "block-buffer 0.2.0", + "byte-tools 0.2.0", + "digest 0.6.2", + "fake-simd", + "generic-array 0.8.3", ] [[package]] name = "sha3" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26405905b6a56a94c60109cfda62610507ac14a65be531f5767dec5c5a8dd6a0" dependencies = [ - "block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "block-buffer 0.2.0", + "byte-tools 0.2.0", + "digest 0.6.2", + "generic-array 0.8.3", ] [[package]] name = "shred" version = "0.0.1" dependencies = [ - "filetime 0.2.7 (git+https://github.com/sunriseos/filetime.git)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "filetime", + "getopts", + "libc", + "rand 0.5.6", + "time", + "uucore", ] [[package]] name = "shuf" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "rand 0.5.6", + "uucore", ] [[package]] name = "sleep" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "smallvec" version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" [[package]] name = "sort" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "itertools", + "semver", + "uucore", ] [[package]] name = "spin" -version = "0.4.10" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] -name = "spin" -version = "0.5.2" +name = "spinning_top" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32d801a3a53bcf5071f85fef8d5cab9e5f638fc5580a37e6eb7aba4b37438d24" +dependencies = [ + "lock_api 0.3.4", +] [[package]] name = "spinning_top" -version = "0.1.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75adad84ee84b521fb2cca2d4fd0f1dab1d8d026bda3c5bea4ca63b5f9f9293c" dependencies = [ - "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.4.7", ] [[package]] name = "split" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "stat" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "time", + "uucore", ] [[package]] name = "static_assertions" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f8de36da215253eb5f24020bfaa0646613b48bf7ebe36cdfa37c3b3b33b241" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "std_hello_world" version = "0.1.0" dependencies = [ - "sunrise-libuser 0.1.0", + "sunrise-libuser", ] [[package]] name = "stdbuf" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libstdbuf 0.0.1", - "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libstdbuf", + "tempdir", + "uucore", ] [[package]] @@ -1929,443 +2110,456 @@ name = "storage_device" version = "1.0.0" source = "git+https://github.com/sunriseos/storage_device.git#7b4bc4d2113242f5818d90a659a8f7c0ca4cce67" dependencies = [ - "lru 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lru", + "plain", ] [[package]] name = "strsim" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" dependencies = [ - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "clap", + "structopt-derive", ] [[package]] name = "structopt-derive" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" dependencies = [ - "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", + "heck", + "proc-macro2", + "quote 0.6.13", + "syn", ] [[package]] name = "sum" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "sunrise-ahci" version = "0.1.0" dependencies = [ - "bitfield 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libuser 0.1.0", - "sunrise-libutils 0.1.0", + "bitfield", + "lazy_static", + "log", + "spin", + "static_assertions 1.1.0", + "sunrise-libuser", + "sunrise-libutils", ] [[package]] name = "sunrise-bootstrap" version = "0.1.0" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "multiboot2 0.7.1 (git+https://github.com/sunriseos/multiboot2-elf64.git)", - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libutils 0.1.0", - "xmas-elf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec", + "bit_field 0.10.0", + "bitflags 1.1.0", + "lazy_static", + "multiboot2", + "smallvec", + "spin", + "static_assertions 0.3.3", + "sunrise-libutils", + "xmas-elf", ] [[package]] name = "sunrise-fs" version = "0.1.0" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libfat 0.1.0 (git+https://github.com/sunriseos/libfat.git)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "storage_device 1.0.0 (git+https://github.com/sunriseos/storage_device.git)", - "sunrise-libuser 0.1.0", - "sunrise-libutils 0.1.0", - "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec", + "bitflags 1.1.0", + "byteorder", + "crc", + "hashbrown 0.5.0", + "lazy_static", + "libfat", + "log", + "plain", + "spin", + "static_assertions 0.3.3", + "storage_device", + "sunrise-libuser", + "sunrise-libutils", + "uuid", ] [[package]] name = "sunrise-kernel" version = "0.1.0" dependencies = [ - "acpi 0.1.0 (git+https://github.com/sunriseos/acpi.git)", - "atomic 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitfield 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "linked_list_allocator 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "multiboot2 0.7.1 (git+https://github.com/sunriseos/multiboot2-elf64.git)", - "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libkern 0.1.0", - "sunrise-libutils 0.1.0", - "tinybmp 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xmas-elf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "acpi", + "atomic", + "bit_field 0.10.0", + "bitfield", + "bitflags 1.1.0", + "failure", + "hashbrown 0.5.0", + "lazy_static", + "linked_list_allocator 0.8.11", + "log", + "mashup", + "multiboot2", + "plain", + "rustc-demangle", + "smallvec", + "spin", + "static_assertions 0.3.3", + "sunrise-libkern", + "sunrise-libutils", + "tinybmp", + "xmas-elf", ] [[package]] name = "sunrise-keyboard" version = "0.1.0" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libuser 0.1.0", - "sunrise-libutils 0.1.0", + "arrayvec", + "generic-array 0.13.2", + "lazy_static", + "log", + "spin", + "sunrise-libuser", + "sunrise-libutils", ] [[package]] name = "sunrise-libkern" version = "0.1.0" dependencies = [ - "bitfield 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libutils 0.1.0", + "bitfield", + "bitflags 1.1.0", + "lazy_static", + "plain", + "static_assertions 0.3.3", + "sunrise-libutils", ] [[package]] name = "sunrise-libtimezone" version = "0.1.0" dependencies = [ - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", + "plain", + "static_assertions 0.3.3", ] [[package]] name = "sunrise-libuser" version = "0.1.0" dependencies = [ - "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bitfield 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "generational-arena 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "linked_list_allocator 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libkern 0.1.0", - "sunrise-libutils 0.1.0", - "swipc-gen 0.1.0", + "arrayvec", + "bit_field 0.10.0", + "bitfield", + "byteorder", + "failure", + "futures-preview", + "generational-arena", + "hashbrown 0.5.0", + "lazy_static", + "linked_list_allocator 0.10.1", + "log", + "spin", + "sunrise-libkern", + "sunrise-libutils", + "swipc-gen", ] [[package]] name = "sunrise-libutils" version = "0.1.0" dependencies = [ - "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "bit_field 0.10.0", + "byteorder", + "futures-preview", + "num-traits", ] [[package]] name = "sunrise-loader" version = "0.1.0" dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libkern 0.1.0", - "sunrise-libuser 0.1.0", - "sunrise-libutils 0.1.0", - "xmas-elf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "log", + "spin", + "sunrise-libkern", + "sunrise-libuser", + "sunrise-libutils", + "xmas-elf", ] [[package]] name = "sunrise-shell" version = "0.1.0" dependencies = [ - "bstr 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "gif 0.10.0 (git+https://github.com/SunriseOS/image-gif)", - "hex 0.3.2 (git+https://github.com/KokaKiwi/rust-hex)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libkern 0.1.0", - "sunrise-libuser 0.1.0", + "bstr", + "gif", + "hex 0.3.2", + "lazy_static", + "log", + "sha1", + "spin", + "sunrise-libkern", + "sunrise-libuser", ] [[package]] name = "sunrise-sm" version = "0.1.0" dependencies = [ - "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libuser 0.1.0", + "hashbrown 0.5.0", + "lazy_static", + "log", + "spin", + "sunrise-libuser", ] [[package]] name = "sunrise-time" version = "0.1.0" dependencies = [ - "cargo-5730 0.1.0 (git+https://github.com/Thog/cargo-5730.git?branch=feature/windows-support)", - "generic-array 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libtimezone 0.1.0", - "sunrise-libuser 0.1.0", - "sunrise-libutils 0.1.0", + "cargo-5730", + "generic-array 0.13.2", + "log", + "spin", + "sunrise-libtimezone", + "sunrise-libuser", + "sunrise-libutils", ] [[package]] name = "sunrise-twili" version = "0.1.0" dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libuser 0.1.0", + "lazy_static", + "log", + "spin", + "sunrise-libuser", ] [[package]] name = "sunrise-vi" version = "0.1.0" dependencies = [ - "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "font-rs 0.1.3 (git+https://github.com/SunriseOS/font-rs)", - "futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)", - "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libkern 0.1.0", - "sunrise-libuser 0.1.0", - "sunrise-libutils 0.1.0", + "bit_field 0.10.0", + "font-rs", + "futures-preview", + "hashbrown 0.5.0", + "lazy_static", + "log", + "spin", + "sunrise-libkern", + "sunrise-libuser", + "sunrise-libutils", ] [[package]] name = "sunrise-wall-clock" version = "0.1.0" dependencies = [ - "bstr 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "sunrise-libuser 0.1.0", + "bstr", + "log", + "spin", + "sunrise-libuser", ] [[package]] name = "swipc-gen" version = "0.1.0" dependencies = [ - "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "darling 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", - "swipc-parser 0.1.0", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", + "bit_field 0.10.0", + "darling", + "lazy_static", + "proc-macro2", + "structopt", + "swipc-parser", + "syn", ] [[package]] name = "swipc-parser" version = "0.1.0" dependencies = [ - "pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pest", + "pest_derive", ] [[package]] name = "syn" version = "0.15.40" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc945221ccf4a7e8c31222b9d1fc77aefdd6638eb901a6ce457a3dc29d4c31e8" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote 0.6.13", + "unicode-xid 0.1.0", ] [[package]] name = "sync" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "getopts", + "kernel32-sys", + "libc", + "uucore", + "winapi 0.3.7", ] [[package]] name = "synstructure" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote 0.6.13", + "syn", + "unicode-xid 0.1.0", ] [[package]] name = "tac" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "tail" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "getopts", + "kernel32-sys", + "libc", + "redox_syscall", + "uucore", + "winapi 0.3.7", ] [[package]] name = "tee" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "tempdir" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" dependencies = [ - "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.6", + "remove_dir_all", ] [[package]] name = "tempfile" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "kernel32-sys", + "libc", + "rand 0.3.23", + "redox_syscall", + "winapi 0.2.8", ] [[package]] name = "term_grid" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230d3e804faaed5a39b08319efb797783df2fd9671b39b7596490cb486d702cf" dependencies = [ - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] name = "termcolor" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" dependencies = [ - "wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wincolor", ] [[package]] name = "termion" version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8fb22f7cde82c8220e5aeacb3258ed7ce996142c77cba193f203515e26c330" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "numtoa", + "redox_syscall", + "redox_termios", ] [[package]] name = "termsize" version = "0.1.6" -source = "git+https://github.com/sunriseos/termsize.git#07ebe43eb0f57e60e89e00383f0557bb1d1e0693" +source = "git+https://github.com/sunriseos/termsize.git?branch=master#07ebe43eb0f57e60e89e00383f0557bb1d1e0693" dependencies = [ - "atty 0.2.13 (git+https://github.com/sunriseos/atty.git)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "atty", + "kernel32-sys", + "libc", + "winapi 0.2.8", ] [[package]] name = "test" version = "0.0.1" dependencies = [ - "atty 0.2.13 (git+https://github.com/sunriseos/atty.git)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "atty", + "libc", + "redox_syscall", + "uucore", ] [[package]] name = "textwrap" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] name = "thread_local" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", ] [[package]] @@ -2373,654 +2567,475 @@ name = "time" version = "0.1.42" source = "git+https://github.com/sunriseos/time.git?branch=v0.1#79790b6c4e937c4591706e68143926f05696923d" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "redox_syscall", + "winapi 0.3.7", ] [[package]] name = "timeout" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "time", + "uucore", ] [[package]] name = "tinybmp" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503e3fde7e36b1aa2345af8a3af0086c9b01d9db07b24f3fb0aab07316b9fa10" dependencies = [ - "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "nom", ] [[package]] name = "touch" version = "0.0.1" dependencies = [ - "filetime 0.2.7 (git+https://github.com/sunriseos/filetime.git)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "filetime", + "getopts", + "time", + "uucore", ] [[package]] name = "tr" version = "0.0.1" dependencies = [ - "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "bit-set", + "fnv", + "getopts", + "uucore", ] [[package]] name = "true" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "truncate" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "tsort" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "tty" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "typenum" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" [[package]] name = "ucd-trie" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f00ed7be0c1ff1e24f46c3d2af4859f7e863672ba3a6e92e7cff702bf9f06c2" [[package]] name = "uname" version = "0.0.1" dependencies = [ - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "platform-info 0.0.1 (git+https://github.com/sunriseos/platform-info.git)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "clap", + "platform-info", + "uucore", ] [[package]] name = "unexpand" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "unicode-width", + "uucore", ] [[package]] name = "unicode-segmentation" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9" [[package]] name = "unicode-width" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" [[package]] name = "unicode-xid" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" [[package]] name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unindent" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63f18aa3b0e35fed5a0048f029558b1518095ffe2a0a31fb87c93dece93a4993" [[package]] name = "uniq" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "unix_socket" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", + "cfg-if", + "libc", ] [[package]] name = "unlink" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "libc", + "uucore", ] [[package]] name = "uptime" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "time", + "uucore", ] [[package]] name = "users" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "uucore" version = "0.0.1" -source = "git+https://github.com/sunriseos/uucore.git#0bf822ef6c4d29a27fe4e1d9571c02953898d430" +source = "git+https://github.com/sunriseos/uucore.git?branch=master#0bf822ef6c4d29a27fe4e1d9571c02953898d430" dependencies = [ - "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "nix 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", - "platform-info 0.0.1 (git+https://github.com/sunriseos/platform-info.git)", - "termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "wild 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "data-encoding", + "failure", + "getopts", + "lazy_static", + "libc", + "nix 0.13.1", + "platform-info", + "termion", + "time", + "wild", ] [[package]] name = "uuid" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" [[package]] name = "uutils" version = "0.0.1" dependencies = [ - "arch 0.0.1", - "base32 0.0.1", - "base64 0.0.1", - "basename 0.0.1", - "cat 0.0.1", - "chgrp 0.0.1", - "chmod 0.0.1", - "chown 0.0.1", - "chroot 0.0.1", - "cksum 0.0.1", - "comm 0.0.1", - "cp 0.0.1", - "cut 0.0.1", - "date 0.0.1", - "dircolors 0.0.1", - "dirname 0.0.1", - "du 0.0.1", - "echo 0.0.1", - "env 0.0.1", - "expand 0.0.1", - "expr 0.0.1", - "factor 0.0.1", - "false 0.0.1", - "filetime 0.2.7 (git+https://github.com/sunriseos/filetime.git)", - "fmt 0.0.1", - "fold 0.0.1", - "groups 0.0.1", - "hashsum 0.0.1", - "head 0.0.1", - "hostid 0.0.1", - "hostname 0.0.1", - "id 0.0.1", - "install 0.0.1", - "join 0.0.1", - "kill 0.0.1", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", - "link 0.0.1", - "ln 0.0.1", - "logname 0.0.1", - "ls 0.0.1", - "mkdir 0.0.1", - "mkfifo 0.0.1", - "mknod 0.0.1", - "mktemp 0.0.1", - "more 0.0.1", - "mv 0.0.1", - "nice 0.0.1", - "nl 0.0.1", - "nohup 0.0.1", - "nproc 0.0.1", - "numfmt 0.0.1", - "od 0.0.1", - "paste 0.0.1", - "pathchk 0.0.1", - "pinky 0.0.1", - "printenv 0.0.1", - "printf 0.0.1", - "ptx 0.0.1", - "pwd 0.0.1", - "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "readlink 0.0.1", - "realpath 0.0.1", - "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "relpath 0.0.1", - "rm 0.0.1", - "rmdir 0.0.1", - "rust-users 0.6.0 (git+https://github.com/uutils/rust-users)", - "seq 0.0.1", - "shred 0.0.1", - "shuf 0.0.1", - "sleep 0.0.1", - "sort 0.0.1", - "split 0.0.1", - "stat 0.0.1", - "stdbuf 0.0.1", - "sum 0.0.1", - "sync 0.0.1", - "tac 0.0.1", - "tail 0.0.1", - "tee 0.0.1", - "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "test 0.0.1", - "time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)", - "timeout 0.0.1", - "touch 0.0.1", - "tr 0.0.1", - "true 0.0.1", - "truncate 0.0.1", - "tsort 0.0.1", - "tty 0.0.1", - "uname 0.0.1", - "unexpand 0.0.1", - "unindent 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "uniq 0.0.1", - "unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unlink 0.0.1", - "uptime 0.0.1", - "users 0.0.1", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "wc 0.0.1", - "who 0.0.1", - "whoami 0.0.1", - "yes 0.0.1", + "arch", + "base32", + "base64", + "basename", + "cat", + "chgrp", + "chmod", + "chown", + "chroot", + "cksum", + "comm", + "cp", + "cut", + "date", + "dircolors", + "dirname", + "du", + "echo", + "env", + "expand", + "expr", + "factor", + "false", + "filetime", + "fmt", + "fold", + "groups", + "hashsum", + "head", + "hostid", + "hostname", + "id", + "install", + "join", + "kill", + "lazy_static", + "libc", + "link", + "ln", + "logname", + "ls", + "mkdir", + "mkfifo", + "mknod", + "mktemp", + "more", + "mv", + "nice", + "nl", + "nohup", + "nproc", + "numfmt", + "od", + "paste", + "pathchk", + "pinky", + "printenv", + "printf", + "ptx", + "pwd", + "rand 0.6.5", + "readlink", + "realpath", + "regex", + "relpath", + "rm", + "rmdir", + "rust-users", + "seq", + "shred", + "shuf", + "sleep", + "sort", + "split", + "stat", + "stdbuf", + "sum", + "sync", + "tac", + "tail", + "tee", + "tempdir", + "test", + "time", + "timeout", + "touch", + "tr", + "true", + "truncate", + "tsort", + "tty", + "uname", + "unexpand", + "unindent", + "uniq", + "unix_socket", + "unlink", + "uptime", + "users", + "uucore", + "wc", + "who", + "whoami", + "yes", ] [[package]] name = "vec_map" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" [[package]] name = "version_check" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" [[package]] name = "void" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "walkdir" version = "2.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" dependencies = [ - "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file", + "winapi 0.3.7", + "winapi-util", ] [[package]] name = "walker" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44971d5e5ae4f7904dffb6260ebd3910e7bcae104a94730e04a24cb6af40646b" [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wc" version = "0.0.1" dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "getopts", + "uucore", ] [[package]] name = "who" version = "0.0.1" dependencies = [ - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "uucore", ] [[package]] name = "whoami" version = "0.0.1" dependencies = [ - "advapi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "advapi32-sys", + "clap", + "uucore", + "winapi 0.3.7", ] [[package]] name = "wild" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d34fecce28871e5c0e059deae21ef7f7d13b98a5964b24c58b3735c8052fc8" dependencies = [ - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "glob", ] [[package]] name = "winapi" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" [[package]] name = "winapi" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[package]] name = "winapi-build" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" dependencies = [ - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "wincolor" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9" dependencies = [ - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7", + "winapi-util", ] [[package]] name = "xattr" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" dependencies = [ - "libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)", + "libc", ] [[package]] name = "xmas-elf" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e74de9a366f6ab8c405fa6b371d9ac24943921fa14b3d64afcb202065c405f11" dependencies = [ - "zero 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "zero", ] [[package]] name = "yes" version = "0.0.1" dependencies = [ - "clap 2.33.0 (git+https://github.com/sunriseos/clap.git)", - "uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)", + "clap", + "uucore", ] [[package]] name = "zero" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" - -[metadata] -"checksum acpi 0.1.0 (git+https://github.com/sunriseos/acpi.git)" = "" -"checksum advapi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e06588080cb19d0acb6739808aafa5f26bfb2ca015b2b6370028b44cf7cb8a9a" -"checksum ahash 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" -"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" -"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d" -"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" -"checksum atomic 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c210c1f4db048cda477b652d170572d84c9640695835f17663595d3bd543fc28" -"checksum atty 0.2.13 (git+https://github.com/sunriseos/atty.git)" = "" -"checksum autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "22130e92352b948e7e82a49cdb0aa94f2211761117f29e052dd397c1ac33542b" -"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" -"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" -"checksum bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a165d606cf084741d4ac3a28fb6e9b1eb0bd31f6cd999098cfddb0b2ab381dc0" -"checksum bit_field 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed8765909f9009617974ab6b7d332625b320b33c326b1e9321382ef1999b5d56" -"checksum bitfield 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" -"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" -"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd" -"checksum block-buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1339a1042f5d9f295737ad4d9a6ab6bf81c84a933dba110b9200cd6d1448b814" -"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -"checksum block-padding 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6d4dc3af3ee2e12f3e5d224e5e1e3d73668abbeb69e566d361f7d5563a4fdf09" -"checksum bstr 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94cdf78eb7e94c566c1f5dbe2abf8fc70a548fc902942a48c4b3a98b48ca9ade" -"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" -"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" -"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" -"checksum cargo-5730 0.1.0 (git+https://github.com/Thog/cargo-5730.git?branch=feature/windows-support)" = "" -"checksum cc 1.0.46 (registry+https://github.com/rust-lang/crates.io-index)" = "0213d356d3c4ea2c18c40b037c3be23cd639825c18f25ee670ac7813beeef99c" -"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" -"checksum chrono 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e8493056968583b0193c1bb04d6f7684586f3726992d6c573261941a895dbd68" -"checksum clap 2.33.0 (git+https://github.com/sunriseos/clap.git)" = "" -"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum color_quant 1.0.1 (git+https://github.com/SunriseOS/color_quant)" = "" -"checksum const-random 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" -"checksum const-random-macro 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" -"checksum cpp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d1cd8699ffa1b18fd388183f7762e0545eddbd5c6ec95e9e3b42a4a71a507ff" -"checksum cpp_build 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c47531e7e09532ad4827098729794f5e1a5b1c2ccbb5e295498d2e7ab451c445" -"checksum cpp_common 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "79e39149a7943affa02f5b6e347ca2840a129cc78d5883ee229f0f1c4027d628" -"checksum cpp_macros 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6bba562eb4d65561efb6cef4e5f0de5936edfee7c6af7a4dfc323f6f2c997e40" -"checksum cpp_syn 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8cd649bf5b3804d92fe12a60c7698f5a538a6033ed8a668bf5241d4d4f1644e" -"checksum cpp_synmap 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "897e4f9cdbe2874edd3ffe53718ee5d8b89e2a970057b2c93d3214104f2e90b6" -"checksum cpp_synom 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1fc8da5694233b646150c785118f77835ad0a49680c7f312a10ef30957c67b6d" -"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" -"checksum darling 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fcfbcb0c5961907597a7d1148e3af036268f2b773886b8bb3eeb1e1281d3d3d6" -"checksum darling_core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6afc018370c3bff3eb51f89256a6bdb18b4fdcda72d577982a14954a7a0b402c" -"checksum darling_macro 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c6d8dac1c6f1d29a41c4712b4400f878cb4fcc4c7628f298dd75038e024998d1" -"checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" -"checksum digest 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e5b29bf156f3f4b3c4f610a25ff69370616ae6e0657d416de22645483e72af0a" -"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" -"checksum env_logger 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39ecdb7dd54465526f0a56d666e3b2dd5f3a218665a030b6e4ad9e70fa95d8fa" -"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" -"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" -"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -"checksum filetime 0.2.7 (git+https://github.com/sunriseos/filetime.git)" = "" -"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum font-rs 0.1.3 (git+https://github.com/SunriseOS/font-rs)" = "" -"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -"checksum futures-channel-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4cd523712fc272e9b714669165a2832debee5a5b7e409bfccdc7c0d5cd0cf07a" -"checksum futures-core-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "719770f328642b657b849856bb5a607db9538dd5bb3000122e5ead55d0a58c36" -"checksum futures-executor-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "315dc58c908535d059576a329b86cd185933433382cfcd394fb2fa353330de03" -"checksum futures-io-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "cca0bf7a1f39c9d32b797b0def93d5932aa71796236aad6b549bac6f7df159a3" -"checksum futures-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcfeac5f016a4b5835bb93eb7961f50a64f0e001207562703d9ddf4109d7b263" -"checksum futures-sink-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "49dcfdacd6b5974ca0b9b78bc38ffd1071da0206179735c3df82e279f5b784e4" -"checksum futures-util-preview 0.3.0-alpha.16 (registry+https://github.com/rust-lang/crates.io-index)" = "f7a0451b9c5047c2b9ab93425ffd0793165511e93c04b977cd45fbd41c6e34b2" -"checksum generational-arena 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "921c3803adaeb9f9639de5149d9f0f9f4b79f00c423915b701db2e02ed80b9ce" -"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -"checksum generic-array 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" -"checksum generic-array 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fceb69994e330afed50c93524be68c42fa898c2d9fd4ee8da03bd7363acd26f2" -"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" -"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" -"checksum gif 0.10.0 (git+https://github.com/SunriseOS/image-gif)" = "" -"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" -"checksum half 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ff54597ea139063f4225f1ec47011b03c9de4a486957ff3fc506881dac951d0" -"checksum hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353" -"checksum hashbrown 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" -"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e153aa" -"checksum hex 0.3.2 (git+https://github.com/KokaKiwi/rust-hex)" = "" -"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -"checksum ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -"checksum ioctl-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5e2c4b26352496eaaa8ca7cfa9bd99e93419d3f7983dc6e99c2a35fe9e33504a" -"checksum itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" -"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" -"checksum libc 0.2.64 (git+https://github.com/sunriseos/libc.git?branch=sunrise)" = "" -"checksum libfat 0.1.0 (git+https://github.com/sunriseos/libfat.git)" = "" -"checksum linked_list_allocator 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e70e46c13c0e8374c26cec5752e3347ca1087d9711de8f45aa513a7700efd73d" -"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" -"checksum lru 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eb997a7ef669f5d9e59c297db18ba05df203fbca59ae00e8b5ceea329d9f4ddf" -"checksum lzw 0.10.0 (git+https://github.com/SunriseOS/lzw)" = "" -"checksum maplit 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43" -"checksum mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f2d82b34c7fb11bb41719465c060589e291d505ca4735ea30016a91f6fc79c3b" -"checksum mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" -"checksum md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "79c56d6a0b07f9e19282511c83fc5b086364cbae4ba8c7d5f190c3d9b0425a48" -"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e" -"checksum multiboot2 0.7.1 (git+https://github.com/sunriseos/multiboot2-elf64.git)" = "" -"checksum nix 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4dbdc256eaac2e3bd236d93ad999d3479ef775c863dbda3068c4006a92eec51b" -"checksum nix 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "47e49f6982987135c5e9620ab317623e723bd06738fd85377e8d55f57c8b6487" -"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" -"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" -"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" -"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" -"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" -"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee" -"checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" -"checksum onig 4.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8518fcb2b1b8c2f45f0ad499df4fda6087fc3475ca69a185c173b8315d2fb383" -"checksum onig_sys 69.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388410bf5fa341f10e58e6db3975f4bea1ac30247dd79d37a9e5ced3cb4cc3b0" -"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409" -"checksum pest 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "933085deae3f32071f135d799d75667b63c8dc1f4537159756e3d4ceab41868c" -"checksum pest_derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" -"checksum pest_generator 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63120576c4efd69615b5537d3d052257328a4ca82876771d6944424ccfd9f646" -"checksum pest_meta 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f249ea6de7c7b7aba92b4ff4376a994c6dbd98fd2166c89d5c4947397ecb574d" -"checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" -"checksum pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea" -"checksum plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -"checksum platform-info 0.0.1 (git+https://github.com/sunriseos/platform-info.git)" = "" -"checksum proc-macro-hack 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "463bf29e7f11344e58c9e01f171470ab15c925c6822ad75028cc1c0e1d1eb63b" -"checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" -"checksum proc-macro-hack-impl 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "38c47dcb1594802de8c02f3b899e2018c78291168a22c281be21ea0fb4796842" -"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" -"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" -"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" -"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" -"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd" -"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716" -"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" -"checksum rust-ini 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" -"checksum rust-users 0.6.0 (git+https://github.com/uutils/rust-users)" = "" -"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" -"checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421" -"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "23962131a91661d643c98940b20fcaffe62d776a823247be80a48fcb8b6fce68" -"checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" -"checksum sha2 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d963c78ce367df26d7ea8b8cc655c651b42e8a1e584e869c1e17dae3ccb116a" -"checksum sha3 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "26405905b6a56a94c60109cfda62610507ac14a65be531f5767dec5c5a8dd6a0" -"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" -"checksum spin 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ceac490aa12c567115b40b7b7fceca03a6c9d53d5defea066123debc83c5dc1f" -"checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -"checksum spinning_top 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "32d801a3a53bcf5071f85fef8d5cab9e5f638fc5580a37e6eb7aba4b37438d24" -"checksum static_assertions 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4f8de36da215253eb5f24020bfaa0646613b48bf7ebe36cdfa37c3b3b33b241" -"checksum storage_device 1.0.0 (git+https://github.com/sunriseos/storage_device.git)" = "" -"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7" -"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107" -"checksum syn 0.15.40 (registry+https://github.com/rust-lang/crates.io-index)" = "bc945221ccf4a7e8c31222b9d1fc77aefdd6638eb901a6ce457a3dc29d4c31e8" -"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" -"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0" -"checksum term_grid 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "230d3e804faaed5a39b08319efb797783df2fd9671b39b7596490cb486d702cf" -"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" -"checksum termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a8fb22f7cde82c8220e5aeacb3258ed7ce996142c77cba193f203515e26c330" -"checksum termsize 0.1.6 (git+https://github.com/sunriseos/termsize.git)" = "" -"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.42 (git+https://github.com/sunriseos/time.git?branch=v0.1)" = "" -"checksum tinybmp 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "503e3fde7e36b1aa2345af8a3af0086c9b01d9db07b24f3fb0aab07316b9fa10" -"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" -"checksum ucd-trie 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8f00ed7be0c1ff1e24f46c3d2af4859f7e863672ba3a6e92e7cff702bf9f06c2" -"checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9" -"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" -"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unindent 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "63f18aa3b0e35fed5a0048f029558b1518095ffe2a0a31fb87c93dece93a4993" -"checksum unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564" -"checksum uucore 0.0.1 (git+https://github.com/sunriseos/uucore.git)" = "" -"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" -"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" -"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e" -"checksum walker 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44971d5e5ae4f7904dffb6260ebd3910e7bcae104a94730e04a24cb6af40646b" -"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -"checksum wild 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "97d34fecce28871e5c0e059deae21ef7f7d13b98a5964b24c58b3735c8052fc8" -"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" -"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9" -"checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -"checksum xmas-elf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e74de9a366f6ab8c405fa6b371d9ac24943921fa14b3d64afcb202065c405f11" -"checksum zero 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f1bc8a6b2005884962297587045002d8cfb8dcec9db332f4ca216ddc5de82c5" +checksum = "5f1bc8a6b2005884962297587045002d8cfb8dcec9db332f4ca216ddc5de82c5" diff --git a/Makefile.toml b/Makefile.toml index 9ca954736..ecaafa6ea 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -6,7 +6,7 @@ default_to_workspace = false [env] CARGO_MAKE_CRATE_INSTALLATION_LOCKED = "true" RUST_TARGET_PATH = "${CARGO_MAKE_WORKING_DIRECTORY}" -XARGO_RUST_SRC = "${CARGO_MAKE_WORKING_DIRECTORY}/rust/src" +XARGO_RUST_SRC = "${CARGO_MAKE_WORKING_DIRECTORY}/rust/library" GDB_PORT = { script = ["echo ${GDB_PORT:-9090}"] } VNC_PORT = { script = ["echo ${VNC_PORT:-:0}"] } CLIPPY_RULES = """ @@ -75,7 +75,7 @@ install_crate = { crate_name = "mkisofs-rs", binary = "mkisofs-rs", test_arg = " [tasks.install-xargo] dependencies = ["install-rust-src"] -install_crate = { crate_name = "xargo", binary = "xargo", test_arg = "--version", min_version = "0.3.18" } +install_crate = { crate_name = "xargo", binary = "xargo", test_arg = "--version", min_version = "0.3.26" } [tasks.bootstrap] description = "Compiles the i386 bootstrap" diff --git a/Xargo.toml b/Xargo.toml index e0fe4aeeb..0c522b437 100644 --- a/Xargo.toml +++ b/Xargo.toml @@ -11,12 +11,10 @@ stage = 1 [patch.crates-io.libc] git = "https://github.com/sunriseos/libc.git" branch = "sunrise-2020-05-27" -features = ['align'] [patch.crates-io.compiler_builtins] git = "https://github.com/sunriseos/compiler-builtins.git" -branch = "sunrise-2020-05-27" -features = ['soft-float'] +branch = "sunrise-2022-08-19" [patch."https://github.com/sunriseos/sunriseos.git".sunrise-libuser] path = "libuser" diff --git a/ahci/Cargo.toml b/ahci/Cargo.toml index 235969f3d..f8237d333 100644 --- a/ahci/Cargo.toml +++ b/ahci/Cargo.toml @@ -11,11 +11,8 @@ sunrise-libutils = { path = "../libutils" } spin = "0.5" log = "0.4.6" bitfield = "0.13" +static_assertions = "1.1.0" [dependencies.lazy_static] features = ["spin_no_std"] version = "1.3.0" - -[dependencies.static_assertions] -version = "0.3.3" -features = ["nightly"] diff --git a/ahci/src/hba.rs b/ahci/src/hba.rs index be00f361f..713c31836 100644 --- a/ahci/src/hba.rs +++ b/ahci/src/hba.rs @@ -5,6 +5,8 @@ //! //! [Serial ATA AHCI: Specification, Rev. 1.3.1]: http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/serial-ata-ahci-spec-rev1-3-1.pdf +use core::mem::ManuallyDrop; + use sunrise_libuser::io::{Io, Mmio}; use sunrise_libuser::syscalls::{sleep_thread, query_physical_address}; use sunrise_libuser::mem::{map_mmio, virt_to_phys}; @@ -1079,8 +1081,8 @@ unsafe impl ZeroInitialized for CmdTable {} #[allow(clippy::missing_docs_in_private_items)] #[repr(C)] union Cfis { - raw_bytes: [Mmio; 64], - h2d: FisRegH2D, + raw_bytes: ManuallyDrop<[Mmio; 64]>, + h2d: ManuallyDrop, // ... } diff --git a/ahci/src/main.rs b/ahci/src/main.rs index 561205e9a..1c125053f 100644 --- a/ahci/src/main.rs +++ b/ahci/src/main.rs @@ -39,7 +39,7 @@ //! simultaneously. Unfortunately we can't take advantage of that until we manage to //! make command-completion interrupts work. -#![feature(box_syntax, untagged_unions)] +#![feature(box_syntax)] #![no_std] // rustc warnings @@ -53,7 +53,7 @@ // rustdoc warnings #![deny(missing_docs)] #![deny(clippy::missing_docs_in_private_items)] -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate alloc; diff --git a/bootstrap/src/bootstrap_logging.rs b/bootstrap/src/bootstrap_logging.rs index 041e0b416..f9c6e1dd5 100644 --- a/bootstrap/src/bootstrap_logging.rs +++ b/bootstrap/src/bootstrap_logging.rs @@ -5,6 +5,8 @@ //! //! This driver is meant to be as simple as possible +use core::arch::asm; + const COM1: u16 = 0x3F8; /// Init the rs232 COM1. Must be called before logging anything. @@ -46,12 +48,12 @@ pub fn bootstrap_log(string: &str) { unsafe fn bootstrap_inb(port: u16) -> u8 { let value: u8; - llvm_asm!("in $0, $1" : "={al}"(value) : "{dx}"(port) : "memory" : "intel", "volatile"); + asm!("in al, dx", in("dx") port, out("al") value, options(nostack, nomem, preserves_flags)); value } unsafe fn bootstrap_outb(port: u16, value: u8) { - llvm_asm!("out $1, $0" : : "{al}"(value), "{dx}"(port) : "memory" : "intel", "volatile"); + asm!("out dx, al", in("dx") port, in("al") value, options(nostack, nomem, preserves_flags)); } /// A logger that sends its output to COM1. @@ -69,5 +71,5 @@ impl ::core::fmt::Write for Serial { fn write_str(&mut self, s: &str) -> Result<(), ::core::fmt::Error> { bootstrap_log(s); Ok(()) - } + } } diff --git a/bootstrap/src/gdt/i386.rs b/bootstrap/src/gdt/i386.rs index 83a211c74..462d43c9b 100644 --- a/bootstrap/src/gdt/i386.rs +++ b/bootstrap/src/gdt/i386.rs @@ -9,6 +9,8 @@ pub mod instructions { pub mod tables { //! Instructions for loading descriptor tables (GDT, IDT, etc.). + use core::arch::asm; + use crate::gdt::segment_selector::SegmentSelector; /// A struct describing a pointer to a descriptor table (GDT / IDT). @@ -29,7 +31,7 @@ pub mod instructions { /// in physical memory to a correct GDT. The meaning of a "correct GDT" /// is left as an exercise to the reader. pub unsafe fn lgdt(gdt: &DescriptorTablePointer) { - llvm_asm!("lgdt ($0)" :: "r" (gdt) : "memory"); + asm!("lgdt [{}]", in(reg) gdt); } /// Load LDT table. @@ -39,7 +41,7 @@ pub mod instructions { /// The ldt must point to a valid LDT segment in the GDT. Note that /// modifying the current LDT might cause pointer invalidation. pub unsafe fn lldt(ldt: SegmentSelector) { - llvm_asm!("lldt $0" :: "r" (ldt.0) : "memory"); + asm!("lldt {:x}", in(reg) ldt.0); } // TODO: Goes somewhere else. @@ -49,7 +51,7 @@ pub mod instructions { /// /// segment must point to a valid TSS segment in the GDT. pub unsafe fn ltr(segment: SegmentSelector) { - llvm_asm!("ltr $0" :: "r"(segment.0)); + asm!("ltr {:x}", in(reg) segment.0); } /// Load IDT table. @@ -60,13 +62,15 @@ pub mod instructions { /// in physical memory to a correct IDT. The meaning of a "correct IDT" /// is left as an exercise to the reader. pub unsafe fn lidt(idt: &DescriptorTablePointer) { - llvm_asm!("lidt ($0)" :: "r" (idt) : "memory"); + asm!("lidt [{}]", in(reg) idt); } } pub mod segmentation { //! Provides functions to read and write segment registers. + use core::arch::asm; + use crate::gdt::segment_selector::SegmentSelector; /// Reload code segment register. @@ -82,10 +86,12 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn set_cs(sel: SegmentSelector) { - llvm_asm!("pushl $0; \ - pushl $$1f; \ - lretl; \ - 1:" :: "ri" (u64::from(sel.0)) : "rax" "memory"); + asm!(" + pushl {:e} + pushl 1f + lretl + 1:", + in(reg) u32::from(sel.0)); } /// Reload stack segment register. @@ -97,7 +103,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_ss(sel: SegmentSelector) { - llvm_asm!("movw $0, %ss " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %ss", in(reg) sel.0); } /// Reload data segment register. @@ -109,7 +115,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_ds(sel: SegmentSelector) { - llvm_asm!("movw $0, %ds " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %ds", in(reg) sel.0); } /// Reload es segment register. @@ -121,7 +127,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_es(sel: SegmentSelector) { - llvm_asm!("movw $0, %es " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %es", in(reg) sel.0); } /// Reload fs segment register. @@ -133,7 +139,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_fs(sel: SegmentSelector) { - llvm_asm!("movw $0, %fs " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %fs", in(reg) sel.0); } /// Reload gs segment register. @@ -145,19 +151,21 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_gs(sel: SegmentSelector) { - llvm_asm!("movw $0, %gs " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %gs", in(reg) sel.0); } /// Returns the current value of the code segment register. pub fn cs() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %cs, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %cs, {:x}", out(reg) segment) }; SegmentSelector(segment) } } pub mod interrupts { //! Interrupt disabling functionality. + use core::arch::asm; + /// Enable interrupts /// /// # Safety @@ -165,7 +173,7 @@ pub mod instructions { /// Enabling interrupts when they are disabled can break critical /// sections. pub unsafe fn sti() { - llvm_asm!("sti" :::: "volatile"); + asm!("sti"); } /// Disable interrupts @@ -176,7 +184,7 @@ pub mod instructions { /// disabled, care should be taken not to sleep in any way, as this will /// cause a deadlock. pub unsafe fn cli() { - llvm_asm!("cli" :::: "volatile"); + asm!("cli"); } } } diff --git a/bootstrap/src/gdt/mod.rs b/bootstrap/src/gdt/mod.rs index 6387e420e..6bb55fa4e 100644 --- a/bootstrap/src/gdt/mod.rs +++ b/bootstrap/src/gdt/mod.rs @@ -9,6 +9,8 @@ pub mod segment_selector; pub mod i386; +use core::arch::asm; + use spin::Once; use arrayvec::ArrayVec; use bit_field::BitField; @@ -94,7 +96,6 @@ pub fn init_gdt() { } } -#[no_mangle] lazy_static! { pub static ref MAIN_TASK: TssStruct = { TssStruct::new(0, (SegmentSelector(0), 0), (SegmentSelector(0), 0), (SegmentSelector(0), 0), SegmentSelector(7 << 3)) @@ -147,21 +148,21 @@ impl DescriptorTable { // For some reason, I can only far jmp using AT&T syntax... Which // makes me unbelievably sad. I should probably yell at LLVM for // this one. - llvm_asm!(" + asm!(" // Reload CS through far jmp - ljmp $$0x8, $$reload_CS - reload_CS:"); + ljmp $0x8, $1f + 1:", options(att_syntax)); - llvm_asm!(" + asm!(" // Reload other selectors - MOV AX, $0 + MOV AX, {:x} MOV DS, AX MOV ES, AX MOV FS, AX MOV GS, AX - MOV AX, $1 + MOV AX, {:x} MOV SS, AX - " : : "r"(new_ds), "r"(new_ss) : "EAX" : "intel"); + ", in(reg) new_ds, in(reg) new_ss, out("eax") _); } } } diff --git a/bootstrap/src/main.rs b/bootstrap/src/main.rs index 580f5f8d8..42f1b81d2 100644 --- a/bootstrap/src/main.rs +++ b/bootstrap/src/main.rs @@ -22,7 +22,7 @@ //! fancy logging interfaces that the kernel has. //! -#![feature(lang_items, start, llvm_asm, global_asm, naked_functions, core_intrinsics, const_fn, abi_x86_interrupt)] +#![feature(lang_items, start, core_intrinsics)] #![no_std] #![cfg_attr(target_os = "none", no_main)] @@ -33,11 +33,10 @@ #![allow(unreachable_code)] #![allow(dead_code)] #![cfg_attr(test, allow(unused_imports))] -#![deny(intra_doc_link_resolution_failure)] // rustdoc warnings #![allow(missing_docs, clippy::missing_docs_in_private_items)] -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] // clippy override #![allow(clippy::cast_lossless)] @@ -54,6 +53,7 @@ extern crate bitflags; #[macro_use] extern crate static_assertions; +use core::arch::asm; use core::fmt::Write; pub mod bootstrap_logging; @@ -83,7 +83,7 @@ pub static mut STACK: AlignedStack = AlignedStack([0; 4096 * 4]); pub fn print_stack() { unsafe { let sp: usize; - llvm_asm!("mov $0, esp" : "=r"(sp) : : : "intel"); + asm!("mov {}, esp", out(reg) sp); let sp_start = sp - crate::STACK.0.as_ptr() as usize; sunrise_libutils::print_hexdump(&mut Serial, &crate::STACK.0[sp_start..]); } @@ -105,7 +105,7 @@ pub fn print_stack() { #[cfg(any(target_os = "none", doc))] #[no_mangle] pub unsafe extern fn bootstrap_start() -> ! { - llvm_asm!(" + asm!(" // Memset the bss. Hopefully memset doesn't actually use the bss... mov eax, BSS_END sub eax, BSS_START @@ -116,12 +116,12 @@ pub unsafe extern fn bootstrap_start() -> ! { add esp, 12 // Create the stack - mov esp, $0 + mov esp, {} add esp, 16383 mov ebp, esp // Save multiboot infos addr present in ebx push ebx - call do_bootstrap" : : "m"(&STACK) : : "intel", "volatile"); + call do_bootstrap", in(reg) &STACK); core::intrinsics::unreachable() } @@ -180,20 +180,19 @@ pub extern "C" fn do_bootstrap(multiboot_info_addr: usize) -> ! { #[cfg(not(test))] unsafe { - llvm_asm!(" + asm!(" // save multiboot info pointer - mov ebx, $0 + mov ebx, {multiboot} // switch to the new stack - mov ebp, $1 - mov esp, $1 + mov ebp, {stack} + mov esp, {stack} // jump to the kernel - jmp $2" - : - : "r"(multiboot_info_page), "r"(new_ebp_esp), "r"(kernel_entry_point) - : "memory", "ebx" - : "intel", "volatile"); + jmp {start_addr}", + multiboot = in(reg) multiboot_info_page.0, + stack = in(reg) new_ebp_esp, + start_addr = in(reg) kernel_entry_point); } unreachable!() @@ -219,7 +218,7 @@ pub extern fn panic_fmt(p: &::core::panic::PanicInfo<'_>) -> ! { !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", p); - loop { unsafe { llvm_asm!("HLT"); } } + loop { unsafe { asm!("HLT"); } } } macro_rules! multiboot_header { diff --git a/bootstrap/src/paging/mod.rs b/bootstrap/src/paging/mod.rs index 0484a3e85..ff4850ad5 100644 --- a/bootstrap/src/paging/mod.rs +++ b/bootstrap/src/paging/mod.rs @@ -3,6 +3,8 @@ mod entry; mod table; +use core::arch::asm; + use multiboot2::{BootInformation, ElfSectionFlags}; use crate::address::{PhysicalAddress, VirtualAddress}; use crate::frame_alloc::{round_to_page, round_to_page_upper}; @@ -31,51 +33,43 @@ fn is_paging_on() -> bool { let cr0: usize; unsafe { // Safety: this is just getting the CR0 register - llvm_asm!("mov $0, cr0" : "=r"(cr0) ::: "intel" ); + asm!("mov {}, cr0", out(reg) cr0); } cr0 & 0x80000001 == 0x80000001 // PE | PG } unsafe fn enable_paging(page_directory_address: PhysicalAddress) { #[cfg(not(test))] - llvm_asm!("mov eax, $0 + asm!("mov eax, {} mov cr3, eax mov eax, cr0 or eax, 0x80010001 - mov cr0, eax " - - : - : "r" (page_directory_address.addr()) - : "eax", "memory" - : "intel", "volatile"); + mov cr0, eax", + in(reg) page_directory_address.addr(), + out("eax") _); } /// Flush the Translation Lookaside Buffer [https://wiki.osdev.org/TLB] fn flush_tlb() { #[cfg(not(test))] unsafe { - llvm_asm!("mov eax, cr3 - mov cr3, eax " - : - : - : "eax" - : "intel", "volatile"); + asm!("mov eax, cr3 + mov cr3, eax", + out("eax") _); } } /// Changes the content of the cr3 register, and returns the value before the change was made fn swap_cr3(page_directory_address: PhysicalAddress) -> PhysicalAddress { - let old_value: PhysicalAddress; + let old_value: usize; unsafe { - llvm_asm!("mov $0, cr3 - mov cr3, $1" - : "=&r"(old_value) - : "r"(page_directory_address) - : "memory" - : "intel", "volatile"); + asm!("mov {}, cr3 + mov cr3, {}", + out(reg) old_value, + in(reg) page_directory_address.0); } - old_value + PhysicalAddress(old_value) } /// Creates a set of page tables identity mapping the Bootstrap. diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 27fc5cd9c..501c29cbf 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -45,7 +45,7 @@ printed on stdout. ## Versions -- rust: `nightly-2020-05-27` +- rust: `nightly-2022-08-19` - clippy - rust-src - cargo-make: `0.31.0` diff --git a/fs/Cargo.toml b/fs/Cargo.toml index 3ff733927..d71973d9a 100644 --- a/fs/Cargo.toml +++ b/fs/Cargo.toml @@ -9,7 +9,7 @@ edition = "2018" bitflags = "1.0" sunrise-libuser = { path = "../libuser" } sunrise-libutils = { path = "../libutils" } -spin = "0.4" +spin = "0.5" log = "0.4.6" storage_device = { git = "https://github.com/sunriseos/storage_device.git", default-features = false, features = ["cached-block-device-nightly", "alloc"] } libfat = { git = "https://github.com/sunriseos/libfat.git" } diff --git a/fs/src/ipc/mod.rs b/fs/src/ipc/mod.rs index 70ae45c0f..f5c9f2bc1 100644 --- a/fs/src/ipc/mod.rs +++ b/fs/src/ipc/mod.rs @@ -1,7 +1,7 @@ //! IPC module //! This contains all IPC interfaces definition of the filesystem. -use alloc::prelude::v1::Box; +use alloc::boxed::Box; use sunrise_libuser::fs::{DirectoryEntry, DirectoryEntryType, DiskId, FileSystemType, PartitionId, FileSystemPath, IFileSystem, IFileSystemProxy, IFile, IFileProxy, IDirectory, IDirectoryProxy, IStorageProxy}; use sunrise_libuser::fs::IStorage as IStorageServer; diff --git a/fs/src/main.rs b/fs/src/main.rs index a337a9824..0b4e3fdb5 100644 --- a/fs/src/main.rs +++ b/fs/src/main.rs @@ -15,7 +15,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] extern crate alloc; diff --git a/i386-unknown-none.json b/i386-unknown-none.json index ddc6718da..2c94446eb 100644 --- a/i386-unknown-none.json +++ b/i386-unknown-none.json @@ -17,7 +17,7 @@ }, "relocation-model": "static", "executables": true, - "has-elf-tls": true, + "has-thread-local": true, "tls-model": "initial-exec", "features": "-mmx,-sse,+soft-float", "disable-redzone": true, diff --git a/i386-unknown-sunrise-user.json b/i386-unknown-sunrise-user.json index cfe37c0a1..a6ee80908 100644 --- a/i386-unknown-sunrise-user.json +++ b/i386-unknown-sunrise-user.json @@ -18,7 +18,7 @@ "env": "user", "position-independent-executables": true, "dynamic-linking": false, - "has-elf-tls": true, + "has-thread-local": true, "tls-model": "initial-exec", "has-rpath": false, "features": "-mmx,-sse,+soft-float", diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index 653c4cf72..0096880bc 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -19,7 +19,7 @@ bit_field = "0.10.0" bitflags = "1.1" multiboot2 = { git = "https://github.com/sunriseos/multiboot2-elf64.git" } spin = "0.5" -linked_list_allocator = "0.8.4" +linked_list_allocator = { version = "0.8.4", default-features = false, features = ["use_spin"] } log = "0.4.6" xmas-elf = "0.7.0" rustc-demangle = "0.1" diff --git a/kernel/src/event.rs b/kernel/src/event.rs index 133aff679..e68c0fa55 100644 --- a/kernel/src/event.rs +++ b/kernel/src/event.rs @@ -236,14 +236,14 @@ pub struct IRQEvent { impl Waitable for IRQEvent { fn is_signaled(&self) -> bool { - self.ack.fetch_update(|x| { + self.ack.fetch_update(Ordering::SeqCst, Ordering::SeqCst, |x| { if x < self.state.counter.load(Ordering::SeqCst) { // TODO: If level-triggered, set this to the counter. Some(x + 1) } else { None } - }, Ordering::SeqCst, Ordering::SeqCst) + }) .is_ok() } diff --git a/kernel/src/i386/interrupt_service_routines.rs b/kernel/src/i386/interrupt_service_routines.rs index 3e45be3d6..86b321e9f 100644 --- a/kernel/src/i386/interrupt_service_routines.rs +++ b/kernel/src/i386/interrupt_service_routines.rs @@ -27,6 +27,8 @@ //! //! [syscall_interrupt_dispatcher]: syscall_interrupt_dispatcher +use core::arch::asm; + use crate::i386::structures::idt::{PageFaultErrorCode, Idt}; use crate::i386::instructions::interrupts::sti; use crate::mem::VirtualAddress; @@ -274,7 +276,7 @@ macro_rules! trap_gate_asm { mov gs, ax // Call some rust code, passing it a pointer to the UserspaceHardwareContext - call ${0:P} + call {} // Handler finished, restore registers. add esp, 0x8 // pop and ignore the pushed arg ptr and esp cpy @@ -518,8 +520,8 @@ macro_rules! generate_trap_gate_handler { #[naked] extern "C" fn $wrapper_asm_fnname() { unsafe { - llvm_asm!(trap_gate_asm!(has_errorcode: $errcode) - :: "s"($wrapper_rust_fnname as extern "C" fn (&mut UserspaceHardwareContext)) : "memory" : "volatile", "intel"); + asm!(trap_gate_asm!(has_errorcode: $errcode), + sym $wrapper_rust_fnname, options(noreturn)); } } }; diff --git a/kernel/src/i386/mod.rs b/kernel/src/i386/mod.rs index 2ad690f12..dddb002e4 100644 --- a/kernel/src/i386/mod.rs +++ b/kernel/src/i386/mod.rs @@ -29,6 +29,8 @@ pub mod instructions { pub mod tables { //! Instructions for loading descriptor tables (GDT, IDT, etc.). + use core::arch::asm; + use crate::i386::structures::gdt::SegmentSelector; /// A struct describing a pointer to a descriptor table (GDT / IDT). @@ -50,7 +52,7 @@ pub mod instructions { /// in physical memory to a correct GDT. The meaning of a "correct GDT" /// is left as an exercise to the reader. pub unsafe fn lgdt(gdt: DescriptorTablePointer) { - llvm_asm!("lgdt ($0)" :: "r" (&gdt) : "memory" : "volatile"); + asm!("lgdt [{}]", in(reg) &gdt); } /// Store GDT table. @@ -62,7 +64,7 @@ pub mod instructions { }; // This *requires* the =*m bound. For whatever reason, using =r causes UB, the // compiler starts wildly reordering SGDTs and LGDTs, even with volatile. - llvm_asm!("sgdt $0" : "=*m"(&mut out) :: "memory" : "volatile"); + asm!("sgdt [{}]", in(reg) &mut out); out } } @@ -75,7 +77,7 @@ pub mod instructions { /// The ldt must point to a valid LDT segment in the GDT. Note that /// modifying the current LDT might cause pointer invalidation. pub unsafe fn lldt(ldt: SegmentSelector) { - llvm_asm!("lldt $0" :: "r" (ldt.0) : "memory"); + asm!("lldt {:x}", in(reg) ldt.0); } // TODO: Goes somewhere else. @@ -85,7 +87,7 @@ pub mod instructions { /// /// segment must point to a valid TSS segment in the GDT. pub unsafe fn ltr(segment: SegmentSelector) { - llvm_asm!("ltr $0" :: "r"(segment.0)); + asm!("ltr {:x}", in(reg) segment.0); } /// Load IDT table. @@ -96,13 +98,15 @@ pub mod instructions { /// in physical memory to a correct IDT. The meaning of a "correct IDT" /// is left as an exercise to the reader. pub unsafe fn lidt(idt: DescriptorTablePointer) { - llvm_asm!("lidt ($0)" :: "r" (&idt) : "memory"); + asm!("lidt [{}]", in(reg) &idt); } } pub mod segmentation { //! Provides functions to read and write segment registers. + use core::arch::asm; + use crate::i386::structures::gdt::SegmentSelector; /// Reload code segment register. @@ -118,10 +122,11 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn set_cs(sel: SegmentSelector) { - llvm_asm!("pushl $0; \ - pushl $$1f; \ - lretl; \ - 1:" :: "ri" (u64::from(sel.0)) : "rax" "memory"); + asm!("pushl {} + pushl $1f + lretl + 1:", + in(reg) u32::from(sel.0), options(att_syntax)); } /// Reload stack segment register. @@ -133,7 +138,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_ss(sel: SegmentSelector) { - llvm_asm!("movw $0, %ss " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %ss", in(reg) sel.0, options(att_syntax)); } /// Reload data segment register. @@ -145,7 +150,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_ds(sel: SegmentSelector) { - llvm_asm!("movw $0, %ds " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %ds", in(reg) sel.0, options(att_syntax)); } /// Reload es segment register. @@ -157,7 +162,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_es(sel: SegmentSelector) { - llvm_asm!("movw $0, %es " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %es", in(reg) sel.0, options(att_syntax)); } /// Reload fs segment register. @@ -169,7 +174,7 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_fs(sel: SegmentSelector) { - llvm_asm!("movw $0, %fs " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %fs", in(reg) sel.0, options(att_syntax)); } /// Reload gs segment register. @@ -181,54 +186,56 @@ pub mod instructions { /// only sound way to use this function is if the target segment has the /// same layout as the original segment. pub unsafe fn load_gs(sel: SegmentSelector) { - llvm_asm!("movw $0, %gs " :: "r" (sel.0) : "memory"); + asm!("movw {:x}, %gs", in(reg) sel.0, options(att_syntax)); } /// Returns the current value of the code segment register. pub fn cs() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %cs, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %cs, {:x}", out(reg) segment, options(att_syntax)) }; SegmentSelector(segment) } /// Read the value of the stack segment register. pub fn ss() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %ss, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %ss, {:x}", out(reg) segment, options(att_syntax)) }; SegmentSelector(segment) } /// Read the value of the data segment register. pub fn ds() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %ds, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %ds, {:x}", out(reg) segment, options(att_syntax)) }; SegmentSelector(segment) } /// Read the value of the es segment register. pub fn es() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %es, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %es, {:x}", out(reg) segment, options(att_syntax)) }; SegmentSelector(segment) } /// Read the value of the fs segment register. pub fn fs() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %fs, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %fs, {:x}", out(reg) segment, options(att_syntax)) }; SegmentSelector(segment) } /// Read the value of the gs segment register. pub fn gs() -> SegmentSelector { let segment: u16; - unsafe { llvm_asm!("mov %gs, $0" : "=r" (segment) ) }; + unsafe { asm!("mov %gs, {:x}", out(reg) segment, options(att_syntax)) }; SegmentSelector(segment) } } pub mod interrupts { //! Interrupt disabling functionality. + use core::arch::asm; + /// Enable interrupts /// /// # Safety @@ -236,7 +243,7 @@ pub mod instructions { /// Enabling interrupts when they are disabled can break critical /// sections based on [SpinLockIRQ](crate::sync::SpinLockIRQ). pub unsafe fn sti() { - llvm_asm!("sti" :::: "volatile"); + asm!("sti"); } /// Disable interrupts @@ -247,7 +254,7 @@ pub mod instructions { /// disabled, care should be taken not to sleep in any way, as this will /// cause a deadlock. pub unsafe fn cli() { - llvm_asm!("cli" :::: "volatile"); + asm!("cli"); } /// Waits until an interrupt is fired @@ -256,7 +263,7 @@ pub mod instructions { // Safety: HLT won't cause undefined behavior. Calling it might // cause a deadlock if interrupts are disabled, but that's not a // safety concern. - llvm_asm!("hlt" :::: "volatile"); + asm!("hlt"); } } diff --git a/kernel/src/i386/process_switch.rs b/kernel/src/i386/process_switch.rs index 0aa02c4ac..2b0ddbc4f 100644 --- a/kernel/src/i386/process_switch.rs +++ b/kernel/src/i386/process_switch.rs @@ -2,6 +2,7 @@ //! //! This modules describe low-level functions and structures needed to perform a process switch +use core::arch::asm; use crate::process::ThreadStruct; use alloc::sync::Arc; use core::mem::size_of; @@ -86,7 +87,7 @@ impl Default for ThreadHardwareContext { /// /// Interrupts definitely must be masked when calling this function #[inline(never)] // we need that sweet saved ebp + eip on the stack -pub unsafe extern "C" fn process_switch(thread_b: Arc, thread_current: Arc) -> Arc { +pub unsafe fn process_switch(thread_b: Arc, thread_current: Arc) -> Arc { let esp_to_load = { // todo do not try to change cr3 if thread_b belongs to the same process. @@ -111,7 +112,7 @@ pub unsafe extern "C" fn process_switch(thread_b: Arc, thread_curr gdt.commit(None, None, None, None, None, None); let current_esp: usize; - llvm_asm!("mov $0, esp" : "=r"(current_esp) : : : "intel", "volatile"); + asm!("mov {}, esp", out(reg) current_esp); // on restoring, esp will point to the top of the saved registers let esp_to_save = current_esp - (8 + 1 + 1) * size_of::(); @@ -152,19 +153,19 @@ pub unsafe extern "C" fn process_switch(thread_b: Arc, thread_curr let thread_b_whoami = Arc::into_raw(thread_b); let whoami: *const ThreadStruct; - llvm_asm!(" + asm!(" // Push all registers on the stack, swap to B's stack, and jump to B's schedule-in - schedule_out: - lea eax, resume // we push a callback function, called at the end of schedule-in + 1: + lea eax, 3f // we push a callback function, called at the end of schedule-in push eax pushad // pushes eax, ecx, edx, ebx, ebp, original esp, ebp, esi, edi pushfd // pushes eflags // load B's stack, and jump to its schedule-in - mov esp, $1 + mov esp, {} // thread B resumes here - schedule_in: + 2: // Ok ! Welcome again to B ! // restore the saved registers @@ -175,13 +176,12 @@ pub unsafe extern "C" fn process_switch(thread_b: Arc, thread_curr // If this was not the first time the thread was scheduled-in, // it ends up here - resume: + 3: // return to rust code as if nothing happened - " - : "={edi}"(whoami) // at re-schedule, $edi contains a pointer to our ThreadStruct - : "r"(esp_to_load), "{edi}"(thread_b_whoami) - : "eax" - : "volatile", "intel"); + ", + in(reg) esp_to_load, + inout("edi") thread_b_whoami => whoami, // at re-schedule, $edi contains a pointer to our ThreadStruct + out("eax") _); // ends up here if it was not our first schedule-in @@ -232,7 +232,7 @@ pub unsafe fn prepare_for_first_schedule(t: &ThreadStruct, entrypoint: usize, us // -------------- // poison ebp // poison eip - }; + } let stack_start = t.kstack.get_stack_start() as u32; @@ -283,17 +283,18 @@ pub unsafe fn prepare_for_first_schedule(t: &ThreadStruct, entrypoint: usize, us /// /// [`scheduler_first_schedule`]: crate::scheduler::scheduler_first_schedule. #[naked] -unsafe fn first_schedule() { +unsafe extern fn first_schedule() { // just get the ProcessStruct pointer in $edi, the entrypoint in $eax, and call a rust function unsafe { - llvm_asm!(" + asm!(" push ebx push edx push ecx push eax push edi - call ${0:P} - " : : "s"(first_schedule_inner as *const u8) : : "volatile", "intel"); + call {}", + sym first_schedule_inner, + options(noreturn)); } /// Stack is set-up, now we can run rust code. @@ -348,7 +349,7 @@ fn jump_to_entrypoint(ep: usize, userspace_stack_ptr: usize, arg1: usize, arg2: const_assert_eq!((GdtIndex::UTlsElf as u16) << 3 | 0b11, 0x43); const_assert_eq!((GdtIndex::UStack as u16) << 3 | 0b11, 0x4B); unsafe { - llvm_asm!(" + asm!(" mov ax,0x33 // ds, es <- UData, Ring 3 mov ds,ax mov es,ax @@ -359,10 +360,10 @@ fn jump_to_entrypoint(ep: usize, userspace_stack_ptr: usize, arg1: usize, arg2: // Build the fake stack for IRET push 0x4B // Userland Stack, Ring 3 - push $1 // Userspace ESP + push {1} // Userspace ESP pushfd push 0x2B // Userland Code, Ring 3 - push $0 // Entrypoint + push {0} // Entrypoint // Clean up all registers. Also setup arguments. // mov ecx, arg1 @@ -374,8 +375,8 @@ fn jump_to_entrypoint(ep: usize, userspace_stack_ptr: usize, arg1: usize, arg2: mov esi, 0 iretd - " :: "r"(ep), "r"(userspace_stack_ptr), "{ecx}"(arg1), "{edx}"(arg2) : - /* Prevent using eax as input, it's used early. */ "eax" : "intel", "volatile"); + ", + in(reg) ep, in(reg) userspace_stack_ptr, in("ecx") arg1, in("edx") arg2, /* this is purely a clobber */ in("eax") 0, options(noreturn)); } unreachable!() diff --git a/kernel/src/i386/registers.rs b/kernel/src/i386/registers.rs index 5c187de3d..de06efaae 100644 --- a/kernel/src/i386/registers.rs +++ b/kernel/src/i386/registers.rs @@ -3,11 +3,13 @@ #![allow(unused_macros)] #![allow(dead_code)] +use core::arch::asm; + /// Gets the current $eip. #[inline(never)] pub extern fn eip() -> usize { let eip; - unsafe { llvm_asm!("mov $0, [ebp + 4]" : "=r"(eip) ::: "intel"); } + unsafe { asm!("mov {}, [ebp + 4]", out(reg) eip); } eip } @@ -15,7 +17,7 @@ pub extern fn eip() -> usize { macro_rules! ebp { () => {{ let ebp; - unsafe { llvm_asm!("mov $0, ebp" : "=r"(ebp) ::: "intel"); } + unsafe { asm!("mov {}, ebp", out(reg) ebp); } ebp }} } @@ -24,7 +26,7 @@ macro_rules! ebp { macro_rules! esp { () => {{ let esp; - unsafe { llvm_asm!("mov $0, esp" : "=r"(esp) ::: "intel"); } + unsafe { asm!("mov {}, esp", out(reg) esp); } esp }} } @@ -32,6 +34,8 @@ macro_rules! esp { pub mod eflags { //! Processor state stored in the EFLAGS register. + use core::arch::asm; + bitflags! { /// The EFLAGS register. pub struct EFlags: u32 { @@ -99,7 +103,7 @@ pub mod eflags { /// Returns the raw current value of the EFLAGS register. pub fn read_raw() -> u32 { let r: u32; - unsafe { llvm_asm!("pushfd; pop $0" : "=r"(r) :: "memory") }; + unsafe { asm!("pushfd; pop {}", out(reg) r) }; r } @@ -116,6 +120,6 @@ pub mod eflags { /// /// Does not preserve any bits, including reserved bits. pub fn write_raw(val: u32) { - unsafe { llvm_asm!("pushd $0; popfd" :: "r"(val) : "memory" "flags") }; + unsafe { asm!("pushd {}; popfd", in(reg) val) }; } } diff --git a/kernel/src/i386/stack.rs b/kernel/src/i386/stack.rs index 075efec1c..48bcebe90 100644 --- a/kernel/src/i386/stack.rs +++ b/kernel/src/i386/stack.rs @@ -26,6 +26,7 @@ //! Since the stack is several pages long, we must ensure the stack respects some alignment //! in order to be able to find its bottom from any page. +use core::arch::asm; use core::mem::size_of; use crate::paging::lands::{VirtualSpaceLand, UserLand, KernelLand}; use crate::paging::{PAGE_SIZE, process_memory::QueryMemory, MappingAccessRights, PageState, kernel_memory::get_kernel_memory}; @@ -98,7 +99,7 @@ impl KernelStack { // extern "C" to make sure it is called with a sane ABI extern "C" fn get_current_stack_bottom() -> usize { let esp_ptr: usize; - unsafe { llvm_asm!("mov $0, esp" : "=r"(esp_ptr) ::: "intel" ) }; + unsafe { asm!("mov {}, esp", out(reg) esp_ptr) }; Self::align_to_stack_bottom(esp_ptr) } @@ -153,15 +154,17 @@ impl KernelStack { let esp; let eip; unsafe { - llvm_asm!(" - mov $0, ebp - mov $1, esp + asm!(" + mov {}, ebp + mov {}, esp // eip can only be read through the stack after a call instruction - call read_eip - read_eip: - pop $2" - : "=r"(ebp), "=r"(esp), "=r"(eip) ::: "volatile", "intel" ); + call 1f + 1: + pop {}", + out(reg) ebp, + out(reg) esp, + out(reg) eip); } let source = StackDumpSource::new(esp, ebp, eip); diff --git a/kernel/src/main.rs b/kernel/src/main.rs index c6a76ac68..83886ce74 100644 --- a/kernel/src/main.rs +++ b/kernel/src/main.rs @@ -10,7 +10,7 @@ //! Currently doesn't do much, besides booting and printing Hello World on the //! screen. But hey, that's a start. -#![feature(lang_items, start, llvm_asm, global_asm, naked_functions, core_intrinsics, const_fn, abi_x86_interrupt, allocator_api, box_syntax, no_more_cas, step_trait, step_trait_ext, thread_local, nll, exclusive_range_pattern)] +#![feature(lang_items, start, naked_functions, core_intrinsics, abi_x86_interrupt, allocator_api, box_syntax, thread_local, exclusive_range_pattern, asm_sym, step_trait)] #![no_std] #![cfg_attr(target_os = "none", no_main)] #![recursion_limit = "1024"] @@ -25,7 +25,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[cfg(not(target_os = "none"))] extern crate std; @@ -49,6 +49,7 @@ extern crate bitfield; #[macro_use] extern crate mashup; +use core::arch::asm; use core::fmt::Write; use crate::utils::io; @@ -107,7 +108,7 @@ use sunrise_libkern::process::*; /// This triggers the DoubleFault exception. unsafe fn force_double_fault() { loop { - llvm_asm!("push 0" :::: "intel", "volatile"); + asm!("push 0"); } } @@ -200,7 +201,7 @@ fn main() { #[cfg(any(target_os = "none", doc))] #[no_mangle] pub unsafe extern fn start() -> ! { - llvm_asm!(" + asm!(" // Memset the bss. Hopefully memset doesn't actually use the bss... mov eax, BSS_END sub eax, BSS_START @@ -212,7 +213,7 @@ pub unsafe extern fn start() -> ! { // Save multiboot infos addr present in ebx push ebx - call common_start" : : : : "intel", "volatile"); + call common_start"); core::intrinsics::unreachable() } @@ -274,7 +275,7 @@ pub extern "C" fn common_start(multiboot_info_addr: usize) -> ! { // We shouldn't reach this... loop { #[cfg(target_os = "none")] - unsafe { llvm_asm!("HLT"); } + unsafe { asm!("HLT"); } } } diff --git a/kernel/src/mem.rs b/kernel/src/mem.rs index 3a70df5b6..e9cb6172c 100644 --- a/kernel/src/mem.rs +++ b/kernel/src/mem.rs @@ -202,13 +202,13 @@ impl VirtualAddress { pub fn ceil(self) -> VirtualAddress { VirtualAddress(round_to_page_upper(self.0)) } } -unsafe impl core::iter::Step for PhysicalAddress { +impl core::iter::Step for PhysicalAddress { fn steps_between(start: &Self, end: &Self) -> Option { Step::steps_between(&start.0, &end.0) } fn forward_checked(start: Self, count: usize) -> Option { Step::forward_checked(start.0, count).map(PhysicalAddress) } fn backward_checked(start: Self, count: usize) -> Option { Step::backward_checked(start.0, count).map(PhysicalAddress) } } -unsafe impl core::iter::Step for VirtualAddress { +impl core::iter::Step for VirtualAddress { fn steps_between(start: &Self, end: &Self) -> Option { Step::steps_between(&start.0, &end.0) } fn forward_checked(start: Self, count: usize) -> Option { Step::forward_checked(start.0, count).map(VirtualAddress) } fn backward_checked(start: Self, count: usize) -> Option { Step::backward_checked(start.0, count).map(VirtualAddress) } diff --git a/kernel/src/paging/arch/i386/mod.rs b/kernel/src/paging/arch/i386/mod.rs index 1fc81e617..6b9125646 100644 --- a/kernel/src/paging/arch/i386/mod.rs +++ b/kernel/src/paging/arch/i386/mod.rs @@ -6,6 +6,8 @@ pub mod entry; pub mod table; pub mod lands; +use core::arch::asm; + use crate::mem::{VirtualAddress, PhysicalAddress}; /// The page size. Dictated by the MMU. @@ -26,67 +28,60 @@ pub fn is_paging_on() -> bool { let cr0: usize; unsafe { // Safety: this is just getting the CR0 register - llvm_asm!("mov $0, cr0" : "=r"(cr0) ::: "intel" ); + asm!("mov {}, cr0", out(reg) cr0); } cr0 & 0x80000001 == 0x80000001 // PE | PG } /// Not used anymore, bootstrap's job pub unsafe fn enable_paging(page_directory_address: PhysicalAddress) { - llvm_asm!("mov eax, $0 + asm!("mov eax, {} mov cr3, eax mov eax, cr0 or eax, 0x80010001 - mov cr0, eax " + mov cr0, eax", - : - : "r" (page_directory_address.addr()) - : "eax", "memory" - : "intel", "volatile"); + in(reg) page_directory_address.addr(), + out("eax") _); } /// Flush the Translation Lookaside Buffer [https://wiki.osdev.org/TLB] fn flush_tlb() { #[cfg(not(test))] unsafe { - llvm_asm!("mov eax, cr3 - mov cr3, eax " - : - : - : "eax" - : "intel", "volatile"); + asm!("mov eax, cr3 + mov cr3, eax", + out("eax") _); } } /// Changes the content of the cr3 register, and returns the value before the change was made fn swap_cr3(page_directory_address: PhysicalAddress) -> PhysicalAddress { - let old_value: PhysicalAddress; + let old_value: usize; unsafe { - llvm_asm!("mov $0, cr3 - mov cr3, $1" - : "=&r"(old_value) - : "r"(page_directory_address) - : "memory" - : "intel", "volatile"); + asm!("mov {}, cr3 + mov cr3, {}", + out(reg) old_value, + in(reg) page_directory_address.0); } - old_value + PhysicalAddress(old_value) } /// Reads the value of cr3, retrieving the current page directory's physical address pub fn read_cr3() -> PhysicalAddress { let cr3_value: usize; unsafe { - llvm_asm!( "mov $0, cr3" : "=r"(cr3_value) : : : "intel", "volatile"); + asm!("mov {}, cr3", out(reg) cr3_value); } PhysicalAddress(cr3_value) } /// Reads the value of cr2, retrieving the address that caused a page fault pub fn read_cr2() -> VirtualAddress { - let cr2_value : usize; + let cr2_value: usize; unsafe { - llvm_asm!( "mov $0, cr2" : "=r"(cr2_value) : : : "intel", "volatile"); + asm!("mov {}, cr2", out(reg) cr2_value); } VirtualAddress(cr2_value) } diff --git a/kernel/src/paging/hierarchical_table.rs b/kernel/src/paging/hierarchical_table.rs index 82931b09e..42ed72b4e 100644 --- a/kernel/src/paging/hierarchical_table.rs +++ b/kernel/src/paging/hierarchical_table.rs @@ -522,7 +522,7 @@ pub trait TableHierarchy { return None } - struct Hole { start_addr: usize, len: usize }; + struct Hole { start_addr: usize, len: usize } let mut hole; // the hole we are currently considering diff --git a/kernel/src/paging/process_memory.rs b/kernel/src/paging/process_memory.rs index b53ee8597..5da7aa145 100644 --- a/kernel/src/paging/process_memory.rs +++ b/kernel/src/paging/process_memory.rs @@ -489,7 +489,7 @@ impl ProcessMemory { /// or overlaps an existing mapping. pub fn resize_heap(&mut self, new_size: usize) -> Result { #[allow(clippy::missing_docs_in_private_items)] - enum HeapState { NoHeap, Heap(usize) }; + enum HeapState { NoHeap, Heap(usize) } UserLand::check_contains_region(self.heap_base_address, new_size)?; // get the previous heap size let previous_heap_state = { diff --git a/kernel/src/panic.rs b/kernel/src/panic.rs index 1591f8eec..81aa3d6c8 100644 --- a/kernel/src/panic.rs +++ b/kernel/src/panic.rs @@ -2,6 +2,7 @@ //! //! ![minor mistake marvin](https://raw.githubusercontent.com/sunriseos/SunriseOS/master/kernel/res/kernel_panic_doc.jpg) +use core::arch::asm; use crate::sync; use crate::i386::interrupt_service_routines::UserspaceHardwareContext; use tinybmp::Bmp; @@ -202,7 +203,7 @@ pub fn kernel_panic(panic_origin: &PanicOrigin) -> ! { let _ = writeln!(SerialLogger, "!!!!!!!!!!!!!!!END PANIC!!!!!!!!!!!!!!"); - loop { unsafe { llvm_asm!("HLT"); } } + loop { unsafe { asm!("HLT"); } } } diff --git a/kernel/src/timer.rs b/kernel/src/timer.rs index b2e076414..4a483da0c 100644 --- a/kernel/src/timer.rs +++ b/kernel/src/timer.rs @@ -92,7 +92,7 @@ impl Waitable for IRQTimer { fn is_signaled(&self) -> bool { // First, reset the spins if necessary - self.countdown_value.compare_and_swap(0, self.reset_value, Ordering::SeqCst); + let _ = self.countdown_value.compare_exchange(0, self.reset_value, Ordering::SeqCst, Ordering::SeqCst); // Then, check if it's us. self.parent_event.is_signaled() diff --git a/keyboard/src/main.rs b/keyboard/src/main.rs index 3fb5b9fa0..f6840dfed 100644 --- a/keyboard/src/main.rs +++ b/keyboard/src/main.rs @@ -2,7 +2,6 @@ //! //! This service takes care of anything related to keyboard inputs. -#![feature(untagged_unions)] #![no_std] // rustc warnings @@ -15,7 +14,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate sunrise_libuser; diff --git a/keyboard/src/ps2.rs b/keyboard/src/ps2.rs index 6444733c6..a71aaab7b 100644 --- a/keyboard/src/ps2.rs +++ b/keyboard/src/ps2.rs @@ -311,9 +311,10 @@ impl PS2 { // flip capslock state loop { let current = self.is_capslocked.load(SeqCst); - let was = self.is_capslocked.compare_and_swap(current, !current, SeqCst); - if was == current { - break; + let was = self.is_capslocked.compare_exchange(current, !current, SeqCst, SeqCst); + match was { + Ok(was) | Err(was) if was == current => break, + _ => (), } } // flip the LED diff --git a/libkern/src/lib.rs b/libkern/src/lib.rs index 28a0a0c5b..82ca8db95 100644 --- a/libkern/src/lib.rs +++ b/libkern/src/lib.rs @@ -17,7 +17,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate sunrise_libutils; diff --git a/libuser/Cargo.toml b/libuser/Cargo.toml index c8b3fb44e..3d0529d6d 100644 --- a/libuser/Cargo.toml +++ b/libuser/Cargo.toml @@ -6,7 +6,7 @@ license = "Apache-2.0 OR MIT" edition = "2018" [dependencies] -linked_list_allocator = "0.8.4" +linked_list_allocator = { version = "0.10.1", default-features = false, features = ["use_spin", "const_mut_refs"] } bitfield = "0.13" bit_field = "0.10" spin = "0.5" diff --git a/libuser/src/allocator.rs b/libuser/src/allocator.rs index 7124b3f53..950669a68 100644 --- a/libuser/src/allocator.rs +++ b/libuser/src/allocator.rs @@ -20,14 +20,14 @@ pub struct Allocator(Mutex); impl Allocator { /// Safely expands the heap if possible. fn expand(heap: &mut MutexGuard<'_, Heap>, by: usize) -> Result<(), KernelError> { - let total = heap.size() + align_up(by, 0x200_000); // set_heap_size requires this alignment. + let total = heap.size() + align_up(by as *mut u8, 0x200_000) as usize; // set_heap_size requires this alignment. - let heap_bottom = unsafe { set_heap_size(total)? }; + let heap_bottom = unsafe { set_heap_size(total)? as *mut u8 }; - if heap.bottom() == 0 { + if heap.bottom() as usize == 0 { unsafe { **heap = Heap::new(heap_bottom, total) }; } else { - unsafe { heap.extend(align_up(by, 0x200_000)) }; + unsafe { heap.extend(align_up(by as *mut u8, 0x200_000) as usize) }; } Ok(()) } diff --git a/libuser/src/crt0/mod.rs b/libuser/src/crt0/mod.rs index a3f2267a1..de00e2b5e 100644 --- a/libuser/src/crt0/mod.rs +++ b/libuser/src/crt0/mod.rs @@ -10,30 +10,29 @@ pub mod relocation; #[no_mangle] #[link_section = ".text.crt0"] pub unsafe extern fn start() { - llvm_asm!(" - .intel_syntax noprefix - get_aslr_base: - call _start_shim - eip_pos: - .int module_header - get_aslr_base + core::arch::asm!(" + 0: + call 2f + 1: // As x86 has variable instruction length, this is going to be the offset to the aslr base - .int eip_pos - get_aslr_base - _start_shim: + .int . - start + .int module_header - start + 2: pop eax // Save our thread handle passed by the kernel // `esi` is callee-saved mov esi, edx - // Save eip_pos address - mov ecx, eax + // Save 1b address + mov ecx, [eax + 4] // Compute ASLR base because hey we don't have a choice - sub eax, [eax + 0x4] + sub eax, [eax] mov ebx, eax // Compute mod0 offset - add ebx, [ecx] + add ebx, ecx // Relocate the module push ebx @@ -49,7 +48,7 @@ pub unsafe extern fn start() { call init_main_thread call real_start - "); + ", options(noreturn)); } /// Clean module bss. diff --git a/libuser/src/crt0/relocation.rs b/libuser/src/crt0/relocation.rs index 5dedd402a..1c290cd39 100644 --- a/libuser/src/crt0/relocation.rs +++ b/libuser/src/crt0/relocation.rs @@ -4,7 +4,7 @@ // Assembly blob can't get documented, but clippy requires it. #[allow(clippy::missing_docs_in_private_items)] mod module_header { - global_asm!(r#" + core::arch::global_asm!(r#" .section .rodata.mod0 .global module_header module_header: diff --git a/libuser/src/ipc/server.rs b/libuser/src/ipc/server.rs index d82292ff6..2d9ccae7f 100644 --- a/libuser/src/ipc/server.rs +++ b/libuser/src/ipc/server.rs @@ -252,7 +252,7 @@ use crate::syscalls; use crate::types::{ServerPort, ServerSession}; use alloc::boxed::Box; -use core::ops::{Deref, DerefMut, Index}; +use core::ops::{Deref, DerefMut, Index, IndexMut}; use crate::error::{KernelError, Error}; use crate::ipc::Message; use futures::future::{FutureObj, FutureExt}; @@ -282,6 +282,11 @@ impl Index for Align16 where T: Index { &self.0[index] } } +impl IndexMut for Align16 where T: IndexMut { + fn index_mut(&mut self, index: Idx) -> &mut T::Output { + &mut self.0[index] + } +} /// Encode an 8-character service string into an u64 fn encode_bytes(s: &str) -> u64 { @@ -492,4 +497,4 @@ where Ok(()) } } -} \ No newline at end of file +} diff --git a/libuser/src/lib.rs b/libuser/src/lib.rs index 36054b8d5..4914fa56b 100644 --- a/libuser/src/lib.rs +++ b/libuser/src/lib.rs @@ -3,7 +3,7 @@ //! Provides an allocator, various lang items. #![no_std] -#![feature(global_asm, llvm_asm, start, lang_items, core_intrinsics, const_fn, box_syntax, untagged_unions, naked_functions, proc_macro_hygiene, unboxed_closures, fn_traits, thread_local)] +#![feature(start, lang_items, core_intrinsics, box_syntax, naked_functions, proc_macro_hygiene, unboxed_closures, fn_traits, thread_local)] #![warn(unused)] #![warn(missing_debug_implementations)] @@ -16,7 +16,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate alloc; diff --git a/libuser/src/syscalls.rs b/libuser/src/syscalls.rs index 03e24265e..88d44e8c9 100644 --- a/libuser/src/syscalls.rs +++ b/libuser/src/syscalls.rs @@ -12,8 +12,7 @@ use crate::error::KernelError; mod syscall_inner { #[cfg(all(target_arch = "x86", target_os = "sunrise", not(test), not(feature = "build-for-std-app")))] - global_asm!(" -.intel_syntax noprefix + core::arch::global_asm!(" .global syscall_inner // Call the syscall using arch-specific syscall ABI. syscall_inner: @@ -756,4 +755,4 @@ pub fn get_process_list(list: &mut [u64]) -> Result { let (read, ..) = syscall(nr::GetProcessList, list.as_ptr() as usize, list.len(), 0, 0, 0, 0)?; Ok(read) } -} \ No newline at end of file +} diff --git a/libuser/src/threads.rs b/libuser/src/threads.rs index 4cfad3f1d..ff0be50e6 100644 --- a/libuser/src/threads.rs +++ b/libuser/src/threads.rs @@ -56,6 +56,7 @@ //! [`Thread`]: Thread //! [`thread_trampoline`]: thread_trampoline +use core::arch::asm; use crate::types::{Thread as ThreadHandle}; #[cfg(not(feature = "build-for-std-app"))] @@ -198,7 +199,7 @@ fn get_my_tls_region() -> *mut TLS { unsafe { // get the address of the TLS region from fs:0x00 translated to the flat model // safe: fs:0x00 is guaranteed by the kernel to hold a valid pointer to itself. - llvm_asm!("mov $0, fs:0x00" : "=r" (tls) ::: "intel"); + asm!("mov {}, fs:0x00", out(reg) tls); } tls } diff --git a/libutils/src/io/mmio.rs b/libutils/src/io/mmio.rs index 8b4ce148c..eff912e4e 100644 --- a/libutils/src/io/mmio.rs +++ b/libutils/src/io/mmio.rs @@ -4,7 +4,7 @@ //! //! Stolen from [Redox OS](https://gitlab.redox-os.org/redox-os/syscall/blob/master/src/io/mmio.rs). -use core::ptr::{read_volatile, write_volatile}; +use core::ptr::{addr_of, addr_of_mut, read_volatile, write_volatile}; use core::mem::MaybeUninit; use core::fmt::{Debug, Formatter, Error}; @@ -82,12 +82,12 @@ impl Io for Mmio where T: Copy { /// Performs a volatile read of the value. fn read(&self) -> T { - unsafe { read_volatile(self.value.as_ptr()) } + unsafe { read_volatile(addr_of!(self.value).cast::()) } } /// Performs a volatile write of the value. fn write(&mut self, value: T) { - unsafe { write_volatile(self.value.as_mut_ptr(), value) }; + unsafe { write_volatile(addr_of_mut!(self.value).cast::(), value) }; } } diff --git a/libutils/src/io/pio.rs b/libutils/src/io/pio.rs index 56d0ed862..0f87e8c7f 100644 --- a/libutils/src/io/pio.rs +++ b/libutils/src/io/pio.rs @@ -4,6 +4,7 @@ //! //! Stolen from [Redox OS](https://gitlab.redox-os.org/redox-os/syscall/blob/master/src/io/pio.rs). +use core::arch::asm; use core::marker::PhantomData; use super::Io; @@ -35,7 +36,7 @@ impl Io for Pio { fn read(&self) -> u8 { let value: u8; unsafe { - llvm_asm!("in $0, $1" : "={al}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); + asm!("in al, dx", out("al") value, in("dx") self.port, options(nomem, preserves_flags, nostack)); } value } @@ -44,7 +45,7 @@ impl Io for Pio { #[inline(always)] fn write(&mut self, value: u8) { unsafe { - llvm_asm!("out $1, $0" : : "{al}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); + asm!("out dx, al", in("al") value, in("dx") self.port, options(nomem, preserves_flags, nostack)); } } } @@ -58,7 +59,7 @@ impl Io for Pio { fn read(&self) -> u16 { let value: u16; unsafe { - llvm_asm!("in $0, $1" : "={ax}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); + asm!("in ax, dx", out("ax") value, in("dx") self.port, options(nomem, preserves_flags, nostack)); } value } @@ -67,7 +68,7 @@ impl Io for Pio { #[inline(always)] fn write(&mut self, value: u16) { unsafe { - llvm_asm!("out $1, $0" : : "{ax}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); + asm!("out dx, ax", in("ax") value, in("dx") self.port, options(nomem, preserves_flags, nostack)); } } } @@ -81,7 +82,7 @@ impl Io for Pio { fn read(&self) -> u32 { let value: u32; unsafe { - llvm_asm!("in $0, $1" : "={eax}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); + asm!("in eax, dx", out("eax") value, in("dx") self.port, options(nomem, preserves_flags, nostack)); } value } @@ -90,7 +91,7 @@ impl Io for Pio { #[inline(always)] fn write(&mut self, value: u32) { unsafe { - llvm_asm!("out $1, $0" : : "{eax}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); + asm!("out dx, eax", in("eax") value, in("dx") self.port, options(nomem, preserves_flags, nostack)); } } } diff --git a/libutils/src/lib.rs b/libutils/src/lib.rs index 5c7073be7..c7eed69fc 100644 --- a/libutils/src/lib.rs +++ b/libutils/src/lib.rs @@ -1,7 +1,6 @@ //! A messy crate with various utilities shared between the user and kernel code. //! Should probably be further split into several useful libraries. -#![feature(llvm_asm)] #![no_std] // rustc warnings @@ -14,7 +13,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] @@ -315,10 +314,10 @@ macro_rules! initialize_to_zero { ($ty:ty) => {{ #[doc(hidden)] union ZeroedTypeUnion { - data: $ty, + data: core::mem::ManuallyDrop<$ty>, arr: [u8; core::mem::size_of::<$ty>()] } - ZeroedTypeUnion { arr: [0; core::mem::size_of::<$ty>()] }.data + core::mem::ManuallyDrop::into_inner(ZeroedTypeUnion { arr: [0; core::mem::size_of::<$ty>()] }.data) }} } diff --git a/linker-scripts/bootstrap.ld b/linker-scripts/bootstrap.ld index 5e177b78e..58cbf4ff7 100644 --- a/linker-scripts/bootstrap.ld +++ b/linker-scripts/bootstrap.ld @@ -38,6 +38,7 @@ SECTIONS { .bss ALIGN(4K) : { BSS_START = .; *(.bss) + *(.bss.*) BSS_END = .; } : data diff --git a/rust-patches/0001-Create-workspace-remove-unneeded-deps-in-lockfile.patch b/rust-patches/0001-Create-workspace-remove-unneeded-deps-in-lockfile.patch deleted file mode 100644 index e91fada11..000000000 --- a/rust-patches/0001-Create-workspace-remove-unneeded-deps-in-lockfile.patch +++ /dev/null @@ -1,5972 +0,0 @@ -From fc69f4cfdf3780e4adb213ffdb6cfe133dc2789c Mon Sep 17 00:00:00 2001 -From: roblabla -Date: Thu, 4 Jun 2020 16:40:51 +0000 -Subject: [PATCH 1/2] Create workspace, remove unneeded deps in lockfile - -This commit creates a cargo workspace containing all the crates in the -rust-src repository. It should be kept up-to-date as new crates are -added to the rust-src dump. - -We then use `cargo update -p alloc` to remove all the unnecessary dependencies -from the lockfile, without actually updating any dependencies! ---- - Cargo.lock | 5769 ++-------------------------------------------------- - Cargo.toml | 22 + - 2 files changed, 177 insertions(+), 5614 deletions(-) - create mode 100644 Cargo.toml - -diff --git a/Cargo.lock b/Cargo.lock -index 19ecd20..b15b201 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -1,110 +1,13 @@ - # This file is automatically @generated by Cargo. - # It is not intended for manual editing. --[[package]] --name = "adler32" --version = "1.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -- --[[package]] --name = "aho-corasick" --version = "0.7.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" --dependencies = [ -- "memchr", --] -- - [[package]] - name = "alloc" - version = "0.0.0" - dependencies = [ - "compiler_builtins", - "core", -- "rand 0.7.3", -- "rand_xorshift 0.2.0", --] -- --[[package]] --name = "ammonia" --version = "3.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9e266e1f4be5ffa05309f650e2586fe1d3ae6034eb24025a7ae1dfecc330823a" --dependencies = [ -- "html5ever", -- "lazy_static 1.4.0", -- "maplit", -- "matches", -- "tendril", -- "url 2.1.0", --] -- --[[package]] --name = "annotate-snippets" --version = "0.6.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c7021ce4924a3f25f802b2cccd1af585e39ea1a363a1aa2e72afe54b67a3a7a7" --dependencies = [ -- "ansi_term", --] -- --[[package]] --name = "ansi_term" --version = "0.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" --dependencies = [ -- "winapi 0.3.8", --] -- --[[package]] --name = "anyhow" --version = "1.0.26" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c" -- --[[package]] --name = "arc-swap" --version = "0.3.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1025aeae2b664ca0ea726a89d574fe8f4e77dd712d443236ad1de00379450cf6" -- --[[package]] --name = "arena" --version = "0.0.0" --dependencies = [ -- "rustc_data_structures", -- "smallvec 1.4.0", --] -- --[[package]] --name = "argon2rs" --version = "0.2.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392" --dependencies = [ -- "blake2-rfc", -- "scoped_threadpool", --] -- --[[package]] --name = "arrayvec" --version = "0.4.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" --dependencies = [ -- "nodrop", --] -- --[[package]] --name = "atty" --version = "0.2.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" --dependencies = [ -- "libc", -- "termion", -- "winapi 0.3.8", -+ "rand", -+ "rand_xorshift", - ] - - [[package]] -@@ -113,12 +16,6 @@ version = "0.1.7" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" - --[[package]] --name = "autocfg" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -- - [[package]] - name = "backtrace" - version = "0.3.46" -@@ -146,5640 +43,284 @@ dependencies = [ - ] - - [[package]] --name = "base64" --version = "0.10.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" --dependencies = [ -- "byteorder", --] -- --[[package]] --name = "bitflags" --version = "1.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -+name = "build_helper" -+version = "0.1.0" - - [[package]] --name = "bitmaps" --version = "2.0.0" -+name = "c2-chacha" -+version = "0.2.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "81e039a80914325b37fde728ef7693c212f0ac913d5599607d7b95a9484aae0b" -+checksum = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" - dependencies = [ -- "typenum", -+ "ppv-lite86", - ] - - [[package]] --name = "blake2-rfc" --version = "0.2.18" -+name = "cc" -+version = "1.0.52" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" --dependencies = [ -- "arrayvec", -- "constant_time_eq", --] -+checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" - - [[package]] --name = "block-buffer" --version = "0.7.3" -+name = "cfg-if" -+version = "0.1.10" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - dependencies = [ -- "block-padding", -- "byte-tools", -- "byteorder", -- "generic-array", -+ "compiler_builtins", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "block-padding" --version = "0.1.5" -+name = "compiler_builtins" -+version = "0.1.28" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -+checksum = "439a6fab343b1dab347823537734a5cd4ae6ae2000b465ab886f64cdb723bd14" - dependencies = [ -- "byte-tools", -+ "cc", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "bootstrap" -+name = "core" - version = "0.0.0" - dependencies = [ -- "build_helper", -- "cc", -- "cmake", -- "filetime", -- "getopts", -- "ignore", -- "lazy_static 1.4.0", -- "libc", -- "num_cpus", -- "opener", -- "pretty_assertions", -- "serde", -- "serde_json", -- "time", -- "toml", -- "winapi 0.3.8", -+ "rand", - ] - - [[package]] --name = "bstr" --version = "0.1.3" -+name = "dlmalloc" -+version = "0.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "853b090ce0f45d0265902666bf88039ea3da825e33796716c511a1ec9c170036" --dependencies = [ -- "memchr", --] -- --[[package]] --name = "build-manifest" --version = "0.1.0" -+checksum = "35055b1021724f4eb5262eb49130eebff23fc59fc5a14160e05faad8eeb36673" - dependencies = [ -- "serde", -- "serde_json", -- "toml", -+ "compiler_builtins", -+ "libc", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "build_helper" --version = "0.1.0" -- --[[package]] --name = "byte-tools" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -- --[[package]] --name = "bytecount" --version = "0.6.0" -+name = "fortanix-sgx-abi" -+version = "0.3.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b0017894339f586ccb943b01b9555de56770c11cda818e7e3d8bd93f4ed7f46e" -+checksum = "3f8cbee5e872cf7db61a999a041f9bc4706ca7bf7df4cb914f53fabb1c1bc550" - dependencies = [ -- "packed_simd", -+ "compiler_builtins", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "byteorder" --version = "1.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" -- --[[package]] --name = "bytes" --version = "0.4.11" -+name = "getrandom" -+version = "0.1.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" -+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" - dependencies = [ -- "byteorder", -- "either", -- "iovec", -+ "cfg-if", -+ "libc", -+ "wasi", - ] - - [[package]] --name = "bytesize" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "716960a18f978640f25101b5cbf1c6f6b0d3192fab36a2d98ca96f0ecbe41010" -- --[[package]] --name = "c2-chacha" --version = "0.2.3" -+name = "hashbrown" -+version = "0.6.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb" -+checksum = "3cd9867f119b19fecb08cd5c326ad4488d7a1da4bf75b4d95d71db742525aaab" - dependencies = [ -- "ppv-lite86", -+ "autocfg", -+ "compiler_builtins", -+ "rustc-std-workspace-alloc", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "cargo" --version = "0.46.0" -+name = "hermit-abi" -+version = "0.1.13" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71" - dependencies = [ -- "anyhow", -- "atty", -- "bytesize", -- "cargo-platform", -- "cargo-test-macro", -- "cargo-test-support", -- "clap", -- "core-foundation 0.7.0", -- "crates-io", -- "crossbeam-utils 0.7.2", -- "crypto-hash", -- "curl", -- "curl-sys", -- "env_logger 0.7.1", -- "filetime", -- "flate2", -- "fwdansi", -- "git2", -- "git2-curl", -- "glob", -- "hex 0.4.0", -- "home", -- "humantime 2.0.0", -- "ignore", -- "im-rc", -- "jobserver", -- "lazy_static 1.4.0", -- "lazycell", -+ "compiler_builtins", - "libc", -- "libgit2-sys", -- "log", -- "memchr", -- "miow 0.3.3", -- "num_cpus", -- "opener", -- "openssl", -- "percent-encoding 2.1.0", -- "pretty_env_logger", -- "remove_dir_all", -- "rustc-workspace-hack", -- "rustfix", -- "same-file", -- "semver", -- "serde", -- "serde_ignored", -- "serde_json", -- "shell-escape", -- "strip-ansi-escapes", -- "tar", -- "tempfile", -- "termcolor", -- "toml", -- "unicode-width", -- "unicode-xid 0.2.0", -- "url 2.1.0", -- "walkdir", -- "winapi 0.3.8", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "cargo-platform" --version = "0.1.1" -+name = "libc" -+version = "0.2.69" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" - dependencies = [ -- "serde", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "cargo-test-macro" --version = "0.1.0" -- --[[package]] --name = "cargo-test-support" --version = "0.1.0" -+name = "panic_abort" -+version = "0.0.0" - dependencies = [ -- "cargo", -- "cargo-test-macro", -- "filetime", -- "flate2", -- "git2", -- "glob", -- "lazy_static 1.4.0", -- "remove_dir_all", -- "serde_json", -- "tar", -- "url 2.1.0", -+ "compiler_builtins", -+ "core", -+ "libc", - ] - - [[package]] --name = "cargo_metadata" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "929766d993a2fde7a0ae962ee82429069cd7b68839cd9375b98efd719df65d3a" -+name = "panic_unwind" -+version = "0.0.0" - dependencies = [ -- "failure", -- "semver", -- "serde", -- "serde_derive", -- "serde_json", -+ "alloc", -+ "cfg-if", -+ "compiler_builtins", -+ "core", -+ "libc", -+ "unwind", - ] - - [[package]] --name = "cargo_metadata" --version = "0.9.1" -+name = "ppv-lite86" -+version = "0.2.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "46e3374c604fb39d1a2f35ed5e4a4e30e60d01fab49446e08f1b3e9a90aef202" --dependencies = [ -- "semver", -- "serde", -- "serde_derive", -- "serde_json", --] -- --[[package]] --name = "cargotest2" --version = "0.1.0" -+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" - - [[package]] --name = "cc" --version = "1.0.52" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" -+name = "proc_macro" -+version = "0.0.0" - dependencies = [ -- "jobserver", -+ "std", - ] - - [[package]] --name = "cfg-if" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -+name = "profiler_builtins" -+version = "0.0.0" - dependencies = [ -+ "cc", - "compiler_builtins", -- "rustc-std-workspace-core", -+ "core", - ] - - [[package]] --name = "chalk-derive" --version = "0.10.0" -+name = "rand" -+version = "0.7.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8d4620afad4d4d9e63f915cfa10c930b7a3c9c3ca5cd88dd771ff8e5bf04ea10" -+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" - dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", -- "synstructure", -+ "getrandom", -+ "libc", -+ "rand_chacha", -+ "rand_core", -+ "rand_hc", - ] - - [[package]] --name = "chalk-engine" --version = "0.10.0" -+name = "rand_chacha" -+version = "0.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6ca6e5cef10197789da0b4ec310eda58da4c55530613b2323432642a97372735" -+checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" - dependencies = [ -- "chalk-macros", -- "rustc-hash", -+ "c2-chacha", -+ "rand_core", - ] - - [[package]] --name = "chalk-ir" --version = "0.10.0" -+name = "rand_core" -+version = "0.5.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d45df5fb6328527f976e8a32c9e1c9970084d937ebe93d0d34f5bbf4231cb956" -+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" - dependencies = [ -- "chalk-derive", -- "chalk-engine", -- "chalk-macros", -+ "getrandom", - ] - - [[package]] --name = "chalk-macros" --version = "0.10.0" -+name = "rand_hc" -+version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9e4782d108e420a1fcf94d8a919cf248db33c5071678e87d9c2d4f20ed1feb32" -+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" - dependencies = [ -- "lazy_static 1.4.0", -+ "rand_core", - ] - - [[package]] --name = "chalk-rust-ir" --version = "0.10.0" -+name = "rand_xorshift" -+version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a0ec96dbe0ab5fdbadfca4179ec2e1d35f0439c3b53a74988b1aec239c63eb08" -+checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" - dependencies = [ -- "chalk-derive", -- "chalk-engine", -- "chalk-ir", -- "chalk-macros", -+ "rand_core", - ] - - [[package]] --name = "chalk-solve" --version = "0.10.0" -+name = "rustc-demangle" -+version = "0.1.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dfb99fa9530f0e101475fb60adc931f51bdea05b4642a48928b814d7f0141a6b" -+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" - dependencies = [ -- "chalk-derive", -- "chalk-engine", -- "chalk-ir", -- "chalk-macros", -- "chalk-rust-ir", -- "ena 0.13.1", -- "itertools 0.9.0", -- "petgraph", -- "rustc-hash", -+ "compiler_builtins", -+ "rustc-std-workspace-core", - ] - - [[package]] --name = "chrono" --version = "0.4.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" -+name = "rustc-std-workspace-alloc" -+version = "1.99.0" - dependencies = [ -- "num-integer", -- "num-traits", -- "time", -+ "alloc", - ] - - [[package]] --name = "clap" --version = "2.33.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" -+name = "rustc-std-workspace-core" -+version = "1.99.0" - dependencies = [ -- "ansi_term", -- "atty", -- "bitflags", -- "strsim", -- "textwrap", -- "unicode-width", -- "vec_map", -- "yaml-rust 0.3.5", -+ "core", - ] - - [[package]] --name = "clippy" --version = "0.0.212" -+name = "std" -+version = "0.0.0" - dependencies = [ -- "cargo_metadata 0.9.1", -- "clippy-mini-macro-test", -- "clippy_lints", -- "compiletest_rs", -- "derive-new", -- "lazy_static 1.4.0", -- "rustc-workspace-hack", -- "rustc_tools_util 0.2.0", -- "semver", -- "serde", -- "tempfile", -- "tester", -+ "alloc", -+ "backtrace", -+ "cfg-if", -+ "compiler_builtins", -+ "core", -+ "dlmalloc", -+ "fortanix-sgx-abi", -+ "hashbrown", -+ "hermit-abi", -+ "libc", -+ "panic_abort", -+ "panic_unwind", -+ "profiler_builtins", -+ "rand", -+ "unwind", -+ "wasi", - ] - - [[package]] --name = "clippy-mini-macro-test" --version = "0.2.0" -- --[[package]] --name = "clippy_lints" --version = "0.0.212" -+name = "term" -+version = "0.0.0" - dependencies = [ -- "cargo_metadata 0.9.1", -- "if_chain", -- "itertools 0.9.0", -- "lazy_static 1.4.0", -- "pulldown-cmark 0.7.1", -- "quine-mc_cluskey", -- "regex-syntax", -- "semver", -- "serde", -- "smallvec 1.4.0", -- "toml", -- "unicode-normalization", -- "url 2.1.0", -+ "core", -+ "std", - ] - - [[package]] --name = "cloudabi" --version = "0.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -+name = "unwind" -+version = "0.0.0" - dependencies = [ -- "bitflags", -+ "cc", -+ "cfg-if", -+ "compiler_builtins", -+ "core", -+ "libc", - ] - - [[package]] --name = "cmake" --version = "0.1.42" -+name = "wasi" -+version = "0.9.0+wasi-snapshot-preview1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62" -+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - dependencies = [ -- "cc", -+ "compiler_builtins", -+ "rustc-std-workspace-alloc", -+ "rustc-std-workspace-core", - ] - --[[package]] --name = "codespan" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "de67bdcd653002a6dba3eb53850ce3a485547225d81cb6c2bbdbc5a0cba5d15d" --dependencies = [ -- "unicode-segmentation", --] -- --[[package]] --name = "codespan-reporting" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "efd1d915d9e2b2ad696b2cd73215a84823ef3f0e3084d90304204415921b62c6" --dependencies = [ -- "codespan", -- "termcolor", -- "unicode-width", --] -- --[[package]] --name = "colored" --version = "1.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b0aa3473e85a3161b59845d6096b289bb577874cafeaf75ea1b1beaa6572c7fc" --dependencies = [ -- "lazy_static 0.2.11", --] -- --[[package]] --name = "commoncrypto" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007" --dependencies = [ -- "commoncrypto-sys", --] -- --[[package]] --name = "commoncrypto-sys" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2" --dependencies = [ -- "libc", --] -- --[[package]] --name = "compiler_builtins" --version = "0.1.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "439a6fab343b1dab347823537734a5cd4ae6ae2000b465ab886f64cdb723bd14" --dependencies = [ -- "cc", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "compiletest" --version = "0.0.0" --dependencies = [ -- "diff", -- "env_logger 0.7.1", -- "getopts", -- "lazy_static 1.4.0", -- "libc", -- "log", -- "miow 0.3.3", -- "regex", -- "rustfix", -- "serde", -- "serde_json", -- "walkdir", -- "winapi 0.3.8", --] -- --[[package]] --name = "compiletest_rs" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9f737835bfbbe29ed1ff82d5137520338d7ed5bf1a1d4b9c1c7c58bb45b8fa29" --dependencies = [ -- "diff", -- "filetime", -- "getopts", -- "libc", -- "log", -- "miow 0.3.3", -- "regex", -- "rustfix", -- "serde", -- "serde_derive", -- "serde_json", -- "tempfile", -- "tester", -- "winapi 0.3.8", --] -- --[[package]] --name = "constant_time_eq" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" -- --[[package]] --name = "cookie" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" --dependencies = [ -- "time", -- "url 1.7.2", --] -- --[[package]] --name = "cookie_store" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" --dependencies = [ -- "cookie", -- "failure", -- "idna 0.1.5", -- "log", -- "publicsuffix", -- "serde", -- "serde_json", -- "time", -- "try_from", -- "url 1.7.2", --] -- --[[package]] --name = "core" --version = "0.0.0" --dependencies = [ -- "rand 0.7.3", --] -- --[[package]] --name = "core-foundation" --version = "0.6.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4e2640d6d0bf22e82bed1b73c6aef8d5dd31e5abe6666c57e6d45e2649f4f887" --dependencies = [ -- "core-foundation-sys 0.6.2", -- "libc", --] -- --[[package]] --name = "core-foundation" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" --dependencies = [ -- "core-foundation-sys 0.7.0", -- "libc", --] -- --[[package]] --name = "core-foundation-sys" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" -- --[[package]] --name = "core-foundation-sys" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" -- --[[package]] --name = "crates-io" --version = "0.31.1" --dependencies = [ -- "anyhow", -- "curl", -- "percent-encoding 2.1.0", -- "serde", -- "serde_derive", -- "serde_json", -- "url 2.1.0", --] -- --[[package]] --name = "crc32fast" --version = "1.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192" --dependencies = [ -- "cfg-if", --] -- --[[package]] --name = "crossbeam-channel" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "acec9a3b0b3559f15aee4f90746c4e5e293b701c0f7d3925d24e01645267b68c" --dependencies = [ -- "crossbeam-utils 0.7.2", --] -- --[[package]] --name = "crossbeam-deque" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" --dependencies = [ -- "crossbeam-epoch", -- "crossbeam-utils 0.6.5", --] -- --[[package]] --name = "crossbeam-epoch" --version = "0.7.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9" --dependencies = [ -- "arrayvec", -- "cfg-if", -- "crossbeam-utils 0.6.5", -- "lazy_static 1.4.0", -- "memoffset", -- "scopeguard", --] -- --[[package]] --name = "crossbeam-queue" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" --dependencies = [ -- "crossbeam-utils 0.6.5", --] -- --[[package]] --name = "crossbeam-utils" --version = "0.6.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" --dependencies = [ -- "cfg-if", -- "lazy_static 1.4.0", --] -- --[[package]] --name = "crossbeam-utils" --version = "0.7.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" --dependencies = [ -- "autocfg 1.0.0", -- "cfg-if", -- "lazy_static 1.4.0", --] -- --[[package]] --name = "crypto-hash" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "09de9ee0fc255ace04c7fa0763c9395a945c37c8292bb554f8d48361d1dcf1b4" --dependencies = [ -- "commoncrypto", -- "hex 0.3.2", -- "openssl", -- "winapi 0.3.8", --] -- --[[package]] --name = "ctor" --version = "0.1.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "47c5e5ac752e18207b12e16b10631ae5f7f68f8805f335f9b817ead83d9ffce1" --dependencies = [ -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "curl" --version = "0.4.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "06aa71e9208a54def20792d877bc663d6aae0732b9852e612c4a933177c31283" --dependencies = [ -- "curl-sys", -- "libc", -- "openssl-probe", -- "openssl-sys", -- "schannel", -- "socket2", -- "winapi 0.3.8", --] -- --[[package]] --name = "curl-sys" --version = "0.4.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0c38ca47d60b86d0cc9d42caa90a0885669c2abc9791f871c81f58cdf39e979b" --dependencies = [ -- "cc", -- "libc", -- "libnghttp2-sys", -- "libz-sys", -- "openssl-sys", -- "pkg-config", -- "vcpkg", -- "winapi 0.3.8", --] -- --[[package]] --name = "darling" --version = "0.8.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9158d690bc62a3a57c3e45b85e4d50de2008b39345592c64efd79345c7e24be0" --dependencies = [ -- "darling_core", -- "darling_macro", --] -- --[[package]] --name = "darling_core" --version = "0.8.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d2a368589465391e127e10c9e3a08efc8df66fd49b87dc8524c764bbe7f2ef82" --dependencies = [ -- "fnv", -- "ident_case", -- "proc-macro2 0.4.30", -- "quote 0.6.12", -- "syn 0.15.35", --] -- --[[package]] --name = "darling_macro" --version = "0.8.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "244e8987bd4e174385240cde20a3657f607fb0797563c28255c353b5819a07b1" --dependencies = [ -- "darling_core", -- "quote 0.6.12", -- "syn 0.15.35", --] -- --[[package]] --name = "datafrog" --version = "2.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a0afaad2b26fa326569eb264b1363e8ae3357618c43982b3f285f0774ce76b69" -- --[[package]] --name = "derive-new" --version = "0.5.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "71f31892cd5c62e414316f2963c5689242c43d8e7bbcaaeca97e5e28c95d91d9" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "derive_more" --version = "0.99.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "diff" --version = "0.1.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c2b69f912779fbb121ceb775d74d51e915af17aaebc38d28a592843a2dd0a3a" -- --[[package]] --name = "difference" --version = "2.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" -- --[[package]] --name = "digest" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" --dependencies = [ -- "generic-array", --] -- --[[package]] --name = "directories" --version = "2.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2ccc83e029c3cebb4c8155c644d34e3a070ccdb4ff90d369c74cd73f7cb3c984" --dependencies = [ -- "cfg-if", -- "dirs-sys", --] -- --[[package]] --name = "dirs" --version = "2.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1c4ef5a8b902d393339e2a2c7fe573af92ce7e0ee5a3ff827b4c9ad7e07e4fa1" --dependencies = [ -- "cfg-if", -- "dirs-sys", --] -- --[[package]] --name = "dirs-sys" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "937756392ec77d1f2dd9dc3ac9d69867d109a2121479d72c364e42f4cab21e2d" --dependencies = [ -- "cfg-if", -- "libc", -- "redox_users", -- "winapi 0.3.8", --] -- --[[package]] --name = "dlmalloc" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "35055b1021724f4eb5262eb49130eebff23fc59fc5a14160e05faad8eeb36673" --dependencies = [ -- "compiler_builtins", -- "libc", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "dtoa" --version = "0.4.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" -- --[[package]] --name = "dunce" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d0ad6bf6a88548d1126045c413548df1453d9be094a8ab9fd59bf1fdd338da4f" -- --[[package]] --name = "either" --version = "1.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" -- --[[package]] --name = "elasticlunr-rs" --version = "2.3.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a99a310cd1f9770e7bf8e48810c7bcbb0e078c8fb23a8c7bcf0da4c2bf61a455" --dependencies = [ -- "lazy_static 1.4.0", -- "regex", -- "serde", -- "serde_derive", -- "serde_json", -- "strum", -- "strum_macros", --] -- --[[package]] --name = "ena" --version = "0.13.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8944dc8fa28ce4a38f778bd46bf7d923fe73eed5a439398507246c8e017e6f36" --dependencies = [ -- "log", --] -- --[[package]] --name = "ena" --version = "0.14.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3" --dependencies = [ -- "log", --] -- --[[package]] --name = "encoding_rs" --version = "0.8.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" --dependencies = [ -- "cfg-if", --] -- --[[package]] --name = "env_logger" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" --dependencies = [ -- "atty", -- "humantime 1.3.0", -- "log", -- "regex", -- "termcolor", --] -- --[[package]] --name = "env_logger" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" --dependencies = [ -- "atty", -- "humantime 1.3.0", -- "log", -- "regex", -- "termcolor", --] -- --[[package]] --name = "error-chain" --version = "0.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" --dependencies = [ -- "backtrace", --] -- --[[package]] --name = "error_index_generator" --version = "0.0.0" --dependencies = [ -- "rustdoc", -- "walkdir", --] -- --[[package]] --name = "expand-yaml-anchors" --version = "0.1.0" --dependencies = [ -- "yaml-merge-keys", -- "yaml-rust 0.4.3", --] -- --[[package]] --name = "failure" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" --dependencies = [ -- "backtrace", -- "failure_derive", --] -- --[[package]] --name = "failure_derive" --version = "0.1.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", -- "synstructure", --] -- --[[package]] --name = "fake-simd" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -- --[[package]] --name = "filetime" --version = "0.2.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e" --dependencies = [ -- "cfg-if", -- "libc", -- "redox_syscall", -- "winapi 0.3.8", --] -- --[[package]] --name = "fixedbitset" --version = "0.1.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" -- --[[package]] --name = "flate2" --version = "1.0.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ad3c5233c9a940c8719031b423d7e6c16af66e031cb0420b0896f5245bf181d3" --dependencies = [ -- "cfg-if", -- "crc32fast", -- "libc", -- "libz-sys", -- "miniz_oxide", --] -- --[[package]] --name = "fmt_macros" --version = "0.0.0" --dependencies = [ -- "rustc_lexer", -- "rustc_span", --] -- --[[package]] --name = "fnv" --version = "1.0.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -- --[[package]] --name = "foreign-types" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" --dependencies = [ -- "foreign-types-shared", --] -- --[[package]] --name = "foreign-types-shared" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -- --[[package]] --name = "fortanix-sgx-abi" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f8cbee5e872cf7db61a999a041f9bc4706ca7bf7df4cb914f53fabb1c1bc550" --dependencies = [ -- "compiler_builtins", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "fs_extra" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674" -- --[[package]] --name = "fst" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d94485a00b1827b861dd9d1a2cc9764f9044d4c535514c0760a5a2012ef3399f" --dependencies = [ -- "byteorder", --] -- --[[package]] --name = "fuchsia-cprng" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -- --[[package]] --name = "fuchsia-zircon" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" --dependencies = [ -- "bitflags", -- "fuchsia-zircon-sys", --] -- --[[package]] --name = "fuchsia-zircon-sys" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -- --[[package]] --name = "futf" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" --dependencies = [ -- "mac", -- "new_debug_unreachable", --] -- --[[package]] --name = "futures" --version = "0.1.28" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "45dc39533a6cae6da2b56da48edae506bb767ec07370f86f70fc062e9d435869" -- --[[package]] --name = "futures-cpupool" --version = "0.1.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" --dependencies = [ -- "futures", -- "num_cpus", --] -- --[[package]] --name = "fwdansi" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "34dd4c507af68d37ffef962063dfa1944ce0dd4d5b82043dbab1dabe088610c3" --dependencies = [ -- "memchr", -- "termcolor", --] -- --[[package]] --name = "generic-array" --version = "0.12.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" --dependencies = [ -- "typenum", --] -- --[[package]] --name = "getopts" --version = "0.2.21" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" --dependencies = [ -- "rustc-std-workspace-core", -- "rustc-std-workspace-std", -- "unicode-width", --] -- --[[package]] --name = "getrandom" --version = "0.1.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" --dependencies = [ -- "cfg-if", -- "libc", -- "wasi", --] -- --[[package]] --name = "git2" --version = "0.13.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e1e02a51cd90229028c9bd8be0a0364f85b6b3199cccaa0ef39005ddbd5ac165" --dependencies = [ -- "bitflags", -- "libc", -- "libgit2-sys", -- "log", -- "openssl-probe", -- "openssl-sys", -- "url 2.1.0", --] -- --[[package]] --name = "git2-curl" --version = "0.14.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "502d532a2d06184beb3bc869d4d90236e60934e3382c921b203fa3c33e212bd7" --dependencies = [ -- "curl", -- "git2", -- "log", -- "url 2.1.0", --] -- --[[package]] --name = "glob" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" -- --[[package]] --name = "globset" --version = "0.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ef4feaabe24a0a658fd9cf4a9acf6ed284f045c77df0f49020ba3245cfb7b454" --dependencies = [ -- "aho-corasick", -- "bstr", -- "fnv", -- "log", -- "regex", --] -- --[[package]] --name = "graphviz" --version = "0.0.0" -- --[[package]] --name = "h2" --version = "0.1.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a539b63339fbbb00e081e84b6e11bd1d9634a82d91da2984a18ac74a8823f392" --dependencies = [ -- "byteorder", -- "bytes", -- "fnv", -- "futures", -- "http", -- "indexmap", -- "log", -- "slab", -- "string", -- "tokio-io", --] -- --[[package]] --name = "handlebars" --version = "3.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ba758d094d31274eb49d15da6f326b96bf3185239a6359bf684f3d5321148900" --dependencies = [ -- "log", -- "pest", -- "pest_derive", -- "quick-error", -- "serde", -- "serde_json", --] -- --[[package]] --name = "hashbrown" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3cd9867f119b19fecb08cd5c326ad4488d7a1da4bf75b4d95d71db742525aaab" --dependencies = [ -- "autocfg 0.1.7", -- "compiler_builtins", -- "rustc-std-workspace-alloc", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "heck" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82" --dependencies = [ -- "unicode-segmentation", --] -- --[[package]] --name = "hermit-abi" --version = "0.1.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71" --dependencies = [ -- "compiler_builtins", -- "libc", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "hex" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" -- --[[package]] --name = "hex" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "023b39be39e3a2da62a94feb433e91e8bcd37676fbc8bea371daf52b7a769a3e" -- --[[package]] --name = "home" --version = "0.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a3753954f7bd71f0e671afb8b5a992d1724cf43b7f95a563cd4a0bde94659ca8" --dependencies = [ -- "scopeguard", -- "winapi 0.3.8", --] -- --[[package]] --name = "html5ever" --version = "0.24.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "025483b0a1e4577bb28578318c886ee5f817dda6eb62473269349044406644cb" --dependencies = [ -- "log", -- "mac", -- "markup5ever", -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "http" --version = "0.1.19" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d7e06e336150b178206af098a055e3621e8336027e2b4d126bda0bc64824baaf" --dependencies = [ -- "bytes", -- "fnv", -- "itoa", --] -- --[[package]] --name = "http-body" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" --dependencies = [ -- "bytes", -- "futures", -- "http", -- "tokio-buf", --] -- --[[package]] --name = "httparse" --version = "1.3.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" -- --[[package]] --name = "humantime" --version = "1.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" --dependencies = [ -- "quick-error", --] -- --[[package]] --name = "humantime" --version = "2.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b9b6c53306532d3c8e8087b44e6580e10db51a023cf9b433cea2ac38066b92da" -- --[[package]] --name = "hyper" --version = "0.12.31" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6481fff8269772d4463253ca83c788104a7305cb3fb9136bc651a6211e46e03f" --dependencies = [ -- "bytes", -- "futures", -- "futures-cpupool", -- "h2", -- "http", -- "http-body", -- "httparse", -- "iovec", -- "itoa", -- "log", -- "net2", -- "rustc_version", -- "time", -- "tokio", -- "tokio-buf", -- "tokio-executor", -- "tokio-io", -- "tokio-reactor", -- "tokio-tcp", -- "tokio-threadpool", -- "tokio-timer", -- "want", --] -- --[[package]] --name = "hyper-tls" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" --dependencies = [ -- "bytes", -- "futures", -- "hyper", -- "native-tls", -- "tokio-io", --] -- --[[package]] --name = "ident_case" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -- --[[package]] --name = "idna" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" --dependencies = [ -- "matches", -- "unicode-bidi", -- "unicode-normalization", --] -- --[[package]] --name = "idna" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" --dependencies = [ -- "matches", -- "unicode-bidi", -- "unicode-normalization", --] -- --[[package]] --name = "if_chain" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c3360c7b59e5ffa2653671fb74b4741a5d343c03f331c0a4aeda42b5c2b0ec7d" -- --[[package]] --name = "ignore" --version = "0.4.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "522daefc3b69036f80c7d2990b28ff9e0471c683bad05ca258e0a01dd22c5a1e" --dependencies = [ -- "crossbeam-channel", -- "globset", -- "lazy_static 1.4.0", -- "log", -- "memchr", -- "regex", -- "same-file", -- "thread_local 1.0.1", -- "walkdir", -- "winapi-util", --] -- --[[package]] --name = "im-rc" --version = "15.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3ca8957e71f04a205cb162508f9326aea04676c8dfd0711220190d6b83664f3f" --dependencies = [ -- "bitmaps", -- "rand_core 0.5.1", -- "rand_xoshiro", -- "sized-chunks", -- "typenum", -- "version_check", --] -- --[[package]] --name = "indexmap" --version = "1.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" -- --[[package]] --name = "installer" --version = "0.0.0" --dependencies = [ -- "clap", -- "failure", -- "flate2", -- "lazy_static 1.4.0", -- "num_cpus", -- "rayon", -- "remove_dir_all", -- "tar", -- "walkdir", -- "winapi 0.3.8", -- "xz2", --] -- --[[package]] --name = "iovec" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" --dependencies = [ -- "libc", --] -- --[[package]] --name = "is-match" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7e5b386aef33a1c677be65237cb9d32c3f3ef56bd035949710c4bb13083eb053" -- --[[package]] --name = "itertools" --version = "0.7.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450" --dependencies = [ -- "either", --] -- --[[package]] --name = "itertools" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b8467d9c1cebe26feb08c640139247fac215782d35371ade9a2136ed6085358" --dependencies = [ -- "either", --] -- --[[package]] --name = "itertools" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" --dependencies = [ -- "either", --] -- --[[package]] --name = "itoa" --version = "0.4.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" -- --[[package]] --name = "jemalloc-sys" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7bef0d4ce37578dfd80b466e3d8324bd9de788e249f1accebb0c472ea4b52bdc" --dependencies = [ -- "cc", -- "fs_extra", -- "libc", --] -- --[[package]] --name = "jobserver" --version = "0.1.21" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2" --dependencies = [ -- "libc", --] -- --[[package]] --name = "json" --version = "0.11.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9ad0485404155f45cce53a40d4b2d6ac356418300daed05273d9e26f91c390be" -- --[[package]] --name = "jsonrpc-client-transports" --version = "14.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0a9ae166c4d1f702d297cd76d4b55758ace80272ffc6dbb139fdc1bf810de40b" --dependencies = [ -- "failure", -- "futures", -- "jsonrpc-core", -- "jsonrpc-pubsub", -- "jsonrpc-server-utils", -- "log", -- "parity-tokio-ipc", -- "serde", -- "serde_json", -- "tokio", -- "url 1.7.2", --] -- --[[package]] --name = "jsonrpc-core" --version = "14.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fe3b688648f1ef5d5072229e2d672ecb92cbff7d1c79bcf3fd5898f3f3df0970" --dependencies = [ -- "futures", -- "log", -- "serde", -- "serde_derive", -- "serde_json", --] -- --[[package]] --name = "jsonrpc-core-client" --version = "14.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "080dc110be17701097df238fad3c816d4a478a1899dfbcf8ec8957dd40ec7304" --dependencies = [ -- "jsonrpc-client-transports", --] -- --[[package]] --name = "jsonrpc-derive" --version = "14.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8609af8f63b626e8e211f52441fcdb6ec54f1a446606b10d5c89ae9bf8a20058" --dependencies = [ -- "proc-macro-crate", -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "jsonrpc-ipc-server" --version = "14.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b579cd0840d7db3ebaadf52f6f31ec601a260e78d610e44f68634f919e34497a" --dependencies = [ -- "jsonrpc-core", -- "jsonrpc-server-utils", -- "log", -- "parity-tokio-ipc", -- "parking_lot 0.9.0", -- "tokio-service", --] -- --[[package]] --name = "jsonrpc-pubsub" --version = "14.0.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b31c9b90731276fdd24d896f31bb10aecf2e5151733364ae81123186643d939" --dependencies = [ -- "jsonrpc-core", -- "log", -- "parking_lot 0.10.2", -- "serde", --] -- --[[package]] --name = "jsonrpc-server-utils" --version = "14.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "95b7635e618a0edbbe0d2a2bbbc69874277c49383fcf6c3c0414491cfb517d22" --dependencies = [ -- "bytes", -- "globset", -- "jsonrpc-core", -- "lazy_static 1.4.0", -- "log", -- "tokio", -- "tokio-codec", -- "unicase", --] -- --[[package]] --name = "kernel32-sys" --version = "0.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" --dependencies = [ -- "winapi 0.2.8", -- "winapi-build", --] -- --[[package]] --name = "lazy_static" --version = "0.2.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" -- --[[package]] --name = "lazy_static" --version = "1.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -- --[[package]] --name = "lazycell" --version = "1.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -- --[[package]] --name = "libc" --version = "0.2.69" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" --dependencies = [ -- "rustc-std-workspace-core", --] -- --[[package]] --name = "libgit2-sys" --version = "0.12.5+1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3eadeec65514971355bf7134967a543f71372f35b53ac6c7143e7bd157f07535" --dependencies = [ -- "cc", -- "libc", -- "libssh2-sys", -- "libz-sys", -- "openssl-sys", -- "pkg-config", --] -- --[[package]] --name = "libnghttp2-sys" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "02254d44f4435dd79e695f2c2b83cd06a47919adea30216ceaf0c57ca0a72463" --dependencies = [ -- "cc", -- "libc", --] -- --[[package]] --name = "libssh2-sys" --version = "0.2.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "36aa6e813339d3a063292b77091dfbbb6152ff9006a459895fa5bebed7d34f10" --dependencies = [ -- "cc", -- "libc", -- "libz-sys", -- "openssl-sys", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "libz-sys" --version = "1.0.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" --dependencies = [ -- "cc", -- "libc", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "linkchecker" --version = "0.1.0" -- --[[package]] --name = "linked-hash-map" --version = "0.5.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" -- --[[package]] --name = "lock_api" --version = "0.3.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" --dependencies = [ -- "scopeguard", --] -- --[[package]] --name = "log" --version = "0.4.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" --dependencies = [ -- "cfg-if", --] -- --[[package]] --name = "log_settings" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "19af41f0565d7c19b2058153ad0b42d4d5ce89ec4dbf06ed6741114a8b63e7cd" --dependencies = [ -- "lazy_static 1.4.0", --] -- --[[package]] --name = "lsp-codec" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "169d737ad89cf8ddd82d1804d9122f54568c49377665157277cc90d747b1d31a" --dependencies = [ -- "bytes", -- "serde_json", -- "tokio-codec", --] -- --[[package]] --name = "lsp-types" --version = "0.60.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fe3edefcd66dde1f7f1df706f46520a3c93adc5ca4bc5747da6621195e894efd" --dependencies = [ -- "bitflags", -- "serde", -- "serde_json", -- "serde_repr", -- "url 2.1.0", --] -- --[[package]] --name = "lzma-sys" --version = "0.1.14" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "16b5c59c57cc4d39e7999f50431aa312ea78af7c93b23fbb0c3567bd672e7f35" --dependencies = [ -- "cc", -- "libc", -- "pkg-config", --] -- --[[package]] --name = "mac" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" -- --[[package]] --name = "macro-utils" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f2c4deaccc2ead6a28c16c0ba82f07d52b6475397415ce40876e559b0b0ea510" -- --[[package]] --name = "maplit" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "08cbb6b4fef96b6d77bfc40ec491b1690c779e77b05cd9f07f787ed376fd4c43" -- --[[package]] --name = "markup5ever" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "65381d9d47506b8592b97c4efd936afcf673b09b059f2bef39c7211ee78b9d03" --dependencies = [ -- "log", -- "phf", -- "phf_codegen", -- "serde", -- "serde_derive", -- "serde_json", -- "string_cache", -- "string_cache_codegen", -- "tendril", --] -- --[[package]] --name = "matches" --version = "0.1.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -- --[[package]] --name = "md-5" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8" --dependencies = [ -- "block-buffer", -- "digest", -- "opaque-debug", --] -- --[[package]] --name = "mdbook" --version = "0.3.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e7ec525f7ebccc2dd935c263717250cd37f9a4b264a77c5dbc950ea2734d8159" --dependencies = [ -- "ammonia", -- "chrono", -- "clap", -- "elasticlunr-rs", -- "env_logger 0.6.2", -- "error-chain", -- "handlebars", -- "itertools 0.8.0", -- "lazy_static 1.4.0", -- "log", -- "memchr", -- "open", -- "pulldown-cmark 0.6.1", -- "regex", -- "serde", -- "serde_derive", -- "serde_json", -- "shlex", -- "tempfile", -- "toml", -- "toml-query", --] -- --[[package]] --name = "mdbook-linkcheck" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c0a04db564ca37c47771f8455c825dc941ea851ff0deffcf55a04c512406b409" --dependencies = [ -- "codespan", -- "codespan-reporting", -- "dunce", -- "either", -- "env_logger 0.7.1", -- "failure", -- "http", -- "log", -- "mdbook", -- "percent-encoding 2.1.0", -- "pulldown-cmark 0.6.1", -- "rayon", -- "regex", -- "reqwest", -- "semver", -- "serde", -- "serde_derive", -- "serde_json", -- "structopt", --] -- --[[package]] --name = "measureme" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fef709d3257013bba7cff14fc504e07e80631d3fe0f6d38ce63b8f6510ccb932" --dependencies = [ -- "byteorder", -- "memmap", -- "parking_lot 0.9.0", -- "rustc-hash", --] -- --[[package]] --name = "memchr" --version = "2.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "53445de381a1f436797497c61d851644d0e8e88e6140f22872ad33a704933978" -- --[[package]] --name = "memmap" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" --dependencies = [ -- "libc", -- "winapi 0.3.8", --] -- --[[package]] --name = "memoffset" --version = "0.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f" --dependencies = [ -- "rustc_version", --] -- --[[package]] --name = "mime" --version = "0.3.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" --dependencies = [ -- "unicase", --] -- --[[package]] --name = "mime_guess" --version = "2.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599" --dependencies = [ -- "mime", -- "unicase", --] -- --[[package]] --name = "minifier" --version = "0.0.33" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "70bf0db2475f5e627787da77ca52fe33c294063f49f4134b8bc662eedb5e7332" --dependencies = [ -- "macro-utils", --] -- --[[package]] --name = "miniz_oxide" --version = "0.3.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625" --dependencies = [ -- "adler32", --] -- --[[package]] --name = "mio" --version = "0.6.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" --dependencies = [ -- "fuchsia-zircon", -- "fuchsia-zircon-sys", -- "iovec", -- "kernel32-sys", -- "lazycell", -- "libc", -- "log", -- "miow 0.2.1", -- "net2", -- "slab", -- "winapi 0.2.8", --] -- --[[package]] --name = "mio-named-pipes" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" --dependencies = [ -- "log", -- "mio", -- "miow 0.3.3", -- "winapi 0.3.8", --] -- --[[package]] --name = "mio-uds" --version = "0.6.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" --dependencies = [ -- "iovec", -- "libc", -- "mio", --] -- --[[package]] --name = "miow" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" --dependencies = [ -- "kernel32-sys", -- "net2", -- "winapi 0.2.8", -- "ws2_32-sys", --] -- --[[package]] --name = "miow" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226" --dependencies = [ -- "socket2", -- "winapi 0.3.8", --] -- --[[package]] --name = "miri" --version = "0.1.0" --dependencies = [ -- "byteorder", -- "cargo_metadata 0.9.1", -- "colored", -- "compiletest_rs", -- "directories", -- "env_logger 0.7.1", -- "getrandom", -- "hex 0.4.0", -- "log", -- "num-traits", -- "rand 0.7.3", -- "rustc-workspace-hack", -- "rustc_version", -- "serde", -- "serde_json", -- "shell-escape", -- "vergen", --] -- --[[package]] --name = "native-tls" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" --dependencies = [ -- "lazy_static 1.4.0", -- "libc", -- "log", -- "openssl", -- "openssl-probe", -- "openssl-sys", -- "schannel", -- "security-framework", -- "security-framework-sys", -- "tempfile", --] -- --[[package]] --name = "net2" --version = "0.2.33" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" --dependencies = [ -- "cfg-if", -- "libc", -- "winapi 0.3.8", --] -- --[[package]] --name = "new_debug_unreachable" --version = "1.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f40f005c60db6e03bae699e414c58bf9aa7ea02a2d0b9bfbcf19286cc4c82b30" -- --[[package]] --name = "nodrop" --version = "0.1.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" -- --[[package]] --name = "num-integer" --version = "0.1.39" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" --dependencies = [ -- "num-traits", --] -- --[[package]] --name = "num-traits" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" -- --[[package]] --name = "num_cpus" --version = "1.10.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" --dependencies = [ -- "libc", --] -- --[[package]] --name = "once_cell" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d6a04cb71e910d0034815600180f62a95bf6e67942d7ab52a166a68c7d7e9cd0" --dependencies = [ -- "parking_lot 0.9.0", --] -- --[[package]] --name = "opaque-debug" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -- --[[package]] --name = "open" --version = "1.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c281318d992e4432cfa799969467003d05921582a7489a8325e37f8a450d5113" -- --[[package]] --name = "opener" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "998c59e83d9474c01127a96e023b7a04bb061dd286bf8bb939d31dc8d31a7448" --dependencies = [ -- "winapi 0.3.8", --] -- --[[package]] --name = "openssl" --version = "0.10.25" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2f372b2b53ce10fb823a337aaa674e3a7d072b957c6264d0f4ff0bd86e657449" --dependencies = [ -- "bitflags", -- "cfg-if", -- "foreign-types", -- "lazy_static 1.4.0", -- "libc", -- "openssl-sys", --] -- --[[package]] --name = "openssl-probe" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -- --[[package]] --name = "openssl-src" --version = "111.9.0+1.1.1g" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4" --dependencies = [ -- "cc", --] -- --[[package]] --name = "openssl-sys" --version = "0.9.54" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986" --dependencies = [ -- "autocfg 1.0.0", -- "cc", -- "libc", -- "openssl-src", -- "pkg-config", -- "vcpkg", --] -- --[[package]] --name = "ordermap" --version = "0.3.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" -- --[[package]] --name = "ordslice" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dd20eec3dbe4376829cb7d80ae6ac45e0a766831dca50202ff2d40db46a8a024" -- --[[package]] --name = "output_vt100" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" --dependencies = [ -- "winapi 0.3.8", --] -- --[[package]] --name = "packed_simd" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "25d36de864f7218ec5633572a800109bbe5a1cc8d9d95a967f3daf93ea7e6ddc" --dependencies = [ -- "cfg-if", --] -- --[[package]] --name = "panic_abort" --version = "0.0.0" --dependencies = [ -- "compiler_builtins", -- "core", -- "libc", --] -- --[[package]] --name = "panic_unwind" --version = "0.0.0" --dependencies = [ -- "alloc", -- "cfg-if", -- "compiler_builtins", -- "core", -- "libc", -- "unwind", --] -- --[[package]] --name = "parity-tokio-ipc" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8281bf4f1d6429573f89589bf68d89451c46750977a8264f8ea3edbabeba7947" --dependencies = [ -- "bytes", -- "futures", -- "log", -- "mio-named-pipes", -- "miow 0.3.3", -- "rand 0.7.3", -- "tokio", -- "tokio-named-pipes", -- "tokio-uds", -- "winapi 0.3.8", --] -- --[[package]] --name = "parking_lot" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" --dependencies = [ -- "lock_api", -- "parking_lot_core 0.6.2", -- "rustc_version", --] -- --[[package]] --name = "parking_lot" --version = "0.10.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" --dependencies = [ -- "lock_api", -- "parking_lot_core 0.7.1", --] -- --[[package]] --name = "parking_lot_core" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" --dependencies = [ -- "cfg-if", -- "cloudabi", -- "libc", -- "redox_syscall", -- "rustc_version", -- "smallvec 0.6.10", -- "winapi 0.3.8", --] -- --[[package]] --name = "parking_lot_core" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0e136c1904604defe99ce5fd71a28d473fa60a12255d511aa78a9ddf11237aeb" --dependencies = [ -- "cfg-if", -- "cloudabi", -- "libc", -- "redox_syscall", -- "smallvec 1.4.0", -- "winapi 0.3.8", --] -- --[[package]] --name = "percent-encoding" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -- --[[package]] --name = "percent-encoding" --version = "2.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" -- --[[package]] --name = "pest" --version = "2.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "54f0c72a98d8ab3c99560bfd16df8059cc10e1f9a8e83e6e3b97718dd766e9c3" --dependencies = [ -- "ucd-trie", --] -- --[[package]] --name = "pest_derive" --version = "2.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" --dependencies = [ -- "pest", -- "pest_generator", --] -- --[[package]] --name = "pest_generator" --version = "2.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" --dependencies = [ -- "pest", -- "pest_meta", -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "pest_meta" --version = "2.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" --dependencies = [ -- "maplit", -- "pest", -- "sha-1", --] -- --[[package]] --name = "petgraph" --version = "0.4.13" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" --dependencies = [ -- "fixedbitset", -- "ordermap", --] -- --[[package]] --name = "phf" --version = "0.7.24" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" --dependencies = [ -- "phf_shared", --] -- --[[package]] --name = "phf_codegen" --version = "0.7.24" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" --dependencies = [ -- "phf_generator", -- "phf_shared", --] -- --[[package]] --name = "phf_generator" --version = "0.7.24" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" --dependencies = [ -- "phf_shared", -- "rand 0.6.1", --] -- --[[package]] --name = "phf_shared" --version = "0.7.24" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" --dependencies = [ -- "siphasher", --] -- --[[package]] --name = "pkg-config" --version = "0.3.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" -- --[[package]] --name = "polonius-engine" --version = "0.12.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ef2558a4b464e185b36ee08a2937ebb62ea5464c38856cfb1465c97cb38db52d" --dependencies = [ -- "datafrog", -- "log", -- "rustc-hash", --] -- --[[package]] --name = "ppv-lite86" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" -- --[[package]] --name = "precomputed-hash" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" -- --[[package]] --name = "pretty_assertions" --version = "0.6.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427" --dependencies = [ -- "ansi_term", -- "ctor", -- "difference", -- "output_vt100", --] -- --[[package]] --name = "pretty_env_logger" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" --dependencies = [ -- "env_logger 0.7.1", -- "log", --] -- --[[package]] --name = "proc-macro-crate" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e10d4b51f154c8a7fb96fd6dad097cb74b863943ec010ac94b9fd1be8861fe1e" --dependencies = [ -- "toml", --] -- --[[package]] --name = "proc-macro-error" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aeccfe4d5d8ea175d5f0e4a2ad0637e0f4121d63bd99d356fb1f39ab2e7c6097" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "proc-macro2" --version = "0.4.30" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" --dependencies = [ -- "unicode-xid 0.1.0", --] -- --[[package]] --name = "proc-macro2" --version = "1.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e98a83a9f9b331f54b924e68a66acb1bb35cb01fb0a23645139967abefb697e8" --dependencies = [ -- "unicode-xid 0.2.0", --] -- --[[package]] --name = "proc_macro" --version = "0.0.0" --dependencies = [ -- "std", --] -- --[[package]] --name = "profiler_builtins" --version = "0.0.0" --dependencies = [ -- "cc", -- "compiler_builtins", -- "core", --] -- --[[package]] --name = "psm" --version = "0.1.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "659ecfea2142a458893bb7673134bad50b752fea932349c213d6a23874ce3aa7" --dependencies = [ -- "cc", --] -- --[[package]] --name = "publicsuffix" --version = "1.5.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9bf259a81de2b2eb9850ec990ec78e6a25319715584fd7652b9b26f96fcb1510" --dependencies = [ -- "error-chain", -- "idna 0.2.0", -- "lazy_static 1.4.0", -- "regex", -- "url 2.1.0", --] -- --[[package]] --name = "pulldown-cmark" --version = "0.6.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e" --dependencies = [ -- "bitflags", -- "getopts", -- "memchr", -- "unicase", --] -- --[[package]] --name = "pulldown-cmark" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3e142c3b8f49d2200605ee6ba0b1d757310e9e7a72afe78c36ee2ef67300ee00" --dependencies = [ -- "bitflags", -- "memchr", -- "unicase", --] -- --[[package]] --name = "punycode" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6ddd112cca70a4d30883b2d21568a1d376ff8be4758649f64f973c6845128ad3" -- --[[package]] --name = "quick-error" --version = "1.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -- --[[package]] --name = "quine-mc_cluskey" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "07589615d719a60c8dd8a4622e7946465dfef20d1a428f969e3443e7386d5f45" -- --[[package]] --name = "quote" --version = "0.6.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" --dependencies = [ -- "proc-macro2 0.4.30", --] -- --[[package]] --name = "quote" --version = "1.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" --dependencies = [ -- "proc-macro2 1.0.3", --] -- --[[package]] --name = "racer" --version = "2.1.33" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "54322b696f7df20e0d79d0244a1088f387b7164a5f17987c4ab984dec1a23e42" --dependencies = [ -- "bitflags", -- "clap", -- "derive_more", -- "env_logger 0.7.1", -- "humantime 2.0.0", -- "lazy_static 1.4.0", -- "log", -- "rls-span", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_ast_pretty", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_parse", -- "rustc-ap-rustc_session", -- "rustc-ap-rustc_span", --] -- --[[package]] --name = "rand" --version = "0.6.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a" --dependencies = [ -- "cloudabi", -- "fuchsia-zircon", -- "libc", -- "rand_chacha 0.1.0", -- "rand_core 0.3.0", -- "rand_hc 0.1.0", -- "rand_isaac", -- "rand_pcg", -- "rand_xorshift 0.1.0", -- "rustc_version", -- "winapi 0.3.8", --] -- --[[package]] --name = "rand" --version = "0.7.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" --dependencies = [ -- "getrandom", -- "libc", -- "rand_chacha 0.2.1", -- "rand_core 0.5.1", -- "rand_hc 0.2.0", --] -- --[[package]] --name = "rand_chacha" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" --dependencies = [ -- "rand_core 0.3.0", -- "rustc_version", --] -- --[[package]] --name = "rand_chacha" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" --dependencies = [ -- "c2-chacha", -- "rand_core 0.5.1", --] -- --[[package]] --name = "rand_core" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" -- --[[package]] --name = "rand_core" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" -- --[[package]] --name = "rand_core" --version = "0.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" --dependencies = [ -- "getrandom", --] -- --[[package]] --name = "rand_hc" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" --dependencies = [ -- "rand_core 0.3.0", --] -- --[[package]] --name = "rand_hc" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" --dependencies = [ -- "rand_core 0.5.1", --] -- --[[package]] --name = "rand_isaac" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" --dependencies = [ -- "rand_core 0.3.0", --] -- --[[package]] --name = "rand_os" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" --dependencies = [ -- "cloudabi", -- "fuchsia-cprng", -- "libc", -- "rand_core 0.4.0", -- "rdrand", -- "winapi 0.3.8", --] -- --[[package]] --name = "rand_pcg" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" --dependencies = [ -- "rand_core 0.3.0", -- "rustc_version", --] -- --[[package]] --name = "rand_xorshift" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" --dependencies = [ -- "rand_core 0.3.0", --] -- --[[package]] --name = "rand_xorshift" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" --dependencies = [ -- "rand_core 0.5.1", --] -- --[[package]] --name = "rand_xoshiro" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004" --dependencies = [ -- "rand_core 0.5.1", --] -- --[[package]] --name = "rayon" --version = "1.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "83a27732a533a1be0a0035a111fe76db89ad312f6f0347004c220c57f209a123" --dependencies = [ -- "crossbeam-deque", -- "either", -- "rayon-core", --] -- --[[package]] --name = "rayon-core" --version = "1.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "98dcf634205083b17d0861252431eb2acbfb698ab7478a2d20de07954f47ec7b" --dependencies = [ -- "crossbeam-deque", -- "crossbeam-queue", -- "crossbeam-utils 0.6.5", -- "lazy_static 1.4.0", -- "num_cpus", --] -- --[[package]] --name = "rdrand" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" --dependencies = [ -- "rand_core 0.3.0", --] -- --[[package]] --name = "redox_syscall" --version = "0.1.56" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" -- --[[package]] --name = "redox_termios" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" --dependencies = [ -- "redox_syscall", --] -- --[[package]] --name = "redox_users" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828" --dependencies = [ -- "argon2rs", -- "failure", -- "rand_os", -- "redox_syscall", --] -- --[[package]] --name = "regex" --version = "1.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58" --dependencies = [ -- "aho-corasick", -- "memchr", -- "regex-syntax", -- "thread_local 0.3.6", -- "utf8-ranges", --] -- --[[package]] --name = "regex-syntax" --version = "0.6.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" --dependencies = [ -- "ucd-util", --] -- --[[package]] --name = "remote-test-client" --version = "0.1.0" -- --[[package]] --name = "remote-test-server" --version = "0.1.0" -- --[[package]] --name = "remove_dir_all" --version = "0.5.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" --dependencies = [ -- "winapi 0.3.8", --] -- --[[package]] --name = "reqwest" --version = "0.9.22" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2c2064233e442ce85c77231ebd67d9eca395207dec2127fe0bbedde4bd29a650" --dependencies = [ -- "base64", -- "bytes", -- "cookie", -- "cookie_store", -- "encoding_rs", -- "flate2", -- "futures", -- "http", -- "hyper", -- "hyper-tls", -- "log", -- "mime", -- "mime_guess", -- "native-tls", -- "serde", -- "serde_json", -- "serde_urlencoded", -- "time", -- "tokio", -- "tokio-executor", -- "tokio-io", -- "tokio-threadpool", -- "tokio-timer", -- "url 1.7.2", -- "uuid", -- "winreg", --] -- --[[package]] --name = "rls" --version = "1.41.0" --dependencies = [ -- "anyhow", -- "cargo", -- "cargo_metadata 0.8.0", -- "clippy_lints", -- "crossbeam-channel", -- "difference", -- "env_logger 0.7.1", -- "futures", -- "heck", -- "home", -- "itertools 0.8.0", -- "jsonrpc-core", -- "lazy_static 1.4.0", -- "log", -- "lsp-codec", -- "lsp-types", -- "num_cpus", -- "ordslice", -- "racer", -- "rand 0.7.3", -- "rayon", -- "regex", -- "rls-analysis", -- "rls-data", -- "rls-ipc", -- "rls-rustc", -- "rls-span", -- "rls-vfs", -- "rustc-workspace-hack", -- "rustc_tools_util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "rustfmt-nightly", -- "serde", -- "serde_derive", -- "serde_ignored", -- "serde_json", -- "tempfile", -- "tokio", -- "tokio-process", -- "tokio-timer", -- "toml", -- "url 2.1.0", -- "walkdir", --] -- --[[package]] --name = "rls-analysis" --version = "0.18.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c0d208ad66717501222c74b42d9e823a7612592e85ed78b04074c8f58c0be0a" --dependencies = [ -- "derive-new", -- "fst", -- "itertools 0.7.8", -- "json", -- "log", -- "rls-data", -- "rls-span", -- "serde", -- "serde_json", --] -- --[[package]] --name = "rls-data" --version = "0.19.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76c72ea97e045be5f6290bb157ebdc5ee9f2b093831ff72adfaf59025cf5c491" --dependencies = [ -- "rls-span", -- "serde", --] -- --[[package]] --name = "rls-ipc" --version = "0.1.0" --dependencies = [ -- "jsonrpc-core", -- "jsonrpc-core-client", -- "jsonrpc-derive", -- "jsonrpc-ipc-server", -- "rls-data", -- "serde", --] -- --[[package]] --name = "rls-rustc" --version = "0.6.0" --dependencies = [ -- "clippy_lints", -- "env_logger 0.7.1", -- "futures", -- "log", -- "rand 0.7.3", -- "rls-data", -- "rls-ipc", -- "serde", -- "tokio", --] -- --[[package]] --name = "rls-span" --version = "0.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f1cb4694410d8d2ce43ccff3682f1c782158a018d5a9a92185675677f7533eb3" --dependencies = [ -- "serde", --] -- --[[package]] --name = "rls-vfs" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ce4b57b25b4330ed5ec14028fc02141e083ddafda327e7eb598dc0569c8c83c9" --dependencies = [ -- "log", -- "rls-span", --] -- --[[package]] --name = "rustbook" --version = "0.1.0" --dependencies = [ -- "clap", -- "codespan", -- "codespan-reporting", -- "failure", -- "mdbook", -- "mdbook-linkcheck", -- "rustc-workspace-hack", --] -- --[[package]] --name = "rustc-ap-arena" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "81dfcfbb0ddfd533abf8c076e3b49d1e5042d1962526a12ce2c66d514b24cca3" --dependencies = [ -- "rustc-ap-rustc_data_structures", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc-ap-graphviz" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7490bb07b014a7f9531bde33c905a805e08095dbefdb4c9988a1b19fe6d019fd" -- --[[package]] --name = "rustc-ap-rustc_ast" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "189f16dbb8dd11089274c9ced58b0cae9e1ea3e434a58f3db683817eda849e58" --dependencies = [ -- "log", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_index", -- "rustc-ap-rustc_lexer", -- "rustc-ap-rustc_macros", -- "rustc-ap-rustc_span", -- "rustc-ap-serialize", -- "scoped-tls", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc-ap-rustc_ast_passes" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bbe619609b56a617fa986332b066d53270093c816d8ff8281fc90e1dbe74c1cc" --dependencies = [ -- "itertools 0.8.0", -- "log", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_ast_pretty", -- "rustc-ap-rustc_attr", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_feature", -- "rustc-ap-rustc_parse", -- "rustc-ap-rustc_session", -- "rustc-ap-rustc_span", --] -- --[[package]] --name = "rustc-ap-rustc_ast_pretty" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "26ab1495f7b420e937688749c1da5763aaabd6ebe8cacb758665a0b8481da094" --dependencies = [ -- "log", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_span", --] -- --[[package]] --name = "rustc-ap-rustc_attr" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2e057495724c60729c1d1d9d49374e0b3ebd6d3481cd161b2871f52fe017b7b5" --dependencies = [ -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_ast_pretty", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_feature", -- "rustc-ap-rustc_macros", -- "rustc-ap-rustc_session", -- "rustc-ap-rustc_span", -- "rustc-ap-serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc-ap-rustc_data_structures" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d2130997667833692f4bec4681d0e73b066d5a01dac1d8a68f22068b82bf173a" --dependencies = [ -- "bitflags", -- "cfg-if", -- "crossbeam-utils 0.7.2", -- "ena 0.13.1", -- "indexmap", -- "jobserver", -- "lazy_static 1.4.0", -- "libc", -- "log", -- "measureme", -- "parking_lot 0.10.2", -- "rustc-ap-graphviz", -- "rustc-ap-rustc_index", -- "rustc-ap-serialize", -- "rustc-hash", -- "rustc-rayon", -- "rustc-rayon-core", -- "smallvec 1.4.0", -- "stable_deref_trait", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc-ap-rustc_errors" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "908e1ea187c6bb368af4ba6db980001e920515e67371ddc4086e749baabe6080" --dependencies = [ -- "annotate-snippets", -- "atty", -- "log", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_span", -- "rustc-ap-serialize", -- "termcolor", -- "termize", -- "unicode-width", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc-ap-rustc_expand" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "50066a75bca872ff933b0ee8a582d18ef1876c8054a392f60c39e538446bfb00" --dependencies = [ -- "log", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_ast_passes", -- "rustc-ap-rustc_ast_pretty", -- "rustc-ap-rustc_attr", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_feature", -- "rustc-ap-rustc_lexer", -- "rustc-ap-rustc_parse", -- "rustc-ap-rustc_session", -- "rustc-ap-rustc_span", -- "rustc-ap-serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc-ap-rustc_feature" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "96fb53e1710e6de7c2e371ca56c857b79f9b399aba58aa6b6fbed6e2f677d3f6" --dependencies = [ -- "lazy_static 1.4.0", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_span", --] -- --[[package]] --name = "rustc-ap-rustc_fs_util" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e3f91357e5e468fc2729211571d769723c728a34e200d90a70164e945f881e09" -- --[[package]] --name = "rustc-ap-rustc_index" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "32220c3e6cdf226f38e4474b747dca15f3106bb680c74f10b299af3f6cdb1663" --dependencies = [ -- "rustc-ap-serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc-ap-rustc_lexer" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b324d2a2bacad344e53e182e5ca04ffb74745b932849aa074f8f7fec8177da5" --dependencies = [ -- "unicode-xid 0.2.0", --] -- --[[package]] --name = "rustc-ap-rustc_macros" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "59686c56d5f1b3ed47d0f070c257ed35caf24ecf2d744dd11fe44b1014baee0f" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", -- "synstructure", --] -- --[[package]] --name = "rustc-ap-rustc_parse" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2dfb0c11c591ec5f87bbadb10819795abc9035ff79a26703c1b6c9487ac51f49" --dependencies = [ -- "bitflags", -- "log", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_ast_pretty", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_feature", -- "rustc-ap-rustc_lexer", -- "rustc-ap-rustc_session", -- "rustc-ap-rustc_span", -- "smallvec 1.4.0", -- "unicode-normalization", --] -- --[[package]] --name = "rustc-ap-rustc_session" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3d1a194b1a81d7233ee492847638dc9ebdb7d084300e5ade8dea0ceaa98f95b9" --dependencies = [ -- "getopts", -- "log", -- "num_cpus", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_feature", -- "rustc-ap-rustc_fs_util", -- "rustc-ap-rustc_index", -- "rustc-ap-rustc_span", -- "rustc-ap-rustc_target", -- "rustc-ap-serialize", --] -- --[[package]] --name = "rustc-ap-rustc_span" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a648146050fed6b58e681ec22488e728f60e16036bb7497c9815e3debd1e4242" --dependencies = [ -- "cfg-if", -- "log", -- "md-5", -- "rustc-ap-arena", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_index", -- "rustc-ap-rustc_macros", -- "rustc-ap-serialize", -- "scoped-tls", -- "sha-1", -- "unicode-width", --] -- --[[package]] --name = "rustc-ap-rustc_target" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "28cf28798f0988b808e3616713630e4098d68c6f1f41052a2f7e922e094da744" --dependencies = [ -- "bitflags", -- "log", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_index", -- "rustc-ap-rustc_macros", -- "rustc-ap-rustc_span", -- "rustc-ap-serialize", --] -- --[[package]] --name = "rustc-ap-serialize" --version = "654.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "756e8f526ec7906e132188bf25e3c10a6ee42ab77294ecb3b3602647f0508eef" --dependencies = [ -- "indexmap", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc-demangle" --version = "0.1.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" --dependencies = [ -- "compiler_builtins", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "rustc-hash" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7540fc8b0c49f096ee9c961cda096467dce8084bec6bdca2fc83895fd9b28cb8" --dependencies = [ -- "byteorder", --] -- --[[package]] --name = "rustc-main" --version = "0.0.0" --dependencies = [ -- "jemalloc-sys", -- "rustc_codegen_ssa", -- "rustc_driver", --] -- --[[package]] --name = "rustc-rayon" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f32767f90d938f1b7199a174ef249ae1924f6e5bbdb9d112fea141e016f25b3a" --dependencies = [ -- "crossbeam-deque", -- "either", -- "rustc-rayon-core", --] -- --[[package]] --name = "rustc-rayon-core" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea2427831f0053ea3ea73559c8eabd893133a51b251d142bacee53c62a288cb3" --dependencies = [ -- "crossbeam-deque", -- "crossbeam-queue", -- "crossbeam-utils 0.6.5", -- "lazy_static 1.4.0", -- "num_cpus", --] -- --[[package]] --name = "rustc-std-workspace-alloc" --version = "1.99.0" --dependencies = [ -- "alloc", --] -- --[[package]] --name = "rustc-std-workspace-core" --version = "1.99.0" --dependencies = [ -- "core", --] -- --[[package]] --name = "rustc-std-workspace-std" --version = "1.99.0" --dependencies = [ -- "std", --] -- --[[package]] --name = "rustc-workspace-hack" --version = "1.0.0" --dependencies = [ -- "crossbeam-utils 0.7.2", -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "serde", -- "serde_json", -- "smallvec 0.6.10", -- "smallvec 1.4.0", -- "syn 0.15.35", -- "syn 1.0.11", -- "url 2.1.0", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc_apfloat" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_ast" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "log", -- "rustc_data_structures", -- "rustc_index", -- "rustc_lexer", -- "rustc_macros", -- "rustc_span", -- "scoped-tls", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_ast_lowering" --version = "0.0.0" --dependencies = [ -- "arena", -- "log", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_ast_passes" --version = "0.0.0" --dependencies = [ -- "itertools 0.8.0", -- "log", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_parse", -- "rustc_session", -- "rustc_span", --] -- --[[package]] --name = "rustc_ast_pretty" --version = "0.0.0" --dependencies = [ -- "log", -- "rustc_ast", -- "rustc_span", -- "rustc_target", --] -- --[[package]] --name = "rustc_attr" --version = "0.0.0" --dependencies = [ -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_macros", -- "rustc_session", -- "rustc_span", -- "serialize", -- "version_check", --] -- --[[package]] --name = "rustc_builtin_macros" --version = "0.0.0" --dependencies = [ -- "fmt_macros", -- "log", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_expand", -- "rustc_feature", -- "rustc_parse", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_codegen_llvm" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "flate2", -- "libc", -- "log", -- "measureme", -- "rustc-demangle", -- "rustc_ast", -- "rustc_attr", -- "rustc_codegen_ssa", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_fs_util", -- "rustc_hir", -- "rustc_incremental", -- "rustc_index", -- "rustc_llvm", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_codegen_ssa" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "cc", -- "jobserver", -- "libc", -- "log", -- "memmap", -- "num_cpus", -- "rustc_apfloat", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_fs_util", -- "rustc_hir", -- "rustc_incremental", -- "rustc_index", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_symbol_mangling", -- "rustc_target", -- "serialize", -- "tempfile", --] -- --[[package]] --name = "rustc_data_structures" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "cfg-if", -- "crossbeam-utils 0.7.2", -- "ena 0.14.0", -- "graphviz", -- "indexmap", -- "jobserver", -- "lazy_static 1.4.0", -- "libc", -- "log", -- "measureme", -- "once_cell", -- "parking_lot 0.10.2", -- "rustc-hash", -- "rustc-rayon", -- "rustc-rayon-core", -- "rustc_index", -- "serialize", -- "smallvec 1.4.0", -- "stable_deref_trait", -- "stacker", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc_driver" --version = "0.0.0" --dependencies = [ -- "env_logger 0.7.1", -- "lazy_static 1.4.0", -- "libc", -- "log", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_codegen_ssa", -- "rustc_data_structures", -- "rustc_error_codes", -- "rustc_errors", -- "rustc_feature", -- "rustc_hir", -- "rustc_hir_pretty", -- "rustc_interface", -- "rustc_lint", -- "rustc_metadata", -- "rustc_middle", -- "rustc_mir", -- "rustc_parse", -- "rustc_plugin_impl", -- "rustc_save_analysis", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "serialize", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc_error_codes" --version = "0.0.0" -- --[[package]] --name = "rustc_errors" --version = "0.0.0" --dependencies = [ -- "annotate-snippets", -- "atty", -- "log", -- "rustc_data_structures", -- "rustc_span", -- "serialize", -- "termcolor", -- "termize", -- "unicode-width", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc_expand" --version = "0.0.0" --dependencies = [ -- "log", -- "rustc_ast", -- "rustc_ast_passes", -- "rustc_ast_pretty", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_lexer", -- "rustc_parse", -- "rustc_session", -- "rustc_span", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_feature" --version = "0.0.0" --dependencies = [ -- "lazy_static 1.4.0", -- "rustc_data_structures", -- "rustc_span", --] -- --[[package]] --name = "rustc_fs_util" --version = "0.0.0" -- --[[package]] --name = "rustc_hir" --version = "0.0.0" --dependencies = [ -- "lazy_static 1.4.0", -- "log", -- "rustc_ast", -- "rustc_data_structures", -- "rustc_index", -- "rustc_macros", -- "rustc_span", -- "rustc_target", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_hir_pretty" --version = "0.0.0" --dependencies = [ -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_hir", -- "rustc_span", -- "rustc_target", --] -- --[[package]] --name = "rustc_incremental" --version = "0.0.0" --dependencies = [ -- "graphviz", -- "log", -- "rand 0.7.3", -- "rustc_ast", -- "rustc_data_structures", -- "rustc_fs_util", -- "rustc_hir", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "serialize", --] -- --[[package]] --name = "rustc_index" --version = "0.0.0" --dependencies = [ -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_infer" --version = "0.0.0" --dependencies = [ -- "graphviz", -- "log", -- "rustc_ast", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_macros", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_interface" --version = "0.0.0" --dependencies = [ -- "libc", -- "log", -- "once_cell", -- "rustc-rayon", -- "rustc_ast", -- "rustc_ast_lowering", -- "rustc_ast_passes", -- "rustc_attr", -- "rustc_builtin_macros", -- "rustc_codegen_llvm", -- "rustc_codegen_ssa", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_expand", -- "rustc_hir", -- "rustc_incremental", -- "rustc_lint", -- "rustc_metadata", -- "rustc_middle", -- "rustc_mir", -- "rustc_mir_build", -- "rustc_parse", -- "rustc_passes", -- "rustc_plugin_impl", -- "rustc_privacy", -- "rustc_resolve", -- "rustc_session", -- "rustc_span", -- "rustc_symbol_mangling", -- "rustc_target", -- "rustc_trait_selection", -- "rustc_traits", -- "rustc_ty", -- "rustc_typeck", -- "serialize", -- "smallvec 1.4.0", -- "tempfile", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc_lexer" --version = "0.1.0" --dependencies = [ -- "unicode-xid 0.2.0", --] -- --[[package]] --name = "rustc_lint" --version = "0.0.0" --dependencies = [ -- "log", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_hir", -- "rustc_index", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "rustc_trait_selection", -- "unicode-security", --] -- --[[package]] --name = "rustc_llvm" --version = "0.0.0" --dependencies = [ -- "build_helper", -- "cc", -- "libc", --] -- --[[package]] --name = "rustc_macros" --version = "0.1.0" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", -- "synstructure", --] -- --[[package]] --name = "rustc_metadata" --version = "0.0.0" --dependencies = [ -- "flate2", -- "libc", -- "log", -- "memmap", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_expand", -- "rustc_hir", -- "rustc_hir_pretty", -- "rustc_index", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "serialize", -- "smallvec 1.4.0", -- "stable_deref_trait", -- "winapi 0.3.8", --] -- --[[package]] --name = "rustc_middle" --version = "0.0.0" --dependencies = [ -- "arena", -- "bitflags", -- "byteorder", -- "chalk-ir", -- "log", -- "measureme", -- "polonius-engine", -- "rustc-rayon-core", -- "rustc_apfloat", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_hir", -- "rustc_index", -- "rustc_macros", -- "rustc_query_system", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "scoped-tls", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_mir" --version = "0.0.0" --dependencies = [ -- "either", -- "graphviz", -- "itertools 0.8.0", -- "log", -- "log_settings", -- "polonius-engine", -- "rustc_apfloat", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_infer", -- "rustc_lexer", -- "rustc_macros", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "rustc_trait_selection", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_mir_build" --version = "0.0.0" --dependencies = [ -- "arena", -- "log", -- "rustc_apfloat", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_infer", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "rustc_trait_selection", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_parse" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "log", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_lexer", -- "rustc_session", -- "rustc_span", -- "smallvec 1.4.0", -- "unicode-normalization", --] -- --[[package]] --name = "rustc_passes" --version = "0.0.0" --dependencies = [ -- "log", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "rustc_trait_selection", --] -- --[[package]] --name = "rustc_plugin_impl" --version = "0.0.0" --dependencies = [ -- "rustc_ast", -- "rustc_errors", -- "rustc_hir", -- "rustc_lint", -- "rustc_metadata", -- "rustc_middle", -- "rustc_session", -- "rustc_span", --] -- --[[package]] --name = "rustc_privacy" --version = "0.0.0" --dependencies = [ -- "log", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_typeck", --] -- --[[package]] --name = "rustc_query_system" --version = "0.0.0" --dependencies = [ -- "arena", -- "log", -- "parking_lot 0.10.2", -- "rustc-rayon-core", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_index", -- "rustc_span", -- "serialize", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_resolve" --version = "0.0.0" --dependencies = [ -- "arena", -- "bitflags", -- "log", -- "rustc_ast", -- "rustc_ast_lowering", -- "rustc_ast_pretty", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_expand", -- "rustc_feature", -- "rustc_hir", -- "rustc_metadata", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_save_analysis" --version = "0.0.0" --dependencies = [ -- "log", -- "rls-data", -- "rls-span", -- "rustc_ast", -- "rustc_ast_pretty", -- "rustc_data_structures", -- "rustc_hir", -- "rustc_hir_pretty", -- "rustc_middle", -- "rustc_parse", -- "rustc_session", -- "rustc_span", -- "serde_json", --] -- --[[package]] --name = "rustc_session" --version = "0.0.0" --dependencies = [ -- "getopts", -- "log", -- "num_cpus", -- "rustc_ast", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_feature", -- "rustc_fs_util", -- "rustc_span", -- "rustc_target", -- "serialize", --] -- --[[package]] --name = "rustc_span" --version = "0.0.0" --dependencies = [ -- "arena", -- "cfg-if", -- "log", -- "md-5", -- "rustc_data_structures", -- "rustc_index", -- "rustc_macros", -- "scoped-tls", -- "serialize", -- "sha-1", -- "unicode-width", --] -- --[[package]] --name = "rustc_symbol_mangling" --version = "0.0.0" --dependencies = [ -- "log", -- "punycode", -- "rustc-demangle", -- "rustc_ast", -- "rustc_data_structures", -- "rustc_hir", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", --] -- --[[package]] --name = "rustc_target" --version = "0.0.0" --dependencies = [ -- "bitflags", -- "log", -- "rustc_data_structures", -- "rustc_index", -- "rustc_macros", -- "rustc_span", -- "serialize", --] -- --[[package]] --name = "rustc_tools_util" --version = "0.2.0" -- --[[package]] --name = "rustc_tools_util" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b725dadae9fabc488df69a287f5a99c5eaf5d10853842a8a3dfac52476f544ee" -- --[[package]] --name = "rustc_trait_selection" --version = "0.0.0" --dependencies = [ -- "fmt_macros", -- "log", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_infer", -- "rustc_macros", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_traits" --version = "0.0.0" --dependencies = [ -- "chalk-ir", -- "chalk-rust-ir", -- "chalk-solve", -- "log", -- "rustc_ast", -- "rustc_data_structures", -- "rustc_hir", -- "rustc_index", -- "rustc_infer", -- "rustc_middle", -- "rustc_span", -- "rustc_trait_selection", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_ty" --version = "0.0.0" --dependencies = [ -- "log", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_infer", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "rustc_trait_selection", --] -- --[[package]] --name = "rustc_typeck" --version = "0.0.0" --dependencies = [ -- "arena", -- "log", -- "rustc_ast", -- "rustc_attr", -- "rustc_data_structures", -- "rustc_errors", -- "rustc_hir", -- "rustc_index", -- "rustc_infer", -- "rustc_middle", -- "rustc_session", -- "rustc_span", -- "rustc_target", -- "rustc_trait_selection", -- "smallvec 1.4.0", --] -- --[[package]] --name = "rustc_version" --version = "0.2.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" --dependencies = [ -- "semver", --] -- --[[package]] --name = "rustdoc" --version = "0.0.0" --dependencies = [ -- "itertools 0.8.0", -- "minifier", -- "pulldown-cmark 0.7.1", -- "rustc-rayon", -- "serde", -- "serde_json", -- "tempfile", --] -- --[[package]] --name = "rustdoc-themes" --version = "0.1.0" -- --[[package]] --name = "rustdoc-tool" --version = "0.0.0" --dependencies = [ -- "rustdoc", --] -- --[[package]] --name = "rustfix" --version = "0.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "804b11883a5ce0ad0378fbf95a8dea59ee6b51c331a73b8f471b6bdaa3bd40c1" --dependencies = [ -- "anyhow", -- "log", -- "serde", -- "serde_json", --] -- --[[package]] --name = "rustfmt-config_proc_macro" --version = "0.2.0" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "serde", -- "syn 1.0.11", --] -- --[[package]] --name = "rustfmt-nightly" --version = "1.4.14" --dependencies = [ -- "annotate-snippets", -- "bytecount", -- "cargo_metadata 0.8.0", -- "derive-new", -- "diff", -- "dirs", -- "env_logger 0.6.2", -- "failure", -- "getopts", -- "ignore", -- "itertools 0.8.0", -- "lazy_static 1.4.0", -- "log", -- "regex", -- "rustc-ap-rustc_ast", -- "rustc-ap-rustc_ast_pretty", -- "rustc-ap-rustc_data_structures", -- "rustc-ap-rustc_errors", -- "rustc-ap-rustc_expand", -- "rustc-ap-rustc_parse", -- "rustc-ap-rustc_session", -- "rustc-ap-rustc_span", -- "rustc-workspace-hack", -- "rustfmt-config_proc_macro", -- "serde", -- "serde_json", -- "structopt", -- "term 0.6.0", -- "toml", -- "unicode-segmentation", -- "unicode-width", -- "unicode_categories", --] -- --[[package]] --name = "ryu" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997" -- --[[package]] --name = "same-file" --version = "1.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" --dependencies = [ -- "winapi-util", --] -- --[[package]] --name = "schannel" --version = "0.1.16" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" --dependencies = [ -- "lazy_static 1.4.0", -- "winapi 0.3.8", --] -- --[[package]] --name = "scoped-tls" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" -- --[[package]] --name = "scoped_threadpool" --version = "0.1.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" -- --[[package]] --name = "scopeguard" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" -- --[[package]] --name = "security-framework" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" --dependencies = [ -- "core-foundation 0.6.3", -- "core-foundation-sys 0.6.2", -- "libc", -- "security-framework-sys", --] -- --[[package]] --name = "security-framework-sys" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" --dependencies = [ -- "core-foundation-sys 0.6.2", --] -- --[[package]] --name = "semver" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" --dependencies = [ -- "semver-parser", -- "serde", --] -- --[[package]] --name = "semver-parser" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -- --[[package]] --name = "serde" --version = "1.0.99" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f" --dependencies = [ -- "serde_derive", --] -- --[[package]] --name = "serde_derive" --version = "1.0.106" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "serde_ignored" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c24bbb8f4b81834f618cd3e28698235c2fba06ddf7f4fbe30519dd081364e59" --dependencies = [ -- "serde", --] -- --[[package]] --name = "serde_json" --version = "1.0.40" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704" --dependencies = [ -- "itoa", -- "ryu", -- "serde", --] -- --[[package]] --name = "serde_repr" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cd02c7587ec314570041b2754829f84d873ced14a96d1fd1823531e11db40573" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "serde_urlencoded" --version = "0.5.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" --dependencies = [ -- "dtoa", -- "itoa", -- "serde", -- "url 1.7.2", --] -- --[[package]] --name = "serialize" --version = "0.0.0" --dependencies = [ -- "indexmap", -- "smallvec 1.4.0", --] -- --[[package]] --name = "sha-1" --version = "0.8.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" --dependencies = [ -- "block-buffer", -- "digest", -- "fake-simd", -- "opaque-debug", --] -- --[[package]] --name = "shell-escape" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "170a13e64f2a51b77a45702ba77287f5c6829375b04a69cf2222acd17d0cfab9" -- --[[package]] --name = "shlex" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" -- --[[package]] --name = "signal-hook" --version = "0.1.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4" --dependencies = [ -- "arc-swap", -- "libc", --] -- --[[package]] --name = "siphasher" --version = "0.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537" -- --[[package]] --name = "sized-chunks" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1ec31ceca5644fa6d444cc77548b88b67f46db6f7c71683b0f9336e671830d2f" --dependencies = [ -- "bitmaps", -- "typenum", --] -- --[[package]] --name = "slab" --version = "0.4.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -- --[[package]] --name = "smallvec" --version = "0.6.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" -- --[[package]] --name = "smallvec" --version = "1.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" -- --[[package]] --name = "socket2" --version = "0.3.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" --dependencies = [ -- "cfg-if", -- "libc", -- "redox_syscall", -- "winapi 0.3.8", --] -- --[[package]] --name = "stable_deref_trait" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ffbc596e092fe5f598b12ef46cc03754085ac2f4d8c739ad61c4ae266cc3b3fa" -- --[[package]] --name = "stacker" --version = "0.1.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "72dd941b456e1c006d6b9f27c526d5b69281288aeea8cba82c19d3843d8ccdd2" --dependencies = [ -- "cc", -- "cfg-if", -- "libc", -- "psm", -- "winapi 0.3.8", --] -- --[[package]] --name = "std" --version = "0.0.0" --dependencies = [ -- "alloc", -- "backtrace", -- "cfg-if", -- "compiler_builtins", -- "core", -- "dlmalloc", -- "fortanix-sgx-abi", -- "hashbrown", -- "hermit-abi", -- "libc", -- "panic_abort", -- "panic_unwind", -- "profiler_builtins", -- "rand 0.7.3", -- "unwind", -- "wasi", --] -- --[[package]] --name = "string" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" --dependencies = [ -- "bytes", --] -- --[[package]] --name = "string_cache" --version = "0.7.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423" --dependencies = [ -- "lazy_static 1.4.0", -- "new_debug_unreachable", -- "phf_shared", -- "precomputed-hash", -- "serde", -- "string_cache_codegen", -- "string_cache_shared", --] -- --[[package]] --name = "string_cache_codegen" --version = "0.4.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da" --dependencies = [ -- "phf_generator", -- "phf_shared", -- "proc-macro2 0.4.30", -- "quote 0.6.12", -- "string_cache_shared", --] -- --[[package]] --name = "string_cache_shared" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" -- --[[package]] --name = "strip-ansi-escapes" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9d63676e2abafa709460982ddc02a3bb586b6d15a49b75c212e06edd3933acee" --dependencies = [ -- "vte", --] -- --[[package]] --name = "strsim" --version = "0.8.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -- --[[package]] --name = "structopt" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2ac9d6e93dd792b217bf89cda5c14566e3043960c6f9da890c2ba5d09d07804c" --dependencies = [ -- "clap", -- "structopt-derive", --] -- --[[package]] --name = "structopt-derive" --version = "0.3.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2ae9e5165d463a0dea76967d021f8d0f9316057bf5163aa2a4843790e842ff37" --dependencies = [ -- "heck", -- "proc-macro-error", -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "strum" --version = "0.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f6c3a2071519ab6a48f465808c4c1ffdd00dfc8e93111d02b4fc5abab177676e" -- --[[package]] --name = "strum_macros" --version = "0.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8baacebd7b7c9b864d83a6ba7a246232983e277b86fa5cdec77f565715a4b136" --dependencies = [ -- "heck", -- "proc-macro2 0.4.30", -- "quote 0.6.12", -- "syn 0.15.35", --] -- --[[package]] --name = "syn" --version = "0.15.35" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "641e117d55514d6d918490e47102f7e08d096fdde360247e4a10f7a91a8478d3" --dependencies = [ -- "proc-macro2 0.4.30", -- "quote 0.6.12", -- "unicode-xid 0.1.0", --] -- --[[package]] --name = "syn" --version = "1.0.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "unicode-xid 0.2.0", --] -- --[[package]] --name = "synstructure" --version = "0.12.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f085a5855930c0441ca1288cf044ea4aecf4f43a91668abdb870b4ba546a203" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", -- "unicode-xid 0.2.0", --] -- --[[package]] --name = "tar" --version = "0.4.26" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" --dependencies = [ -- "filetime", -- "libc", -- "redox_syscall", -- "xattr", --] -- --[[package]] --name = "tempfile" --version = "3.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" --dependencies = [ -- "cfg-if", -- "libc", -- "rand 0.7.3", -- "redox_syscall", -- "remove_dir_all", -- "winapi 0.3.8", --] -- --[[package]] --name = "tendril" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9de21546595a0873061940d994bbbc5c35f024ae4fd61ec5c5b159115684f508" --dependencies = [ -- "futf", -- "mac", -- "utf-8", --] -- --[[package]] --name = "term" --version = "0.0.0" --dependencies = [ -- "core", -- "std", --] -- --[[package]] --name = "term" --version = "0.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0dd90505d5006a4422d3520b30c781d480b3f36768c2fa2187c3e950bc110464" --dependencies = [ -- "byteorder", -- "dirs", -- "winapi 0.3.8", --] -- --[[package]] --name = "termcolor" --version = "1.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" --dependencies = [ -- "wincolor", --] -- --[[package]] --name = "termion" --version = "1.5.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" --dependencies = [ -- "libc", -- "redox_syscall", -- "redox_termios", --] -- --[[package]] --name = "termize" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1706be6b564323ce7092f5f7e6b118a14c8ef7ed0e69c8c5329c914a9f101295" --dependencies = [ -- "libc", -- "winapi 0.3.8", --] -- --[[package]] --name = "test" --version = "0.0.0" --dependencies = [ -- "core", -- "getopts", -- "libc", -- "panic_abort", -- "panic_unwind", -- "proc_macro", -- "std", -- "term 0.0.0", --] -- --[[package]] --name = "tester" --version = "0.7.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ee72ec31009a42b53de9a6b7d8f462b493ab3b1e4767bda1fcdbb52127f13b6c" --dependencies = [ -- "getopts", -- "libc", -- "term 0.6.0", --] -- --[[package]] --name = "textwrap" --version = "0.11.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" --dependencies = [ -- "unicode-width", --] -- --[[package]] --name = "thiserror" --version = "1.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f9fb62ff737e573b1e677459bea6fd023cd5d6e868c3242d3cdf3ef2f0554824" --dependencies = [ -- "thiserror-impl", --] -- --[[package]] --name = "thiserror-impl" --version = "1.0.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24069c0ba08aab54289d6a25f5036d94afc61e1538bbc42ae5501df141c9027d" --dependencies = [ -- "proc-macro2 1.0.3", -- "quote 1.0.2", -- "syn 1.0.11", --] -- --[[package]] --name = "thread_local" --version = "0.3.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" --dependencies = [ -- "lazy_static 1.4.0", --] -- --[[package]] --name = "thread_local" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" --dependencies = [ -- "lazy_static 1.4.0", --] -- --[[package]] --name = "tidy" --version = "0.1.0" --dependencies = [ -- "cargo_metadata 0.9.1", -- "lazy_static 1.4.0", -- "regex", -- "walkdir", --] -- --[[package]] --name = "time" --version = "0.1.42" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" --dependencies = [ -- "libc", -- "redox_syscall", -- "winapi 0.3.8", --] -- --[[package]] --name = "tokio" --version = "0.1.22" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" --dependencies = [ -- "bytes", -- "futures", -- "mio", -- "num_cpus", -- "tokio-codec", -- "tokio-current-thread", -- "tokio-executor", -- "tokio-fs", -- "tokio-io", -- "tokio-reactor", -- "tokio-sync", -- "tokio-tcp", -- "tokio-threadpool", -- "tokio-timer", -- "tokio-udp", -- "tokio-uds", --] -- --[[package]] --name = "tokio-buf" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" --dependencies = [ -- "bytes", -- "either", -- "futures", --] -- --[[package]] --name = "tokio-codec" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" --dependencies = [ -- "bytes", -- "futures", -- "tokio-io", --] -- --[[package]] --name = "tokio-current-thread" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" --dependencies = [ -- "futures", -- "tokio-executor", --] -- --[[package]] --name = "tokio-executor" --version = "0.1.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca6df436c42b0c3330a82d855d2ef017cd793090ad550a6bc2184f4b933532ab" --dependencies = [ -- "crossbeam-utils 0.6.5", -- "futures", --] -- --[[package]] --name = "tokio-fs" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af" --dependencies = [ -- "futures", -- "tokio-io", -- "tokio-threadpool", --] -- --[[package]] --name = "tokio-io" --version = "0.1.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" --dependencies = [ -- "bytes", -- "futures", -- "log", --] -- --[[package]] --name = "tokio-named-pipes" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae" --dependencies = [ -- "bytes", -- "futures", -- "mio", -- "mio-named-pipes", -- "tokio", --] -- --[[package]] --name = "tokio-process" --version = "0.2.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "afbd6ef1b8cc2bd2c2b580d882774d443ebb1c6ceefe35ba9ea4ab586c89dbe8" --dependencies = [ -- "crossbeam-queue", -- "futures", -- "lazy_static 1.4.0", -- "libc", -- "log", -- "mio", -- "mio-named-pipes", -- "tokio-io", -- "tokio-reactor", -- "tokio-signal", -- "winapi 0.3.8", --] -- --[[package]] --name = "tokio-reactor" --version = "0.1.11" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6732fe6b53c8d11178dcb77ac6d9682af27fc6d4cb87789449152e5377377146" --dependencies = [ -- "crossbeam-utils 0.6.5", -- "futures", -- "lazy_static 1.4.0", -- "log", -- "mio", -- "num_cpus", -- "parking_lot 0.9.0", -- "slab", -- "tokio-executor", -- "tokio-io", -- "tokio-sync", --] -- --[[package]] --name = "tokio-service" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" --dependencies = [ -- "futures", --] -- --[[package]] --name = "tokio-signal" --version = "0.2.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dd6dc5276ea05ce379a16de90083ec80836440d5ef8a6a39545a3207373b8296" --dependencies = [ -- "futures", -- "libc", -- "mio", -- "mio-uds", -- "signal-hook", -- "tokio-executor", -- "tokio-io", -- "tokio-reactor", -- "winapi 0.3.8", --] -- --[[package]] --name = "tokio-sync" --version = "0.1.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76" --dependencies = [ -- "fnv", -- "futures", --] -- --[[package]] --name = "tokio-tcp" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" --dependencies = [ -- "bytes", -- "futures", -- "iovec", -- "mio", -- "tokio-io", -- "tokio-reactor", --] -- --[[package]] --name = "tokio-threadpool" --version = "0.1.17" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f0c32ffea4827978e9aa392d2f743d973c1dfa3730a2ed3f22ce1e6984da848c" --dependencies = [ -- "crossbeam-deque", -- "crossbeam-queue", -- "crossbeam-utils 0.6.5", -- "futures", -- "lazy_static 1.4.0", -- "log", -- "num_cpus", -- "slab", -- "tokio-executor", --] -- --[[package]] --name = "tokio-timer" --version = "0.2.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1739638e364e558128461fc1ad84d997702c8e31c2e6b18fb99842268199e827" --dependencies = [ -- "crossbeam-utils 0.6.5", -- "futures", -- "slab", -- "tokio-executor", --] -- --[[package]] --name = "tokio-udp" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f02298505547f73e60f568359ef0d016d5acd6e830ab9bc7c4a5b3403440121b" --dependencies = [ -- "bytes", -- "futures", -- "log", -- "mio", -- "tokio-codec", -- "tokio-io", -- "tokio-reactor", --] -- --[[package]] --name = "tokio-uds" --version = "0.2.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" --dependencies = [ -- "bytes", -- "futures", -- "iovec", -- "libc", -- "log", -- "mio", -- "mio-uds", -- "tokio-codec", -- "tokio-io", -- "tokio-reactor", --] -- --[[package]] --name = "toml" --version = "0.5.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c7aabe75941d914b72bf3e5d3932ed92ce0664d49d8432305a8b547c37227724" --dependencies = [ -- "serde", --] -- --[[package]] --name = "toml-query" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a24369a1894ac8224efcfd567c3d141aea360292f49888e7ec7dcc316527aebb" --dependencies = [ -- "failure", -- "failure_derive", -- "is-match", -- "lazy_static 1.4.0", -- "regex", -- "toml", -- "toml-query_derive", --] -- --[[package]] --name = "toml-query_derive" --version = "0.9.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c99ca245ec273c7e75c8ee58f47b882d0146f3c2c8495158082c6671e8b5335" --dependencies = [ -- "darling", -- "quote 0.6.12", -- "syn 0.15.35", --] -- --[[package]] --name = "try-lock" --version = "0.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" -- --[[package]] --name = "try_from" --version = "0.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" --dependencies = [ -- "cfg-if", --] -- --[[package]] --name = "typenum" --version = "1.12.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" -- --[[package]] --name = "ucd-parse" --version = "0.1.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca6b52bf4da6512f0f07785a04769222e50d29639e7ecd016b7806fd2de306b4" --dependencies = [ -- "lazy_static 1.4.0", -- "regex", --] -- --[[package]] --name = "ucd-trie" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "71a9c5b1fe77426cf144cc30e49e955270f5086e31a6441dfa8b32efc09b9d77" -- --[[package]] --name = "ucd-util" --version = "0.1.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" -- --[[package]] --name = "unicase" --version = "2.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" --dependencies = [ -- "version_check", --] -- --[[package]] --name = "unicode-bdd" --version = "0.1.0" --dependencies = [ -- "ucd-parse", --] -- --[[package]] --name = "unicode-bidi" --version = "0.3.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" --dependencies = [ -- "matches", --] -- --[[package]] --name = "unicode-normalization" --version = "0.1.12" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" --dependencies = [ -- "smallvec 1.4.0", --] -- --[[package]] --name = "unicode-script" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5b2c5c29e805da6817f5af6a627d65adb045cebf05cccd5a3493d6109454391c" -- --[[package]] --name = "unicode-security" --version = "0.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a5f9011bbed9c13372bc8df618b55a38138445199caf3b61d432c6859c36dee0" --dependencies = [ -- "unicode-normalization", -- "unicode-script", --] -- --[[package]] --name = "unicode-segmentation" --version = "1.6.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" -- --[[package]] --name = "unicode-width" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20" --dependencies = [ -- "compiler_builtins", -- "rustc-std-workspace-core", -- "rustc-std-workspace-std", --] -- --[[package]] --name = "unicode-xid" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -- --[[package]] --name = "unicode-xid" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" -- --[[package]] --name = "unicode_categories" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -- --[[package]] --name = "unstable-book-gen" --version = "0.1.0" --dependencies = [ -- "num-traits", -- "tidy", --] -- --[[package]] --name = "unwind" --version = "0.0.0" --dependencies = [ -- "cc", -- "cfg-if", -- "compiler_builtins", -- "core", -- "libc", --] -- --[[package]] --name = "url" --version = "1.7.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" --dependencies = [ -- "idna 0.1.5", -- "matches", -- "percent-encoding 1.0.1", --] -- --[[package]] --name = "url" --version = "2.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61" --dependencies = [ -- "idna 0.2.0", -- "matches", -- "percent-encoding 2.1.0", -- "serde", --] -- --[[package]] --name = "utf-8" --version = "0.7.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f1262dfab4c30d5cb7c07026be00ee343a6cf5027fdc0104a9160f354e5db75c" -- --[[package]] --name = "utf8-ranges" --version = "1.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" -- --[[package]] --name = "utf8parse" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d" -- --[[package]] --name = "uuid" --version = "0.7.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" --dependencies = [ -- "rand 0.6.1", --] -- --[[package]] --name = "vcpkg" --version = "0.2.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" -- --[[package]] --name = "vec_map" --version = "0.8.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -- --[[package]] --name = "vergen" --version = "3.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6aba5e34f93dc7051dfad05b98a18e9156f27e7b431fe1d2398cb6061c0a1dba" --dependencies = [ -- "bitflags", -- "chrono", -- "failure", --] -- --[[package]] --name = "version_check" --version = "0.9.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" -- --[[package]] --name = "vte" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf" --dependencies = [ -- "utf8parse", --] -- --[[package]] --name = "walkdir" --version = "2.2.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" --dependencies = [ -- "same-file", -- "winapi 0.3.8", -- "winapi-util", --] -- --[[package]] --name = "want" --version = "0.2.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" --dependencies = [ -- "futures", -- "log", -- "try-lock", --] -- --[[package]] --name = "wasi" --version = "0.9.0+wasi-snapshot-preview1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" --dependencies = [ -- "compiler_builtins", -- "rustc-std-workspace-alloc", -- "rustc-std-workspace-core", --] -- --[[package]] --name = "winapi" --version = "0.2.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" -- --[[package]] --name = "winapi" --version = "0.3.8" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" --dependencies = [ -- "winapi-i686-pc-windows-gnu", -- "winapi-x86_64-pc-windows-gnu", --] -- --[[package]] --name = "winapi-build" --version = "0.1.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" -- --[[package]] --name = "winapi-i686-pc-windows-gnu" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -- --[[package]] --name = "winapi-util" --version = "0.1.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" --dependencies = [ -- "winapi 0.3.8", --] -- --[[package]] --name = "winapi-x86_64-pc-windows-gnu" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -- --[[package]] --name = "wincolor" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" --dependencies = [ -- "winapi 0.3.8", -- "winapi-util", --] -- --[[package]] --name = "winreg" --version = "0.6.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" --dependencies = [ -- "winapi 0.3.8", --] -- --[[package]] --name = "ws2_32-sys" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" --dependencies = [ -- "winapi 0.2.8", -- "winapi-build", --] -- --[[package]] --name = "xattr" --version = "0.2.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" --dependencies = [ -- "libc", --] -- --[[package]] --name = "xz2" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "df8bf41d3030c3577c9458fd6640a05afbf43b150d0b531b16bd77d3f794f27a" --dependencies = [ -- "lzma-sys", --] -- --[[package]] --name = "yaml-merge-keys" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "59893318ba3ad2b704498c7761214a10eaf42c5f838bce9fc0145bf2ba658cfa" --dependencies = [ -- "lazy_static 1.4.0", -- "thiserror", -- "yaml-rust 0.4.3", --] -- --[[package]] --name = "yaml-rust" --version = "0.3.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" -- --[[package]] --name = "yaml-rust" --version = "0.4.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" --dependencies = [ -- "linked-hash-map", --] -+[[patch.unused]] -+name = "rustc-std-workspace-std" -+version = "1.99.0" -diff --git a/Cargo.toml b/Cargo.toml -new file mode 100644 -index 0000000..6e10501 ---- /dev/null -+++ b/Cargo.toml -@@ -0,0 +1,22 @@ -+[workspace] -+members = [ -+ "src/build_helper", -+ "src/liballoc", -+ "src/libcore", -+ "src/libpanic_abort", -+ "src/libpanic_unwind", -+ "src/libproc_macro", -+ "src/libprofiler_builtins", -+ "src/libstd", -+ "src/libterm", -+ "src/libunwind", -+] -+ -+[patch.crates-io.rustc-std-workspace-alloc] -+path = "./src/tools/rustc-std-workspace-alloc" -+ -+[patch.crates-io.rustc-std-workspace-core] -+path = "./src/tools/rustc-std-workspace-core" -+ -+[patch.crates-io.rustc-std-workspace-std] -+path = "./src/tools/rustc-std-workspace-std" --- -2.26.2 - diff --git a/rust-patches/0001-make-Condvar-Mutex-RwLock-const-constructors-work-wi.patch b/rust-patches/0001-make-Condvar-Mutex-RwLock-const-constructors-work-wi.patch new file mode 100644 index 000000000..b3b4ce03b --- /dev/null +++ b/rust-patches/0001-make-Condvar-Mutex-RwLock-const-constructors-work-wi.patch @@ -0,0 +1,103 @@ +From 1a8f9b83633874b65b3a0299d092b498a0bddec3 Mon Sep 17 00:00:00 2001 +From: Jorge Aparicio +Date: Mon, 27 Jun 2022 12:37:06 +0200 +Subject: [PATCH 1/7] make Condvar, Mutex, RwLock const constructors work with + unsupported impl + +--- + library/std/src/sys/unsupported/locks/condvar.rs | 1 + + library/std/src/sys/unsupported/locks/mutex.rs | 1 + + library/std/src/sys/unsupported/locks/rwlock.rs | 1 + + library/std/src/sys_common/condvar.rs | 1 + + library/std/src/sys_common/condvar/check.rs | 1 + + library/std/src/sys_common/mutex.rs | 1 + + library/std/src/sys_common/rwlock.rs | 1 + + 7 files changed, 7 insertions(+) + +diff --git a/library/std/src/sys/unsupported/locks/condvar.rs b/library/std/src/sys/unsupported/locks/condvar.rs +index e703fd0..527a26a 100644 +--- a/library/std/src/sys/unsupported/locks/condvar.rs ++++ b/library/std/src/sys/unsupported/locks/condvar.rs +@@ -7,6 +7,7 @@ pub type MovableCondvar = Condvar; + + impl Condvar { + #[inline] ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> Condvar { + Condvar {} + } +diff --git a/library/std/src/sys/unsupported/locks/mutex.rs b/library/std/src/sys/unsupported/locks/mutex.rs +index d7cb12e..81b49c6 100644 +--- a/library/std/src/sys/unsupported/locks/mutex.rs ++++ b/library/std/src/sys/unsupported/locks/mutex.rs +@@ -12,6 +12,7 @@ unsafe impl Sync for Mutex {} // no threads on this platform + + impl Mutex { + #[inline] ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> Mutex { + Mutex { locked: Cell::new(false) } + } +diff --git a/library/std/src/sys/unsupported/locks/rwlock.rs b/library/std/src/sys/unsupported/locks/rwlock.rs +index aca5fb7..5292691 100644 +--- a/library/std/src/sys/unsupported/locks/rwlock.rs ++++ b/library/std/src/sys/unsupported/locks/rwlock.rs +@@ -12,6 +12,7 @@ unsafe impl Sync for RwLock {} // no threads on this platform + + impl RwLock { + #[inline] ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> RwLock { + RwLock { mode: Cell::new(0) } + } +diff --git a/library/std/src/sys_common/condvar.rs b/library/std/src/sys_common/condvar.rs +index f3ac106..8bc5b24 100644 +--- a/library/std/src/sys_common/condvar.rs ++++ b/library/std/src/sys_common/condvar.rs +@@ -15,6 +15,7 @@ pub struct Condvar { + impl Condvar { + /// Creates a new condition variable for use. + #[inline] ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> Self { + Self { inner: imp::MovableCondvar::new(), check: CondvarCheck::new() } + } +diff --git a/library/std/src/sys_common/condvar/check.rs b/library/std/src/sys_common/condvar/check.rs +index ce8f367..4ac9e62 100644 +--- a/library/std/src/sys_common/condvar/check.rs ++++ b/library/std/src/sys_common/condvar/check.rs +@@ -50,6 +50,7 @@ pub struct NoCheck; + + #[allow(dead_code)] + impl NoCheck { ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> Self { + Self + } +diff --git a/library/std/src/sys_common/mutex.rs b/library/std/src/sys_common/mutex.rs +index 48479f5..7b9f7ef 100644 +--- a/library/std/src/sys_common/mutex.rs ++++ b/library/std/src/sys_common/mutex.rs +@@ -61,6 +61,7 @@ unsafe impl Sync for MovableMutex {} + impl MovableMutex { + /// Creates a new mutex. + #[inline] ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> Self { + Self(imp::MovableMutex::new()) + } +diff --git a/library/std/src/sys_common/rwlock.rs b/library/std/src/sys_common/rwlock.rs +index ba56f3a..34e9a91 100644 +--- a/library/std/src/sys_common/rwlock.rs ++++ b/library/std/src/sys_common/rwlock.rs +@@ -75,6 +75,7 @@ pub struct MovableRwLock(imp::MovableRwLock); + impl MovableRwLock { + /// Creates a new reader-writer lock for use. + #[inline] ++ #[rustc_const_stable(feature = "const_locks", since = "1.63.0")] + pub const fn new() -> Self { + Self(imp::MovableRwLock::new()) + } +-- +2.32.1 (Apple Git-133) + diff --git a/rust-patches/0002-Assume-core-compiler_builtins-alloc-are-in-sysroot-w.patch b/rust-patches/0002-Assume-core-compiler_builtins-alloc-are-in-sysroot-w.patch new file mode 100644 index 000000000..1592ec4ff --- /dev/null +++ b/rust-patches/0002-Assume-core-compiler_builtins-alloc-are-in-sysroot-w.patch @@ -0,0 +1,187 @@ +From 351756cacdc58789b1188f4455caea060a1caf78 Mon Sep 17 00:00:00 2001 +From: roblabla +Date: Mon, 22 Aug 2022 18:20:35 +0200 +Subject: [PATCH 2/7] Assume core/compiler_builtins/alloc are in sysroot when + building std + +--- + library/panic_abort/Cargo.toml | 8 +++---- + library/panic_unwind/Cargo.toml | 6 ++--- + library/profiler_builtins/Cargo.toml | 4 ++-- + library/std/Cargo.toml | 24 ++++++++++---------- + library/stdarch/crates/std_detect/Cargo.toml | 12 +++++----- + library/test/Cargo.toml | 4 ++-- + library/unwind/Cargo.toml | 4 ++-- + 7 files changed, 31 insertions(+), 31 deletions(-) + +diff --git a/library/panic_abort/Cargo.toml b/library/panic_abort/Cargo.toml +index 46183d1..f6ae237 100644 +--- a/library/panic_abort/Cargo.toml ++++ b/library/panic_abort/Cargo.toml +@@ -12,8 +12,8 @@ bench = false + doc = false + + [dependencies] +-alloc = { path = "../alloc" } +-cfg-if = { version = "0.1.8", features = ['rustc-dep-of-std'] } +-core = { path = "../core" } ++#alloc = { path = "../alloc" } ++cfg-if = "0.1.8" ++#core = { path = "../core" } + libc = { version = "0.2", default-features = false } +-compiler_builtins = "0.1.0" ++#compiler_builtins = "0.1.0" +diff --git a/library/panic_unwind/Cargo.toml b/library/panic_unwind/Cargo.toml +index d720cc7..f81f302 100644 +--- a/library/panic_unwind/Cargo.toml ++++ b/library/panic_unwind/Cargo.toml +@@ -12,9 +12,9 @@ bench = false + doc = false + + [dependencies] +-alloc = { path = "../alloc" } +-core = { path = "../core" } ++#alloc = { path = "../alloc" } ++#core = { path = "../core" } + libc = { version = "0.2", default-features = false } + unwind = { path = "../unwind" } +-compiler_builtins = "0.1.0" ++#compiler_builtins = "0.1.0" + cfg-if = "0.1.8" +diff --git a/library/profiler_builtins/Cargo.toml b/library/profiler_builtins/Cargo.toml +index 3371dfa..9a4d579 100644 +--- a/library/profiler_builtins/Cargo.toml ++++ b/library/profiler_builtins/Cargo.toml +@@ -9,8 +9,8 @@ bench = false + doc = false + + [dependencies] +-core = { path = "../core" } +-compiler_builtins = { version = "0.1.0", features = ['rustc-dep-of-std'] } ++#core = { path = "../core" } ++#compiler_builtins = { version = "0.1.0", features = ['rustc-dep-of-std'] } + + [build-dependencies] + cc = "1.0.69" +diff --git a/library/std/Cargo.toml b/library/std/Cargo.toml +index 229e546..f144570 100644 +--- a/library/std/Cargo.toml ++++ b/library/std/Cargo.toml +@@ -10,21 +10,21 @@ edition = "2021" + crate-type = ["dylib", "rlib"] + + [dependencies] +-alloc = { path = "../alloc" } +-cfg-if = { version = "0.1.8", features = ['rustc-dep-of-std'] } ++#alloc = { path = "../alloc" } ++cfg-if = "0.1.8" + panic_unwind = { path = "../panic_unwind", optional = true } + panic_abort = { path = "../panic_abort" } +-core = { path = "../core" } +-libc = { version = "0.2.126", default-features = false, features = ['rustc-dep-of-std'] } +-compiler_builtins = { version = "0.1.73" } ++#core = { path = "../core" } ++libc = { version = "0.2.126", default-features = false, features = ['align'] } ++#compiler_builtins = { version = "0.1.73" } + profiler_builtins = { path = "../profiler_builtins", optional = true } + unwind = { path = "../unwind" } +-hashbrown = { version = "0.12", default-features = false, features = ['rustc-dep-of-std'] } ++hashbrown = { version = "0.12", default-features = false, features = ['rustc-internal-api'] } + std_detect = { path = "../stdarch/crates/std_detect", default-features = false, features = ['rustc-dep-of-std'] } + + # Dependencies of the `backtrace` crate + addr2line = { version = "0.16.0", optional = true, default-features = false } +-rustc-demangle = { version = "0.1.21", features = ['rustc-dep-of-std'] } ++rustc-demangle = { version = "0.1.21", features = [] } + miniz_oxide = { version = "0.4.0", optional = true, default-features = false } + [dependencies.object] + version = "0.26.1" +@@ -58,15 +58,15 @@ gimli-symbolize = [] + + panic-unwind = ["panic_unwind"] + profiler = ["profiler_builtins"] +-compiler-builtins-c = ["alloc/compiler-builtins-c"] +-compiler-builtins-mem = ["alloc/compiler-builtins-mem"] +-compiler-builtins-no-asm = ["alloc/compiler-builtins-no-asm"] +-compiler-builtins-mangled-names = ["alloc/compiler-builtins-mangled-names"] ++#compiler-builtins-c = ["alloc/compiler-builtins-c"] ++#compiler-builtins-mem = ["alloc/compiler-builtins-mem"] ++#compiler-builtins-no-asm = ["alloc/compiler-builtins-no-asm"] ++#compiler-builtins-mangled-names = ["alloc/compiler-builtins-mangled-names"] + llvm-libunwind = ["unwind/llvm-libunwind"] + system-llvm-libunwind = ["unwind/system-llvm-libunwind"] + + # Make panics and failed asserts immediately abort without formatting any message +-panic_immediate_abort = ["core/panic_immediate_abort"] ++#panic_immediate_abort = ["core/panic_immediate_abort"] + + # Enable std_detect default features for stdarch/crates/std_detect: + # https://github.com/rust-lang/stdarch/blob/master/crates/std_detect/Cargo.toml +diff --git a/library/stdarch/crates/std_detect/Cargo.toml b/library/stdarch/crates/std_detect/Cargo.toml +index 1ca0d9c..5659472 100644 +--- a/library/stdarch/crates/std_detect/Cargo.toml ++++ b/library/stdarch/crates/std_detect/Cargo.toml +@@ -25,9 +25,9 @@ libc = { version = "0.2", optional = true, default-features = false } + cfg-if = "0.1.10" + + # When built as part of libstd +-core = { version = "1.0.0", optional = true, package = "rustc-std-workspace-core" } +-compiler_builtins = { version = "0.1.2", optional = true } +-alloc = { version = "1.0.0", optional = true, package = "rustc-std-workspace-alloc" } ++#core = { version = "1.0.0", optional = true, package = "rustc-std-workspace-core" } ++#compiler_builtins = { version = "0.1.2", optional = true } ++#alloc = { version = "1.0.0", optional = true, package = "rustc-std-workspace-alloc" } + + [dev-dependencies] + auxv = "0.3.3" +@@ -39,7 +39,7 @@ std_detect_file_io = [ "libc" ] + std_detect_dlsym_getauxval = [ "libc" ] + std_detect_env_override = [ "libc" ] + rustc-dep-of-std = [ +- "core", +- "compiler_builtins", +- "alloc", ++# "core", ++# "compiler_builtins", ++# "alloc", + ] +diff --git a/library/test/Cargo.toml b/library/test/Cargo.toml +index 2da4148..58d141f 100644 +--- a/library/test/Cargo.toml ++++ b/library/test/Cargo.toml +@@ -22,14 +22,14 @@ proc_macro = { path = "../proc_macro" } + [features] + default = ["std_detect_file_io", "std_detect_dlsym_getauxval", "panic-unwind"] + backtrace = ["std/backtrace"] +-compiler-builtins-c = ["std/compiler-builtins-c"] ++#compiler-builtins-c = ["std/compiler-builtins-c"] + compiler-builtins-mem = ["std/compiler-builtins-mem"] + compiler-builtins-no-asm = ["std/compiler-builtins-no-asm"] + compiler-builtins-mangled-names = ["std/compiler-builtins-mangled-names"] + llvm-libunwind = ["std/llvm-libunwind"] + system-llvm-libunwind = ["std/system-llvm-libunwind"] + panic-unwind = ["std/panic_unwind"] +-panic_immediate_abort = ["std/panic_immediate_abort"] ++#panic_immediate_abort = ["std/panic_immediate_abort"] + profiler = ["std/profiler"] + std_detect_file_io = ["std/std_detect_file_io"] + std_detect_dlsym_getauxval = ["std/std_detect_dlsym_getauxval"] +diff --git a/library/unwind/Cargo.toml b/library/unwind/Cargo.toml +index 69fce8d..bcb9bd1 100644 +--- a/library/unwind/Cargo.toml ++++ b/library/unwind/Cargo.toml +@@ -14,9 +14,9 @@ bench = false + doc = false + + [dependencies] +-core = { path = "../core" } ++#core = { path = "../core" } + libc = { version = "0.2.79", features = ['rustc-dep-of-std'], default-features = false } +-compiler_builtins = "0.1.0" ++#compiler_builtins = "0.1.0" + cfg-if = "0.1.8" + + [build-dependencies] +-- +2.32.1 (Apple Git-133) + diff --git a/rust-patches/0003-Build-compiler-builtins-with-soft-float-feature.patch b/rust-patches/0003-Build-compiler-builtins-with-soft-float-feature.patch new file mode 100644 index 000000000..e94e708c5 --- /dev/null +++ b/rust-patches/0003-Build-compiler-builtins-with-soft-float-feature.patch @@ -0,0 +1,25 @@ +From fdc656f840ed08a1420f777bf51787fbc70ef4a2 Mon Sep 17 00:00:00 2001 +From: roblabla +Date: Mon, 22 Aug 2022 18:21:05 +0200 +Subject: [PATCH 3/7] Build compiler-builtins with soft-float feature + +--- + library/alloc/Cargo.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/library/alloc/Cargo.toml b/library/alloc/Cargo.toml +index 2650202..3fb2b90 100644 +--- a/library/alloc/Cargo.toml ++++ b/library/alloc/Cargo.toml +@@ -10,7 +10,7 @@ edition = "2021" + + [dependencies] + core = { path = "../core" } +-compiler_builtins = { version = "0.1.40", features = ['rustc-dep-of-std'] } ++compiler_builtins = { version = "0.1.40", features = ['rustc-dep-of-std', 'soft-float'] } + + [dev-dependencies] + rand = "0.7" +-- +2.32.1 (Apple Git-133) + diff --git a/rust-patches/0004-Fix-compilation-of-std-crate-with-alloc-from-sysroot.patch b/rust-patches/0004-Fix-compilation-of-std-crate-with-alloc-from-sysroot.patch new file mode 100644 index 000000000..9c00d714f --- /dev/null +++ b/rust-patches/0004-Fix-compilation-of-std-crate-with-alloc-from-sysroot.patch @@ -0,0 +1,113 @@ +From 55be86b3bde99141df9720f67cd2e30c251a00e3 Mon Sep 17 00:00:00 2001 +From: roblabla +Date: Mon, 22 Aug 2022 18:21:33 +0200 +Subject: [PATCH 4/7] Fix compilation of std crate with alloc from sysroot + +--- + library/std/src/error.rs | 12 ++++++------ + library/std/src/ffi/mod.rs | 2 +- + library/std/src/ffi/os_str.rs | 2 +- + library/std/src/io/error/repr_unpacked.rs | 2 +- + library/std/src/lib.rs | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/library/std/src/error.rs b/library/std/src/error.rs +index df7a49d..b64ff34 100644 +--- a/library/std/src/error.rs ++++ b/library/std/src/error.rs +@@ -810,13 +810,13 @@ impl Error for char::ParseCharError { + } + + #[stable(feature = "try_reserve", since = "1.57.0")] +-impl Error for alloc::collections::TryReserveError {} ++impl Error for alloc_crate::collections::TryReserveError {} + + #[unstable(feature = "duration_checked_float", issue = "83400")] + impl Error for time::FromFloatSecsError {} + + #[stable(feature = "rust1", since = "1.0.0")] +-impl Error for alloc::ffi::NulError { ++impl Error for alloc_crate::ffi::NulError { + #[allow(deprecated)] + fn description(&self) -> &str { + "nul byte found in data" +@@ -824,9 +824,9 @@ impl Error for alloc::ffi::NulError { + } + + #[stable(feature = "rust1", since = "1.0.0")] +-impl From for io::Error { ++impl From for io::Error { + /// Converts a [`alloc::ffi::NulError`] into a [`io::Error`]. +- fn from(_: alloc::ffi::NulError) -> io::Error { ++ fn from(_: alloc_crate::ffi::NulError) -> io::Error { + io::const_io_error!(io::ErrorKind::InvalidInput, "data provided contains a nul byte") + } + } +@@ -843,10 +843,10 @@ impl Error for core::ffi::FromBytesWithNulError { + impl Error for core::ffi::FromBytesUntilNulError {} + + #[stable(feature = "cstring_from_vec_with_nul", since = "1.58.0")] +-impl Error for alloc::ffi::FromVecWithNulError {} ++impl Error for alloc_crate::ffi::FromVecWithNulError {} + + #[stable(feature = "cstring_into", since = "1.7.0")] +-impl Error for alloc::ffi::IntoStringError { ++impl Error for alloc_crate::ffi::IntoStringError { + #[allow(deprecated)] + fn description(&self) -> &str { + "C string contained non-utf8 bytes" +diff --git a/library/std/src/ffi/mod.rs b/library/std/src/ffi/mod.rs +index d987bf6..6b661db 100644 +--- a/library/std/src/ffi/mod.rs ++++ b/library/std/src/ffi/mod.rs +@@ -147,7 +147,7 @@ + #![stable(feature = "rust1", since = "1.0.0")] + + #[stable(feature = "alloc_c_string", since = "1.64.0")] +-pub use alloc::ffi::{CString, FromVecWithNulError, IntoStringError, NulError}; ++pub use alloc_crate::ffi::{CString, FromVecWithNulError, IntoStringError, NulError}; + #[stable(feature = "core_c_str", since = "1.64.0")] + pub use core::ffi::{CStr, FromBytesWithNulError}; + +diff --git a/library/std/src/ffi/os_str.rs b/library/std/src/ffi/os_str.rs +index a0a5c00..0d1ec29 100644 +--- a/library/std/src/ffi/os_str.rs ++++ b/library/std/src/ffi/os_str.rs +@@ -1261,7 +1261,7 @@ impl OsStr { + } + + #[unstable(feature = "slice_concat_ext", issue = "27747")] +-impl> alloc::slice::Join<&OsStr> for [S] { ++impl> alloc_crate::slice::Join<&OsStr> for [S] { + type Output = OsString; + + fn join(slice: &Self, sep: &OsStr) -> OsString { +diff --git a/library/std/src/io/error/repr_unpacked.rs b/library/std/src/io/error/repr_unpacked.rs +index d6ad55b..d6dad3b 100644 +--- a/library/std/src/io/error/repr_unpacked.rs ++++ b/library/std/src/io/error/repr_unpacked.rs +@@ -3,7 +3,7 @@ + //! would have no benefit. + + use super::{Custom, ErrorData, ErrorKind, SimpleMessage}; +-use alloc::boxed::Box; ++use alloc_crate::boxed::Box; + + type Inner = ErrorData>; + +diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs +index a8d6645..18cb1d4 100644 +--- a/library/std/src/lib.rs ++++ b/library/std/src/lib.rs +@@ -541,7 +541,7 @@ pub mod task { + + #[doc(inline)] + #[stable(feature = "wake_trait", since = "1.51.0")] +- pub use alloc::task::*; ++ pub use alloc_crate::task::*; + } + + #[doc = include_str!("../../stdarch/crates/core_arch/src/core_arch_docs.md")] +-- +2.32.1 (Apple Git-133) + diff --git a/rust-patches/0005-Add-workspace-to-allow-xargo-to-work.patch b/rust-patches/0005-Add-workspace-to-allow-xargo-to-work.patch new file mode 100644 index 000000000..a88907a85 --- /dev/null +++ b/rust-patches/0005-Add-workspace-to-allow-xargo-to-work.patch @@ -0,0 +1,43 @@ +From ec2fd9d71e1f6f6a4a932dd823267ad0cfcf07dd Mon Sep 17 00:00:00 2001 +From: roblabla +Date: Mon, 22 Aug 2022 18:22:23 +0200 +Subject: [PATCH 5/7] Add workspace to allow xargo to work + +--- + Cargo.toml | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + create mode 100644 Cargo.toml + +diff --git a/Cargo.toml b/Cargo.toml +new file mode 100644 +index 0000000..8637ebc +--- /dev/null ++++ b/Cargo.toml +@@ -0,0 +1,24 @@ ++[workspace] ++members = [ ++ "library/alloc", ++ "library/backtrace", ++ "library/core", ++ "library/panic_abort", ++ "library/panic_unwind", ++ "library/portable-simd", ++ "library/proc_macro", ++ "library/profiler_builtins", ++ "library/std", ++ "library/stdarch", ++ "library/test", ++ "library/unwind", ++] ++ ++[patch.crates-io.rustc-std-workspace-alloc] ++path = "./library/rustc-std-workspace-alloc" ++ ++[patch.crates-io.rustc-std-workspace-core] ++path = "./library/rustc-std-workspace-core" ++ ++[patch.crates-io.rustc-std-workspace-std] ++path = "./library/rustc-std-workspace-std" +-- +2.32.1 (Apple Git-133) + diff --git a/rust-patches/0006-Redox-style-path-API.patch b/rust-patches/0006-Redox-style-path-API.patch new file mode 100644 index 000000000..c13d8c176 --- /dev/null +++ b/rust-patches/0006-Redox-style-path-API.patch @@ -0,0 +1,287 @@ +From a13b1f804edaf47da33ca4d401e02cc28ec64288 Mon Sep 17 00:00:00 2001 +From: roblabla +Date: Mon, 22 Aug 2022 18:52:45 +0200 +Subject: [PATCH 6/7] Redox-style path API + +--- + library/std/src/path.rs | 59 +++++++++++++---------------- + library/std/src/sys/sgx/path.rs | 4 +- + library/std/src/sys/solid/path.rs | 4 +- + library/std/src/sys/unix/path.rs | 4 +- + library/std/src/sys/windows/path.rs | 10 ++++- + 5 files changed, 40 insertions(+), 41 deletions(-) + +diff --git a/library/std/src/path.rs b/library/std/src/path.rs +index 5dfeb51..e47f363 100644 +--- a/library/std/src/path.rs ++++ b/library/std/src/path.rs +@@ -190,7 +190,7 @@ pub enum Prefix<'a> { + + impl<'a> Prefix<'a> { + #[inline] +- fn len(&self) -> usize { ++ pub(crate) fn len(&self) -> usize { + use self::Prefix::*; + fn os_str_len(s: &OsStr) -> usize { + s.bytes().len() +@@ -313,18 +313,17 @@ unsafe fn u8_slice_as_os_str(s: &[u8]) -> &OsStr { + unsafe { &*(s as *const [u8] as *const OsStr) } + } + +-// Detect scheme on Redox +-fn has_redox_scheme(s: &[u8]) -> bool { +- cfg!(target_os = "redox") && s.contains(&b':') +-} +- + //////////////////////////////////////////////////////////////////////////////// + // Cross-platform, iterator-independent parsing + //////////////////////////////////////////////////////////////////////////////// + + /// Says whether the first byte after the prefix is a separator. + fn has_physical_root(s: &[u8], prefix: Option>) -> bool { +- let path = if let Some(p) = prefix { &s[p.len()..] } else { s }; ++ let path = if let Some(p) = prefix { ++ &s[p.len()..] ++ } else { ++ s ++ }; + !path.is_empty() && is_sep_byte(path[0]) + } + +@@ -447,6 +446,13 @@ impl<'a> PrefixComponent<'a> { + pub fn as_os_str(&self) -> &'a OsStr { + self.raw + } ++ ++ pub(crate) fn from_os_str_kind<'raw>(raw: &'raw OsStr, prefix: Prefix<'raw>) -> PrefixComponent<'raw> { ++ PrefixComponent { ++ raw, ++ parsed: prefix ++ } ++ } + } + + #[stable(feature = "rust1", since = "1.0.0")] +@@ -603,7 +609,7 @@ pub struct Components<'a> { + path: &'a [u8], + + // The prefix as it was originally parsed, if any +- prefix: Option>, ++ prefix: Option>, + + // true if path *physically* has a root separator; for most Windows + // prefixes, it may have a "logical" root separator for the purposes of +@@ -648,12 +654,12 @@ impl<'a> Components<'a> { + // how long is the prefix, if any? + #[inline] + fn prefix_len(&self) -> usize { +- self.prefix.as_ref().map(Prefix::len).unwrap_or(0) ++ self.prefix.map(|v| v.as_os_str().len()).unwrap_or(0) + } + + #[inline] + fn prefix_verbatim(&self) -> bool { +- self.prefix.as_ref().map(Prefix::is_verbatim).unwrap_or(false) ++ self.prefix.as_ref().map(|v| v.kind().is_verbatim()).unwrap_or(false) + } + + /// how much of the prefix is left from the point of view of iteration? +@@ -713,7 +719,7 @@ impl<'a> Components<'a> { + return true; + } + if let Some(p) = self.prefix { +- if p.has_implicit_root() { ++ if p.kind().has_implicit_root() { + return true; + } + } +@@ -894,12 +900,8 @@ impl<'a> Iterator for Components<'a> { + State::Prefix if self.prefix_len() > 0 => { + self.front = State::StartDir; + debug_assert!(self.prefix_len() <= self.path.len()); +- let raw = &self.path[..self.prefix_len()]; + self.path = &self.path[self.prefix_len()..]; +- return Some(Component::Prefix(PrefixComponent { +- raw: unsafe { u8_slice_as_os_str(raw) }, +- parsed: self.prefix.unwrap(), +- })); ++ return Some(Component::Prefix(self.prefix.unwrap())); + } + State::Prefix => { + self.front = State::StartDir; +@@ -911,7 +913,7 @@ impl<'a> Iterator for Components<'a> { + self.path = &self.path[1..]; + return Some(Component::RootDir); + } else if let Some(p) = self.prefix { +- if p.has_implicit_root() && !p.is_verbatim() { ++ if p.kind().has_implicit_root() && !p.kind().is_verbatim() { + return Some(Component::RootDir); + } + } else if self.include_cur_dir() { +@@ -958,7 +960,7 @@ impl<'a> DoubleEndedIterator for Components<'a> { + self.path = &self.path[..self.path.len() - 1]; + return Some(Component::RootDir); + } else if let Some(p) = self.prefix { +- if p.has_implicit_root() && !p.is_verbatim() { ++ if p.kind().has_implicit_root() && !p.kind().is_verbatim() { + return Some(Component::RootDir); + } + } else if self.include_cur_dir() { +@@ -968,10 +970,7 @@ impl<'a> DoubleEndedIterator for Components<'a> { + } + State::Prefix if self.prefix_len() > 0 => { + self.back = State::Done; +- return Some(Component::Prefix(PrefixComponent { +- raw: unsafe { u8_slice_as_os_str(self.path) }, +- parsed: self.prefix.unwrap(), +- })); ++ return Some(Component::Prefix(self.prefix.unwrap())); + } + State::Prefix => { + self.back = State::Done; +@@ -1281,7 +1280,7 @@ impl PathBuf { + + if comps.prefix_len() > 0 + && comps.prefix_len() == comps.path.len() +- && comps.prefix.unwrap().is_drive() ++ && comps.prefix.unwrap().kind().is_drive() + { + need_sep = false + } +@@ -2085,12 +2084,7 @@ impl Path { + #[must_use] + #[allow(deprecated)] + pub fn is_absolute(&self) -> bool { +- if cfg!(target_os = "redox") { +- // FIXME: Allow Redox prefixes +- self.has_root() || has_redox_scheme(self.as_u8_slice()) +- } else { +- self.has_root() && (cfg!(any(unix, target_os = "wasi")) || self.prefix().is_some()) +- } ++ self.has_root() && (cfg!(any(all(unix, not(target_os = "redox")), target_os = "wasi")) || self.prefix().is_some()) + } + + /// Returns `true` if the `Path` is relative, i.e., not absolute. +@@ -2113,7 +2107,7 @@ impl Path { + !self.is_absolute() + } + +- fn prefix(&self) -> Option> { ++ fn prefix(&self) -> Option> { + self.components().prefix + } + +@@ -2543,8 +2537,7 @@ impl Path { + Components { + path: self.as_u8_slice(), + prefix, +- has_physical_root: has_physical_root(self.as_u8_slice(), prefix) +- || has_redox_scheme(self.as_u8_slice()), ++ has_physical_root: has_physical_root(self.as_u8_slice(), prefix.map(|v| v.parsed)), + front: State::Prefix, + back: State::Body, + } +@@ -2934,7 +2927,7 @@ impl Hash for Path { + let (prefix_len, verbatim) = match parse_prefix(&self.inner) { + Some(prefix) => { + prefix.hash(h); +- (prefix.len(), prefix.is_verbatim()) ++ (prefix.parsed.len(), prefix.parsed.is_verbatim()) + } + None => (0, false), + }; +diff --git a/library/std/src/sys/sgx/path.rs b/library/std/src/sys/sgx/path.rs +index c805c15..ff34f5c 100644 +--- a/library/std/src/sys/sgx/path.rs ++++ b/library/std/src/sys/sgx/path.rs +@@ -1,6 +1,6 @@ + use crate::ffi::OsStr; + use crate::io; +-use crate::path::{Path, PathBuf, Prefix}; ++use crate::path::{Path, PathBuf, PrefixComponent}; + use crate::sys::unsupported; + + #[inline] +@@ -13,7 +13,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { + b == b'/' + } + +-pub fn parse_prefix(_: &OsStr) -> Option> { ++pub fn parse_prefix(_: &OsStr) -> Option> { + None + } + +diff --git a/library/std/src/sys/solid/path.rs b/library/std/src/sys/solid/path.rs +index 7045c9b..b5deb37 100644 +--- a/library/std/src/sys/solid/path.rs ++++ b/library/std/src/sys/solid/path.rs +@@ -1,6 +1,6 @@ + use crate::ffi::OsStr; + use crate::io; +-use crate::path::{Path, PathBuf, Prefix}; ++use crate::path::{Path, PathBuf, PrefixComponent}; + use crate::sys::unsupported; + + #[inline] +@@ -13,7 +13,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { + b == b'\\' + } + +-pub fn parse_prefix(_: &OsStr) -> Option> { ++pub fn parse_prefix(_: &OsStr) -> Option> { + None + } + +diff --git a/library/std/src/sys/unix/path.rs b/library/std/src/sys/unix/path.rs +index a98a69e..4484015 100644 +--- a/library/std/src/sys/unix/path.rs ++++ b/library/std/src/sys/unix/path.rs +@@ -1,7 +1,7 @@ + use crate::env; + use crate::ffi::OsStr; + use crate::io; +-use crate::path::{Path, PathBuf, Prefix}; ++use crate::path::{Path, PathBuf, PrefixComponent}; + + #[inline] + pub fn is_sep_byte(b: u8) -> bool { +@@ -14,7 +14,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { + } + + #[inline] +-pub fn parse_prefix(_: &OsStr) -> Option> { ++pub fn parse_prefix(_: &OsStr) -> Option> { + None + } + +diff --git a/library/std/src/sys/windows/path.rs b/library/std/src/sys/windows/path.rs +index a0f8220..445bd5b 100644 +--- a/library/std/src/sys/windows/path.rs ++++ b/library/std/src/sys/windows/path.rs +@@ -2,7 +2,7 @@ use super::{c, fill_utf16_buf, to_u16s}; + use crate::ffi::{OsStr, OsString}; + use crate::io; + use crate::mem; +-use crate::path::{Path, PathBuf, Prefix}; ++use crate::path::{Path, PathBuf, Prefix, PrefixComponent}; + use crate::ptr; + + #[cfg(test)] +@@ -105,7 +105,13 @@ impl<'a> PrefixParserSlice<'a, '_> { + } + } + +-pub fn parse_prefix(path: &OsStr) -> Option> { ++pub fn parse_prefix(path: &OsStr) -> Option> { ++ let pathu8 = os_str_as_u8_slice(path); ++ parse_prefix_simple(path) ++ .map(|v| PrefixComponent::from_os_str_kind(u8_slice_as_os_str(&pathu8[..v.len()]), v)) ++} ++ ++fn parse_prefix_simple(path: &OsStr) -> Option> { + use Prefix::{DeviceNS, Disk, Verbatim, VerbatimDisk, VerbatimUNC, UNC}; + + let parser = PrefixParser::<8>::new(path); +-- +2.32.1 (Apple Git-133) + diff --git a/rust-patches/0002-Add-sunrise.patch b/rust-patches/0007-Add-sunrise.patch similarity index 53% rename from rust-patches/0002-Add-sunrise.patch rename to rust-patches/0007-Add-sunrise.patch index 013149237..1e8123e58 100644 --- a/rust-patches/0002-Add-sunrise.patch +++ b/rust-patches/0007-Add-sunrise.patch @@ -1,1290 +1,187 @@ -From c23874844bf1e8776365352d32a7c78382266e37 Mon Sep 17 00:00:00 2001 +From 182f15f0b92723aa5d55f8887110e74a2d8772e3 Mon Sep 17 00:00:00 2001 From: roblabla -Date: Sat, 30 May 2020 12:03:10 +0000 -Subject: [PATCH 2/2] Add sunrise +Date: Mon, 22 Aug 2022 18:53:06 +0200 +Subject: [PATCH 7/7] Add sunrise --- - Cargo.lock | 582 +++++++++++++++++- - src/liballoc/Cargo.toml | 2 +- - src/libpanic_abort/Cargo.toml | 4 +- - src/libpanic_abort/lib.rs | 7 +- - src/libpanic_unwind/Cargo.toml | 6 +- - src/libpanic_unwind/lib.rs | 1 + - src/libprofiler_builtins/Cargo.toml | 4 +- - src/libstd/Cargo.toml | 26 +- - src/libstd/error.rs | 2 +- - src/libstd/lib.rs | 2 +- - src/libstd/os/mod.rs | 3 + - src/libstd/os/raw/mod.rs | 6 +- - src/libstd/path.rs | 59 +- - src/libstd/sys/hermit/path.rs | 4 +- - src/libstd/sys/mod.rs | 3 + - src/libstd/sys/sgx/path.rs | 4 +- - src/libstd/sys/sunrise/alloc.rs | 17 + - src/libstd/sys/sunrise/args.rs | 92 +++ - src/libstd/sys/sunrise/cmath.rs | 29 + - src/libstd/sys/sunrise/condvar.rs | 38 ++ - src/libstd/sys/sunrise/env.rs | 9 + - src/libstd/sys/sunrise/ext/ffi.rs | 38 ++ - src/libstd/sys/sunrise/ext/mod.rs | 35 ++ - src/libstd/sys/sunrise/fast_thread_local.rs | 4 + - src/libstd/sys/sunrise/fs/mod.rs | 644 ++++++++++++++++++++ - src/libstd/sys/sunrise/io.rs | 45 ++ - src/libstd/sys/sunrise/memchr.rs | 1 + - src/libstd/sys/sunrise/mod.rs | 86 +++ - src/libstd/sys/sunrise/mutex.rs | 68 +++ - src/libstd/sys/sunrise/net.rs | 366 +++++++++++ - src/libstd/sys/sunrise/os.rs | 188 ++++++ - src/libstd/sys/sunrise/path.rs | 25 + - src/libstd/sys/sunrise/pipe.rs | 41 ++ - src/libstd/sys/sunrise/process.rs | 216 +++++++ - src/libstd/sys/sunrise/rwlock.rs | 72 +++ - src/libstd/sys/sunrise/stack_overflow.rs | 5 + - src/libstd/sys/sunrise/stdio.rs | 107 ++++ - src/libstd/sys/sunrise/thread.rs | 60 ++ - src/libstd/sys/sunrise/thread_local.rs | 40 ++ - src/libstd/sys/sunrise/time.rs | 57 ++ - src/libstd/sys/unix/path.rs | 4 +- - src/libstd/sys/vxworks/path.rs | 4 +- - src/libstd/sys/wasi/path.rs | 4 +- - src/libstd/sys/wasm/path.rs | 4 +- - src/libstd/sys/windows/path.rs | 10 +- - src/libstd/sys_common/mod.rs | 2 + - src/libtest/Cargo.toml | 4 +- - src/libunwind/Cargo.toml | 6 +- - 48 files changed, 2931 insertions(+), 105 deletions(-) - create mode 100644 src/libstd/sys/sunrise/alloc.rs - create mode 100644 src/libstd/sys/sunrise/args.rs - create mode 100644 src/libstd/sys/sunrise/cmath.rs - create mode 100644 src/libstd/sys/sunrise/condvar.rs - create mode 100644 src/libstd/sys/sunrise/env.rs - create mode 100644 src/libstd/sys/sunrise/ext/ffi.rs - create mode 100644 src/libstd/sys/sunrise/ext/mod.rs - create mode 100644 src/libstd/sys/sunrise/fast_thread_local.rs - create mode 100644 src/libstd/sys/sunrise/fs/mod.rs - create mode 100644 src/libstd/sys/sunrise/io.rs - create mode 100644 src/libstd/sys/sunrise/memchr.rs - create mode 100644 src/libstd/sys/sunrise/mod.rs - create mode 100644 src/libstd/sys/sunrise/mutex.rs - create mode 100644 src/libstd/sys/sunrise/net.rs - create mode 100644 src/libstd/sys/sunrise/os.rs - create mode 100644 src/libstd/sys/sunrise/path.rs - create mode 100644 src/libstd/sys/sunrise/pipe.rs - create mode 100644 src/libstd/sys/sunrise/process.rs - create mode 100644 src/libstd/sys/sunrise/rwlock.rs - create mode 100644 src/libstd/sys/sunrise/stack_overflow.rs - create mode 100644 src/libstd/sys/sunrise/stdio.rs - create mode 100644 src/libstd/sys/sunrise/thread.rs - create mode 100644 src/libstd/sys/sunrise/thread_local.rs - create mode 100644 src/libstd/sys/sunrise/time.rs + library/core/src/ffi/mod.rs | 3 +- + library/panic_abort/src/lib.rs | 1 + + library/std/Cargo.toml | 5 + + library/std/build.rs | 1 + + library/std/src/os/mod.rs | 4 + + library/std/src/os/sunrise/mod.rs | 25 + + library/std/src/sys/mod.rs | 3 + + library/std/src/sys/sunrise/alloc.rs | 17 + + library/std/src/sys/sunrise/args.rs | 93 +++ + library/std/src/sys/sunrise/cmath.rs | 29 + + library/std/src/sys/sunrise/condvar.rs | 38 ++ + library/std/src/sys/sunrise/env.rs | 9 + + library/std/src/sys/sunrise/ext/ffi.rs | 38 ++ + library/std/src/sys/sunrise/ext/mod.rs | 35 + + library/std/src/sys/sunrise/fs/mod.rs | 642 ++++++++++++++++++ + library/std/src/sys/sunrise/io.rs | 45 ++ + library/std/src/sys/sunrise/memchr.rs | 1 + + library/std/src/sys/sunrise/mod.rs | 78 +++ + library/std/src/sys/sunrise/mutex.rs | 68 ++ + library/std/src/sys/sunrise/net.rs | 366 ++++++++++ + library/std/src/sys/sunrise/os.rs | 185 +++++ + library/std/src/sys/sunrise/path.rs | 45 ++ + library/std/src/sys/sunrise/pipe.rs | 41 ++ + library/std/src/sys/sunrise/process.rs | 286 ++++++++ + library/std/src/sys/sunrise/rwlock.rs | 72 ++ + library/std/src/sys/sunrise/stack_overflow.rs | 5 + + library/std/src/sys/sunrise/stdio.rs | 103 +++ + library/std/src/sys/sunrise/thread.rs | 64 ++ + .../std/src/sys/sunrise/thread_local_dtor.rs | 1 + + .../std/src/sys/sunrise/thread_local_key.rs | 40 ++ + library/std/src/sys/sunrise/time.rs | 57 ++ + library/std/src/sys_common/mod.rs | 1 + + 32 files changed, 2400 insertions(+), 1 deletion(-) + create mode 100644 library/std/src/os/sunrise/mod.rs + create mode 100644 library/std/src/sys/sunrise/alloc.rs + create mode 100644 library/std/src/sys/sunrise/args.rs + create mode 100644 library/std/src/sys/sunrise/cmath.rs + create mode 100644 library/std/src/sys/sunrise/condvar.rs + create mode 100644 library/std/src/sys/sunrise/env.rs + create mode 100644 library/std/src/sys/sunrise/ext/ffi.rs + create mode 100644 library/std/src/sys/sunrise/ext/mod.rs + create mode 100644 library/std/src/sys/sunrise/fs/mod.rs + create mode 100644 library/std/src/sys/sunrise/io.rs + create mode 100644 library/std/src/sys/sunrise/memchr.rs + create mode 100644 library/std/src/sys/sunrise/mod.rs + create mode 100644 library/std/src/sys/sunrise/mutex.rs + create mode 100644 library/std/src/sys/sunrise/net.rs + create mode 100644 library/std/src/sys/sunrise/os.rs + create mode 100644 library/std/src/sys/sunrise/path.rs + create mode 100644 library/std/src/sys/sunrise/pipe.rs + create mode 100644 library/std/src/sys/sunrise/process.rs + create mode 100644 library/std/src/sys/sunrise/rwlock.rs + create mode 100644 library/std/src/sys/sunrise/stack_overflow.rs + create mode 100644 library/std/src/sys/sunrise/stdio.rs + create mode 100644 library/std/src/sys/sunrise/thread.rs + create mode 100644 library/std/src/sys/sunrise/thread_local_dtor.rs + create mode 100644 library/std/src/sys/sunrise/thread_local_key.rs + create mode 100644 library/std/src/sys/sunrise/time.rs -diff --git a/Cargo.lock b/Cargo.lock -index b15b201..8c1c338 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -10,12 +10,27 @@ dependencies = [ - "rand_xorshift", - ] - -+[[package]] -+name = "arrayvec" -+version = "0.4.12" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -+dependencies = [ -+ "nodrop", -+] -+ - [[package]] - name = "autocfg" - version = "0.1.7" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" - -+[[package]] -+name = "autocfg" -+version = "1.0.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" -+ - [[package]] - name = "backtrace" - version = "0.3.46" -@@ -24,10 +39,8 @@ checksum = "b1e692897359247cc6bb902933361652380af0f1b7651ae5c5013407f30e109e" - dependencies = [ - "backtrace-sys", - "cfg-if", -- "compiler_builtins", - "libc", - "rustc-demangle", -- "rustc-std-workspace-core", - ] - - [[package]] -@@ -37,15 +50,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399" - dependencies = [ - "cc", -- "compiler_builtins", - "libc", -- "rustc-std-workspace-core", -+] -+ -+[[package]] -+name = "bit_field" -+version = "0.10.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "a165d606cf084741d4ac3a28fb6e9b1eb0bd31f6cd999098cfddb0b2ab381dc0" -+ -+[[package]] -+name = "bitfield" -+version = "0.13.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" -+ -+[[package]] -+name = "bitflags" -+version = "1.2.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -+ -+[[package]] -+name = "block-buffer" -+version = "0.7.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -+dependencies = [ -+ "block-padding", -+ "byte-tools", -+ "byteorder", -+ "generic-array", -+] -+ -+[[package]] -+name = "block-padding" -+version = "0.1.5" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -+dependencies = [ -+ "byte-tools", - ] - - [[package]] - name = "build_helper" - version = "0.1.0" - -+[[package]] -+name = "byte-tools" -+version = "0.3.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" -+ -+[[package]] -+name = "byteorder" -+version = "1.3.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" -+ - [[package]] - name = "c2-chacha" - version = "0.2.3" -@@ -66,16 +128,12 @@ name = "cfg-if" - version = "0.1.10" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" --dependencies = [ -- "compiler_builtins", -- "rustc-std-workspace-core", --] - - [[package]] - name = "compiler_builtins" --version = "0.1.28" -+version = "0.1.29" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "439a6fab343b1dab347823537734a5cd4ae6ae2000b465ab886f64cdb723bd14" -+checksum = "da3e309b268ae176ec048f30a58369db0a7527cddd3546275355b68130652c91" - dependencies = [ - "cc", - "rustc-std-workspace-core", -@@ -88,6 +146,50 @@ dependencies = [ - "rand", - ] - -+[[package]] -+name = "darling" -+version = "0.9.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "fcfbcb0c5961907597a7d1148e3af036268f2b773886b8bb3eeb1e1281d3d3d6" -+dependencies = [ -+ "darling_core", -+ "darling_macro", -+] -+ -+[[package]] -+name = "darling_core" -+version = "0.9.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "6afc018370c3bff3eb51f89256a6bdb18b4fdcda72d577982a14954a7a0b402c" -+dependencies = [ -+ "fnv", -+ "ident_case", -+ "proc-macro2 0.4.30", -+ "quote 0.6.13", -+ "strsim", -+ "syn 0.15.44", -+] -+ -+[[package]] -+name = "darling_macro" -+version = "0.9.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "c6d8dac1c6f1d29a41c4712b4400f878cb4fcc4c7628f298dd75038e024998d1" -+dependencies = [ -+ "darling_core", -+ "quote 0.6.13", -+ "syn 0.15.44", -+] -+ -+[[package]] -+name = "digest" -+version = "0.8.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -+dependencies = [ -+ "generic-array", -+] -+ - [[package]] - name = "dlmalloc" - version = "0.1.4" -@@ -99,6 +201,24 @@ dependencies = [ - "rustc-std-workspace-core", - ] - -+[[package]] -+name = "failure" -+version = "0.1.8" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -+ -+[[package]] -+name = "fake-simd" -+version = "0.1.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" -+ -+[[package]] -+name = "fnv" -+version = "1.0.7" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -+ - [[package]] - name = "fortanix-sgx-abi" - version = "0.3.2" -@@ -109,6 +229,97 @@ dependencies = [ - "rustc-std-workspace-core", - ] - -+[[package]] -+name = "futures-channel-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "4cd523712fc272e9b714669165a2832debee5a5b7e409bfccdc7c0d5cd0cf07a" -+dependencies = [ -+ "futures-core-preview", -+] -+ -+[[package]] -+name = "futures-core-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "719770f328642b657b849856bb5a607db9538dd5bb3000122e5ead55d0a58c36" -+ -+[[package]] -+name = "futures-executor-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "315dc58c908535d059576a329b86cd185933433382cfcd394fb2fa353330de03" -+dependencies = [ -+ "futures-channel-preview", -+ "futures-core-preview", -+ "futures-util-preview", -+ "pin-utils", -+] -+ -+[[package]] -+name = "futures-io-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "cca0bf7a1f39c9d32b797b0def93d5932aa71796236aad6b549bac6f7df159a3" -+dependencies = [ -+ "futures-core-preview", -+] -+ -+[[package]] -+name = "futures-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "fcfeac5f016a4b5835bb93eb7961f50a64f0e001207562703d9ddf4109d7b263" -+dependencies = [ -+ "futures-channel-preview", -+ "futures-core-preview", -+ "futures-executor-preview", -+ "futures-io-preview", -+ "futures-sink-preview", -+ "futures-util-preview", -+] -+ -+[[package]] -+name = "futures-sink-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "49dcfdacd6b5974ca0b9b78bc38ffd1071da0206179735c3df82e279f5b784e4" -+dependencies = [ -+ "futures-channel-preview", -+ "futures-core-preview", -+] -+ -+[[package]] -+name = "futures-util-preview" -+version = "0.3.0-alpha.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "f7a0451b9c5047c2b9ab93425ffd0793165511e93c04b977cd45fbd41c6e34b2" -+dependencies = [ -+ "futures-channel-preview", -+ "futures-core-preview", -+ "futures-io-preview", -+ "futures-sink-preview", -+ "pin-utils", -+] -+ -+[[package]] -+name = "generational-arena" -+version = "0.2.8" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "8e1d3b771574f62d0548cee0ad9057857e9fc25d7a3335f140c84f6acd0bf601" -+dependencies = [ -+ "cfg-if", -+] -+ -+[[package]] -+name = "generic-array" -+version = "0.12.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -+dependencies = [ -+ "typenum", -+] -+ - [[package]] - name = "getrandom" - version = "0.1.14" -@@ -120,16 +331,19 @@ dependencies = [ - "wasi", - ] - -+[[package]] -+name = "hashbrown" -+version = "0.5.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353" -+ - [[package]] - name = "hashbrown" - version = "0.6.2" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "3cd9867f119b19fecb08cd5c326ad4488d7a1da4bf75b4d95d71db742525aaab" - dependencies = [ -- "autocfg", -- "compiler_builtins", -- "rustc-std-workspace-alloc", -- "rustc-std-workspace-core", -+ "autocfg 0.1.7", - ] - - [[package]] -@@ -143,6 +357,21 @@ dependencies = [ - "rustc-std-workspace-core", - ] - -+[[package]] -+name = "ident_case" -+version = "1.0.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -+ -+[[package]] -+name = "lazy_static" -+version = "1.4.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -+dependencies = [ -+ "spin", -+] -+ - [[package]] - name = "libc" - version = "0.2.69" -@@ -152,12 +381,64 @@ dependencies = [ - "rustc-std-workspace-core", - ] - -+[[package]] -+name = "linked_list_allocator" -+version = "0.8.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "e70e46c13c0e8374c26cec5752e3347ca1087d9711de8f45aa513a7700efd73d" -+dependencies = [ -+ "spinning_top", -+] -+ -+[[package]] -+name = "lock_api" -+version = "0.3.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -+dependencies = [ -+ "scopeguard", -+] -+ -+[[package]] -+name = "log" -+version = "0.4.8" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" -+dependencies = [ -+ "cfg-if", -+] -+ -+[[package]] -+name = "maplit" -+version = "1.0.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -+ -+[[package]] -+name = "nodrop" -+version = "0.1.14" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -+ -+[[package]] -+name = "num-traits" -+version = "0.2.11" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" -+dependencies = [ -+ "autocfg 1.0.0", -+] -+ -+[[package]] -+name = "opaque-debug" -+version = "0.2.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -+ - [[package]] - name = "panic_abort" - version = "0.0.0" - dependencies = [ -- "compiler_builtins", -- "core", - "libc", - ] - -@@ -165,20 +446,90 @@ dependencies = [ - name = "panic_unwind" - version = "0.0.0" - dependencies = [ -- "alloc", - "cfg-if", -- "compiler_builtins", -- "core", - "libc", - "unwind", - ] - -+[[package]] -+name = "pest" -+version = "2.1.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" -+dependencies = [ -+ "ucd-trie", -+] -+ -+[[package]] -+name = "pest_derive" -+version = "2.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" -+dependencies = [ -+ "pest", -+ "pest_generator", -+] -+ -+[[package]] -+name = "pest_generator" -+version = "2.1.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" -+dependencies = [ -+ "pest", -+ "pest_meta", -+ "proc-macro2 1.0.18", -+ "quote 1.0.6", -+ "syn 1.0.30", -+] -+ -+[[package]] -+name = "pest_meta" -+version = "2.1.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" -+dependencies = [ -+ "maplit", -+ "pest", -+ "sha-1", -+] -+ -+[[package]] -+name = "pin-utils" -+version = "0.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -+ -+[[package]] -+name = "plain" -+version = "0.2.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -+ - [[package]] - name = "ppv-lite86" - version = "0.2.6" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" - -+[[package]] -+name = "proc-macro2" -+version = "0.4.30" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -+dependencies = [ -+ "unicode-xid 0.1.0", -+] -+ -+[[package]] -+name = "proc-macro2" -+version = "1.0.18" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" -+dependencies = [ -+ "unicode-xid 0.2.0", -+] -+ - [[package]] - name = "proc_macro" - version = "0.0.0" -@@ -191,8 +542,24 @@ name = "profiler_builtins" - version = "0.0.0" - dependencies = [ - "cc", -- "compiler_builtins", -- "core", -+] -+ -+[[package]] -+name = "quote" -+version = "0.6.13" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -+dependencies = [ -+ "proc-macro2 0.4.30", -+] -+ -+[[package]] -+name = "quote" -+version = "1.0.6" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea" -+dependencies = [ -+ "proc-macro2 1.0.18", - ] - - [[package]] -@@ -250,10 +617,6 @@ name = "rustc-demangle" - version = "0.1.16" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" --dependencies = [ -- "compiler_builtins", -- "rustc-std-workspace-core", --] - - [[package]] - name = "rustc-std-workspace-alloc" -@@ -269,28 +632,163 @@ dependencies = [ - "core", - ] - -+[[package]] -+name = "scopeguard" -+version = "1.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -+ -+[[package]] -+name = "sha-1" -+version = "0.8.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -+dependencies = [ -+ "block-buffer", -+ "digest", -+ "fake-simd", -+ "opaque-debug", -+] -+ -+[[package]] -+name = "spin" -+version = "0.5.2" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -+ -+[[package]] -+name = "spinning_top" -+version = "0.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "32d801a3a53bcf5071f85fef8d5cab9e5f638fc5580a37e6eb7aba4b37438d24" -+dependencies = [ -+ "lock_api", -+] -+ -+[[package]] -+name = "static_assertions" -+version = "0.3.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" -+ - [[package]] - name = "std" - version = "0.0.0" - dependencies = [ -- "alloc", - "backtrace", - "cfg-if", -- "compiler_builtins", -- "core", - "dlmalloc", - "fortanix-sgx-abi", -- "hashbrown", -+ "hashbrown 0.6.2", - "hermit-abi", -+ "lazy_static", - "libc", -+ "log", - "panic_abort", - "panic_unwind", - "profiler_builtins", - "rand", -+ "spin", -+ "sunrise-libuser", - "unwind", - "wasi", - ] - -+[[package]] -+name = "strsim" -+version = "0.7.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -+ -+[[package]] -+name = "sunrise-libkern" -+version = "0.1.0" -+source = "git+https://github.com/sunriseos/sunriseos.git#4e0abd8c414f736aed4bf36dcd5e9e28535b7a73" -+dependencies = [ -+ "bitfield", -+ "bitflags", -+ "lazy_static", -+ "plain", -+ "static_assertions", -+ "sunrise-libutils", -+] -+ -+[[package]] -+name = "sunrise-libuser" -+version = "0.1.0" -+source = "git+https://github.com/sunriseos/sunriseos.git#4e0abd8c414f736aed4bf36dcd5e9e28535b7a73" -+dependencies = [ -+ "arrayvec", -+ "bit_field", -+ "bitfield", -+ "byteorder", -+ "failure", -+ "futures-preview", -+ "generational-arena", -+ "hashbrown 0.5.0", -+ "lazy_static", -+ "linked_list_allocator", -+ "log", -+ "spin", -+ "sunrise-libkern", -+ "sunrise-libutils", -+ "swipc-gen", -+] -+ -+[[package]] -+name = "sunrise-libutils" -+version = "0.1.0" -+source = "git+https://github.com/sunriseos/sunriseos.git#4e0abd8c414f736aed4bf36dcd5e9e28535b7a73" -+dependencies = [ -+ "bit_field", -+ "byteorder", -+ "num-traits", -+] -+ -+[[package]] -+name = "swipc-gen" -+version = "0.1.0" -+source = "git+https://github.com/sunriseos/sunriseos.git#4e0abd8c414f736aed4bf36dcd5e9e28535b7a73" -+dependencies = [ -+ "bit_field", -+ "darling", -+ "lazy_static", -+ "proc-macro2 0.4.30", -+ "swipc-parser", -+ "syn 0.15.44", -+] -+ -+[[package]] -+name = "swipc-parser" -+version = "0.1.0" -+source = "git+https://github.com/sunriseos/sunriseos.git#4e0abd8c414f736aed4bf36dcd5e9e28535b7a73" -+dependencies = [ -+ "pest", -+ "pest_derive", -+] -+ -+[[package]] -+name = "syn" -+version = "0.15.44" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -+dependencies = [ -+ "proc-macro2 0.4.30", -+ "quote 0.6.13", -+ "unicode-xid 0.1.0", -+] -+ -+[[package]] -+name = "syn" -+version = "1.0.30" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2" -+dependencies = [ -+ "proc-macro2 1.0.18", -+ "quote 1.0.6", -+ "unicode-xid 0.2.0", -+] -+ - [[package]] - name = "term" - version = "0.0.0" -@@ -299,14 +797,36 @@ dependencies = [ - "std", - ] - -+[[package]] -+name = "typenum" -+version = "1.12.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" -+ -+[[package]] -+name = "ucd-trie" -+version = "0.1.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" -+ -+[[package]] -+name = "unicode-xid" -+version = "0.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -+ -+[[package]] -+name = "unicode-xid" -+version = "0.2.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" -+ - [[package]] - name = "unwind" - version = "0.0.0" - dependencies = [ - "cc", - "cfg-if", -- "compiler_builtins", -- "core", - "libc", - ] - -diff --git a/src/liballoc/Cargo.toml b/src/liballoc/Cargo.toml -index d1119f7..f91cdce 100644 ---- a/src/liballoc/Cargo.toml -+++ b/src/liballoc/Cargo.toml -@@ -12,7 +12,7 @@ path = "lib.rs" - - [dependencies] - core = { path = "../libcore" } --compiler_builtins = { version = "0.1.10", features = ['rustc-dep-of-std'] } -+compiler_builtins = { version = "0.1.0", features = ['rustc-dep-of-std', 'soft-float'] } - - [dev-dependencies] - rand = "0.7" -diff --git a/src/libpanic_abort/Cargo.toml b/src/libpanic_abort/Cargo.toml -index 2bee0b7..ad45a40 100644 ---- a/src/libpanic_abort/Cargo.toml -+++ b/src/libpanic_abort/Cargo.toml -@@ -11,6 +11,6 @@ bench = false - doc = false - - [dependencies] --core = { path = "../libcore" } -+#core = { path = "../libcore" } - libc = { version = "0.2", default-features = false } --compiler_builtins = "0.1.0" -+#compiler_builtins = "0.1.0" -diff --git a/src/libpanic_abort/lib.rs b/src/libpanic_abort/lib.rs -index fd3e118..e2c71dc 100644 ---- a/src/libpanic_abort/lib.rs -+++ b/src/libpanic_abort/lib.rs -@@ -44,7 +44,11 @@ pub unsafe extern "C" fn __rust_start_panic(_payload: usize) -> u32 { - libc::abort(); - } - -- #[cfg(any(windows, all(target_arch = "wasm32", not(target_os = "emscripten"))))] -+ #[cfg(any( -+ windows, -+ all(target_arch = "wasm32", not(target_os = "emscripten")), -+ target_os = "sunrise", -+ ))] - unsafe fn abort() -> ! { - core::intrinsics::abort(); - } -@@ -90,6 +94,7 @@ pub mod personalities { +diff --git a/library/core/src/ffi/mod.rs b/library/core/src/ffi/mod.rs +index ec1eaa9..30d0143 100644 +--- a/library/core/src/ffi/mod.rs ++++ b/library/core/src/ffi/mod.rs +@@ -144,7 +144,8 @@ mod c_char_definition { + ) + ), + all(target_os = "fuchsia", target_arch = "aarch64"), +- target_os = "horizon" ++ target_os = "horizon", ++ target_os = "sunrise" + ))] { + pub type c_char = u8; + pub type NonZero_c_char = crate::num::NonZeroU8; +diff --git a/library/panic_abort/src/lib.rs b/library/panic_abort/src/lib.rs +index 8801c67..f2327c2 100644 +--- a/library/panic_abort/src/lib.rs ++++ b/library/panic_abort/src/lib.rs +@@ -117,6 +117,7 @@ pub mod personalities { #[cfg(not(any( - all(target_arch = "wasm32", not(target_os = "emscripten"),), + all(target_family = "wasm", not(target_os = "emscripten")), all(target_os = "windows", target_env = "gnu", target_arch = "x86_64",), + target_os = "sunrise", )))] pub extern "C" fn rust_eh_personality() {} -diff --git a/src/libpanic_unwind/Cargo.toml b/src/libpanic_unwind/Cargo.toml -index 47cd09f..7396b11 100644 ---- a/src/libpanic_unwind/Cargo.toml -+++ b/src/libpanic_unwind/Cargo.toml -@@ -11,9 +11,9 @@ bench = false - doc = false - - [dependencies] --alloc = { path = "../liballoc" } --core = { path = "../libcore" } -+#alloc = { path = "../liballoc" } -+#core = { path = "../libcore" } - libc = { version = "0.2", default-features = false } - unwind = { path = "../libunwind" } --compiler_builtins = "0.1.0" -+#compiler_builtins = "0.1.0" - cfg-if = "0.1.8" -diff --git a/src/libpanic_unwind/lib.rs b/src/libpanic_unwind/lib.rs -index f791fe8..3d5f53e 100644 ---- a/src/libpanic_unwind/lib.rs -+++ b/src/libpanic_unwind/lib.rs -@@ -33,6 +33,7 @@ - // `real_imp` is unused with Miri, so silence warnings. - #![cfg_attr(miri, allow(dead_code))] - -+extern crate alloc; - use alloc::boxed::Box; - use core::any::Any; - use core::panic::BoxMeUp; -diff --git a/src/libprofiler_builtins/Cargo.toml b/src/libprofiler_builtins/Cargo.toml -index 0d36bd0..6f04676 100644 ---- a/src/libprofiler_builtins/Cargo.toml -+++ b/src/libprofiler_builtins/Cargo.toml -@@ -13,8 +13,8 @@ bench = false - doc = false - - [dependencies] --core = { path = "../libcore" } --compiler_builtins = { version = "0.1.0", features = ['rustc-dep-of-std'] } -+#core = { path = "../libcore" } -+#compiler_builtins = { version = "0.1.0", features = ['rustc-dep-of-std'] } - - [build-dependencies] - cc = "1.0.1" -diff --git a/src/libstd/Cargo.toml b/src/libstd/Cargo.toml -index 077ca2a..6f0e910 100644 ---- a/src/libstd/Cargo.toml -+++ b/src/libstd/Cargo.toml -@@ -14,22 +14,23 @@ path = "lib.rs" - crate-type = ["dylib", "rlib"] - - [dependencies] --alloc = { path = "../liballoc" } --cfg-if = { version = "0.1.8", features = ['rustc-dep-of-std'] } -+#alloc = { path = "../liballoc" } -+cfg-if = { version = "0.1.8" } - panic_unwind = { path = "../libpanic_unwind", optional = true } - panic_abort = { path = "../libpanic_abort" } --core = { path = "../libcore" } --libc = { version = "0.2.51", default-features = false, features = ['rustc-dep-of-std'] } --compiler_builtins = { version = "0.1.16" } -+#core = { path = "../libcore" } -+libc = { version = "0.2.51", default-features = false, features = ['align'] } -+#compiler_builtins = { version = "0.1.16", features = ['rustc-dep-of-std', 'soft-float'] } - profiler_builtins = { path = "../libprofiler_builtins", optional = true } - unwind = { path = "../libunwind" } --hashbrown = { version = "0.6.2", default-features = false, features = ['rustc-dep-of-std'] } -+hashbrown = { version = "0.6.2", default-features = false, features = ['rustc-internal-api'] } - - [dependencies.backtrace_rs] - package = "backtrace" - version = "0.3.46" - default-features = false # without the libstd `backtrace` feature, stub out everything --features = [ "rustc-dep-of-std" ] # enable build support for integrating into libstd -+features = [] -+# TODO: backtrace-sys fork. - - [dev-dependencies] - rand = "0.7" -@@ -46,6 +47,13 @@ hermit-abi = { version = "0.1.13", features = ['rustc-dep-of-std'] } +diff --git a/library/std/Cargo.toml b/library/std/Cargo.toml +index f144570..6b809ab 100644 +--- a/library/std/Cargo.toml ++++ b/library/std/Cargo.toml +@@ -47,6 +47,11 @@ hermit-abi = { version = "0.2.0", features = ['rustc-dep-of-std'] } [target.wasm32-wasi.dependencies] - wasi = { version = "0.9.0", features = ['rustc-dep-of-std'], default-features = false } + wasi = { version = "0.11.0", features = ['rustc-dep-of-std'], default-features = false } +[target.'cfg(target_os = "sunrise")'.dependencies] +# Need #SunriseOS/SunriseOS#402 to actually build -+sunrise-libuser = { git = "https://github.com/sunriseos/sunriseos.git", default-features = false, features = ['rustc-dep-of-std'] } -+lazy_static = { version = "1.3", features = ['spin_no_std'] } ++sunrise-libuser = { path = "../../../libuser", default-features = false, features = ['rustc-dep-of-std'] } +log = "0.4" -+spin = "0.5" + [features] - default = ["std_detect_file_io", "std_detect_dlsym_getauxval", "panic-unwind"] - -@@ -58,11 +66,11 @@ backtrace = [ - - panic-unwind = ["panic_unwind"] - profiler = ["profiler_builtins"] --compiler-builtins-c = ["alloc/compiler-builtins-c"] -+#compiler-builtins-c = ["alloc/compiler-builtins-c"] - llvm-libunwind = ["unwind/llvm-libunwind"] - - # Make panics and failed asserts immediately abort without formatting any message --panic_immediate_abort = ["core/panic_immediate_abort"] -+#panic_immediate_abort = ["core/panic_immediate_abort"] - - # Enable std_detect default features for stdarch/crates/std_detect: - # https://github.com/rust-lang/stdarch/blob/master/crates/std_detect/Cargo.toml -diff --git a/src/libstd/error.rs b/src/libstd/error.rs -index 24b57f1..d84ca86 100644 ---- a/src/libstd/error.rs -+++ b/src/libstd/error.rs -@@ -546,7 +546,7 @@ impl Error for char::ParseCharError { - } - - #[unstable(feature = "try_reserve", reason = "new API", issue = "48043")] --impl Error for alloc::collections::TryReserveError {} -+impl Error for alloc_crate::collections::TryReserveError {} - - // Copied from `any.rs`. - impl dyn Error + 'static { -diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs -index cc3e613..d72f193 100644 ---- a/src/libstd/lib.rs -+++ b/src/libstd/lib.rs -@@ -479,7 +479,7 @@ pub mod task { - - #[doc(inline)] - #[unstable(feature = "wake_trait", issue = "69912")] -- pub use alloc::task::*; -+ pub use alloc_crate::task::*; - } - - #[stable(feature = "futures_api", since = "1.36.0")] -diff --git a/src/libstd/os/mod.rs b/src/libstd/os/mod.rs -index fd6ee08..72af6c6 100644 ---- a/src/libstd/os/mod.rs -+++ b/src/libstd/os/mod.rs -@@ -35,6 +35,9 @@ cfg_if::cfg_if! { - #[cfg(any(target_os = "linux", target_os = "l4re"))] - pub mod linux; - -+ #[cfg(any(target_os = "sunrise"))] -+ #[stable(feature = "rust1", since = "1.0.0")] -+ pub use crate::sys::ext as sunrise; - } - } - -diff --git a/src/libstd/os/raw/mod.rs b/src/libstd/os/raw/mod.rs -index 47daf0c..2b9ddf5 100644 ---- a/src/libstd/os/raw/mod.rs -+++ b/src/libstd/os/raw/mod.rs -@@ -47,7 +47,8 @@ - target_arch = "powerpc" - ) - ), -- all(target_os = "fuchsia", target_arch = "aarch64") -+ all(target_os = "fuchsia", target_arch = "aarch64"), -+ target_os = "sunrise" - ))] - #[stable(feature = "raw_os", since = "1.1.0")] - pub type c_char = u8; -@@ -90,7 +91,8 @@ pub type c_char = u8; - target_arch = "powerpc" - ) - ), -- all(target_os = "fuchsia", target_arch = "aarch64") -+ all(target_os = "fuchsia", target_arch = "aarch64"), -+ target_os = "sunrise" - )))] - #[stable(feature = "raw_os", since = "1.1.0")] - pub type c_char = i8; -diff --git a/src/libstd/path.rs b/src/libstd/path.rs -index 0fe5451..1772b96 100644 ---- a/src/libstd/path.rs -+++ b/src/libstd/path.rs -@@ -188,7 +188,7 @@ pub enum Prefix<'a> { - - impl<'a> Prefix<'a> { - #[inline] -- fn len(&self) -> usize { -+ pub(crate) fn len(&self) -> usize { - use self::Prefix::*; - fn os_str_len(s: &OsStr) -> usize { - os_str_as_u8_slice(s).len() -@@ -304,18 +304,17 @@ unsafe fn u8_slice_as_os_str(s: &[u8]) -> &OsStr { - &*(s as *const [u8] as *const OsStr) - } - --// Detect scheme on Redox --fn has_redox_scheme(s: &[u8]) -> bool { -- cfg!(target_os = "redox") && s.contains(&b':') --} -- - //////////////////////////////////////////////////////////////////////////////// - // Cross-platform, iterator-independent parsing - //////////////////////////////////////////////////////////////////////////////// - - /// Says whether the first byte after the prefix is a separator. --fn has_physical_root(s: &[u8], prefix: Option>) -> bool { -- let path = if let Some(p) = prefix { &s[p.len()..] } else { s }; -+fn has_physical_root(s: &[u8], prefix: Option>) -> bool { -+ let path = if let Some(p) = prefix { -+ &s[os_str_as_u8_slice(p.as_os_str()).len()..] -+ } else { -+ s -+ }; - !path.is_empty() && is_sep_byte(path[0]) - } - -@@ -425,6 +424,13 @@ impl<'a> PrefixComponent<'a> { - pub fn as_os_str(&self) -> &'a OsStr { - self.raw - } -+ -+ pub(crate) fn from_os_str_kind<'raw>(raw: &'raw OsStr, prefix: Prefix<'raw>) -> PrefixComponent<'raw> { -+ PrefixComponent { -+ raw, -+ parsed: prefix -+ } -+ } - } - - #[stable(feature = "rust1", since = "1.0.0")] -@@ -584,7 +590,7 @@ pub struct Components<'a> { - path: &'a [u8], - - // The prefix as it was originally parsed, if any -- prefix: Option>, -+ prefix: Option>, - - // true if path *physically* has a root separator; for most Windows - // prefixes, it may have a "logical" rootseparator for the purposes of -@@ -631,12 +637,12 @@ impl<'a> Components<'a> { - // how long is the prefix, if any? - #[inline] - fn prefix_len(&self) -> usize { -- self.prefix.as_ref().map(Prefix::len).unwrap_or(0) -+ self.prefix.map(|v| v.as_os_str().len()).unwrap_or(0) - } - - #[inline] - fn prefix_verbatim(&self) -> bool { -- self.prefix.as_ref().map(Prefix::is_verbatim).unwrap_or(false) -+ self.prefix.as_ref().map(|v| v.kind().is_verbatim()).unwrap_or(false) - } - - /// how much of the prefix is left from the point of view of iteration? -@@ -695,7 +701,7 @@ impl<'a> Components<'a> { - return true; - } - if let Some(p) = self.prefix { -- if p.has_implicit_root() { -+ if p.kind().has_implicit_root() { - return true; - } - } -@@ -868,12 +874,8 @@ impl<'a> Iterator for Components<'a> { - State::Prefix if self.prefix_len() > 0 => { - self.front = State::StartDir; - debug_assert!(self.prefix_len() <= self.path.len()); -- let raw = &self.path[..self.prefix_len()]; - self.path = &self.path[self.prefix_len()..]; -- return Some(Component::Prefix(PrefixComponent { -- raw: unsafe { u8_slice_as_os_str(raw) }, -- parsed: self.prefix.unwrap(), -- })); -+ return Some(Component::Prefix(self.prefix.unwrap())); - } - State::Prefix => { - self.front = State::StartDir; -@@ -885,7 +887,7 @@ impl<'a> Iterator for Components<'a> { - self.path = &self.path[1..]; - return Some(Component::RootDir); - } else if let Some(p) = self.prefix { -- if p.has_implicit_root() && !p.is_verbatim() { -+ if p.kind().has_implicit_root() && !p.kind().is_verbatim() { - return Some(Component::RootDir); - } - } else if self.include_cur_dir() { -@@ -932,7 +934,7 @@ impl<'a> DoubleEndedIterator for Components<'a> { - self.path = &self.path[..self.path.len() - 1]; - return Some(Component::RootDir); - } else if let Some(p) = self.prefix { -- if p.has_implicit_root() && !p.is_verbatim() { -+ if p.kind().has_implicit_root() && !p.kind().is_verbatim() { - return Some(Component::RootDir); - } - } else if self.include_cur_dir() { -@@ -942,10 +944,7 @@ impl<'a> DoubleEndedIterator for Components<'a> { - } - State::Prefix if self.prefix_len() > 0 => { - self.back = State::Done; -- return Some(Component::Prefix(PrefixComponent { -- raw: unsafe { u8_slice_as_os_str(self.path) }, -- parsed: self.prefix.unwrap(), -- })); -+ return Some(Component::Prefix(self.prefix.unwrap())); - } - State::Prefix => { - self.back = State::Done; -@@ -1196,7 +1195,7 @@ impl PathBuf { - let comps = self.components(); - if comps.prefix_len() > 0 - && comps.prefix_len() == comps.path.len() -- && comps.prefix.unwrap().is_drive() -+ && comps.prefix.unwrap().kind().is_drive() - { - need_sep = false - } -@@ -1887,12 +1886,7 @@ impl Path { - #[stable(feature = "rust1", since = "1.0.0")] - #[allow(deprecated)] - pub fn is_absolute(&self) -> bool { -- if cfg!(target_os = "redox") { -- // FIXME: Allow Redox prefixes -- self.has_root() || has_redox_scheme(self.as_u8_slice()) -- } else { -- self.has_root() && (cfg!(unix) || self.prefix().is_some()) -- } -+ self.has_root() && (cfg!(all(unix, not(target_os = "redox"))) || self.prefix().is_some()) - } - - /// Returns `true` if the `Path` is relative, i.e., not absolute. -@@ -1913,7 +1907,7 @@ impl Path { - !self.is_absolute() - } - -- fn prefix(&self) -> Option> { -+ fn prefix(&self) -> Option> { - self.components().prefix - } - -@@ -2291,8 +2285,7 @@ impl Path { - Components { - path: self.as_u8_slice(), - prefix, -- has_physical_root: has_physical_root(self.as_u8_slice(), prefix) -- || has_redox_scheme(self.as_u8_slice()), -+ has_physical_root: has_physical_root(self.as_u8_slice(), prefix), - front: State::Prefix, - back: State::Body, - } -diff --git a/src/libstd/sys/hermit/path.rs b/src/libstd/sys/hermit/path.rs -index 840a7ae..8a47064 100644 ---- a/src/libstd/sys/hermit/path.rs -+++ b/src/libstd/sys/hermit/path.rs -@@ -1,5 +1,5 @@ - use crate::ffi::OsStr; --use crate::path::Prefix; -+use crate::path::PrefixComponent; - - #[inline] - pub fn is_sep_byte(b: u8) -> bool { -@@ -11,7 +11,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'/' - } - --pub fn parse_prefix(_: &OsStr) -> Option> { -+pub fn parse_prefix(_: &OsStr) -> Option> { - None - } - -diff --git a/src/libstd/sys/mod.rs b/src/libstd/sys/mod.rs -index 875ff1a..e75f713 100644 ---- a/src/libstd/sys/mod.rs -+++ b/src/libstd/sys/mod.rs -@@ -41,6 +41,9 @@ cfg_if::cfg_if! { - } else if #[cfg(target_os = "wasi")] { - mod wasi; - pub use self::wasi::*; + backtrace = [ + "gimli-symbolize", +diff --git a/library/std/build.rs b/library/std/build.rs +index 8b1a06e..9d57542 100644 +--- a/library/std/build.rs ++++ b/library/std/build.rs +@@ -31,6 +31,7 @@ fn main() { + || target.contains("espidf") + || target.contains("solid") + || target.contains("nintendo-3ds") ++ || target.contains("sunrise") + { + // These platforms don't have any special requirements. + } else { +diff --git a/library/std/src/os/mod.rs b/library/std/src/os/mod.rs +index 6fbaa42..f0b35af 100644 +--- a/library/std/src/os/mod.rs ++++ b/library/std/src/os/mod.rs +@@ -84,6 +84,10 @@ pub mod unix; + #[cfg(any(target_os = "linux", doc))] + pub mod linux; + ++// sunrise ++#[cfg(target_os = "sunrise")] ++pub mod sunrise; ++ + // wasi + #[cfg(not(all( + doc, +diff --git a/library/std/src/os/sunrise/mod.rs b/library/std/src/os/sunrise/mod.rs +new file mode 100644 +index 0000000..9641ec8 +--- /dev/null ++++ b/library/std/src/os/sunrise/mod.rs +@@ -0,0 +1,25 @@ ++//! SunriseOS-specific definitions. ++ ++#![stable(feature = "raw_ext", since = "1.1.0")] ++#![doc(cfg(target_os = "sunrise"))] ++ ++#[path = "../unix/ffi/mod.rs"] ++pub mod ffi; ++ ++#[stable(feature = "rust1", since = "1.0.0")] ++pub mod prelude { ++ #[doc(no_inline)] ++ #[stable(feature = "rust1", since = "1.0.0")] ++ pub use super::ffi::OsStrExt; ++ #[doc(no_inline)] ++ #[stable(feature = "rust1", since = "1.0.0")] ++ pub use super::ffi::OsStringExt; ++ ++ #[doc(no_inline)] ++ #[stable(feature = "rust1", since = "1.0.0")] ++ pub use sunrise_libuser::capabilities; ++ ++ #[doc(no_inline)] ++ #[stable(feature = "rust1", since = "1.0.0")] ++ pub use sunrise_libuser::syscalls::nr; ++} +diff --git a/library/std/src/sys/mod.rs b/library/std/src/sys/mod.rs +index 167c918..dd0beab 100644 +--- a/library/std/src/sys/mod.rs ++++ b/library/std/src/sys/mod.rs +@@ -43,6 +43,9 @@ cfg_if::cfg_if! { + } else if #[cfg(target_family = "wasm")] { + mod wasm; + pub use self::wasm::*; + } else if #[cfg(target_os = "sunrise")] { + mod sunrise; + pub use self::sunrise::*; - } else if #[cfg(target_arch = "wasm32")] { - mod wasm; - pub use self::wasm::*; -diff --git a/src/libstd/sys/sgx/path.rs b/src/libstd/sys/sgx/path.rs -index 06c9df3..5172bd2 100644 ---- a/src/libstd/sys/sgx/path.rs -+++ b/src/libstd/sys/sgx/path.rs -@@ -1,5 +1,5 @@ - use crate::ffi::OsStr; --use crate::path::Prefix; -+use crate::path::PrefixComponent; - - #[inline] - pub fn is_sep_byte(b: u8) -> bool { -@@ -11,7 +11,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'/' - } - --pub fn parse_prefix(_: &OsStr) -> Option> { -+pub fn parse_prefix(_: &OsStr) -> Option> { - None - } - -diff --git a/src/libstd/sys/sunrise/alloc.rs b/src/libstd/sys/sunrise/alloc.rs + } else if #[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] { + mod sgx; + pub use self::sgx::*; +diff --git a/library/std/src/sys/sunrise/alloc.rs b/library/std/src/sys/sunrise/alloc.rs new file mode 100644 index 0000000..2048e9a --- /dev/null -+++ b/src/libstd/sys/sunrise/alloc.rs ++++ b/library/std/src/sys/sunrise/alloc.rs @@ -0,0 +1,17 @@ +//! This is an implementation of a global allocator on the surnise platform using libuser. +use crate::alloc::{GlobalAlloc, Layout, System}; @@ -1303,12 +200,12 @@ index 0000000..2048e9a + } + +} -diff --git a/src/libstd/sys/sunrise/args.rs b/src/libstd/sys/sunrise/args.rs +diff --git a/library/std/src/sys/sunrise/args.rs b/library/std/src/sys/sunrise/args.rs new file mode 100644 -index 0000000..cdd1652 +index 0000000..64d67cd --- /dev/null -+++ b/src/libstd/sys/sunrise/args.rs -@@ -0,0 +1,92 @@ ++++ b/library/std/src/sys/sunrise/args.rs +@@ -0,0 +1,93 @@ +use crate::ffi::OsString; +use crate::marker::PhantomData; +use crate::vec; @@ -1324,6 +221,7 @@ index 0000000..cdd1652 + imp::args() +} + ++#[derive(Debug)] +pub struct Args { + iter: vec::IntoIter, + _dont_send_or_sync_me: PhantomData<*mut ()>, @@ -1364,13 +262,13 @@ index 0000000..cdd1652 + use crate::marker::PhantomData; + use super::Args; + -+ use crate::sys_common::mutex::Mutex; ++ use crate::sync::Mutex; + + static mut ARGC: isize = 0; + static mut ARGV: *const *const u8 = ptr::null(); + // We never call `ENV_LOCK.init()`, so it is UB to attempt to + // acquire this mutex reentrantly! -+ static LOCK: Mutex = Mutex::new(); ++ static LOCK: Mutex<()> = Mutex::new(()); + + pub unsafe fn init(argc: isize, argv: *const *const u8) { + let _guard = LOCK.lock(); @@ -1395,17 +293,17 @@ index 0000000..cdd1652 + unsafe { + let _guard = LOCK.lock(); + (0..ARGC).map(|i| { -+ let cstr = CStr::from_ptr(*ARGV.offset(i) as *const libc::c_char); ++ let cstr = CStr::from_ptr(*ARGV.offset(i) as *const crate::os::raw::c_char); + OsStringExt::from_vec(cstr.to_bytes().to_vec()) + }).collect() + } + } +} -diff --git a/src/libstd/sys/sunrise/cmath.rs b/src/libstd/sys/sunrise/cmath.rs +diff --git a/library/std/src/sys/sunrise/cmath.rs b/library/std/src/sys/sunrise/cmath.rs new file mode 100644 index 0000000..fa77831 --- /dev/null -+++ b/src/libstd/sys/sunrise/cmath.rs ++++ b/library/std/src/sys/sunrise/cmath.rs @@ -0,0 +1,29 @@ +// These symbols are all defined in `compiler-builtins` +extern { @@ -1436,11 +334,11 @@ index 0000000..fa77831 + pub fn tanh(n: f64) -> f64; + pub fn tanhf(n: f32) -> f32; +} -diff --git a/src/libstd/sys/sunrise/condvar.rs b/src/libstd/sys/sunrise/condvar.rs +diff --git a/library/std/src/sys/sunrise/condvar.rs b/library/std/src/sys/sunrise/condvar.rs new file mode 100644 index 0000000..b109970 --- /dev/null -+++ b/src/libstd/sys/sunrise/condvar.rs ++++ b/library/std/src/sys/sunrise/condvar.rs @@ -0,0 +1,38 @@ +use crate::sys::mutex::Mutex; +use crate::time::Duration; @@ -1480,11 +378,11 @@ index 0000000..b109970 + panic!("not supported on sunrise yet") + } +} -diff --git a/src/libstd/sys/sunrise/env.rs b/src/libstd/sys/sunrise/env.rs +diff --git a/library/std/src/sys/sunrise/env.rs b/library/std/src/sys/sunrise/env.rs new file mode 100644 index 0000000..5388690 --- /dev/null -+++ b/src/libstd/sys/sunrise/env.rs ++++ b/library/std/src/sys/sunrise/env.rs @@ -0,0 +1,9 @@ +pub mod os { + pub const FAMILY: &str = "sunrise"; @@ -1495,11 +393,11 @@ index 0000000..5388690 + pub const EXE_SUFFIX: &str = ""; + pub const EXE_EXTENSION: &str = ""; +} -diff --git a/src/libstd/sys/sunrise/ext/ffi.rs b/src/libstd/sys/sunrise/ext/ffi.rs +diff --git a/library/std/src/sys/sunrise/ext/ffi.rs b/library/std/src/sys/sunrise/ext/ffi.rs new file mode 100644 index 0000000..5233578 --- /dev/null -+++ b/src/libstd/sys/sunrise/ext/ffi.rs ++++ b/library/std/src/sys/sunrise/ext/ffi.rs @@ -0,0 +1,38 @@ +//! Sunrise-specific extension to the primitives in the `std::ffi` module. +//! @@ -1539,11 +437,11 @@ index 0000000..5233578 + +#[stable(feature = "rust1", since = "1.0.0")] +pub use crate::sys_common::os_str_bytes::*; -diff --git a/src/libstd/sys/sunrise/ext/mod.rs b/src/libstd/sys/sunrise/ext/mod.rs +diff --git a/library/std/src/sys/sunrise/ext/mod.rs b/library/std/src/sys/sunrise/ext/mod.rs new file mode 100644 index 0000000..2b04f02 --- /dev/null -+++ b/src/libstd/sys/sunrise/ext/mod.rs ++++ b/library/std/src/sys/sunrise/ext/mod.rs @@ -0,0 +1,35 @@ +//! Experimental extensions to `std` for Sunrise platforms. +//! @@ -1580,25 +478,16 @@ index 0000000..2b04f02 + #[doc(no_inline)] #[stable(feature = "rust1", since = "1.0.0")] + pub use sunrise_libuser::syscalls::nr; +} -diff --git a/src/libstd/sys/sunrise/fast_thread_local.rs b/src/libstd/sys/sunrise/fast_thread_local.rs +diff --git a/library/std/src/sys/sunrise/fs/mod.rs b/library/std/src/sys/sunrise/fs/mod.rs new file mode 100644 -index 0000000..1108e25 +index 0000000..fa62c5a --- /dev/null -+++ b/src/libstd/sys/sunrise/fast_thread_local.rs -@@ -0,0 +1,4 @@ -+#![cfg(target_thread_local)] -+#![unstable(feature = "thread_local_internals", issue = "none")] -+ -+pub use crate::sys_common::thread_local::register_dtor_fallback as register_dtor; -diff --git a/src/libstd/sys/sunrise/fs/mod.rs b/src/libstd/sys/sunrise/fs/mod.rs -new file mode 100644 -index 0000000..1bc5bab ---- /dev/null -+++ b/src/libstd/sys/sunrise/fs/mod.rs -@@ -0,0 +1,644 @@ ++++ b/library/std/src/sys/sunrise/fs/mod.rs +@@ -0,0 +1,642 @@ +use crate::ffi::OsString; +use crate::fmt; -+use crate::io::{self, SeekFrom, IoSlice, IoSliceMut}; ++use crate::io::{self, ReadBuf, SeekFrom, IoSlice, IoSliceMut}; ++use crate::sync::LazyLock; +use crate::sys::time::{UNIX_EPOCH, SystemTime}; +use crate::sys::unsupported; +use crate::time::Duration; @@ -1606,7 +495,6 @@ index 0000000..1bc5bab + +use crate::sync::Arc; +use crate::collections::HashMap; -+use lazy_static::lazy_static; +use sunrise_libuser::fs::{DirectoryEntry, DirectoryEntryType, FileTimeStampRaw, IDirectoryProxy, IFileSystemServiceProxy, IFileSystemProxy, IFileProxy}; + +use crate::sys::os::getcwd; @@ -1616,7 +504,7 @@ index 0000000..1bc5bab + +use sunrise_libuser::error::{Error as LibUserError, FileSystemError}; + -+pub use crate::sys_common::fs::remove_dir_all; ++pub use crate::sys_common::fs::{copy, remove_dir_all, try_exists}; + +#[stable(feature = "rust1", since = "1.0.0")] +impl From for Error { @@ -1651,10 +539,8 @@ index 0000000..1bc5bab +} + + -+lazy_static! { -+ /// Registry of all filesystem prefix registered -+ static ref SCHEMA_REGISTRY: Mutex>> = Mutex::new(HashMap::new()); -+} ++/// Registry of all filesystem prefix registered ++static SCHEMA_REGISTRY: LazyLock>>> = LazyLock::new(|| Mutex::new(HashMap::new())); + +#[cfg(not(test))] +pub fn init() { @@ -1707,6 +593,9 @@ index 0000000..1bc5bab + create_new: bool +} + ++#[derive(Copy, Clone, Debug, Default)] ++pub struct FileTimes {} ++ +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +pub struct FilePermissions; + @@ -1865,6 +754,11 @@ index 0000000..1bc5bab + } +} + ++impl FileTimes { ++ pub fn set_accessed(&mut self, _t: SystemTime) {} ++ pub fn set_modified(&mut self, _t: SystemTime) {} ++} ++ +impl File { + pub fn open(p: &Path, opts: &OpenOptions) -> io::Result { + let path = getcwd()?.join(p); @@ -1941,6 +835,10 @@ index 0000000..1bc5bab + false + } + ++ pub fn read_buf(&self, buf: &mut ReadBuf<'_>) -> io::Result<()> { ++ crate::io::default_read_buf(|buf| self.read(buf), buf) ++ } ++ + pub fn write(&self, buf: &[u8]) -> io::Result { + let mut offset = self.offset.try_lock().unwrap(); + @@ -2012,6 +910,11 @@ index 0000000..1bc5bab + pub fn set_permissions(&self, _perm: FilePermissions) -> io::Result<()> { + Ok(()) + } ++ ++ pub fn set_times(&self, _times: FileTimes) -> io::Result<()> { ++ // TODO(Sunrise): implement set_times. ++ Ok(()) ++ } +} + +impl DirBuilder { @@ -2223,28 +1126,11 @@ index 0000000..1bc5bab +pub fn canonicalize(p: &Path) -> io::Result { + Ok(PathBuf::from(get_absolute_path(p.to_str().unwrap()))) +} -+ -+pub fn copy(from: &Path, to: &Path) -> io::Result { -+ use crate::fs::File; -+ -+ if !from.is_file() { -+ return Err(io::Error::new(io::ErrorKind::InvalidInput, -+ "the source path is not an existing regular file")) -+ } -+ -+ let mut reader = File::open(from)?; -+ let mut writer = File::create(to)?; -+ let perm = reader.metadata()?.permissions(); -+ -+ let ret = io::copy(&mut reader, &mut writer)?; -+ writer.set_permissions(perm)?; -+ Ok(ret) -+} -diff --git a/src/libstd/sys/sunrise/io.rs b/src/libstd/sys/sunrise/io.rs +diff --git a/library/std/src/sys/sunrise/io.rs b/library/std/src/sys/sunrise/io.rs new file mode 100644 index 0000000..5adf1ec --- /dev/null -+++ b/src/libstd/sys/sunrise/io.rs ++++ b/library/std/src/sys/sunrise/io.rs @@ -0,0 +1,45 @@ +#[derive(Copy, Clone)] +pub struct IoSlice<'a>(&'a [u8]); @@ -2291,19 +1177,19 @@ index 0000000..5adf1ec + self.0 + } +} -diff --git a/src/libstd/sys/sunrise/memchr.rs b/src/libstd/sys/sunrise/memchr.rs +diff --git a/library/std/src/sys/sunrise/memchr.rs b/library/std/src/sys/sunrise/memchr.rs new file mode 100644 index 0000000..9967482 --- /dev/null -+++ b/src/libstd/sys/sunrise/memchr.rs ++++ b/library/std/src/sys/sunrise/memchr.rs @@ -0,0 +1 @@ +pub use core::slice::memchr::{memchr, memrchr}; -diff --git a/src/libstd/sys/sunrise/mod.rs b/src/libstd/sys/sunrise/mod.rs +diff --git a/library/std/src/sys/sunrise/mod.rs b/library/std/src/sys/sunrise/mod.rs new file mode 100644 -index 0000000..9c3d878 +index 0000000..92227a0 --- /dev/null -+++ b/src/libstd/sys/sunrise/mod.rs -@@ -0,0 +1,86 @@ ++++ b/library/std/src/sys/sunrise/mod.rs +@@ -0,0 +1,78 @@ +//! System bindings for the sunrise platform +//! +//! This is all super highly experimental and not actually intended for @@ -2313,36 +1199,33 @@ index 0000000..9c3d878 +//! Currently all functions here are basically stubs that immediately return +//! errors. + -+use crate::os::raw::c_char; -+ +pub mod alloc; +pub mod args; +pub mod cmath; +pub mod env; -+pub mod ext; -+pub mod fast_thread_local; +pub mod fs; +pub mod io; -+pub mod memchr; ++#[path = "../unsupported/locks/mod.rs"] ++pub mod locks; ++#[path = "../unsupported/net.rs"] +pub mod net; +pub mod os; ++#[path = "../unix/os_str.rs"] ++pub mod os_str; +pub mod path; +pub mod pipe; +pub mod process; -+pub mod stack_overflow; ++pub mod stdio; +pub mod thread; ++#[cfg(target_thread_local)] ++pub mod thread_local_dtor; ++pub mod thread_local_key; +pub mod time; -+pub mod stdio; + -+pub use crate::sys_common::os_str_bytes as os_str; -+ -+pub mod condvar; -+pub mod mutex; -+pub mod rwlock; -+pub mod thread_local; ++pub mod memchr; ++pub mod stack_overflow; + -+#[cfg(not(test))] -+pub fn init() { ++pub unsafe fn init(_argc: isize, _argv: *const *const u8) { + use core::intrinsics::abort; + if let Err(err) = stdio::init() { + log::error!("Error initializing stdio! {:?}", err); @@ -2351,6 +1234,10 @@ index 0000000..9c3d878 + fs::init(); +} + ++pub unsafe fn cleanup() { ++ stdio::cleanup(); ++} ++ +pub fn unsupported() -> crate::io::Result { + Err(unsupported_err()) +} @@ -2369,15 +1256,6 @@ index 0000000..9c3d878 +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)] +pub enum Void {} + -+pub unsafe fn strlen(mut s: *const c_char) -> usize { -+ let mut n = 0; -+ while *s != 0 { -+ n += 1; -+ s = s.offset(1); -+ } -+ return n -+} -+ +pub fn abort_internal() -> ! { + core::intrinsics::abort(); +} @@ -2390,11 +1268,11 @@ index 0000000..9c3d878 +pub fn hashmap_random_keys() -> (u64, u64) { + (1, 2) +} -diff --git a/src/libstd/sys/sunrise/mutex.rs b/src/libstd/sys/sunrise/mutex.rs +diff --git a/library/std/src/sys/sunrise/mutex.rs b/library/std/src/sys/sunrise/mutex.rs new file mode 100644 index 0000000..7ac8f4d --- /dev/null -+++ b/src/libstd/sys/sunrise/mutex.rs ++++ b/library/std/src/sys/sunrise/mutex.rs @@ -0,0 +1,68 @@ +use crate::cell::UnsafeCell; + @@ -2464,11 +1342,11 @@ index 0000000..7ac8f4d + + pub unsafe fn destroy(&self) {} +} -diff --git a/src/libstd/sys/sunrise/net.rs b/src/libstd/sys/sunrise/net.rs +diff --git a/library/std/src/sys/sunrise/net.rs b/library/std/src/sys/sunrise/net.rs new file mode 100644 index 0000000..21be842 --- /dev/null -+++ b/src/libstd/sys/sunrise/net.rs ++++ b/library/std/src/sys/sunrise/net.rs @@ -0,0 +1,366 @@ +use crate::fmt; +use crate::io::{self, IoSlice, IoSliceMut}; @@ -2836,12 +1714,12 @@ index 0000000..21be842 + + pub type socklen_t = usize; +} -diff --git a/src/libstd/sys/sunrise/os.rs b/src/libstd/sys/sunrise/os.rs +diff --git a/library/std/src/sys/sunrise/os.rs b/library/std/src/sys/sunrise/os.rs new file mode 100644 -index 0000000..5043ab5 +index 0000000..d8a26cb --- /dev/null -+++ b/src/libstd/sys/sunrise/os.rs -@@ -0,0 +1,188 @@ ++++ b/library/std/src/sys/sunrise/os.rs +@@ -0,0 +1,185 @@ +use crate::os::sunrise::prelude::*; + +use crate::error::Error as StdError; @@ -2852,12 +1730,11 @@ index 0000000..5043ab5 +use crate::path::{self, PathBuf}; +use crate::slice; +use crate::str; -+use crate::sync::Mutex; ++use crate::sync::{LazyLock, Mutex}; +use crate::vec::Vec; +use crate::collections::HashMap; +use crate::ptr; -+use crate::memchr; -+use lazy_static::lazy_static; ++use super::memchr; +use sunrise_libuser::argv::envp; + +pub fn errno() -> i32 { @@ -2945,41 +1822,39 @@ index 0000000..5043ab5 + panic!("not supported on sunrise yet") +} + -+lazy_static! { -+ /// Storage of all events of the current process. -+ static ref ENVIRONMENT_STORAGE: Mutex> = { -+ let mut environ = envp(); -+ let mut result = HashMap::new(); ++/// Storage of all events of the current process. ++static ENVIRONMENT_STORAGE: LazyLock>> = LazyLock::new(|| { ++ let mut environ = envp(); ++ let mut result = HashMap::new(); + -+ unsafe { -+ // Safety: Envp should return a valid pointer to a null-terminated -+ // array of null-terminated strings. -+ while environ != ptr::null() && *environ != ptr::null() { -+ if let Some((key, value)) = parse(CStr::from_ptr(*environ).to_bytes()) { -+ result.insert(key, value); -+ } -+ environ = environ.offset(1); ++ unsafe { ++ // Safety: Envp should return a valid pointer to a null-terminated ++ // array of null-terminated strings. ++ while environ != ptr::null() && *environ != ptr::null() { ++ if let Some((key, value)) = parse(CStr::from_ptr(*environ).to_bytes()) { ++ result.insert(key, value); + } ++ environ = environ.offset(1); + } ++ } + -+ fn parse(input: &[u8]) -> Option<(OsString, OsString)> { -+ // Strategy (copied from glibc): Variable name and value are separated -+ // by an ASCII equals sign '='. Since a variable name must not be -+ // empty, allow variable names starting with an equals sign. Skip all -+ // malformed lines. -+ if input.is_empty() { -+ return None; -+ } -+ let pos = memchr::memchr(b'=', &input[1..]).map(|p| p + 1); -+ pos.map(|p| ( -+ OsStringExt::from_vec(input[..p].to_vec()), -+ OsStringExt::from_vec(input[p+1..].to_vec()), -+ )) ++ fn parse(input: &[u8]) -> Option<(OsString, OsString)> { ++ // Strategy (copied from glibc): Variable name and value are separated ++ // by an ASCII equals sign '='. Since a variable name must not be ++ // empty, allow variable names starting with an equals sign. Skip all ++ // malformed lines. ++ if input.is_empty() { ++ return None; + } ++ let pos = memchr::memchr(b'=', &input[1..]).map(|p| p + 1); ++ pos.map(|p| ( ++ OsStringExt::from_vec(input[..p].to_vec()), ++ OsStringExt::from_vec(input[p+1..].to_vec()), ++ )) ++ } + -+ Mutex::new(result) -+ }; -+} ++ Mutex::new(result) ++}); + +pub struct Env(Vec<(OsString, OsString)>, usize); + @@ -2998,8 +1873,8 @@ index 0000000..5043ab5 + Env(env, 0) +} + -+pub fn getenv(k: &OsStr) -> io::Result> { -+ Ok(ENVIRONMENT_STORAGE.lock().unwrap().get(&k.to_os_string()).map(|v| v.to_os_string())) ++pub fn getenv(k: &OsStr) -> Option { ++ ENVIRONMENT_STORAGE.lock().unwrap().get(&k.to_os_string()).map(|v| v.to_os_string()) +} + +pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> { @@ -3030,13 +1905,13 @@ index 0000000..5043ab5 +pub fn getpid() -> u32 { + panic!("not supported on sunrise yet") +} -diff --git a/src/libstd/sys/sunrise/path.rs b/src/libstd/sys/sunrise/path.rs +diff --git a/library/std/src/sys/sunrise/path.rs b/library/std/src/sys/sunrise/path.rs new file mode 100644 -index 0000000..f9dbdca +index 0000000..6b8dfb3 --- /dev/null -+++ b/src/libstd/sys/sunrise/path.rs -@@ -0,0 +1,25 @@ -+use crate::path::{PrefixComponent, Prefix}; ++++ b/library/std/src/sys/sunrise/path.rs +@@ -0,0 +1,45 @@ ++use crate::path::{Path, PathBuf, PrefixComponent, Prefix}; +use crate::ffi::OsStr; + +#[inline] @@ -3061,11 +1936,31 @@ index 0000000..f9dbdca + +pub const MAIN_SEP_STR: &'static str = "/"; +pub const MAIN_SEP: char = '/'; -diff --git a/src/libstd/sys/sunrise/pipe.rs b/src/libstd/sys/sunrise/pipe.rs ++ ++/// Make a path absolute without changing its semantics. ++pub(crate) fn absolute(path: &Path) -> crate::io::Result { ++ // This is mostly a wrapper around collecting `Path::components`, with ++ // exceptions made where this conflicts with the POSIX specification. ++ // See 4.13 Pathname Resolution, IEEE Std 1003.1-2017 ++ // https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_13 ++ ++ // Get the components, skipping the redundant leading "." component if it exists. ++ let components = path.strip_prefix(".").unwrap_or(path).components(); ++ ++ let mut normalized = if path.is_absolute() { ++ PathBuf::new() ++ } else { ++ crate::env::current_dir()? ++ }; ++ normalized.extend(components); ++ ++ Ok(normalized) ++} +diff --git a/library/std/src/sys/sunrise/pipe.rs b/library/std/src/sys/sunrise/pipe.rs new file mode 100644 index 0000000..4cb8f61 --- /dev/null -+++ b/src/libstd/sys/sunrise/pipe.rs ++++ b/library/std/src/sys/sunrise/pipe.rs @@ -0,0 +1,41 @@ +use crate::io::{self, IoSlice, IoSliceMut}; +use crate::sys::Void; @@ -3108,19 +2003,21 @@ index 0000000..4cb8f61 + _v2: &mut Vec) -> io::Result<()> { + match p1.0 {} +} -diff --git a/src/libstd/sys/sunrise/process.rs b/src/libstd/sys/sunrise/process.rs +diff --git a/library/std/src/sys/sunrise/process.rs b/library/std/src/sys/sunrise/process.rs new file mode 100644 -index 0000000..1315e83 +index 0000000..30d7923 --- /dev/null -+++ b/src/libstd/sys/sunrise/process.rs -@@ -0,0 +1,216 @@ ++++ b/library/std/src/sys/sunrise/process.rs +@@ -0,0 +1,286 @@ ++use crate::num::{NonZeroI32, NonZeroU32}; +use crate::ffi::OsStr; +use crate::fmt; +use crate::io::{self, Error, ErrorKind}; ++use crate::path::Path; +use crate::sys::fs::File; +use crate::sys::pipe::AnonPipe; +use crate::sys::unsupported; -+use crate::sys_common::process::CommandEnv; ++use crate::sys_common::process::{CommandEnv, CommandEnvs}; +use crate::sync::Arc; +use crate::vec::Vec; +use crate::string::String; @@ -3192,6 +2089,22 @@ index 0000000..1315e83 + self.stderr = Some(stderr); + } + ++ pub fn get_program(&self) -> &OsStr { ++ OsStr::new(&self.program) ++ } ++ ++ pub fn get_args(&self) -> CommandArgs<'_> { ++ CommandArgs { args: &self.args } ++ } ++ ++ pub fn get_envs(&self) -> CommandEnvs<'_> { ++ self.env.iter() ++ } ++ ++ pub fn get_current_dir(&self) -> Option<&Path> { ++ None ++ } ++ + pub fn spawn(&mut self, _default: Stdio, _needs_stdin: bool) + -> io::Result<(Process, StdioPipes)> { + let interface = Arc::new(ILoaderInterfaceProxy::raw_new().expect("Cannot open a session with ILoaderInterface!")); @@ -3264,16 +2177,17 @@ index 0000000..1315e83 +pub struct ExitStatus(u32); + +impl ExitStatus { -+ pub fn success(&self) -> bool { -+ self.0 == 0 ++ pub fn exit_ok(&self) -> Result<(), ExitStatusError> { ++ match NonZeroU32::new(self.0) { ++ Some(v) => Err(ExitStatusError(v)), ++ None => Ok(()) ++ } + } + + pub fn code(&self) -> Option { -+ if self.success() { -+ None -+ } else { -+ Some(self.0 as i32) -+ } ++ self.exit_ok() ++ .err() ++ .map(|v| v.code().unwrap().get()) + } +} + @@ -3284,6 +2198,21 @@ index 0000000..1315e83 +} + +#[derive(PartialEq, Eq, Clone, Copy, Debug)] ++pub struct ExitStatusError(NonZeroU32); ++ ++impl Into for ExitStatusError { ++ fn into(self) -> ExitStatus { ++ ExitStatus(self.0.into()) ++ } ++} ++ ++impl ExitStatusError { ++ pub fn code(self) -> Option { ++ Some(NonZeroI32::new(self.0.get() as i32).unwrap()) ++ } ++} ++ ++#[derive(PartialEq, Eq, Clone, Copy, Debug)] +pub struct ExitCode(i32); + +impl ExitCode { @@ -3295,6 +2224,15 @@ index 0000000..1315e83 + } +} + ++impl From for ExitCode { ++ fn from(code: u8) -> Self { ++ match code { ++ 0 => Self::SUCCESS, ++ 1..=255 => Self::FAILURE, ++ } ++ } ++} ++ +pub struct Process { + pid: u64, + interface: Arc, @@ -3330,11 +2268,38 @@ index 0000000..1315e83 + unsupported() + } +} -diff --git a/src/libstd/sys/sunrise/rwlock.rs b/src/libstd/sys/sunrise/rwlock.rs ++ ++pub struct CommandArgs<'a> { ++ args: &'a [String] ++} ++ ++impl<'a> Iterator for CommandArgs<'a> { ++ type Item = &'a OsStr; ++ fn next(&mut self) -> Option<&'a OsStr> { ++ if let Some((first, rest)) = self.args.split_first() { ++ self.args = rest; ++ Some(OsStr::new(first)) ++ } else { ++ None ++ } ++ } ++ fn size_hint(&self) -> (usize, Option) { ++ (self.args.len(), Some(self.args.len())) ++ } ++} ++ ++impl<'a> ExactSizeIterator for CommandArgs<'a> {} ++ ++impl<'a> fmt::Debug for CommandArgs<'a> { ++ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { ++ f.debug_list().entries(self.args.iter()).finish() ++ } ++} +diff --git a/library/std/src/sys/sunrise/rwlock.rs b/library/std/src/sys/sunrise/rwlock.rs new file mode 100644 index 0000000..7813f90 --- /dev/null -+++ b/src/libstd/sys/sunrise/rwlock.rs ++++ b/library/std/src/sys/sunrise/rwlock.rs @@ -0,0 +1,72 @@ +use crate::cell::UnsafeCell; + @@ -3408,38 +2373,42 @@ index 0000000..7813f90 + pub unsafe fn destroy(&self) { + } +} -diff --git a/src/libstd/sys/sunrise/stack_overflow.rs b/src/libstd/sys/sunrise/stack_overflow.rs +diff --git a/library/std/src/sys/sunrise/stack_overflow.rs b/library/std/src/sys/sunrise/stack_overflow.rs new file mode 100644 index 0000000..d234169 --- /dev/null -+++ b/src/libstd/sys/sunrise/stack_overflow.rs ++++ b/library/std/src/sys/sunrise/stack_overflow.rs @@ -0,0 +1,5 @@ +pub unsafe fn init() { +} + +pub unsafe fn cleanup() { +} -diff --git a/src/libstd/sys/sunrise/stdio.rs b/src/libstd/sys/sunrise/stdio.rs +diff --git a/library/std/src/sys/sunrise/stdio.rs b/library/std/src/sys/sunrise/stdio.rs new file mode 100644 -index 0000000..0bb3cb0 +index 0000000..13c2df7 --- /dev/null -+++ b/src/libstd/sys/sunrise/stdio.rs -@@ -0,0 +1,107 @@ ++++ b/library/std/src/sys/sunrise/stdio.rs +@@ -0,0 +1,103 @@ +use crate::io; + +use sunrise_libuser::error::Error; +use sunrise_libuser::twili::{ITwiliServiceProxy, IPipeProxy}; +use crate::sync::{LockResult, RwLock}; -+use lazy_static::lazy_static; + +pub struct Stdin; +pub struct Stdout; +pub struct Stderr; + -+lazy_static! { -+ static ref PIPE_STDIN: RwLock> = RwLock::new(None); -+ static ref PIPE_STDOUT: RwLock> = RwLock::new(None); -+ static ref PIPE_STDERR: RwLock> = RwLock::new(None); ++static PIPE_STDIN: RwLock> = RwLock::new(None); ++static PIPE_STDOUT: RwLock> = RwLock::new(None); ++static PIPE_STDERR: RwLock> = RwLock::new(None); ++ ++fn get_poison_inner(result: LockResult) -> T { ++ match result { ++ Ok(val) => val, ++ Err(err) => err.into_inner() ++ } +} + +pub fn init() -> Result<(), Error> { @@ -3448,26 +2417,18 @@ index 0000000..0bb3cb0 + *get_poison_inner(PIPE_STDOUT.write()) = Some(stdout); + *get_poison_inner(PIPE_STDERR.write()) = Some(stderr); + -+ fn get_poison_inner(result: LockResult) -> T { -+ match result { -+ Ok(val) => val, -+ Err(err) => err.into_inner() -+ } -+ } -+ -+ // Close the pipes on exit -+ let _ = crate::sys_common::at_exit(|| { -+ get_poison_inner(PIPE_STDIN.write()).take(); -+ get_poison_inner(PIPE_STDOUT.write()).take(); -+ get_poison_inner(PIPE_STDERR.write()).take(); -+ }); -+ + Ok(()) +} + ++pub fn cleanup() { ++ get_poison_inner(PIPE_STDIN.write()).take(); ++ get_poison_inner(PIPE_STDOUT.write()).take(); ++ get_poison_inner(PIPE_STDERR.write()).take(); ++} ++ +impl Stdin { -+ pub fn new() -> io::Result { -+ Ok(Stdin) ++ pub const fn new() -> Stdin { ++ Stdin + } +} + @@ -3482,8 +2443,8 @@ index 0000000..0bb3cb0 +} + +impl Stdout { -+ pub fn new() -> io::Result { -+ Ok(Stdout) ++ pub const fn new() -> Stdout { ++ Stdout + } +} + @@ -3502,8 +2463,8 @@ index 0000000..0bb3cb0 +} + +impl Stderr { -+ pub fn new() -> io::Result { -+ Ok(Stderr) ++ pub const fn new() -> Stderr { ++ Stderr + } +} + @@ -3530,18 +2491,18 @@ index 0000000..0bb3cb0 +} + +pub fn panic_output() -> Option { -+ Stderr::new().ok() ++ Some(Stderr::new()) +} -diff --git a/src/libstd/sys/sunrise/thread.rs b/src/libstd/sys/sunrise/thread.rs +diff --git a/library/std/src/sys/sunrise/thread.rs b/library/std/src/sys/sunrise/thread.rs new file mode 100644 -index 0000000..4a775e8 +index 0000000..3385e0a --- /dev/null -+++ b/src/libstd/sys/sunrise/thread.rs -@@ -0,0 +1,60 @@ ++++ b/library/std/src/sys/sunrise/thread.rs +@@ -0,0 +1,64 @@ +use crate::ffi::CStr; +use crate::io; ++use crate::num::NonZeroUsize; +use crate::time::Duration; -+use crate::usize; + +use sunrise_libuser::syscalls; +use sunrise_libuser::threads::{Thread as LibUserThread}; @@ -3593,16 +2554,27 @@ index 0000000..4a775e8 + } +} + ++pub fn available_parallelism() -> io::Result { ++ super::unsupported() ++} ++ +pub mod guard { + pub type Guard = !; + pub unsafe fn current() -> Option { None } + pub unsafe fn init() -> Option { None } +} -diff --git a/src/libstd/sys/sunrise/thread_local.rs b/src/libstd/sys/sunrise/thread_local.rs +diff --git a/library/std/src/sys/sunrise/thread_local_dtor.rs b/library/std/src/sys/sunrise/thread_local_dtor.rs new file mode 100644 -index 0000000..29e9854 +index 0000000..759bcec --- /dev/null -+++ b/src/libstd/sys/sunrise/thread_local.rs ++++ b/library/std/src/sys/sunrise/thread_local_dtor.rs +@@ -0,0 +1 @@ ++pub use crate::sys_common::thread_local_dtor::register_dtor_fallback as register_dtor; +diff --git a/library/std/src/sys/sunrise/thread_local_key.rs b/library/std/src/sys/sunrise/thread_local_key.rs +new file mode 100644 +index 0000000..13cea1c +--- /dev/null ++++ b/library/std/src/sys/sunrise/thread_local_key.rs @@ -0,0 +1,40 @@ +use crate::boxed::Box; +use crate::ptr; @@ -3615,7 +2587,7 @@ index 0000000..29e9854 +} + +#[inline] -+pub unsafe fn create(dtor: Option) -> Key { ++pub unsafe fn create(dtor: Option) -> Key { + Box::into_raw(Box::new(Allocated { + value: ptr::null_mut(), + dtor, @@ -3644,11 +2616,11 @@ index 0000000..29e9854 +pub fn requires_synchronized_create() -> bool { + false +} -diff --git a/src/libstd/sys/sunrise/time.rs b/src/libstd/sys/sunrise/time.rs +diff --git a/library/std/src/sys/sunrise/time.rs b/library/std/src/sys/sunrise/time.rs new file mode 100644 index 0000000..ea7f257 --- /dev/null -+++ b/src/libstd/sys/sunrise/time.rs ++++ b/library/std/src/sys/sunrise/time.rs @@ -0,0 +1,57 @@ +use crate::time::Duration; +use sunrise_libuser::time::RTCManagerProxy; @@ -3707,165 +2679,18 @@ index 0000000..ea7f257 + Some(SystemTime(self.0.checked_sub(*other)?)) + } +} -diff --git a/src/libstd/sys/unix/path.rs b/src/libstd/sys/unix/path.rs -index 840a7ae..fe20a8e 100644 ---- a/src/libstd/sys/unix/path.rs -+++ b/src/libstd/sys/unix/path.rs -@@ -1,5 +1,5 @@ - use crate::ffi::OsStr; --use crate::path::Prefix; -+use crate::path::{PrefixComponent, Prefix}; - - #[inline] - pub fn is_sep_byte(b: u8) -> bool { -@@ -11,7 +11,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'/' - } - --pub fn parse_prefix(_: &OsStr) -> Option> { -+pub fn parse_prefix(_: &OsStr) -> Option> { - None - } - -diff --git a/src/libstd/sys/vxworks/path.rs b/src/libstd/sys/vxworks/path.rs -index 840a7ae..8a47064 100644 ---- a/src/libstd/sys/vxworks/path.rs -+++ b/src/libstd/sys/vxworks/path.rs -@@ -1,5 +1,5 @@ - use crate::ffi::OsStr; --use crate::path::Prefix; -+use crate::path::PrefixComponent; - - #[inline] - pub fn is_sep_byte(b: u8) -> bool { -@@ -11,7 +11,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'/' - } - --pub fn parse_prefix(_: &OsStr) -> Option> { -+pub fn parse_prefix(_: &OsStr) -> Option> { - None - } - -diff --git a/src/libstd/sys/wasi/path.rs b/src/libstd/sys/wasi/path.rs -index 840a7ae..8a47064 100644 ---- a/src/libstd/sys/wasi/path.rs -+++ b/src/libstd/sys/wasi/path.rs -@@ -1,5 +1,5 @@ - use crate::ffi::OsStr; --use crate::path::Prefix; -+use crate::path::PrefixComponent; - - #[inline] - pub fn is_sep_byte(b: u8) -> bool { -@@ -11,7 +11,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'/' - } - --pub fn parse_prefix(_: &OsStr) -> Option> { -+pub fn parse_prefix(_: &OsStr) -> Option> { - None - } - -diff --git a/src/libstd/sys/wasm/path.rs b/src/libstd/sys/wasm/path.rs -index 840a7ae..8a47064 100644 ---- a/src/libstd/sys/wasm/path.rs -+++ b/src/libstd/sys/wasm/path.rs -@@ -1,5 +1,5 @@ - use crate::ffi::OsStr; --use crate::path::Prefix; -+use crate::path::PrefixComponent; - - #[inline] - pub fn is_sep_byte(b: u8) -> bool { -@@ -11,7 +11,7 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'/' - } - --pub fn parse_prefix(_: &OsStr) -> Option> { -+pub fn parse_prefix(_: &OsStr) -> Option> { - None - } - -diff --git a/src/libstd/sys/windows/path.rs b/src/libstd/sys/windows/path.rs -index 524f21f..4ef9e00 100644 ---- a/src/libstd/sys/windows/path.rs -+++ b/src/libstd/sys/windows/path.rs -@@ -1,6 +1,6 @@ - use crate::ffi::OsStr; - use crate::mem; --use crate::path::Prefix; -+use crate::path::{Prefix, PrefixComponent}; - - fn os_str_as_u8_slice(s: &OsStr) -> &[u8] { - unsafe { mem::transmute(s) } -@@ -19,7 +19,13 @@ pub fn is_verbatim_sep(b: u8) -> bool { - b == b'\\' - } - --pub fn parse_prefix(path: &OsStr) -> Option> { -+pub fn parse_prefix<'a>(path: &'a OsStr) -> Option> { -+ let pathu8 = os_str_as_u8_slice(path); -+ parse_prefix_simple(path) -+ .map(|v| PrefixComponent::from_os_str_kind(u8_slice_as_os_str(&pathu8[..v.len()]), v)) -+} -+ -+pub fn parse_prefix_simple(path: &OsStr) -> Option> { - use crate::path::Prefix::*; - unsafe { - // The unsafety here stems from converting between &OsStr and &[u8] -diff --git a/src/libstd/sys_common/mod.rs b/src/libstd/sys_common/mod.rs -index e03e0fc..642e3a6 100644 ---- a/src/libstd/sys_common/mod.rs -+++ b/src/libstd/sys_common/mod.rs -@@ -54,6 +54,7 @@ pub mod mutex; - #[cfg(any(doc, // see `mod os`, docs are generated for multiple platforms - unix, - target_os = "redox", -+ target_os = "sunrise", - target_os = "cloudabi", - target_os = "hermit", - target_arch = "wasm32", -@@ -73,6 +74,7 @@ cfg_if::cfg_if! { - if #[cfg(any(target_os = "cloudabi", - target_os = "l4re", +diff --git a/library/std/src/sys_common/mod.rs b/library/std/src/sys_common/mod.rs +index 80f56bf..b8e881f 100644 +--- a/library/std/src/sys_common/mod.rs ++++ b/library/std/src/sys_common/mod.rs +@@ -40,6 +40,7 @@ pub mod wtf8; + cfg_if::cfg_if! { + if #[cfg(any(target_os = "l4re", target_os = "hermit", + target_os = "sunrise", - all(target_arch = "wasm32", not(target_os = "emscripten")), + feature = "restricted-std", + all(target_family = "wasm", not(target_os = "emscripten")), all(target_vendor = "fortanix", target_env = "sgx")))] { - pub use crate::sys::net; -diff --git a/src/libtest/Cargo.toml b/src/libtest/Cargo.toml -index 170fbb9..0d4d72b 100644 ---- a/src/libtest/Cargo.toml -+++ b/src/libtest/Cargo.toml -@@ -24,8 +24,8 @@ proc_macro = { path = "../libproc_macro" } - # Forward features to the `std` crate as necessary - [features] - backtrace = ["std/backtrace"] --compiler-builtins-c = ["std/compiler-builtins-c"] -+#compiler-builtins-c = ["std/compiler-builtins-c"] - llvm-libunwind = ["std/llvm-libunwind"] - panic-unwind = ["std/panic_unwind"] --panic_immediate_abort = ["std/panic_immediate_abort"] -+#panic_immediate_abort = ["std/panic_immediate_abort"] - profiler = ["std/profiler"] -diff --git a/src/libunwind/Cargo.toml b/src/libunwind/Cargo.toml -index 77bcfff..307b359 100644 ---- a/src/libunwind/Cargo.toml -+++ b/src/libunwind/Cargo.toml -@@ -16,9 +16,9 @@ bench = false - doc = false - - [dependencies] --core = { path = "../libcore" } --libc = { version = "0.2.51", features = ['rustc-dep-of-std'], default-features = false } --compiler_builtins = "0.1.0" -+#core = { path = "../libcore" } -+libc = { version = "0.2.51", features = ['align'], default-features = false } -+#compiler_builtins = "0.1.0" - cfg-if = "0.1.8" - - [build-dependencies] -- -2.26.2 +2.32.1 (Apple Git-133) diff --git a/rust-toolchain b/rust-toolchain index 880f364b5..599f8d09b 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2020-05-27 \ No newline at end of file +nightly-2022-08-19 diff --git a/shell/src/main.rs b/shell/src/main.rs index d016acbad..f9fa3fbdc 100644 --- a/shell/src/main.rs +++ b/shell/src/main.rs @@ -3,7 +3,7 @@ //! Creates an interactive terminal window, providing a few functions useful to //! test Sunrise. Type help followed by enter to get a list of allowed commands. -#![feature(llvm_asm, naked_functions)] +#![feature(naked_functions)] #![no_std] // rustc warnings @@ -16,7 +16,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate alloc; diff --git a/shell/src/subcommands/test_divide_by_zero.rs b/shell/src/subcommands/test_divide_by_zero.rs index 636d519de..6c3e2677c 100644 --- a/shell/src/subcommands/test_divide_by_zero.rs +++ b/shell/src/subcommands/test_divide_by_zero.rs @@ -1,6 +1,7 @@ //! Test function ensuring divide by zero interruption kills only the current /// process. +use core::arch::asm; use alloc::string::String; use alloc::vec::Vec; @@ -15,10 +16,10 @@ pub static HELP: &str = "test_divide_by_zero: Check exception handling by throwi pub fn main(_stdin: IPipeProxy, _stdout: IPipeProxy, _stderr: IPipeProxy, _args: Vec) -> Result<(), Error> { // don't panic, we want to actually divide by zero unsafe { - llvm_asm!(" + asm!(" mov eax, 42 mov ecx, 0 - div ecx" :::: "volatile", "intel") + div ecx"); } Ok(()) } diff --git a/shell/src/subcommands/test_page_fault.rs b/shell/src/subcommands/test_page_fault.rs index 972ead7f5..aa82fd186 100644 --- a/shell/src/subcommands/test_page_fault.rs +++ b/shell/src/subcommands/test_page_fault.rs @@ -1,5 +1,6 @@ //! Test function ensuring pagefaults kills only the current process. +use core::arch::asm; use alloc::string::String; use alloc::vec::Vec; @@ -14,9 +15,9 @@ pub fn main(_stdin: IPipeProxy, _stdout: IPipeProxy, _stderr: IPipeProxy, _args: // dereference the null pointer. // doing this in rust is so UB, it's optimized out, so we do it in asm. unsafe { - llvm_asm!(" + asm!(" mov al, [0] - " ::: "eax" : "volatile", "intel") + ", out("eax") _) } Ok(()) -} \ No newline at end of file +} diff --git a/sm/src/main.rs b/sm/src/main.rs index 061d6ef0b..bb7e15ce2 100644 --- a/sm/src/main.rs +++ b/sm/src/main.rs @@ -33,7 +33,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate sunrise_libuser as libuser; diff --git a/swipc-parser/src/lib.rs b/swipc-parser/src/lib.rs index 6502715d2..8b5abdc10 100644 --- a/swipc-parser/src/lib.rs +++ b/swipc-parser/src/lib.rs @@ -35,7 +35,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] // TODO: Bring the SwIPC parser in-line with new upstream format. // BODY: Unknown can now carry a size (which behaves like bytes). Unsized unknown diff --git a/time/src/main.rs b/time/src/main.rs index 6d802473d..2903fa065 100644 --- a/time/src/main.rs +++ b/time/src/main.rs @@ -2,7 +2,6 @@ //! //! This service takes care of anything related with time. -#![feature(alloc_prelude, untagged_unions)] #![no_std] // rustc warnings @@ -15,7 +14,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate sunrise_libuser; @@ -28,7 +27,7 @@ extern crate log; mod timezone; -use alloc::prelude::v1::*; +use alloc::boxed::Box; use sunrise_libuser::syscalls; use sunrise_libuser::futures::{WaitableManager, WorkQueue}; diff --git a/vi/src/main.rs b/vi/src/main.rs index e6eba9b00..9fa7ce647 100644 --- a/vi/src/main.rs +++ b/vi/src/main.rs @@ -16,7 +16,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate sunrise_libuser as libuser; diff --git a/wall-clock/src/main.rs b/wall-clock/src/main.rs index d3b3be37b..8caa78fcf 100644 --- a/wall-clock/src/main.rs +++ b/wall-clock/src/main.rs @@ -14,7 +14,7 @@ // rustdoc warnings #![warn(missing_docs)] // hopefully this will soon become deny(missing_docs) -#![deny(intra_doc_link_resolution_failure)] +#![deny(rustdoc::broken_intra_doc_links)] #[macro_use] extern crate sunrise_libuser; From 9b6e166875ce5edf79cc5ea72a296cded3b0c64e Mon Sep 17 00:00:00 2001 From: roblabla Date: Sat, 10 Sep 2022 13:24:06 +0200 Subject: [PATCH 2/6] Update minimum supported qemu to 7.0.0 --- Makefile.toml | 2 +- docs/BUILDING.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.toml b/Makefile.toml index ecaafa6ea..f2547dc6f 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -32,7 +32,7 @@ QEMU_COMMON_FLAGS = """\ -vnc ${VNC_PORT} \ -no-reboot \ -drive id=diskA,file=DISK.img,format=raw,if=none -device ahci,id=ahci \ - -device ide-drive,drive=diskA,bus=ahci.0 \ + -device ide-hd,drive=diskA,bus=ahci.0 \ -machine q35 \ -m 512M""" diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 501c29cbf..172e8cd04 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -51,5 +51,5 @@ printed on stdout. - cargo-make: `0.31.0` - xargo: `0.3.18` - mkisofs-rs: `0.1.1` -- qemu-system-i386: `4.0.50` +- qemu-system-i386: `7.0.0` - cargo-travis: `https://github.com/roblabla/cargo-travis` branch `doc-upload-target` From 9909675190862c0667fbf55c1b8e067182f9dbd5 Mon Sep 17 00:00:00 2001 From: roblabla Date: Sat, 10 Sep 2022 13:25:13 +0200 Subject: [PATCH 3/6] Make rust patching process in cargo-make more robust --- Makefile.toml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/Makefile.toml b/Makefile.toml index f2547dc6f..bdbf85c72 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -168,7 +168,6 @@ command = "xargo" args = ["build", "--target=i386-unknown-sunrise-user", "--package=uutils", "-Z", "package-features", "--features=sunrise", "--no-default-features", "@@split(COMPILER_FLAGS, )"] [tasks.userspace-nostd] -internal = true command = "xargo" args = ["build", "--target=i386-unknown-sunrise-user", "@@split(COMPILER_FLAGS, )", "-p", "sunrise-shell", "-p", "sunrise-wall-clock", "-p", "sunrise-sm", @@ -376,9 +375,11 @@ script_runner = "@duckscript" script = [ ''' version = readfile rust-toolchain +version = trim ${version} date = split ${version} "-" array_remove ${date} 0 date = array_join ${date} "-" +date = trim ${date} datetime = concat ${date} " 12:00:00 +0000" function apply_patches @@ -386,7 +387,7 @@ function apply_patches patches = array_join ${patches} " " set_env GIT_COMMITTER_NAME patchsystem set_env GIT_COMMITTER_EMAIL patchsystem - exec git am --committer-date-is-author-date %{patches} + exec --fail-on-error git am --committer-date-is-author-date %{patches} end # If rust folder doesn't exist, create it, and import the rust source. @@ -396,8 +397,8 @@ if not is_path_exists ${CARGO_MAKE_WORKING_DIRECTORY}/rust sysroot = concat ${output.stdout} /lib/rustlib/src/rust/ cp ${sysroot} ${CARGO_MAKE_WORKING_DIRECTORY} cd ${CARGO_MAKE_WORKING_DIRECTORY}/rust/ - exec git init - exec git add . + exec --fail-on-error git init + exec --fail-on-error git add . set_env GIT_COMMITTER_NAME patchsystem set_env GIT_COMMITTER_EMAIL patchsystem set_env GIT_COMMITTER_DATE ${datetime} @@ -405,7 +406,7 @@ if not is_path_exists ${CARGO_MAKE_WORKING_DIRECTORY}/rust set_env GIT_AUTHOR_EMAIL patchsystem set_env GIT_AUTHOR_DATE ${datetime} echo "Importing rust-src" - exec git commit -m ${version} -q + exec --fail-on-error git commit -m ${version} -q unset_env GIT_AUTHOR_DATE unset_env GIT_AUTHOR_EMAIL unset_env GIT_AUTHOR_NAME @@ -421,32 +422,32 @@ cd ${CARGO_MAKE_WORKING_DIRECTORY}/rust/ # Check the original commit matches the current rust version. If it doesn't, # bail out, tell user they need to update their patches. -head_rev = exec git rev-list --max-parents=0 HEAD +head_rev = exec --fail-on-error git rev-list --max-parents=0 HEAD head_rev = trim ${head_rev.stdout} -message = exec git log --format=%B -n 1 ${head_rev} +message = exec --fail-on-error git log --format=%B -n 1 ${head_rev} message = trim ${message.stdout} -assert_eq ${message} ${version} "\nRust version doesn't match rust-toolchain. The patches will need to be updated. See docs/UPDATE_RUST.md for more information." +assert_eq ${message} ${version} "\nRust version ${message} doesn't match rust-toolchain ${version}. The patches will need to be updated. See docs/UPDATE_RUST.md for more information." # Check if there's any uncommitted changes. If there are, bail out, tell # user. -exec git update-index --refresh -status = exec git status --porcelain -z +exec --fail-on-error git update-index --refresh +status = exec --fail-on-error git status --porcelain -z status = trim ${status.stdout} status_empty = is_empty ${status} assert ${status_empty} "\nUncommited changes were found in the rust folder.\nEither commit them and create a patch, or set the USE_DIRTY_RUST_REPO environment variable." # Check if there's any commits that got changed. If there are, tell the user # to create patches. -output = exec git log --committer=^(?!patchsystem).*$ --perl-regexp --format=oneline +output = exec --fail-on-error git log --committer=^(?!patchsystem).*$ --perl-regexp --format=oneline output = trim ${output.stdout} output_empty = is_empty ${output} assert ${output_empty} "\nRust repo has commits that weren't properly added to the patch system.\nEither run create-patches, or set the USE_DIRTY_RUST_REPO environment variable." # Every commit belongs to the patchsystem, re-applying the patches is safe. # Reset to initial commit (which imports the rust tree) -head = exec git rev-list --max-parents=0 HEAD +head = exec --fail-on-error git rev-list --max-parents=0 HEAD head = trim ${head.stdout} -exec git reset --hard ${head} +exec --fail-on-error git reset --hard ${head} # Apply all patches. apply_patches '''] @@ -457,17 +458,17 @@ script = [ ''' cd rust # Get initial commit (which imports the rust tree) -head = exec git rev-list --max-parents=0 HEAD +head = exec --fail-on-error git rev-list --max-parents=0 HEAD head = trim ${head.stdout} # Change committer for the previous patches so they show up as being committed # by patchsystem. set_env FILTER_BRANCH_SQUELCH_WARNING 1 -exec git update-ref -d refs/original/refs/heads/master -exec git filter-branch --env-filter "export GIT_COMMITTER_NAME=patchsystem; export GIT_COMMITTER_EMAIL=patchsystem" -- ${head}.. +exec --fail-on-error git update-ref -d refs/original/refs/heads/master +exec --fail-on-error git filter-branch --env-filter "export GIT_COMMITTER_NAME=patchsystem; export GIT_COMMITTER_EMAIL=patchsystem" -- ${head}.. # Create patch for every commit after initial commit. -exec git format-patch -o ../rust-patches ${head}.. +exec --fail-on-error git format-patch -o ../rust-patches ${head}.. '''] [tasks.clippy] From d0374ab2409dee936f02dd3ef6159b9fa5898010 Mon Sep 17 00:00:00 2001 From: roblabla Date: Sat, 10 Sep 2022 13:26:52 +0200 Subject: [PATCH 4/6] Make bootstrap and kernel stacks much bigger --- bootstrap/src/bootstrap_stack.rs | 2 +- bootstrap/src/main.rs | 6 +++--- kernel/src/i386/stack.rs | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/bootstrap/src/bootstrap_stack.rs b/bootstrap/src/bootstrap_stack.rs index 38c0f79a0..c9bb8cb8b 100644 --- a/bootstrap/src/bootstrap_stack.rs +++ b/bootstrap/src/bootstrap_stack.rs @@ -35,7 +35,7 @@ use sunrise_libutils::log2_ceil; /// The size of a kernel stack in pages, not accounting for the page guard // Make sure this value is the same as the one in kernel, or bad things happen. -pub const STACK_SIZE: usize = 8; +pub const STACK_SIZE: usize = 4095; /// The size of a kernel stack in pages, with the page guard. pub const STACK_SIZE_WITH_GUARD: usize = STACK_SIZE + 1; diff --git a/bootstrap/src/main.rs b/bootstrap/src/main.rs index 42f1b81d2..63fda7c24 100644 --- a/bootstrap/src/main.rs +++ b/bootstrap/src/main.rs @@ -71,12 +71,12 @@ use crate::bootstrap_stack::BootstrapStack; /// 4 pages, PAGE_SIZE aligned. #[repr(align(4096))] -pub struct AlignedStack([u8; 4096 * 4]); +pub struct AlignedStack([u8; 4096 * 4096]); /// The stack we start on. /// /// The first thing we do is to make $esp point to it. -pub static mut STACK: AlignedStack = AlignedStack([0; 4096 * 4]); +pub static mut STACK: AlignedStack = AlignedStack([0; 4096 * 4096]); /// Prints raw hexdump of the stack. /// Use this if everything went wrong and you're really hopeless. @@ -117,7 +117,7 @@ pub unsafe extern fn bootstrap_start() -> ! { // Create the stack mov esp, {} - add esp, 16383 + add esp, 16777216 mov ebp, esp // Save multiboot infos addr present in ebx push ebx diff --git a/kernel/src/i386/stack.rs b/kernel/src/i386/stack.rs index 48bcebe90..cb28904b7 100644 --- a/kernel/src/i386/stack.rs +++ b/kernel/src/i386/stack.rs @@ -40,8 +40,9 @@ use crate::scheduler; use sunrise_libutils::log2_ceil; /// The size of a kernel stack in pages, not accounting for the page guard -// Make sure this value is the same as the one in bootstrap, or bad things happen. -pub const STACK_SIZE: usize = 8; +// Make sure this value stays in sync with bootstrap::bootstrap_stack::STACK_SIZE, +// or bad things happen. +pub const STACK_SIZE: usize = 4095; /// The size of a kernel stack in pages, with the page guard. pub const STACK_SIZE_WITH_GUARD: usize = STACK_SIZE + 1; From bf2d331357ebb2a8a392fc04bcc76499d90488b2 Mon Sep 17 00:00:00 2001 From: roblabla Date: Sat, 10 Sep 2022 13:28:33 +0200 Subject: [PATCH 5/6] Allow logging frame allocator state --- bootstrap/src/frame_alloc.rs | 83 ++++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/bootstrap/src/frame_alloc.rs b/bootstrap/src/frame_alloc.rs index 4444593fd..89571fd07 100644 --- a/bootstrap/src/frame_alloc.rs +++ b/bootstrap/src/frame_alloc.rs @@ -19,7 +19,7 @@ use sunrise_libutils::{bit_array_first_one, bit_array_first_count_one}; use crate::paging::PAGE_SIZE; use crate::address::PhysicalAddress; use crate::bootstrap_logging::Serial; -use core::fmt::Write; +use core::fmt::{self, Write}; /// A memory frame is the same size as a page pub const MEMORY_FRAME_SIZE: usize = PAGE_SIZE; @@ -192,41 +192,9 @@ impl FrameAllocator { 0x00000000, 0x00000001); - /* if log_enabled!(::log::Level::Info) { - let mut cur = None; - for (i, bitmap) in frames_bitmap.memory_bitmap.iter().enumerate() { - for j in 0..8 { - let curaddr = (i * 8 + j) * ::paging::PAGE_SIZE; - if bitmap & (1 << j) != 0 { - // Area is available - match cur { - None => cur = Some((FRAME_FREE, curaddr)), - Some((FRAME_OCCUPIED, last)) => { - info!("{:#010x} - {:#010x} OCCUPIED", last, curaddr); - cur = Some((FRAME_FREE, curaddr)); - }, - _ => () - } - } else { - // Area is occupied - match cur { - None => cur = Some((FRAME_OCCUPIED, curaddr)), - Some((FRAME_FREE, last)) => { - info!("{:#010x} - {:#010x} AVAILABLE", last, curaddr); - cur = Some((FRAME_OCCUPIED, curaddr)); - }, - _ => () - } - } - } - } - match cur { - Some((FRAME_FREE, last)) => info!("{:#010x} - {:#010x} AVAILABLE", last, 0xFFFFFFFFu32), - Some((FRAME_OCCUPIED, last)) => info!("{:#010x} - {:#010x} OCCUPIED", last, 0xFFFFFFFFu32), - _ => () - } - } */ - frames_bitmap.initialized = true + frames_bitmap.initialized = true; + + writeln!(Serial, "{:?}", frames_bitmap); } /// Panics if the frames bitmap was not initialized @@ -322,3 +290,46 @@ impl FrameAllocator { frames_bitmap.memory_bitmap.set_bit(frame, FRAME_FREE); } } + +impl fmt::Debug for AllocatorBitmap { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + if !self.initialized { + return write!(f, "FrameAllocator {{ uninitialized }}"); + } + + let mut cur = None; + for (i, bitmap) in self.memory_bitmap.iter().enumerate() { + for j in 0..8 { + let curaddr = (i * 8 + j) * crate::paging::PAGE_SIZE; + if bitmap & (1 << j) != 0 { + // Area is available + match cur { + None => cur = Some((FRAME_FREE, curaddr)), + Some((FRAME_OCCUPIED, last)) => { + writeln!(f, " {:#010x} - {:#010x} OCCUPIED", last, curaddr)?; + cur = Some((FRAME_FREE, curaddr)); + }, + _ => () + } + } else { + // Area is occupied + match cur { + None => cur = Some((FRAME_OCCUPIED, curaddr)), + Some((FRAME_FREE, last)) => { + writeln!(f, " {:#010x} - {:#010x} AVAILABLE", last, curaddr)?; + cur = Some((FRAME_OCCUPIED, curaddr)); + }, + _ => () + } + } + } + } + match cur { + Some((FRAME_FREE, last)) => writeln!(f, " {:#010x} - {:#010x} AVAILABLE", last, 0xFFFFFFFFu32)?, + Some((FRAME_OCCUPIED, last)) => writeln!(f, " {:#010x} - {:#010x} OCCUPIED", last, 0xFFFFFFFFu32)?, + _ => () + } + + Ok(()) + } +} From fc4a90926f3a10cc86523022e5f82a9463c82957 Mon Sep 17 00:00:00 2001 From: roblabla Date: Sat, 10 Sep 2022 13:29:23 +0200 Subject: [PATCH 6/6] Small fixes to page tables logging --- bootstrap/src/paging/table.rs | 2 +- kernel/src/paging/kernel_memory.rs | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/bootstrap/src/paging/table.rs b/bootstrap/src/paging/table.rs index d7e184eaa..e9ddf6518 100644 --- a/bootstrap/src/paging/table.rs +++ b/bootstrap/src/paging/table.rs @@ -325,7 +325,7 @@ pub trait PageTablesSet { fn update(&mut self, newstate: State) { let old_self = ::core::mem::replace(self, State::Present(0, 0)); let real_newstate = match (old_self, newstate) { - (State::Present(addr, phys), State::Present(newaddr, newphys)) if newphys - phys == newaddr - addr => State::Present(addr, phys), + (State::Present(addr, phys), State::Present(newaddr, newphys)) if newphys.checked_sub(phys) == Some(newaddr - addr) => State::Present(addr, phys), (State::Present(addr, phys), State::Present(_newaddr, _newphys)) => State::Present(addr, phys), (State::Guarded(addr), State::Guarded(_newaddr)) => State::Guarded(addr), (State::Available(addr), State::Available(_newaddr)) => State::Available(addr), diff --git a/kernel/src/paging/kernel_memory.rs b/kernel/src/paging/kernel_memory.rs index 25239e88b..8dab54d39 100644 --- a/kernel/src/paging/kernel_memory.rs +++ b/kernel/src/paging/kernel_memory.rs @@ -288,6 +288,12 @@ impl KernelMemory { /// Prints the state of the KernelLand by parsing the page tables. Used for debugging purposes. #[allow(clippy::missing_docs_in_private_items)] pub fn dump_kernelland_state(&mut self) { + self.write_kernelland_state(|v| info!("{}", v)); + } + + /// Prints the state of the KernelLand by parsing the page tables. Used for debugging purposes. + #[allow(clippy::missing_docs_in_private_items)] + pub fn write_kernelland_state(&mut self, f: F) { #[derive(Debug, Clone, Copy)] enum State { Present(VirtualAddress, PhysicalAddress), Guarded(VirtualAddress), Available(VirtualAddress) } impl State { @@ -299,7 +305,7 @@ impl KernelMemory { } } - fn update(&mut self, newstate: State) { + fn update(&mut self, newstate: State, f: &F) { //let old_self = ::core::mem::replace(self, State::Present(VirtualAddress(0), PhysicalAddress(0))); let old_self = *self; let real_newstate = match (old_self, newstate) { @@ -313,7 +319,7 @@ impl KernelMemory { => State::Present(addr, phys), // otherwise print the old mapping, and start a new one (old, new) => { - old.print(new.get_vaddr() - 1); + old.print(new.get_vaddr() - 1, f); new } }; @@ -328,12 +334,12 @@ impl KernelMemory { } } - fn print(&self, end_addr: VirtualAddress) { + fn print(&self, end_addr: VirtualAddress, f: &F) { match *self { - State::Guarded(addr) => info!("{:#010x} - {:#010x} - GUARDED", addr, end_addr), - State::Available(addr) => info!("{:#010x} - {:#010x} - AVAILABLE", addr, end_addr), - State::Present(addr, phys) => info!("{:#010x} - {:#010x} - MAPS {:#010x} - {:#010x} ({} frames)", - addr, end_addr, phys, (phys + (end_addr - addr)), ((end_addr + 1) - addr) / PAGE_SIZE), + State::Guarded(addr) => f(format_args!("{:#010x} - {:#010x} - GUARDED", addr, end_addr)), + State::Available(addr) => f(format_args!("{:#010x} - {:#010x} - AVAILABLE", addr, end_addr)), + State::Present(addr, phys) => f(format_args!("{:#010x} - {:#010x} - MAPS {:#010x} - {:#010x} ({} frames)", + addr, end_addr, phys, (phys + (end_addr - addr)), ((end_addr + 1) - addr) / PAGE_SIZE)), }; } } @@ -345,15 +351,15 @@ impl KernelMemory { // the first run None => { state = Some(State::from(entry, address)) }, // all others - Some(ref mut state) => state.update(State::from(entry, address)) + Some(ref mut state) => state.update(State::from(entry, address), &f) } address += length; }); // print the last state match state { - Some(state) => state.print(RecursiveTablesLand::start_addr() - 1), - None => info!("Tables are empty") + Some(state) => state.print(RecursiveTablesLand::start_addr() - 1, &f), + None => f(format_args!("Tables are empty")) } } }