-
Notifications
You must be signed in to change notification settings - Fork 14.9k
WIP - [libc++][spanstream] P0448R4: A strstream
replacement using span<charT>
as buffer
#83541
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
Draft
H-G-Hristov
wants to merge
127
commits into
llvm:main
Choose a base branch
from
H-G-Hristov:hgh/libcxx/P0448R4-spanstream-A-strstream-replacement-using-span-charT-as-buffer
base: main
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.
+6,844
−36
Draft
Changes from all commits
Commits
Show all changes
127 commits
Select commit
Hold shift + click to select a range
f2935a6
[libc++][spanstream] P0448R4: A `strstream` replacement using `span<c…
H-G-Hristov a96a0a2
Added forward declarations to `<iosfwd>`
H-G-Hristov 68f9a3a
Tests: updated `types.compile.pass`
H-G-Hristov 709c27b
Implementation: added `_LIBCPP_HIDE_FROM_ABI`
H-G-Hristov 4cfdff4
Tests: `spanbuf` constructor tests
H-G-Hristov 505fef9
Tests: tweaks
H-G-Hristov a90b60b
Tests: `ispanstream` constructors - WIP
H-G-Hristov 29bdc6a
Implementation: fixed module and forward declarations
H-G-Hristov 94dd655
Implementation: fixed python code formatting
H-G-Hristov 1d1612a
Implementation: updated transitive includes
H-G-Hristov 9efdaa0
Implementation: fix CI
H-G-Hristov 7373d2b
Implementation: try to fix CI
H-G-Hristov 836b92f
Implementation: fixes
H-G-Hristov 0bd187f
Implementation: fixes
H-G-Hristov bd24fd0
Tests: `ospanstream` and `spanstream` constructors + fixes
H-G-Hristov 4bc5407
Tests: `ispanstream` added assign and swap
H-G-Hristov fd1c254
Tests: added `ReadonlySpan` type
H-G-Hristov bf12527
Tests: WIP `ROS` constructor
H-G-Hristov a1c51e6
Tests: WIP retry CI
H-G-Hristov 6283a36
Tests: Try to fix CI
H-G-Hristov d5bbf3f
Tests: updated generated tests
H-G-Hristov 2eb5e6e
Tests: WIP
H-G-Hristov b2eca6c
Tests: WIP cleanup
H-G-Hristov df9581c
Tests: added test skelettons
H-G-Hristov 512435a
Tests: updated `iosfwd.pass.cpp`
H-G-Hristov 3125c75
Tests: WIP fix test skelettons
H-G-Hristov 4fbc16b
Tests: try to fix CI
H-G-Hristov 7f1388c
Tests: WIP `span.pass` and `span.span.pass`
H-G-Hristov 197c3be
Tests: updated `span.pass` and `span.span.pass`
H-G-Hristov ea2ed02
Implementations: `basic_spanbuf` improved constructors and member fun…
H-G-Hristov c3e0dac
Tests: `basic_spanbuf` improved tests for constructors and member fun…
H-G-Hristov b5d66b9
Tests: Added `setbuf.pass`
H-G-Hristov dccf570
Tests: WIP `seekoff`
H-G-Hristov aa4ab9b
Tests: WIP cleanup
H-G-Hristov 08b4685
Tests: WIP `seekoff`
H-G-Hristov dee214b
Implementation: `seekoff` no mode is set
H-G-Hristov b0ea4c3
Tests: WIP `seekoff.pass`
H-G-Hristov c83a5be
Tests: `seekoff.off_type.seek_dir.open_mode.pass`
H-G-Hristov 5316a76
Tests: clean-up `seekoff.off_type.seek_dir.open_mode.pass`
H-G-Hristov 6e435e0
Tests: updated `seekoff.pass` and `seekpos.pass`
H-G-Hristov 7d17869
Tests: WIP `operator>>` tests
H-G-Hristov 6b67a27
Test: WIP `basic_spanstream`'s `operator>>` and `operator<<`
H-G-Hristov 91c1355
Tests: fixed formatting
H-G-Hristov c4d1aee
Tests: WIP `spanstream`
H-G-Hristov 19ec42a
Tests: `spanstream`
H-G-Hristov aa9178f
Tests: Fix CI
H-G-Hristov 4e7e72e
Tests: tweaks `spanbuf` and `spanstream`
H-G-Hristov 186ff77
Tests: updated `spanstream` and `ospanstream`
H-G-Hristov c82d2c8
Tests: updated `ospanstream`, `spanbuf`, `spanstream`
H-G-Hristov 6315328
Tests: updated and fixed tests
H-G-Hristov 5b11364
Tests: fixed CI
H-G-Hristov b2ee728
Tests: fixed CI
H-G-Hristov 5d13308
Tests: updated `inherited.stream.ops.pass.cpp`
H-G-Hristov 9decf93
Tests: updated `inherited.stream.ops.pass.cpp`
H-G-Hristov 9d1665a
Tests: `stream.ops.pass.cpp`
H-G-Hristov 21be2dc
Updated Release Notes
H-G-Hristov 4143152
Removed #include <__availability>
H-G-Hristov 09781e4
Removed #include <__assert>
H-G-Hristov 574b727
Updated: libcxx/test/std/input.output/span.streams/ispanstream/ispans…
H-G-Hristov 9f863ed
Updated: libcxx/test/std/input.output/span.streams/ispanstream/ispans…
H-G-Hristov 6730df2
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov d75e221
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov b446bd6
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov 6a2d427
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov c223384
Updated tests
H-G-Hristov eb9ef80
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov 500b152
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov e6c4c89
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov 7082f1f
Updated libcxx/test/std/input.output/span.streams/ispanstream/types.c…
H-G-Hristov b716602
Updated libcxx/test/std/input.output/span.streams/ispanstream/ispanst…
H-G-Hristov e09c037
Updated ispanstream tests
H-G-Hristov 63f02f9
Added libcxx/test/std/input.output/span.streams/ispanstream/inherited…
H-G-Hristov af9d416
Updated: libcxx/test/std/input.output/span.streams/ispanstream/inheri…
H-G-Hristov 2838485
ispanstream + constexpr_char_traits: returns empty strings
H-G-Hristov 1997256
Removed constexpr_char_traits from tests
H-G-Hristov b9d40de
Updated: libcxx/test/std/input.output/span.streams/ospanstream/ospans…
H-G-Hristov 2167a5b
Updated: libcxx/test/std/input.output/span.streams/ospanstream/ospans…
H-G-Hristov 4f0b6e6
Updated: `basic_ostream` tests
H-G-Hristov 01ecbbe
Fixed formatting
H-G-Hristov f75927b
WIP: ospanstream tests
H-G-Hristov 004baf9
Try to fix merge conflict fixes
H-G-Hristov fa8ed8c
Fix the fixes that fix the fixes
H-G-Hristov 33f060c
Fixed transitive includes
H-G-Hristov 425e0f4
Fixed transitive includes
H-G-Hristov b7490de
Try to fix build
H-G-Hristov 81d1ed1
`spanstream` does not support `no-localization`
H-G-Hristov 2839a08
Target LLVM21
H-G-Hristov 580c939
Try to fix CI
H-G-Hristov dd04528
Try to fix CI
H-G-Hristov 520cbe6
Fix formatting
H-G-Hristov 94d573a
Try to fix CI
H-G-Hristov 11d7a0e
Try to fix CI
H-G-Hristov 78c7e42
Try to fix CI
H-G-Hristov 687ea98
Try to fix CI
H-G-Hristov e204373
Try to fix CI
H-G-Hristov c07da7d
Try to fix transitive includes
H-G-Hristov 6c2ae11
Try to fix transitive includes
H-G-Hristov 80e025b
Updated `spanstream` tests REQUIRES condition
H-G-Hristov 8ce2b8e
Cleanup `<spanstream>`
H-G-Hristov 97f19f6
WIP - `ospanstream`
H-G-Hristov 672a2d3
Removed tests for `char8_t`, `char16_t`, `char32_t` as unsupported
H-G-Hristov 5e75d27
WIP - test `ospanstream` inherited stream ops
H-G-Hristov 49ccc7f
Mass test cleanup
H-G-Hristov 5023fa3
Fix CI
H-G-Hristov df9eaec
WIP: Test spanbuf pointers in streams
H-G-Hristov 22d085c
Removed `_LIBCPP_TEMPLATE_VIS` as of https://github.com/llvm/llvm-pro…
H-G-Hristov 40e2661
Re-run generator scripts
H-G-Hristov 628db92
Fixed format
H-G-Hristov 0ca74dd
Fixed formatting
H-G-Hristov a0fcde3
Fixed formatting again
H-G-Hristov 0090ce1
Run generator scripts
H-G-Hristov eda6e7f
Try again
H-G-Hristov 066872d
Try again
H-G-Hristov 645f94f
Try again
H-G-Hristov 5b7abb3
Update libcxx/test/std/language.support/support.limits/support.limits…
H-G-Hristov b94890c
Update libcxx/test/std/language.support/support.limits/support.limits…
H-G-Hristov 5e314c3
Fix CI - `addressof`
H-G-Hristov 73088da
Update libcxx/docs/Status/Cxx23Papers.csv
H-G-Hristov 5b78b4d
LLVM22
H-G-Hristov a8ada49
Transitive includes
H-G-Hristov fe2c2df
Merge branch 'main' into hgh/libcxx/P0448R4-spanstream-A-strstream-re…
Zingam 6772932
Merge branch 'main' into hgh/libcxx/P0448R4-spanstream-A-strstream-re…
Zingam 3102008
Merge branch 'main' into hgh/libcxx/P0448R4-spanstream-A-strstream-re…
H-G-Hristov ea35161
Merge branch 'main' into hgh/libcxx/P0448R4-spanstream-A-strstream-re…
H-G-Hristov c8589b6
Adressed some review comments
H-G-Hristov edf69b2
Fixed transitive includes
H-G-Hristov 5213eae
Try again to fix the transitive includes
H-G-Hristov 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
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
//===----------------------------------------------------------------------===// | ||
// | ||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
// See https://llvm.org/LICENSE.txt for license information. | ||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#ifndef _LIBCPP___FWD_SPANSTREAM_H | ||
#define _LIBCPP___FWD_SPANSTREAM_H | ||
|
||
#include <__config> | ||
#include <__fwd/string.h> | ||
|
||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) | ||
# pragma GCC system_header | ||
#endif | ||
|
||
#if _LIBCPP_STD_VER >= 23 | ||
|
||
_LIBCPP_BEGIN_NAMESPACE_STD | ||
|
||
template <class _CharT, class _Traits = char_traits<_CharT>> | ||
class basic_spanbuf; | ||
template <class _CharT, class _Traits = char_traits<_CharT>> | ||
class basic_ispanstream; | ||
template <class _CharT, class _Traits = char_traits<_CharT>> | ||
class basic_ospanstream; | ||
template <class _CharT, class _Traits = char_traits<_CharT>> | ||
class basic_spanstream; | ||
|
||
using spanbuf = basic_spanbuf<char>; | ||
using ispanstream = basic_ispanstream<char>; | ||
using ospanstream = basic_ospanstream<char>; | ||
using spanstream = basic_spanstream<char>; | ||
|
||
# if _LIBCPP_HAS_WIDE_CHARACTERS | ||
using wspanbuf = basic_spanbuf<wchar_t>; | ||
using wispanstream = basic_ispanstream<wchar_t>; | ||
using wospanstream = basic_ospanstream<wchar_t>; | ||
using wspanstream = basic_spanstream<wchar_t>; | ||
# endif | ||
|
||
template <class _CharT, class _Traits> | ||
class _LIBCPP_PREFERRED_NAME(spanbuf) _LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wspanbuf)) basic_spanbuf; | ||
template <class _CharT, class _Traits> | ||
class _LIBCPP_PREFERRED_NAME(ispanstream) | ||
_LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wispanstream)) basic_ispanstream; | ||
template <class _CharT, class _Traits> | ||
class _LIBCPP_PREFERRED_NAME(ospanstream) | ||
_LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wospanstream)) basic_ospanstream; | ||
template <class _CharT, class _Traits> | ||
class _LIBCPP_PREFERRED_NAME(spanstream) | ||
_LIBCPP_IF_WIDE_CHARACTERS(_LIBCPP_PREFERRED_NAME(wspanstream)) basic_spanstream; | ||
|
||
_LIBCPP_END_NAMESPACE_STD | ||
|
||
#endif // _LIBCPP_STD_VER >= 23 | ||
|
||
#endif // _LIBCPP___FWD_SPANSTREAM_H |
This file contains hidden or 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 hidden or 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.
Uh oh!
There was an error while loading. Please reload this page.