]>
git.lizzy.rs Git - rust.git/log
Ralf Jung [Fri, 14 Jul 2017 03:28:00 +0000 (20:28 -0700)]
fn ptrs and never were accidentally disabled (55)
Ralf Jung [Fri, 14 Jul 2017 03:23:11 +0000 (20:23 -0700)]
fix normalizing associated types. this brings us up to 52 passing tests!
Ralf Jung [Fri, 14 Jul 2017 03:22:51 +0000 (20:22 -0700)]
handle array types
Ralf Jung [Fri, 14 Jul 2017 03:08:35 +0000 (20:08 -0700)]
Re-do the way locking is done during verification
We now lock at the "leaves" on the types, rather than locking at references.
In particular, Validate for sth. of non-reference lvalue will also lock the "outer" memory.
Also change the way we release write locks, and some refactoring in the memory.
Ralf Jung [Fri, 14 Jul 2017 00:38:31 +0000 (17:38 -0700)]
for references, validate alignment and handle ZSTs
Ralf Jung [Fri, 14 Jul 2017 00:25:38 +0000 (17:25 -0700)]
validate TyClosure, TyTuple, TyNever
Ralf Jung [Thu, 13 Jul 2017 23:48:29 +0000 (16:48 -0700)]
various small fixes and tracing
Ralf Jung [Thu, 13 Jul 2017 21:05:45 +0000 (14:05 -0700)]
Also release locks on ReleaseValidation and EndRegion
Ralf Jung [Fri, 23 Jun 2017 04:42:46 +0000 (21:42 -0700)]
fix release_lock_until to no longer remove inactive locks
Ralf Jung [Tue, 20 Jun 2017 06:49:57 +0000 (23:49 -0700)]
avoid downcasting for enum variants without further fields
Ralf Jung [Tue, 20 Jun 2017 06:39:18 +0000 (23:39 -0700)]
validate boxes
Ralf Jung [Tue, 20 Jun 2017 06:27:25 +0000 (23:27 -0700)]
implement checking for ADTs
Ralf Jung [Tue, 20 Jun 2017 04:18:43 +0000 (21:18 -0700)]
implement stub validity check for basic types (bool, int, float); acquire locks for references
Ralf Jung [Mon, 19 Jun 2017 21:56:05 +0000 (14:56 -0700)]
implement acquiring and releasing locks
Ralf Jung [Sat, 17 Jun 2017 00:58:18 +0000 (17:58 -0700)]
add locking data structures and lock checks
This brings back some of the memory range ideas that were deleted with the packed refactoring.
Ralf Jung [Fri, 16 Jun 2017 22:50:59 +0000 (15:50 -0700)]
update for rustc changes: treat new MIR commands as NOP
Oliver Schneider [Mon, 24 Jul 2017 09:31:25 +0000 (11:31 +0200)]
Merge pull request #267 from RalfJung/cast
Fix ptr-int-casts
Oliver Schneider [Mon, 24 Jul 2017 07:56:02 +0000 (09:56 +0200)]
Pass `HasDataLayout` instead of the data layout itself
Oliver Schneider [Sun, 23 Jul 2017 13:00:22 +0000 (15:00 +0200)]
Use rustc traits instead of our own
Ralf Jung [Sat, 22 Jul 2017 18:28:14 +0000 (11:28 -0700)]
move pointer truncation to a common method in memory.rs
Oliver Schneider [Sat, 22 Jul 2017 07:52:47 +0000 (09:52 +0200)]
Merge pull request #269 from oli-obk/cleanups
Remove unused `IntoValTyPair` hack
Ralf Jung [Sat, 22 Jul 2017 03:02:44 +0000 (20:02 -0700)]
fix nits
Ralf Jung [Thu, 20 Jul 2017 21:03:02 +0000 (14:03 -0700)]
refactor casting code to more clearly handle pointers
Ralf Jung [Thu, 20 Jul 2017 20:52:58 +0000 (13:52 -0700)]
fix casting integers to pointers
Oliver Schneider [Fri, 21 Jul 2017 12:59:58 +0000 (14:59 +0200)]
Remove unused `IntoValTyPair` hack
Oliver Schneider [Fri, 21 Jul 2017 10:32:45 +0000 (12:32 +0200)]
Merge pull request #258 from oli-obk/upstream
Prep miri repository for rustc merger
Oliver Schneider [Wed, 19 Jul 2017 15:28:46 +0000 (17:28 +0200)]
Prep miri repository for rustc merger
Oliver Schneider [Fri, 21 Jul 2017 07:46:50 +0000 (09:46 +0200)]
Merge pull request #266 from RalfJung/align
Always test alignment in memory.rs
Ralf Jung [Thu, 20 Jul 2017 20:20:33 +0000 (13:20 -0700)]
always test alignment in memory.rs
Oliver Schneider [Thu, 20 Jul 2017 20:08:02 +0000 (22:08 +0200)]
Merge pull request #265 from oli-obk/optimize_prime
Also test optimized MIR
Oliver Schneider [Thu, 20 Jul 2017 14:05:14 +0000 (16:05 +0200)]
Also test optimized MIR
Oliver Schneider [Thu, 20 Jul 2017 18:00:19 +0000 (20:00 +0200)]
Merge pull request #264 from oli-obk/paths
Reduce the usage of global paths
Oliver Schneider [Thu, 20 Jul 2017 14:40:57 +0000 (16:40 +0200)]
Reduce the usage of global paths
Oliver Schneider [Thu, 20 Jul 2017 14:07:08 +0000 (16:07 +0200)]
Merge pull request #260 from RalfJung/tests
Split up test suite
Eduard-Mihai Burtescu [Thu, 20 Jul 2017 12:13:21 +0000 (15:13 +0300)]
Merge pull request #262 from RalfJung/never
remove ad-hoc 'never' type check in read_lvalue
Oliver Schneider [Thu, 20 Jul 2017 11:11:40 +0000 (13:11 +0200)]
Move rustc tests from tests to a binary, since they are only run manually anyway
Oliver Schneider [Thu, 20 Jul 2017 05:09:52 +0000 (07:09 +0200)]
Merge pull request #259 from RalfJung/ref-validate
No longer check aligment and non-NULLness on `&`
Ralf Jung [Thu, 20 Jul 2017 03:32:51 +0000 (20:32 -0700)]
remove ad-hoc 'never' type check in read_lvalue
Ralf Jung [Thu, 20 Jul 2017 03:26:30 +0000 (20:26 -0700)]
add test for misaligned pointer loads
Ralf Jung [Thu, 20 Jul 2017 03:24:09 +0000 (20:24 -0700)]
fix checking alignment of pointer loads
Ralf Jung [Wed, 19 Jul 2017 20:31:21 +0000 (13:31 -0700)]
fix a warning
Ralf Jung [Wed, 19 Jul 2017 19:52:20 +0000 (12:52 -0700)]
split up the test suite
Ralf Jung [Wed, 19 Jul 2017 18:38:15 +0000 (11:38 -0700)]
enable test code that passes just fine
Ralf Jung [Wed, 19 Jul 2017 18:35:06 +0000 (11:35 -0700)]
Don't pretend that casts to bool are a thing
Ralf Jung [Wed, 19 Jul 2017 18:28:35 +0000 (11:28 -0700)]
No longer check aligment and non-NULLness on `&`
This breaks creating unaligned raw pointers via `&packed.field as *const _`, which needs to be legal.
Also it doesn't seem like LLVM still relies on this, see
* https://github.com/solson/miri/issues/244#issuecomment-
315563640
* https://internals.rust-lang.org/t/rules-for-alignment-and-non-nullness-of-references/5430/16
We probably want to handle this invariant like the others that validation is concerned with, and only
check it on function boundaries for now.
Oliver Schneider [Wed, 19 Jul 2017 09:40:43 +0000 (11:40 +0200)]
Merge pull request #257 from oli-obk/cleanups
Export types and functions needed by priroda
Oliver Schneider [Wed, 19 Jul 2017 09:06:07 +0000 (11:06 +0200)]
Export types and functions needed by priroda
Oliver Schneider [Tue, 18 Jul 2017 21:34:09 +0000 (23:34 +0200)]
Merge pull request #254 from RalfJung/dangling
Remove reundant dangling checks in {r,d}eallocate
Scott Olson [Tue, 18 Jul 2017 21:16:42 +0000 (14:16 -0700)]
Merge pull request #255 from RalfJung/float
use libstd methods for floating-point <-> bytes conversion
Ralf Jung [Tue, 18 Jul 2017 20:56:01 +0000 (13:56 -0700)]
use libstd methods for floating-point <-> bytes conversion
Ralf Jung [Tue, 18 Jul 2017 20:50:54 +0000 (13:50 -0700)]
remove reundant dangling checks in {r,d}eallocate
Oliver Schneider [Tue, 18 Jul 2017 12:09:15 +0000 (14:09 +0200)]
Merge pull request #245 from oli-obk/funky_allocs
Ensure that it is not possible to explicitly free stack memory
Oliver Schneider [Fri, 14 Jul 2017 19:28:06 +0000 (21:28 +0200)]
Merge pull request #249 from RalfJung/lvalue
lvalue: refactoring to permit applying a mir projection to a miri lvalue
Ralf Jung [Tue, 20 Jun 2017 03:13:26 +0000 (20:13 -0700)]
lvalue: refactoring to permit applying a mir projection to a miri lvalue
Oliver Schneider [Fri, 14 Jul 2017 15:46:28 +0000 (17:46 +0200)]
Add a comment explaining the static "local" during `deallocate_local`
Oliver Schneider [Thu, 13 Jul 2017 17:10:14 +0000 (19:10 +0200)]
Fix static mutation tests
Oliver Schneider [Thu, 13 Jul 2017 15:25:27 +0000 (17:25 +0200)]
Remove duplicate test
Oliver Schneider [Thu, 13 Jul 2017 15:25:17 +0000 (17:25 +0200)]
Use enum instead of boolean
Oliver Schneider [Thu, 13 Jul 2017 14:58:36 +0000 (16:58 +0200)]
Clarify documentation
Oliver Schneider [Wed, 12 Jul 2017 12:51:47 +0000 (14:51 +0200)]
Ensure that it is not possible to explicitly free stack memory
Oliver Schneider [Fri, 14 Jul 2017 06:30:30 +0000 (08:30 +0200)]
Merge pull request #247 from RalfJung/packed
Re-do packed memory accesses
Ralf Jung [Thu, 13 Jul 2017 21:18:26 +0000 (14:18 -0700)]
packed structs: test unsize coercions
Oliver Schneider [Thu, 13 Jul 2017 20:07:02 +0000 (22:07 +0200)]
Merge pull request #243 from solson/magic_numbers
Get rid of magic numbers
Ralf Jung [Thu, 13 Jul 2017 17:29:11 +0000 (10:29 -0700)]
use closures to ensure proper bracketing of unaligned accesses
Ralf Jung [Thu, 13 Jul 2017 16:10:50 +0000 (09:10 -0700)]
simplify
Ralf Jung [Thu, 13 Jul 2017 16:09:45 +0000 (09:09 -0700)]
show alignedness of ByRefs; allow converting unaligned ByRef to ptr
Ralf Jung [Thu, 13 Jul 2017 16:06:27 +0000 (09:06 -0700)]
make all Value::into_* methods handle alignment the same way
Ralf Jung [Thu, 13 Jul 2017 15:40:05 +0000 (08:40 -0700)]
expand comment
Oliver Schneider [Thu, 13 Jul 2017 14:49:55 +0000 (16:49 +0200)]
Reuse the `const_eval` method for syscall name resolution
Oliver Schneider [Wed, 12 Jul 2017 08:36:14 +0000 (10:36 +0200)]
Don't use magic numbers for synconf names
instead read them from the `libc` crate if available.
fixes #216
Oliver Schneider [Wed, 28 Jun 2017 11:59:16 +0000 (13:59 +0200)]
Copy `path_to_def` from clippy
Oliver Schneider [Thu, 13 Jul 2017 09:43:25 +0000 (11:43 +0200)]
Merge pull request #248 from RalfJung/pointer-games
Memory::read_ptr has to check for relocations on the edges
Ralf Jung [Thu, 13 Jul 2017 06:40:31 +0000 (23:40 -0700)]
fix "unaligned" transmute
Ralf Jung [Thu, 13 Jul 2017 04:06:57 +0000 (21:06 -0700)]
track alignment also for ByRef values
Ralf Jung [Thu, 13 Jul 2017 02:29:16 +0000 (19:29 -0700)]
Memory::read_ptr has to check for relocations on the edges
Ralf Jung [Thu, 13 Jul 2017 00:52:57 +0000 (17:52 -0700)]
Rename value accessors to "into_*" so the three of them are better aligned
Ralf Jung [Thu, 13 Jul 2017 00:46:56 +0000 (17:46 -0700)]
Re-do packed memory accesses
We now track in the lvalue whether what we computed is expected to be aligend or not, and then set some state in the memory system accordingly to make it (not) do alignment checks
Oliver Schneider [Wed, 12 Jul 2017 09:02:03 +0000 (11:02 +0200)]
Merge pull request #241 from solson/rustc_integration
Produce `ConstInt` from a `def_id` for rustc
Oliver Schneider [Wed, 12 Jul 2017 08:40:02 +0000 (10:40 +0200)]
Merge pull request #242 from solson/various
Add tests for #113
Oliver Schneider [Tue, 4 Jul 2017 15:03:21 +0000 (17:03 +0200)]
Produce `ConstInt` from a `def_id` for rustc
Oliver Schneider [Wed, 12 Jul 2017 07:29:18 +0000 (09:29 +0200)]
Add tests for #113
resolves #113
Oliver Schneider [Wed, 12 Jul 2017 07:08:07 +0000 (09:08 +0200)]
Merge pull request #238 from RalfJung/tests
Add little script to build libstd
Eduard-Mihai Burtescu [Wed, 12 Jul 2017 06:03:22 +0000 (09:03 +0300)]
Merge pull request #239 from RalfJung/mmap
hooking mmap is no longer needed
Ralf Jung [Wed, 12 Jul 2017 00:24:15 +0000 (17:24 -0700)]
hooking mmap is no longer needed
Ralf Jung [Tue, 11 Jul 2017 17:25:05 +0000 (10:25 -0700)]
add little script to build libstd
That's easier to use than having to `cd xargo`
Ralf Jung [Tue, 11 Jul 2017 17:24:34 +0000 (10:24 -0700)]
Add a test for using a too big alignment on reallocate
Oliver Schneider [Tue, 11 Jul 2017 13:03:14 +0000 (15:03 +0200)]
Merge pull request #236 from oli-obk/pointers
Use a wrapper type to differentiate between `PrimVal` and pointers
Oliver Schneider [Tue, 11 Jul 2017 10:50:03 +0000 (12:50 +0200)]
Document the reason for `Pointer`'s existence
Oliver Schneider [Tue, 11 Jul 2017 10:39:12 +0000 (12:39 +0200)]
Simplify `with_extra`
Oliver Schneider [Tue, 4 Jul 2017 12:47:46 +0000 (14:47 +0200)]
Remove `*offset*` methods from `PrimVal` onto `Pointer`
Oliver Schneider [Tue, 4 Jul 2017 12:33:15 +0000 (14:33 +0200)]
Use a wrapper type to differentiate between PrimVal and pointers
Oliver Schneider [Tue, 4 Jul 2017 12:26:27 +0000 (14:26 +0200)]
Add a dedicated `write_null` method
Oliver Schneider [Tue, 4 Jul 2017 11:16:29 +0000 (13:16 +0200)]
Rename Pointer to MemoryPointer
Oliver Schneider [Tue, 11 Jul 2017 07:39:52 +0000 (09:39 +0200)]
Merge pull request #237 from RalfJung/reallocate
Update for allcator API, simplify reallocate
Ralf Jung [Tue, 11 Jul 2017 01:09:46 +0000 (18:09 -0700)]
leave notes regarding possible alignment checks
Ralf Jung [Mon, 10 Jul 2017 22:58:47 +0000 (15:58 -0700)]
update tests for new allocator API
Ralf Jung [Mon, 10 Jul 2017 22:46:16 +0000 (15:46 -0700)]
update for allocator API
Ralf Jung [Mon, 10 Jul 2017 20:57:18 +0000 (13:57 -0700)]
update for latest nightly
Ralf Jung [Mon, 10 Jul 2017 20:34:54 +0000 (13:34 -0700)]
simplify reallocate
Oliver Schneider [Wed, 5 Jul 2017 17:54:54 +0000 (19:54 +0200)]
Merge pull request #234 from RalfJung/reallocate
Make Reallocate & Deallocate less permissive