Skip to content

Remove LLVM GC patches, add ARM patches, remove clang, rebase onto trunk #5401

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

Closed
brson opened this issue Mar 15, 2013 · 3 comments
Closed
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.
Milestone

Comments

@brson
Copy link
Contributor

brson commented Mar 15, 2013

We have several LLVM changes in the pipeline. Let's do them all at once to avoid too much churn.
#5327 has a number of changes to support __morestack on ARM. Today I'm going to take that branch and try to rebase out our GC patches.

@yichoi (or @ILyoan - I can't recall) also mentioned on Wednesday that they want to update LLVM to trunk to pick up some ARM fixes.

@ILyoan @yichoi are there any other modifications you expect to LLVM before 0.6?

@brson
Copy link
Contributor Author

brson commented Mar 15, 2013

Probably should also incorporate #3775 once we rebase to trunk.

@brson
Copy link
Contributor Author

brson commented Mar 15, 2013

And #5403

@brson brson mentioned this issue Mar 15, 2013
@brson
Copy link
Contributor Author

brson commented Mar 15, 2013

Dupe of #5368

@brson brson closed this as completed Mar 15, 2013
oli-obk pushed a commit to oli-obk/rust that referenced this issue Apr 2, 2020
Downgrade option_option to pedantic

Based on a search of my work codebase (\>500k lines) for `Option<Option<`, it looks like a bunch of reasonable uses to me. The documented motivation for this lint is:

> an optional optional value is logically the same thing as an optional value but has an unneeded extra level of wrapping

which seems a bit bogus in practice. For example a typical usage would look like:

```rust
let mut host: Option<String> = None;
let mut port: Option<i32> = None;
let mut payload: Option<Option<String>> = None;

for each field {
    match field.name {
        "host" => host = Some(...),
        "port" => port = Some(...),
        "payload" => payload = Some(...), // can be null or string
        _ => return error,
    }
}

let host = host.ok_or(...)?;
let port = port.ok_or(...)?;
let payload = payload.ok_or(...)?;
do_thing(host, port, payload)
```

This lint seems to fit right in with the pedantic group; I don't think linting on occurrences of `Option<Option<T>>` by default is justified.

---

changelog: Remove option_option from default set of enabled lints
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.
Projects
None yet
Development

No branches or pull requests

1 participant