-
Notifications
You must be signed in to change notification settings - Fork 19
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
C++20 module support #255
Draft
anarthal
wants to merge
85
commits into
boostorg:develop
Choose a base branch
from
anarthal:feature/cxx20-modules
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
C++20 module support #255
Changes from 74 commits
Commits
Show all changes
85 commits
Select commit
Hold shift + click to select a range
6d31440
Initial impl
anarthal 8b95972
Test: quick
anarthal a88ac69
Test: from_chars
anarthal 0fca203
Test: to_chars
anarthal d8af7a6
Fixed include for non-modular build
anarthal 21d38be
Test: roundtrip
anarthal cff3f1d
Test: from_chars_STL
anarthal 469db1c
Test: to_chars_STL
anarthal 1b24348
Ensure roundtrip doesn't use EQ
anarthal b5fb386
Test: limits
anarthal 608b335
Test: to_chars_snprintf
anarthal 14253a0
global_module_fragment header
anarthal fd08bf7
Test: num_digits
anarthal 4542891
Test: limits_link_1
anarthal 03f19d1
Test: 128_native
anarthal 740e951
Test: 128_emulation
anarthal 08987cc
Make private headers include-able in tests
anarthal 78048a5
compute_float80
anarthal 788cba1
Test: compute_float64
anarthal 4fd5597
Made compute_float64 more self-contained
anarthal 7520a28
Test: compute_float32
anarthal d0d126e
Use library-specific export macro
anarthal 8133fe7
Test: parser
anarthal 3d8af3b
Made fallback_routines.hpp more self-contained
anarthal 3234d01
Test: from_chars_float
anarthal 4b7b876
Test: to_chars_float
anarthal 2672609
Remove GMF include from from_chars_float
anarthal 81e21fd
Test: boost_json_values
anarthal 05b9ea2
Test: to_chars_STL
anarthal 4010c95
Test: from_chars_float2
anarthal e9d3a34
Test: P2497
anarthal 00cbf99
Test: issue 110
anarthal 992ba1b
Test: issue 122
anarthal efb3beb
Test: from_chars_string_view
anarthal 1ef56a9
Test: issue 152
anarthal fd5101b
Test: issue 154
anarthal ec4c0b4
Test: issue 158
anarthal cb9c4f6
Remaining issue tests
anarthal 4771447
Jamfile
anarthal 849ba2c
Removed references to boost/config/modules.hpp
anarthal ca1b388
Sanitize charconv/config.hpp
anarthal b558891
Restored missing includes
anarthal b8f6435
Migrate to export using
anarthal 10987d2
Undo move headers to private
anarthal 1fc1e43
Header cleanup
anarthal 00633f1
Restore Jamfile
anarthal f754fe9
Merge branch 'develop' into feature/cxx20-modules
anarthal 45fdf62
detail/config is now a regular header
anarthal aaba7a0
Move away from Boost.CMake function
anarthal afe4f4b
Missing include in non-modular build
anarthal e33012b
Guard include in constexpr_feature_detect
anarthal bb01acc
Finalized making detail/config a regular header
anarthal 272e77d
Correct include in compute_float80
anarthal 4526a5d
impl_macros.hpp
anarthal 6c93b72
restore tests that are not run with modules
anarthal 28ab577
Remove back from_chars_strtod
anarthal 0d7e445
Test cleanup 1
anarthal 25a494b
Remove to_chars_float_fallback
anarthal 4bbe46a
Last test cleanup
anarthal 8f0d876
Modules cis (1)
anarthal 404b663
Force run
anarthal 8d587c0
Missing CMAKE_C_COMPILER
anarthal 1e11414
Update CMake max version in tests
anarthal 9ebf983
Remove unnecessary CMAKE_C_COMPILER arg
anarthal b0b8683
Fix include ifdef
anarthal c549dee
Make certain variables inline constexpr
anarthal d9fd5c7
Migrate to import in GMF
anarthal 9176eb3
Remove CMake warning suppression
anarthal f55ea63
Remove explicit disabling of C++ extensions in CMake tests
anarthal af5d88a
Restore bit_layouts & cleanup
anarthal 3bd370d
Cleanup cpp files
anarthal 3e0d0db
Add CIs back
anarthal 0b43cfb
Test cleanup 1
anarthal 65e5356
Test cleanup 2
anarthal 3c62c5d
Initial implementation of compatibility headers
anarthal fbc1c42
Refactor public macros
anarthal 2956bc3
Move some tests to compatibility headers
anarthal 2f423f6
Migrate the library to compatibility headers
anarthal 2c54c75
Migrate more tests to compatibility headers
anarthal bcc4720
Remove uses of macro HUGE_VAL*
anarthal 128fd88
Migrate all tests to compatibility headers
anarthal 78464f3
Missing includes in tests
anarthal e019bcd
Remove before_impl_headers
anarthal 76f9b77
Remove instances of BOOST_CHARCONV_SOURCE
anarthal 4f27753
Add config to CI
anarthal File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you tried this with C++20 instead of 23? I know officially
import std
andimport std.compat
are C++23, but all of the compiler implementors have said they'll allow it at 20.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think there's a use to it? My understanding was that using C++20 over C++23 is about being able to use older compilers that might not support C++23. Such compilers won't have proper module implementations, likely, since modules are quite behind everything else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Standards like MISRA are pinned to language standards not toolchains. Theoretically someone could have a modern compiler but be stuck at C++20. Probably best to have someone in the real world complain before changing it.