Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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