Skip to content

build: upgrade to C++17#9654

Closed
lizan wants to merge 3 commits intoenvoyproxy:masterfrom
lizan:cxx17
Closed

build: upgrade to C++17#9654
lizan wants to merge 3 commits intoenvoyproxy:masterfrom
lizan:cxx17

Conversation

@lizan
Copy link
Copy Markdown
Member

@lizan lizan commented Jan 10, 2020

Signed-off-by: Lizan Zhou lizan@tetrate.io

Description:
Risk Level: Med
Testing: CI
Docs Changes: N/A
Release Notes:
Fixes #9091

Signed-off-by: Lizan Zhou <lizan@tetrate.io>
@kyessenov
Copy link
Copy Markdown
Contributor

Hey, let me know how best to patch CEL OSS build. copts is added via copybara, so I can change it easily.

@mattklein123
Copy link
Copy Markdown
Member

Have we confirmed this will work for Envoy Mobile? cc @keith @goaway @junr03. I think not having filesystem is fine on that platform, but we do need to not run into potential runtime issues if for example the C++ stdlib is dynamically linked on that platform (I'm not sure if it is or it isn't).

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jan 10, 2020

That's why this is draft, I haven't even confirm on all CI yet.

Based on my research iOS and Android should be fine with C++17 (without filesystem on iOS yet), but yeah need @keith @junr03 @goaway to confirm.

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jan 10, 2020

@kyessenov Thanks, yeah I'm not intended to merge with the patch and will sync with you for that.

@junr03
Copy link
Copy Markdown
Member

junr03 commented Jan 10, 2020

We have not verified yet. I can work with @goaway and @keith to do so for both platforms. @lizan what is your timeline for upgrading? Just so I know how to prioritize this.

@keith
Copy link
Copy Markdown
Member

keith commented Jan 11, 2020

Definitely worth a try with enovy-mobile

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jan 11, 2020

@junr03 I'm out next week, so the week after?

@lizan lizan added the no stalebot Disables stalebot from closing an issue label Jan 11, 2020
Signed-off-by: Lizan Zhou <lizan@tetrate.io>
@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jan 26, 2020

@junr03 @keith have you tried with envoy-mobile?

Signed-off-by: Lizan Zhou <lizan@tetrate.io>
@junr03
Copy link
Copy Markdown
Member

junr03 commented Jan 28, 2020

@lizan we have not tried yet. @goaway and I will do so this week.

@junr03
Copy link
Copy Markdown
Member

junr03 commented Jan 29, 2020

@lizan I tried building yesterday and faced some challenges that make me doubt the feasibility of updating as we stand.

For instance, now that abseil's optional points to std we depend on iOS versions to actually support it. In the case iOS 12+ is needed, but Lyft and Envoy Mobile need to support previous versions.

@goaway suggested us jumping on a quick call to sync on this and get some resolution. Do you mind if I DM you and we arrange something?

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jan 30, 2020

@junr03 yeah sure just ping me on Slack

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jan 31, 2020

@junr03 @goaway
Seems abseil offers backward compatibility for that if you define __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__:
https://github.com/abseil/abseil-cpp/blob/63ee2f8877915a3565c29707dba8fe4d7822596a/absl/base/config.h#L425-L444

abseil/abseil-cpp#207

Will that work for Envoy mobile?

@junr03
Copy link
Copy Markdown
Member

junr03 commented Jan 31, 2020

@lizan thanks for suggesting, I did not see that in my own exploration. Let me try and get back to you.

junr03 added a commit to envoyproxy/envoy-mobile that referenced this pull request Feb 4, 2020
Description: update abseil to track upstream Envoy. This will also allow us to test @lizan's suggestion envoyproxy/envoy#9654 (comment)
Risk Level: low. keeps track with Envoy.
Testing: CI

Signed-off-by: Jose Nino <jnino@lyft.com>
@junr03
Copy link
Copy Markdown
Member

junr03 commented Feb 18, 2020

For posterity: a couple weeks ago I tried @lizan's suggestion above and compiled Envoy Mobile successfully for iOS. However, there were a couple runtime issues (which in honesty I did not dig into due to lack of time).

Instead, @lizan, @goaway, and I had a conversation about prioritization and timeline for getting C++17 support into Envoy and hence Envoy Mobile. The team at Lyft (Envoy Mobile maintainers) is working steadfast for a production release of Envoy Mobile, and thus has few resources to spare. Given that there is not an urgent forcing function to upgrade @lizan agreed that we could deprioritize bringing C++17 support for several weeks. The Envoy Mobile team would have more spare cycles to resolved remaining unknowns sometime in late march.

If anyone reading this PR has any concerns or needs that are addressed by a faster upgrade timeline please drop a comment here and let us know what your needs are.

@mattklein123 mattklein123 removed the no stalebot Disables stalebot from closing an issue label Apr 1, 2020
@stale
Copy link
Copy Markdown

stale bot commented Apr 8, 2020

This pull request has been automatically marked as stale because it has not had activity in the last 7 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions!

@stale stale bot added the stale stalebot believes this issue/PR has not been touched recently label Apr 8, 2020
@lizan lizan added the no stalebot Disables stalebot from closing an issue label Apr 8, 2020
@stale stale bot removed the stale stalebot believes this issue/PR has not been touched recently label Apr 8, 2020
@lizan
Copy link
Copy Markdown
Member Author

lizan commented Apr 8, 2020

@junr03 @goaway any progress on Envoy mobile side?

@junr03
Copy link
Copy Markdown
Member

junr03 commented Apr 8, 2020

Unfortunately, no. We have not had the chance to prioritize this. Any changes in timeline for you, i.e., should we prioritize this?

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Apr 8, 2020

This is a blocker of #10053, but we can explore to make Envoy build under both C++14/17 with compile_time_options.

@wrowe
Copy link
Copy Markdown
Contributor

wrowe commented Jun 26, 2020

I'd just like to /bump this issue.

@sunjayBhatia and I are looking to purse the FilesystemImpl in Envoy, ensuring we can grok the error results in a consistent manner, and that we can have utf-8 file-system naming conventions as on Linux. But it seems foolish to attack our pet project without first addressing whether we can get to a uniform std::filesystem ahead of those design decisions.

Can you enumerate the current blockers, @lizan ?

@lizan
Copy link
Copy Markdown
Member Author

lizan commented Jun 26, 2020

@stedsome is working on it.

@mattklein123 mattklein123 removed the no stalebot Disables stalebot from closing an issue label Jul 16, 2020
@lizan lizan closed this Jul 20, 2020
jpsim pushed a commit that referenced this pull request Nov 28, 2022
Description: update abseil to track upstream Envoy. This will also allow us to test @lizan's suggestion #9654 (comment)
Risk Level: low. keeps track with Envoy.
Testing: CI

Signed-off-by: Jose Nino <jnino@lyft.com>
Signed-off-by: JP Simard <jp@jpsim.com>
jpsim pushed a commit that referenced this pull request Nov 29, 2022
Description: update abseil to track upstream Envoy. This will also allow us to test @lizan's suggestion #9654 (comment)
Risk Level: low. keeps track with Envoy.
Testing: CI

Signed-off-by: Jose Nino <jnino@lyft.com>
Signed-off-by: JP Simard <jp@jpsim.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

build: upgrade to C++17

6 participants