-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
test_port in run-pass/binops.rs causes valgrind warnings from shape_glue #2724
Comments
Oops. It was actually the |
I think I've narrowed down the problem to the code in trans that handles class constructors, which created an 8-bit field within a 64-bit struct field and left three uninitialized bytes (plus, my dodgy shape code for resources wasn't properly skipping over that field (the "drop field"), and was comparing it instead of the actual pointer to the object). Working on a fix. For future reference, the |
I've been working on this, but right now the cycle collector is crashing and I'm not sure I'm getting accurate information from gdb about where. Going to put it aside for a bit, but if someone who knows the RTS better wants to help... |
Since both shape glue and classes as we know them are supposedly going away, I'm calling this "postponed". |
I guess this is no longer relevant since comparison ops are now trait-based. binops.rs no longer has a |
…pplying rustfmt The `cargo test --all` command failed and exited the main process with a SIGINT. Trapping the signal or trying to get the code of a subshell didn't work. Close rust-lang#2724
…ust-lang#2809) This adds support for verifying the contracts of recursive functions inductively. The idea is quite simple. We use a global variable to track whether we're reentering a function and depending on that value we either continue with checking the contract or assume the hypothesis by using its replacement. The precise mechanism that I implemented is explained in the documentation [here](https://github.com/JustusAdam/kani/blob/a31176c79098205ca0b2c2b199cdf06653754551/library/kani_macros/src/sysroot/contracts.rs#L126) Resolves rust-lang#2724 **Open Question:** to facilitate induction the return type of the function must implement `kani::Arbitrary`. Since we can't discriminate between recursive and non-recursive functions in the proc-macro this means that this applies to all functions with contracts, not just recursive ones. This may be an unacceptable restriction. We could consider making inductive verification explicit with an annotation like `#[kani::inductive]` or conversely make inductive the default and let users opt-out with `#[kani::no_inductive]`. This is now tracked in rust-lang#2823 I had to remove the names of the functions in which the messages occur in the test cases, since they are now generated, hard to read names By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses. --------- Co-authored-by: Zyad Hassan <88045115+zhassan-aws@users.noreply.github.com>
On my system, it produces:
I am commenting out the call to the
test_class
function and putting in a FIXME that points to this bug.The text was updated successfully, but these errors were encountered: