1. 15 6月, 2020 4 次提交
    • R
      Rollup merge of #72879 - RalfJung:miri-tctx-at, r=oli-obk · f9c8a675
      Ralf Jung 提交于
      Miri: avoid tracking current location three times
      
      Miri tracks the current instruction to execute in the call stack, but it also additionally has two `TyCtxtAt` that carry a `Span` that also tracks the current instruction. That is quite silly, so this PR uses `TyCtxt` instead, and then uses a method for computing the current span when a `TyCtxtAt` is needed. Having less redundant (semi-)global state seems like a good improvement to me. :D
      
      To keep the ConstProp errors the same, I had to add the option to `error_to_const_error` to overwrite the span. Also for some reason this changes cycle errors a bit -- not sure if we are now better or worse as giving those queries the right span. (It is unfortunately quite easy to accidentally use `DUMMY_SP` by calling the query on a `TyCtxt` instead of a `TyCtxtAt`.)
      
      r? @oli-obk @EddyB
      f9c8a675
    • R
      Rollup merge of #72740 - estebank:recursive-indirection, r=matthewjasper · d97e8ca3
      Ralf Jung 提交于
      On recursive ADT, provide indirection structured suggestion
      d97e8ca3
    • R
      Rollup merge of #72707 - matthewjasper:rustc_min_spec, r=oli-obk · eef9356e
      Ralf Jung 提交于
      Use min_specialization in the remaining rustc crates
      
      This adds a lot of `transmute` calls to replace the unsound uses of specialization.
      It's ugly, but at least it's honest about what's going on.
      
      cc #71420, @RalfJung
      eef9356e
    • B
      Auto merge of #72080 - matthewjasper:uniform-impl-trait, r=nikomatsakis · ce6d3a73
      bors 提交于
      Clean up type alias impl trait implementation
      
      - Removes special case for top-level impl trait
      - Removes associated opaque types
      - Forbid lifetime elision in let position impl trait. This is consistent with the behavior for inferred types.
      - Handle lifetimes in type alias impl trait more uniformly with other parameters
      
      cc #69323
      cc #63063
      Closes #57188
      Closes #62988
      Closes #69136
      Closes #73061
      ce6d3a73
  2. 14 6月, 2020 4 次提交
    • R
      keep root_span and tcx together · 2210abea
      Ralf Jung 提交于
      2210abea
    • B
      Auto merge of #73089 - tmiasko:musl-1.1.24, r=kennytm · 4fb54ed4
      bors 提交于
      Update musl to 1.1.24
      
      Release notes since previous version 1.1.22:
      
      ## 1.1.23 release notes
      
      ### new features:
      - riscv64 port
      - configure now allows customizing AR and RANLIB vars
      - header-level support for new linux features in 5.1
      
      ### major internal changes:
      - removed extern __syscall; syscall header code is now fully self-contained
      
      ### performance:
      - new math library implementation for log/exp/pow
      - aarch64 dynamic tlsdesc function is streamlined
      
      ### compatibility & conformance:
      - O_TTY_INIT is now defined
      - sys/types.h no longer pollutes namespace with sys/sysmacros.h in any profile
      - powerpc asm is now compatible with clang internal assembler
      
      ### changes for new POSIX interpretations:
      - fgetwc now sets stream error indicator on encoding errors
      - fmemopen no longer rejects 0 size
      
      ### bugs fixed:
      - static TLS for shared libraries was allocated wrong on "Variant I" archs
      - crash in dladdr reading through uninitialized pointer on non-match
      - sigaltstack wrongly errored out on invalid ss_size when doing SS_DISABLE
      - getdents function misbehaved with buffer length larger than INT_MAX
      - set*id could deadlock after fork from multithreaded process
      
      ### arch-specfic bugs fixed:
      - s390x SO_PEERSEC definition was wrong
      - passing of 64-bit syscall arguments was broken on microblaze
      - posix_fadvise was broken on mips due to missing 7-arg syscall support
      - vrregset_t layout and member naming was wrong on powerpc64
      
      ## 1.1.24 release notes
      
      ### new features:
      - GLOB_TILDE extension to glob
      - non-stub catgets localization API, using netbsd binary catalog format
      - posix_spawn file actions for [f]chdir (extension, pending future standard)
      - secure_getenv function (extension)
      - copy_file_range syscall wrapper (Linux extension)
      - header-level support for new linux features in 5.2
      
      ### performance:
      - new fast path for lrint (generic C version) on 32-bit archs
      
      ### major internal changes:
      - functions involving time are overhauled to be time64-ready in 32-bit archs
      - x32 uses the new time64 code paths to replace nasty hacks in syscall glue
      
      ### compatibility & conformance:
      - support for powerpc[64] unaligned relocation types
      - powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h
      - select no longer modifies timeout on failure (or at all)
      - mips64 stat results are no longer limited to 32-bit time range
      - optreset (BSD extension) now has a public declaration
      - support for clang inconsistencies in wchar_t type vs some 32-bit archs
      - mips r6 syscall asm no longer has invalid lo/hi register clobbers
      - vestigial asm declarations of __tls_get_new are removed (broke some tooling)
      - riscv64 mcontext_t mismatch glibc's member naming is corrected
      
      ### bugs fixed:
      - glob failed to match broken symlinks consistently
      - invalid use of interposed calloc to allocate initial TLS
      - various dlsym symbol resolution logic errors
      - semctl with SEM_STAT_ANY didn't work
      - pthread_create with explicit scheduling was subject to priority inversion
      - pthread_create failure path had data race for thread count
      - timer_create with SIGEV_THREAD notification had data race getting timer id
      - wide printf family failed to support l modifier for float formats
      
      ### arch-specific bugs fixed:
      - x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697)
      - x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches)
      - lseek broken on x32 and mipsn32 with large file offsets
      - riscv64 atomics weren't compiler barriers
      - riscv64 atomics had broken asm constraints (missing earlyclobber flag)
      - arm clone() was broken when compiled as thumb if start function returned
      - mipsr6 setjmp/longjmp did not preserve fpu register state correctly
      
      Fixes #71099.
      4fb54ed4
    • B
      Auto merge of #73232 - RalfJung:miri-no-default, r=Mark-Simulacrum · 10326d80
      bors 提交于
      x.py: do not build Miri by default on stable/beta
      
      Fixes https://github.com/rust-lang/rust/issues/73117
      
      Do I need to do anything to make sure Miri is still built by the tools CI builder? Are there other tools that should be off-by-default?
      
      Also, unfortunately the `DEFAULT` associated const has no doc comment, so I have no idea what it does, or why there are semmingly two places where the default build of tools is controlled.
      10326d80
    • B
      d3d3a14f
  3. 13 6月, 2020 18 次提交
  4. 12 6月, 2020 14 次提交